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

當前資料未提供目錄頁地址,因此本文不補全目錄頁鏈接。

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

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

小夜