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

虚拟工作区 KevinWen7415/dsh-virtual-workspace

DeepSeek Harness
KevinWen741582 天前有提交已提供中文文档扫描:未发现敏感能力

把多个项目目录组合成命名工作区,跨项目读写搜索

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

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add KevinWen7415/dsh-virtual-workspace
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · dev
装得上吗
实装验证未通过(runtime_boot_failed),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 82 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(runtime_boot_failed · 2026/10/30) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

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

✗npm 包dsh-virtual-workspace(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

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

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

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
  • 发起网络请求
    index.js:422
    const outcome = await approvalService.request({ agent: exec.agent, toolName: 'vws', callId: exec.callId, reason: 'escalate sandbox to ' + requested +
  • 发起网络请求
    client.bundle.js:70
    return fetch('/api/vws/' + action, {
  • 发起网络请求
    src/host.js:353
    const outcome = await approval.request({ agent: exec.agent, toolName: 'vws', callId: exec.callId, reason: 'escalate sandbox to ' + requested + ': ' +
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 组合多项目目录
  • 跨项目读写搜索
  • 命名工作区

DeepSeek Harness的虚拟工作空间:一个动态的 Cordis 插件,将多个项目目录以一个名称组合,用于跨项目读/搜索/写入,并具有本土侧边栏集成和沙盒一致的升级.

README

由 DeepSeek 最新模型翻译生成
dsh-virtual-workspace 📖 English | 简体中文 Virtual Workspaces for DeepSeek Harness (DSH) — 一个动态 Cordis 插件,让 agent 可以跨多个项目目录同时读取、搜索和修改代码与文件。 English blurb: A dynamic Cordis Plugin that groups several project directories into named virtual workspaces the agent can read, search and modify together, with sidebar UI, built-in workspace-list mirroring, and sandbox-consistent write escalation. ✨ 特性 - 虚拟工作区:名字 → 多个项目目录 的映射组,一次定义、处处可用。 - agent 工具 vws(13 个动作):list / add / remove / add-dir / remove-dir / set-mirror / resolve / read / write / edit / ls / find / grep,支持 名字:/相对路径 语法,文件操作取首个命中、目录操作取并集。
展开完整文档(README 剩余 1 节)
dsh-virtual-workspace

📖 English | 简体中文

Virtual Workspaces for DeepSeek Harness (DSH) — 一个动态 Cordis 插件,让 agent 可以跨多个项目目录同时读取、搜索和修改代码与文件。

English blurb: A dynamic Cordis Plugin that groups several project directories into named virtual workspaces the agent can read, search and modify together, with sidebar UI, built-in workspace-list mirroring, and sandbox-consistent write escalation.

✨ 特性

- 虚拟工作区:名字 → 多个项目目录 的映射组,一次定义、处处可用。
- agent 工具 vws(13 个动作):list / add / remove / add-dir / remove-dir / set-mirror / resolve / read / write / edit / ls / find / grep,支持 名字:/相对路径 语法,文件操作取首个命中、目录操作取并集。
- 内置侧边栏集成:接管侧边栏头部 + 添加工作区按钮,点击后向下弹出抽屉——既可用系统对话框创建普通工作区(原生行为),也可多选目录联立虚拟工作区,并在抽屉里管理既有工作区。
- 镜像到官方列表:成员目录自动注册为内置工作区条目(标题 工作区名 · 目录名),出现在侧边栏会话/工作区列表中;只清理自己创建的条目(所有权跟踪)。
- 沙箱一致:读取不受限;写入/编辑遵循调用会话的沙箱边界,越界被拒后可一次性审批升级(与内置 write 工具同款 sandbox_permissions + justification 机制)。
- 全局感知:工具与提示段注册在根上下文,任何会话(包括在镜像目录下新建的会话)的 agent 都能调用 vws 并看到工作区清单。
- 多语言:界面支持简体中文(zh)与英文(en);界面语言为 zh 时显示中文,其余语言一律回退英文;语言切换即时生效。
- 持久化:定义保存于 /.vws-workspaces.json,重启后自动恢复。

📷 截图

1. 点击 + 弹出的抽屉面板

image-20260814155305458

image-20260814155313460

2. 内置侧边栏中的镜像条目

image-20260814155626728

3. 系统文件夹选择对话框

image-20260814160008485

4. 对话中 agent 使用 vws 跨目录工作

image-20260814155809708

📦 官方安装(bundle,永久内置)

本仓库同时是官方 bundle 格式的插件包(package.json 声明 dsh.bundle → cordis.patch.yml + index.js),可从 GitHub 直接安装并随 profile 永久启动:

dsh plugin --profile add github:KevinWen7415/dsh-virtual-workspace
dsh --profile

- 本包为纯 JavaScript、无构建步骤,因此不需要官方文档中 TypeScript 包所需的 pnpm allowBuilds 审批;
- 卸载:dsh plugin --profile remove dsh-virtual-workspace;
- bundle 同时携带 Host 与 Client:vws 工具、系统提示段、镜像注册、状态持久化、沙箱升级,以及侧边栏 + 抽屉面板 UI(v1.2.0 起,经 dsh.client + 同源 /api/vws 路由通信)——与动态版功能对齐;
- 与动态安装对比:bundle 安装进程重启后自动加载,不依赖任何会话。

🚀 安装教程(动态插件方式)

本插件是动态 Cordis 插件:运行在 DSH 进程内,通过内置的 cordis_* 工具定义与激活,无需构建。

0. 前置条件

- 已部署并运行 DeepSeek Harness(DSH),能打开 Web 界面(如 http://127.0.0.1:3080);
- 至少有一个可用会话;
- 能访问 GitHub(推荐);否则先在本地 clone:git clone https://github.com/KevinWen7415/dsh-virtual-workspace。

1. 准备代码

源码位于:https://github.com/KevinWen7415/dsh-virtual-workspace(公开仓库,无需 clone 即可由 agent 直接读取)。
src/host.js 与 src/client.js 各是一个 export default function () { … };其中 return { … } 的函数体就是要交给 cordis_define 的 code.host / code.client。

2. 安装(推荐:把 GitHub 地址直接给 agent)

打开 DSH 会话,发送一句话:

请从这个仓库自动安装插件:https://github.com/KevinWen7415/dsh-virtual-workspace (读取 src/host.js 与 src/client.js,用 cordis_define 定义后 cordis_run 激活)

agent 会自行读取两个源文件并完成 cordis_define → cordis_run,然后:

1. 页面若出现审批提示(awaiting-approval),点击允许(首次含浏览器 UI 的包需要审批);
2. 收到激活成功通知后刷新页面。

若 DSH 所在机器无法访问 GitHub:先在本地 git clone https://github.com/KevinWen7415/dsh-virtual-workspace,再发送「请安装 这个插件」,后续步骤相同。
安全提示:只安装你信任的仓库。

2′. 安装(手动调用工具)

1. 调用 cordis_define:
- plugin: { "kind": "new", "idPrefix": "vws" }
- name / purpose:随意填写,例如 Virtual Workspaces
- code.host:粘贴 src/host.js 里 export default function () { 与文件末尾 } 之间的 return { … } 整段
- code.client:同理取 src/client.js 的函数体
2. 记录返回的 pluginId / packageId;
3. 调用 cordis_run:{ "pluginId": "…", "packageId": "…", "mode": "run" };
4. 审批通过、收到成功通知后刷新页面。

3. 验证安装

- 点击侧边栏头部 + → 向下弹出 Virtual Workspaces 抽屉;
- 在抽屉中添加一个工作区(名称 + 每行一个目录)→ 内置侧边栏出现 名字 · 目录 镜像条目;
- 在对话里说“用 vws list 列出虚拟工作区”,agent 应返回状态 JSON。

4. 日常使用

- 界面:抽屉里添加/移除工作区、Sidebar: on/off 镜像开关、目录 ×;面板可按住标题栏拖动;
- agent:直接说“读 EDB:/src/xxx”、“在 EDB 里搜索 xxx”、“把 EDB 的 xxx 改成 yyy”;写入超出会话边界时 agent 会请求升级,你点批准即完成一次性写入。

5. 更新 / 停用 / 卸载

| 操作 | 方式 |
| 更新版本 | 对同一 pluginId 用 cordis_define(kind:"existing")追加新包 → cordis_run mode:"update" |
| 回滚 | cordis_run mode:"run" 指定 currentPackageId |
| 停用(保留定义) | cordis_stop |
| 卸载 | ① 先在抽屉里移除工作区或关闭镜像(清理内置列表中的镜像条目)② cordis_stop ③ cordis_undefine |

6. 常见问题

- 激活报 Failed to fetch:瞬时网络问题,直接重试 cordis_run(或刷新页面后重试),无需改代码;
- DSH 进程重启后:插件需重新激活(定义仍在,对原 pluginId 再 cordis_run 即可;工作区定义持久化,不丢失);
- 卸载后内置列表还有镜像条目:注册记录是持久化的;若卸载前未清理,可在官方侧边栏手动删除这些条目;
- 审批被拒:不会自动重试;需要时再次手动发起 cordis_run;
- GitHub 地址安装的条件:仓库 github.com/KevinWen7415/dsh-virtual-workspace 为公开仓库;DSH 需能访问 GitHub(否则用本地 clone 路径);首次激活仍需页面审批。

代码约束(平台要求):纯 JavaScript,无 import/require/JSX/TypeScript;Client 一律 React.createElement;文件操作必须经 ctx.fs 服务。详见 docs/03-development.md。

提示:动态插件随 DSH 进程存续。如需永久内置、脱离会话生命周期,可将其固化进 host composition(见 docs/02-design.md 演进路线)。

📂 仓库结构

dsh-virtual-workspace/
├── README.md # 简体中文说明(本文件) ├── README.en.md # English README ├── LICENSE # MIT ├── package.json # dsh.bundle 清单 + 元信息 ├── cordis.patch.yml # bundle 补丁层(官方安装入口) ├── index.js # 静态 Host 插件(bundle 入口,免构建) ├── src/ │ ├── host.js # 动态 Host 半(code.host) │ └── client.js # 动态 Client 半:内置 + 抽屉面板 UI(code.client) └── docs/ ├── 01-requirements.md # 需求文档(用户反馈、功能/非功能需求、验收) ├── 02-design.md # 设计文档(插槽选型、镜像注册、抽屉设计、跨会话作用域) ├── 03-development.md # 开发文档(代码结构、发布流程、调试、规范) ├── 04-api-reference.md # 接口文档(工具/RPC/状态文件/错误码) ├── 05-testing.md # 测试文档(用例、回归清单、已知限制) └── images/ # 截图目录(按上表放置)

🧭 核心概念

| 概念 | 说明 |
| 虚拟路径 | 名字:/相对路径:在所有成员目录中解析;文件取首个命中,目录操作取并集 |
| 镜像 | 成员目录注册进内置 workspaceRegistry,标题 名字 · 目录名;插件只删除自己创建的条目 |
| 沙箱 | 读取不受限;写入按会话边界;越界可用 sandbox_permissions 一次性升级(用户审批) |
| 作用域 | 工具与提示段为全局注册——所有会话的 agent 可用 vws |

❓ FAQ

- 为什么虚拟工作区不在内置列表里? 内置列表由 workspaceRegistry 驱动且只接受真实存在的目录("虚假目录"被拒绝)。本插件通过镜像注册解决:成员目录以 名字 · 目录名 出现在官方列表。
- 别的会话能跨工作区改动吗? 能:vws 全局可用、读取不限;写入遵循各会话边界,跨目录写入走一次性审批升级。
- 状态存在哪里? /.vws-workspaces.json(本机示例:C:\Users\\.vws-workspaces.json)。

📚 版本演进

| 包 | 说明 |
| pkg-1 | 初版:工具/服务/RPC + 设置页 |
| pkg-2 | 写入始终盖上调用会话的沙箱策略(与内置 fs 工具一致) |
| pkg-3 | 移除设置页;侧边栏悬浮按钮 + 管理面板 |
| pkg-4 | 镜像注册进内置侧边栏(开关/所有权跟踪/安全清理) |
| pkg-5 | 撤销悬浮按钮,接管内置 + 流程(单目录原生 + 多目录创建/管理) |
| pkg-6 | 抽屉形态:面板 fixed 定位向下弹出(动画 + 独立滚动),解决槽位高度不足 |
| pkg-7 | 多语言:注册 en/zh 字典;zh 显示简体中文、其余语言回退英文,语言切换即时生效 |
| pkg-8 | 修复:关闭系统目录弹窗后抽屉卡死(picking 不再禁用整个抽屉,Cancel 恒可点,重开重置) |
| pkg-9(动态当前版) | 抽屉可拖动:按住标题栏拖动(元素级指针捕获,无全局监听),grab/grabbing 光标反馈 |
| bundle v1.2.0 | 官方 bundle 格式(Host + Client):dsh plugin add github:KevinWen7415/dsh-virtual-workspace 永久安装,含抽屉 UI |

📄 License

MIT
预览分享卡片长什么样 ↓KevinWen7415/dsh-virtual-workspace
分享 · DeepSeek Harness Hub
KevinWen7415/dsh-virtual-workspace

把多个项目目录组合成命名工作区,跨项目读写搜索

这是你的仓库?认领条目

回到顶部