DSH 理念强调“一切皆插件”。在管理大量 host 与 client profile 插件时,维护清单、追踪更新、处理升级回滚以及备份迁移是常见痛点。huahua-dsh-plugin-orchestra 是一个插件管理系统,旨在提供统一的清单、更新检测、一键升级、备份与回滚能力。
核心功能¶
该插件提供以下核心能力:
- 插件清单:生成并管理插件列表,支持缓存优先的摘要视图。
- 更新检测:检查可用更新,支持强制刷新缓存(绕过 TTL 但保留 ETag)。
- 升级与回滚:支持指定版本升级或回滚,升级失败时自动回滚。
- 备份管理:支持备份创建、列表查看与清理。
- 跨 Agent 迁移:支持在 agents 之间进行插件迁移。
- 面板集成:在 DSH 设置页提供“插件管理”入口卡(含更新角标)及右上角通知中心。
安装¶
使用 DSH CLI 安装该插件:
dsh plugin --profile web add huahua-dsh-plugin-orchestra
本地开发安装可使用路径方式:
dsh plugin --profile web add file:./huahua-dsh-plugin-orchestra
命令行使用¶
安装后可通过 CLI 或直接运行 node lib/cli/index.js 进行操作。部分非交互式命令需添加 --yes 标志。
1. 查看清单与更新¶
查看当前插件清单(L1 用途摘要,优先使用缓存):
node lib/cli/index.js list --json
检查更新情况:
node lib/cli/index.js check --json
2. 升级与回滚¶
升级指定插件。--dry-run 仅演练不实际变更;--yes 跳过确认。
node lib/cli/index.js upgrade <pkg> [--to <ver>] [--dry-run] [--yes]
回滚插件到指定备份或最近的可用快照:
node lib/cli/index.js rollback <pkg> [--backup <id>] [--yes]
3. 备份管理¶
管理插件备份:
node lib/cli/index.js backup list|create <pkg>|prune <pkg> [--force]
面板使用¶
安装插件后,DSH 设置页面会出现“插件管理”入口卡片。通过该入口可访问以下功能:
* 插件清单/详情/变更日志
* 升级、回滚操作
* 备份管理
* 全局设置
右上角会出现通知中心浮窗,用于展示更新提示。
配置与数据¶
- 数据目录:
~/.dsh/plugin-orchestra/- 包含
config.json(配置)、cache/(缓存)、backups/(备份快照)、logs/(日志)。
- 包含
- 环境变量:
DSH_ORCHESTRA_*系列(如DSH_ORCHESTRA_PROFILE)。GITHUB_TOKEN或GH_TOKEN:用于提升 GitHub API 限流配额(匿名状态为 60/h,使用 Token 可提升至 5000/h)。
退出码说明¶
命令执行返回以下退出码:
0:操作成功2:用法错误3:目标不存在4:无操作(未满足条件)5:失败已回滚(可重试)6:失败需人工介入130:用户中断
技术细节与注意事项¶
- Node 版本:要求
^22.19.0 || >=24。 - 沙箱/CI 环境:若
node --test在沙箱中因权限问题(spawn EPERM)失败,建议直接执行node tests/xxx.test.mjs。 - 构建与测试:
- 类型检查:
pnpm typecheck - 构建:
pnpm build - 测试:
pnpm test(引擎侧)或pnpm test:client(面板侧)。
- 类型检查:
该插件基于 MIT 许可证开源。安装前请检查源码与许可证,确保符合您的安全与合规要求。