DSH Plugins Marketplace

DSH Plugins

Plugins

/

huahua-dsh-plugin-orchestra

a

huahua-dsh-plugin-orchestra

Manifest valid

DSH plugin management system: inventory, changelog, update alerts, one-click upgrade, backup & rollback. DSH 插件管理系统

UI (client)hasBundlePatch

huahua-dsh-plugin-orchestra

DSH 插件管理系统(host + client profile 插件):插件清单、更新检测、升级/回滚、备份、跨 agent 迁移。

  • 设计文档:docs/S1_架构设计草案.md(权威源)、docs/S2_工具层设计.md、docs/S3_面板设计.md、docs/adr/ADR-001~003
  • 当前阶段:一期功能 1-5 交付(M2 ✅ 核心引擎 / M3 ✅ 面板)——105/105 用例全绿(引擎 86 + 面板 19),S7 终审 🔴-1/🟡-3 已清零(client bundle + verify.mjs 门禁),待用户验收
  • 领域模型:src/domain/(单一权威类型源,与 --json schemaVersion 同源,S2 §3.6.4)

安装与使用

# 1. 安装为 DSH profile 插件(npm 发布后)
dsh plugin --profile web add huahua-dsh-plugin-orchestra

# 或本地路径安装(开发态)
dsh plugin --profile web add file:./huahua-dsh-plugin-orchestra

# 2. CLI 命令(node lib/cli/index.js,或经 bin 安装后直接 orchestra)
node lib/cli/index.js list --json                # 插件清单(L1 用途摘要,缓存优先)
node lib/cli/index.js check --json               # 检查更新(--force 绕 TTL 缓存但保留 ETag)
node lib/cli/index.js upgrade <pkg> [--to <ver>] [--dry-run] [--yes]   # 升级:自动备份,失败自动回滚
node lib/cli/index.js downgrade <pkg> --to <ver> [--yes]               # 降级
node lib/cli/index.js rollback <pkg> [--backup <id>] [--yes]           # 回滚(缺省最近有效快照)
node lib/cli/index.js backup list|create <pkg>|prune <pkg> [--force]   # 备份管理
  • 面板:安装后 settings 页出现「插件管理」入口卡(含可更新数角标)+ 右上角通知中心;清单/详情/变更日志/升级/回滚/备份/设置齐全(S3)。
  • 数据目录~/.dsh/plugin-orchestra/(config.json / cache/ / backups/ / logs/,单一来源,S1 §13)。
  • 环境变量DSH_ORCHESTRA_*(如 DSH_ORCHESTRA_PROFILE / DSH_ORCHESTRA_DATA_DIR);GITHUB_TOKEN / GH_TOKEN 提升 GitHub 限流配额(匿名 60/h → 5000/h)。
  • 退出码:0 ok / 2 用法错 / 3 目标不存在 / 4 无操作 / 5 失败已回滚(可重试)/ 6 失败需人工 / 130 中断;非 TTY 写命令需 --yes--dry-run 只读演练豁免)。

构建与测试

pnpm install        # 安装 devDeps(typescript 等)
pnpm typecheck      # 双 tsconfig 类型检查(host + client)
pnpm build          # tsc 编译(host → lib/,client → lib/client/)+ bundle-client(lib/client.js 浏览器产物,DSH loader 格式)
pnpm test           # build + node --test(node:test,无需额外框架)
pnpm test:client    # vitest + jsdom(组件测试,CI 跑)
pnpm test:client:direct  # node 直跑面板纯函数单测(沙箱/无 jsdom 环境)

注:沙箱/CI 中若 node --test 的 runner 子进程被拒(spawn EPERM), 可改为直接执行 node tests/xxx.test.mjs(node:test 内联运行)。

目录

src/
├── index.ts          # host 插件入口(re-export src/host/index)
├── domain/           # 领域模型:类型 + 常量 + 接口签名(零框架依赖)
│   ├── model.ts      # PluginRecord / UnifiedSource / ChangelogEntry ...
│   ├── updater.ts    # UpdateSource 接口 / VersionInfo / UpdateReport ...
│   ├── operation.ts  # op.state.json 阶段 / OperationResult / 退出码 ...
│   ├── config.ts     # ConfigSchema / 键白名单 schema / 面板设置视图
│   └── errors.ts     # 分级错误码(可重试/不可重试)
├── host/             # host 半边(cordis 插件装配 + 服务)
│   ├── index.ts      # 插件入口 + buildServices 装配(三服务 + Remote)+ 陈旧锁恢复
│   ├── remote.ts     # Typert Remote 契约 + 实现(16 方法)
│   ├── config-service.ts  # ConfigService(S1 §13 单一来源 config.json + 环境变量优先级)
│   ├── inventory/    # 清单服务:scanner(四态 spec / status local)/ spec / purpose(L0/L1/L2)/ inventory-service(缓存指纹)
│   ├── updater/      # 更新引擎:sources/(GitHub ETag + npm corgi)/ update-engine(single-flight)/ router / rate-limit / cache / semver / http / errors
│   └── install/      # 操作引擎:operation-engine(原子序列+崩溃恢复)/ op-state / backup(manifest 四态)/ path-guard(🔴-3)/ spawn / verify / drift / checksum
├── cli/             # orchestra CLI(退出码 0-6/130 + --json 外壳 + --force 白名单 + DX 契约)
│   └── index.ts / args.ts / app.ts / output.ts / help.ts / services.ts
└── client/          # client 半边(S3 面板,React)
    ├── index.ts      # client 装配入口(remote.$mount + shell + UI 安装)
    ├── install.ts    # installPluginOrchestraUi:settings 入口卡 + 通知中心 floater
    ├── contribution.ts  # Typert contribution(16 方法字段级 parse + strict codec)
    ├── shell.ts      # createBrowserShell(registerSlot/prompt/openExternal/copyText/...)
    ├── store.ts      # host-backed 数据源(useSyncExternalStore + 事件订阅 + 轮询兜底)
    ├── model.ts      # 视图折叠/筛选/排序/通知去重/recoverySuggestion(纯函数)
    ├── i18n.ts       # 冻结双语 catalog(zh-CN / en)
    ├── markdown.ts   # 受限 Markdown 渲染器(剥离 HTML,安全铁律)
    ├── diff.ts       # 并排行级 LCS diff(自研 ~60 行)
    ├── orchestra.css / css.d.ts
    └── components/   # PluginOrchestraApp(根)/ context / common / Icons
        ├── inventory/PluginListPage.tsx    # 清单页(搜索/筛选/排序/行内操作)
        ├── detail/PluginDetailPage.tsx     # 详情页(5 Tabs + 用途解读 L0/L1/L2)
        ├── ops/ops.tsx                      # ConfirmDialog(dry-run 预览)/ OperationProgress / ResultBanner / RecoveryDialog
        ├── notify/NotificationCenter.tsx    # 通知中心 floater + 角标
        ├── backups/BackupListView.tsx       # 备份管理(verified/corrupt)
        └── settings/SettingsPage.tsx        # 设置页(ADR-002 参数)

测试

tests/
├── 引擎侧(node:test,86 用例全绿):path-guard 9 / operation-engine 17 / t19-fixes 6 / update-sources 11 / rate-limit 4 /
│   cli 14 / config-service 5 / remote 5 / inventory 5 / spec 4 / backup-manifest 3 / package-contract 2 / bundle-client 1
└── client/(面板,19 用例全绿):model 8 / markdown 4 / diff 3 / contribution 4 + components.spec.tsx(vitest)

文档

  • docs/L1_项目蓝图.md:顶层蓝图(里程碑 M1-M4 ✅)| docs/L3_项目纪要.md:阶段纪要
  • docs/S1~S3:架构/工具层/面板设计 | docs/adr/ADR-001~003:决策记录
  • docs/S4_评审报告.md / S5_复核放行意见.md / S6_引擎层复核报告.md:质量门
  • docs/handoff/:S1 阶段 handoff + 一期交付 handoff | docs/一期-验收报告.md:验收报告(痛点→功能→证据)

License

MIT — see LICENSE.

Similar plugins

dsh-plugin-manager

In-web plugin manager for DeepSeek Harness: categorized plugin list, preset bundles with one-click switching, import/export and failure auto-rollback, plugin market with one-click install.

Tools & CapabilitiesManifest valid

0

335/wk

dsh plugin --profile web add dsh-plugin-manager

by lw-storm

This plugin provides version management and rollback capabilities. When another plugin causes an error that prevents DSH from launching, forcing you to clear all plugins, this plugin can quickly resto

Manifest valid

0

JavaScript

Aug 29, 2026

dsh plugin --profile web add dsh-plugin-version-management

by vlln

DSH 插件:定时循环(/loop 命令 + loop 工具 + 活动状态条)。官方 bundle 插件,dsh plugin --profile web add 安装

Workflow & AutomationManifest valid

7

MIT

JavaScript

Sep 9, 2026

dsh plugin --profile web add @vlln/dsh-loop

Card-style plugin manager in Settings: enable/disable each plugin through the profile patch layer, install-source details, npm update check with one-click update, uninstall, search, and load-error bad

Tools & CapabilitiesManifest valid

0

221/wk

dsh plugin --profile web add dsh-plugin-mgr

Plugin center for DeepSeek Harness: installed-plugin metadata, a community market with stars and versions, one-click install and update, and a What's New dialog.

Tools & CapabilitiesManifest valid

0

483/wk

dsh plugin --profile web add @max-null/dsh-plugin-center

Plugin inventory manager for DeepSeek Harness Web: table view of installed plugins with status filters, enable/disable switches applied via HMR, config viewer/copy, uninstall and npm update reminders.

Development & InfrastructureManifest valid

0

dsh plugin --profile web add dsh-plugin-runcat-inventory