dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
按工作区开关插件、MCP 服务器与 Skills:工作区行菜单里的弹窗写入选择,宿主机在该工作区自己的 Agent 作用域内应用——关闭的 Skill 从模型目录中消失,MCP 服务器被拒绝其 mcp__<server>__ 工具,插件被拒绝其条目声明的工具名。
DeepSeek Harness 的按工作区启用控制: 每个工作区自行决定它的会话能用哪些插件、MCP 服务器与 Skills, 并通过工作区行菜单里的弹窗来配置。
English | 中文
一个插件,两半:
index.js,构建到 lib/index.js)在该工作区创建 Agent 时读取该工作区的配置,
并把配置应用到这个 Agent 自己的 Cordis 作用域,因此同一进程里两个工作区的两个 Agent
看到的能力可以不同:
mcp__<serverName>__* 工具在该作用域被拒绝;src/client/,构建到 lib/client.js)在工作区行的 ... 菜单里加一项,
打开弹窗列出当前组合在各分类下提供的能力,每项一个开关。没有任何条目的工作区完全继承部署原有的组合,因此在有人配置之前这个插件不改变任何行为。
两个来源描述同一个工作区,后者优先:
<DSH_HOME>/workspace-switch.json,其 workspaces 映射以工作区目录为键;<workspace>/.dsh/workspace-switch.json,存在时整体替换该工作区的共享条目。{
"workspaces": {
"E:\\my_project\\godot-game": {
"plugins": { "mcp-godot-ai": { "enabled": false, "tools": ["mcp__godot-ai__run"] } },
"mcp": { "godot-ai": { "enabled": false } },
"skills": { "godot-scene-authoring": { "enabled": false } }
}
}
}
enabled: false 表示在该工作区关闭;缺省即启用。插件条目还要声明该插件注册的工具名——
门禁是按名字拒绝工具的,所以没有 tools 的插件条目没有可拒绝的东西。
弹窗写入当前对该工作区生效的那份文档:存在项目文件时写项目文件,否则写共享配置。 写入通过临时文件重命名发布,读方不会看到写了一半的文档。
这是一个 DSH bundle:把它加进 profile 并选中。
dsh plugin add link:/path/to/dsh_workspace_switch
然后把 dsh-workspace-switch 加入该 profile 的 dsh.profile.bundles。新的 bundle 行在下次启动 harness 时加载。
浏览器半是 DSH 客户端 bundle,必须构建;需要仓库工具链(本插件在
scripts/tsdown.client.ts 内联了自己的客户端构建预设副本,它会从所在检出目录解析 harness 源码)。
# 在 deepseek-harness 检出目录里
pnpm exec tsdown --config dsh_workspace_switch/tsdown.config.ts # 或在插件目录里执行 pnpm build
pnpm exec tsc -p dsh_workspace_switch/tsconfig.typecheck.json # 类型检查浏览器半
node --test "tests/**/*.test.js" # 单元测试
lib/ 已提交进版本库。 包的 main 与 ./client 都指向它,而一份克隆里既没有 harness 源码也没有构建工具链,
否则「从源码安装」(dsh plugin add github:…)装到的包会没有任何入口文件。任何改动发布后请把重建的文件一并提交。
独立克隆无法执行构建:内联的预设会 import 只存在于检出目录里的 harness 源码(../../packages/…、../../scripts/…)。
请在检出目录里构建,再把 lib/ 提交到这里。
tools 里列出的名字。MIT。