前言¶
DSH 生態的常見理念是「一切皆插件」。社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不應把它理解成官方應用商店。
對智能體開發者來說,單個插件的安裝和試用通常不難。難的是把多個 Registry Release、作者自託管插件、Agent Preset 組合成一個可複用、可複覈的 DSH Profile。這個組合過程如果只靠本地手裝,容易出現幾個問題:
- 組合結果缺少一份可審查的清單。
- 作者來源沒有固定到完整 Git commit。
- 每個組件的許可證事實不清楚。
- 發佈者簽名缺少明確驗證入口。
- 安裝、激活、確認和回滾混在一起,出問題時難以回到上一代 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,不是安裝命令。
啓用前務必注意:
- 插件會以當前 dsh 進程權限運行。
- 安裝前應檢查源碼、來源、許可證和發佈者簽名。
- 當前資料未明確給出項目許可證,因此應先做人工審閱。
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 範圍內。
適用場景與注意¶
適合使用它的場景包括:
- 需要把多個 DSH 插件組合成一個可複用 Profile 的團隊。
- 需要固定 Registry Release、作者來源 commit 和 Runtime 版本的人員。
- 需要在分發前檢查許可證事實的發佈者或審閱者。
- 需要驗證發佈者簽名後再執行 pack 的接收方。
- 需要把安裝、激活、確認和回滾拆成明確步驟的流程。
使用前需要特別注意:
- 插件會以當前 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
當前資料未提供目錄頁地址,因此本文不補全目錄頁鏈接。