omdsh-dev/omdsh-runtime:面向 DSH 的可审计 Profile Pack 工具链

前言

DSH 生态的常见理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应把它理解成官方应用商店。

对智能体开发者来说,单个插件的安装和试用通常不难。难的是把多个 Registry Release、作者自托管插件、Agent Preset 组合成一个可复用、可复核的 DSH Profile。这个组合过程如果只靠本地手装,容易出现几个问题:

  1. 组合结果缺少一份可审查的清单。
  2. 作者来源没有固定到完整 Git commit。
  3. 每个组件的许可证事实不清楚。
  4. 发布者签名缺少明确验证入口。
  5. 安装、激活、确认和回滚混在一起,出问题时难以回到上一代 Profile。

下面介绍 omdsh-dev/omdsh-runtime。它围绕这些问题提供一套轻量工具链,用于可审计的 DSH 组合、签名、候选安装和回滚。

这是什么

omdsh-dev/omdsh-runtime 的官方描述是:

Lightweight OMDSH Runtime and Profile Pack toolkit for auditable DSH composition, signing, candidate installs, and rollback.

它可以理解为面向 DSH 的 Profile Pack 工具链。它复用官方 Harness Profile、Bundle、Cordis 和 package 操作,提供 headless execution layer,并加入确定性的 plan/apply、候选代、显式确认和上一代恢复路径,同时不引入另一个 Loader 或 daemon。

已核实的基本信息如下:

项目 内容
仓库名 omdsh-dev/omdsh-runtime
维护者 omdsh-dev
仓库地址 https://github.com/omdsh-dev/omdsh-runtime
npm 包名 @ohmydsh/runtime
npm 发布标签 preview
发布行为 preview 发布不会隐式移动 latest
CLI 名称 omdsh

当前资料未给出 Star 数、项目许可证、官方安装命令、插件类别和目录页地址。这些内容不应作为确定事实使用。

核心能力

1. 固定 Profile Pack 的组合边界

Profile Pack 会记录:

  • 精确的 Registry project 和 Release ID。
  • 作者自托管来源,并固定到完整 Git commit。
  • 对应 Registry snapshot。
  • 观察到的 @deepseek-ai/dsh 版本。
  • 一个 Agent Preset。

这使得一个组合包不是“某几个插件名字的集合”,而是一份更接近可审计清单的对象。

2. 提供确定性 plan/apply 与候选代

它支持确定性的 plan/apply、候选代、显式确认,以及 previous-generation recovery。

也就是说,不是直接把本地环境改到目标状态,而是先形成一个候选安装状态,再经过显式激活和运行确认。

3. 输出 SPDX 许可证清单

omdsh pack licenses 会报告组件许可证表达式、来源、SPDX link,以及是否需要 manual review。

它是一份许可证事实清单,不是法律意见,也不是自动的许可证兼容性判定。

4. 支持 Ed25519 发布者签名

signed omdsh-profile-pack-envelope/v1 执行时,需要给出发布者 key,并验证 Ed25519 签名。

使用 --require-signature 时,会拒绝 legacy unsigned input。

5. 支持命名 pack 实例与回滚

它使用 named pack instances,并把 activation 和 runtime confirmation 分开。

回滚会重新选择 previous Profile generation。它不会声称能反向数据库、网络、文件系统或其他外部副作用。embedded preset rollback 仍不在 Profile generations 范围内。

6. 与现有 Pack/Skill 投影工具共存

它可以与 workspace-oriented Pack/Skill projection tools 共存,不引入另一个 Loader 或 daemon。

Profile Pack 负责的是 release boundary:精确的 DSH Runtime 和 Registry Releases、作者来源 commit、许可证事实、发布者签名,以及可恢复的 Profile generations。

安装与启用

当前资料未提供官方安装命令,因此本文不拼接 dsh plugin add github:owner/repo,也不直接给出一条未经核实的 npm install 命令。

可以从资料确认的包信息如下:

package: @ohmydsh/runtime
registry: https://registry.npmjs.org/
dist-tag: preview
cli: omdsh

这些信息用于定位包和 CLI,不是安装命令。

启用前务必注意:

  1. 插件会以当前 dsh 进程权限运行。
  2. 安装前应检查源码、来源、许可证和发布者签名。
  3. 当前资料未明确给出项目许可证,因此应先做人工审阅。
  4. preview 发布不会隐式移动 latest,使用时应明确区分 preview 与正式渠道。

典型用法

下面使用资料中给出的示例命令。示例里的文件名、包名、Release、profile、key 和 commit 都是示例值,实际使用时应替换为真实值。

1. 初始化一个 pack

先创建一个本地 pack 文件:

omdsh pack init research.pack.json --id research --preset code

这一步生成 research.pack.json,其中 --id research 是 pack 标识,--preset code 是示例中的 Agent Preset。

2. 添加 Registry Release 与作者来源

先添加一个 Registry Release:

omdsh pack add research.pack.json --release sample@1.2.3

再添加一个作者自托管来源。这个来源会固定到完整 Git commit:

omdsh pack add research.pack.json --source-id my-plugin --package @me/dsh-my-plugin --version 0.1.0 --repository https://github.com/me/dsh-my-plugin --ref <40-character-commit> --license MIT

注意:author-owned source 始终属于 experimental-fixed-source。在创建 candidate 之前需要 --trust-source,并且在该插件通过 Registry admission 之前,不能作为 trusted community distribution 发布。

3. 检查许可证并 lock

先查看每个组件的许可证事实:

omdsh pack licenses research.pack.json

omdsh pack licenses 报告组件 license expression、source、SPDX link 和 manual-review status。它不是法律意见,也不是自动许可证兼容性判定。

确认后再 lock 出可分发文件:

omdsh pack lock research.pack.json --output research-0.1.0.dshpack

这一步会把当前 pack 组合固化为 research-0.1.0.dshpack

4. 测试与预检

如果组合中包含 author-owned source,测试和预检时需要显式使用 --trust-source

omdsh pack test research.pack.json --profile web --trust-source

lock 后先 inspect:

omdsh pack inspect research-0.1.0.dshpack

再执行 plan:

omdsh pack plan research-0.1.0.dshpack --profile web --trust-source

经过上面的步骤,可以检查当前组合是否满足格式、hash、digest、签名、Registry、profile 和 trust 选项要求,而不是直接写入 Profile。

5. 对 pack 签名

对 lock 后的 pack 做发布者签名:

omdsh pack sign research-0.1.0.dshpack --private-key publisher.pem --key-id example/releases-2026 --publisher example --source https://github.com/example/research --output research-0.1.0.signed.dshpack

这一步生成 research-0.1.0.signed.dshpack。签名后的 envelope 在执行时要求提供发布者 key,并且 Ed25519 签名必须验证通过。

6. apply、activate、confirm 与 rollback

应用签名后的 pack 到命名实例:

omdsh pack apply research-0.1.0.signed.dshpack --instance research --profile web --trusted-key publisher.pub --require-signature

--require-signature 会拒绝 legacy unsigned input。

apply 后仍然需要显式激活:

omdsh activate --profile web

然后进行 runtime confirmation:

omdsh confirm --profile web

如果之后需要回到上一代 Profile generation,可以执行:

omdsh pack rollback --instance research

需要明确的是,rollback 是重新选择 previous Profile generation,不会反向数据库、网络、文件系统或其他外部副作用。embedded preset rollback 不在 Profile generations 范围内。

适用场景与注意

适合使用它的场景包括:

  1. 需要把多个 DSH 插件组合成一个可复用 Profile 的团队。
  2. 需要固定 Registry Release、作者来源 commit 和 Runtime 版本的人员。
  3. 需要在分发前检查许可证事实的发布者或审阅者。
  4. 需要验证发布者签名后再执行 pack 的接收方。
  5. 需要把安装、激活、确认和回滚拆成明确步骤的流程。

使用前需要特别注意:

  • 插件会以当前 dsh 进程权限运行。
  • 安装前应检查源码、许可证、发布者签名和依赖插件。
  • omdsh pack licenses 是许可证清单,不是法律意见。
  • author-owned source 在通过 Registry admission 前不能作为 trusted community distribution 发布。
  • source manifest 不接受 Git branches、tags、local paths、install scripts、secrets 或 copied node_modules
  • custom preset 只有在拒绝 symlinks、credential-like files or content、binary data 和 absolute user paths 后才以 UTF-8 text 形式 embedded。
  • applying embedded preset content 需要 --trust-preset
  • 替换已有 custom preset 需要 --replace-preset
  • applying a pack 只会替换同一 named pack instance 已跟踪的、由 pinned Registry snapshot 加 fixed sources 管理的插件;其他未跟踪本地包会保留。
  • rollback 不承诺反向外部副作用。

结尾

omdsh-dev/omdsh-runtime 的价值,是把 DSH 组合从“本地装几个插件”推进到一份可记录、可签名、可确认、可回滚的 Profile Pack 流程。

仓库地址:

https://github.com/omdsh-dev/omdsh-runtime

当前资料未提供目录页地址,因此本文不补全目录页链接。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜