dsh-rea-switch
DSH Plugins 页的 REA 开关:总开关关闭 REA,并在完整版 / 压缩版 MCP 工具集之间切换
- Stars
- 0
- Language
- JavaScript
- Created
- Oct 18, 2026
- Updated
- Oct 18, 2026
Introduction
dsh-rea-switch
Plugins 页的「REA 压缩」标签:两个开关控制 REA 工具集。总开关可以直接关闭 REA,
打开后再用第二个开关决定用 完整版(rea-mcp)还是 压缩版(rea-compact),
两套 MCP 工具集不会同时加载。
- 「启用 REA」总开关:关 → 两行都停用(
mcp__rea__*工具从工具列表消失);开 → 恢复 上次选中的版本。 - 「使用压缩版 REA」:开 → 先停
rea-mcp再启rea-compact(约 1.15 万 JSON 节点 / 210 KB,低于 Command Code 网关 32,768 节点上限);关 → 先停rea-compact再启rea-mcp(全部 REA 工具)。 - 上次选中的版本记在浏览器
localStorage的dsh-rea-switch/variant,所以关闭再打开 会回到同一个版本;换浏览器/清缓存后默认回到完整版。 - 开关状态不单独存盘,而是直接读 pluginManager 里这两行的
enabled状态,所以和 Plugins 页 / switchboard 里的手动开关完全一致。 - 两行同时启用(
both)会显示黄色警告并提示关掉一个。
依赖的运行配置
开关通过 pluginManager.setPluginEnabled() 写 profile patch,因此 两行 REA 必须声明在
profile 层(~/.dsh/profiles/desktop/cordis.patch.yml),例如:
- insert:
- id: rea-mcp
name: "@deepseek-ai/dsh-mcp-client"
config:
serverName: rea
transport: stdio
command: E:\dev\nodejs\node.exe
args: [E:\dev\npm-global\node_modules\rea-agents\scripts\rea.mjs, mcp]
- id: rea-compact
name: "@deepseek-ai/dsh-mcp-client"
disabled: true
config:
serverName: rea-compact
transport: stdio
env:
REA_MCP_INPUT_SCHEMA_PROFILE: compact
REA_MCP_OUTPUT_SCHEMA_PROFILE: "off"
command: E:\dev\nodejs\node.exe
args: [E:\dev\npm-global\node_modules\rea-agents\scripts\rea.mjs, mcp]
不要把 REA 行放进 ~/.dsh/cordis.patch.yml(home 层):那一层的优先级高于 profile
层,会让开关写入的 disabled 被覆盖,set_plugin 返回 overridden。项目首次实现时
就在这里踩过坑,已把 home 层的 REA 行迁移到 desktop profile 层。
安装
# 私库,需要已登录的 gh / git 凭证
gh repo clone Eddyxyc/dsh-rea-switch
# 用 plugin_manager 工具安装,而不是手改 profile 的 package.json
plugin_manager install_bundle target=<克隆到的目录>
安装后 Host 通过 HMR 挂上 dsh.client 声明的浏览器模块,Plugins 页会出现「REA 压缩」标签
(已安装的本地目录是 link: 依赖,改完代码刷新页面即可,无需重装)。
自检
node test/probe.mjs
用假的 window.__ModuleLoader__ / React / Remote 加载 client.js,覆盖:槽位注册、
完整版↔压缩版的调用顺序、总开关关闭(停两行)与重新打开、already 状态、both 冲突修复、
overridden / 失败 / 缺行 / 不可管理连接等分支,以及 localStorage 里版本偏好的记忆。
已知限制
- 没有可控浏览器通道,标签页的视觉渲染未目视验证;已验证的是槽位注册与控制器逻辑。
- 切换依赖
@deepseek-ai/dsh-mcp-client的热插拔:命令行的 REA MCP 进程会随行停用而 退出、随另一行启用而启动;restart-required时会在提示里说明需要重启。