前言¶
DeepSeek Harness(DSH)採用「一切皆插件」的擴展方式:工具、界面、記憶、計費能力往往來自多個社區插件。裝得多了,問題常集中在三個時間點——裝之前不清楚能不能裝、會不會和已有插件撞 loader;裝之後說不清環境裏到底有哪些插件、各自帶什麼能力;點更新之前不知道新版本會不會引入 engine 不匹配、native 編譯或 peer 衝突。
dsh-preflight(維護者 mouyu6508-hue)把這三個時刻串成一條檢查鏈:裝前用 preflight_check、裝後用 preflight_inventory、更新前用 preflight_updates。它與出事後再做衝突修復的 dsh-fusion 互補,兩者可以同時安裝。插件在 SkillHub 目錄中歸類爲 admin-security。
這是什麼¶
一句話:dsh-preflight 是 DSH 插件的「裝前體檢 / 裝後盤點 / 更新前預判」三合一工具。
- 倉庫:mouyu6508-hue/dsh-preflight
- 目錄頁:SkillHub 插件頁(社區獨立目錄,與 DeepSeek / 幻方無官方從屬關係)
- 許可證:MIT(見倉庫
package.json) - 運行環境:Node.js 18+;需要能加載 bundle 插件的 DSH
插件向 DSH 註冊三個工具,並提供獨立 CLI;面板通過 host 註冊的三條只讀 API 拉數據,不直接讀本地文件。
核心功能¶
裝之前:preflight_check(spec)¶
在真正安裝前,對指定來源(如 github:owner/repo)拉 manifest 並做與「更新前」同一套檢查,提前發現常見拒裝與衝突原因。
| 檢查項 | 說明 |
|---|---|
no-bundle |
缺少 dsh.bundle,市場側常見拒裝原因 |
engine-mismatch |
engines.dsh 與當前 DSH 版本不匹配 |
peer-mismatch |
peer 依賴與已裝版本衝突(含 semver 判斷) |
native-build |
需要 node-gyp / 本地編譯工具鏈 |
install-script |
postinstall 會執行腳本 |
platform-mismatch |
manifest 聲明的平臺與當前系統不符 |
loader-collision |
patch 中的 loader 名與已裝插件衝突,可預判 install-shadow |
prerelease / heavy-deps |
預發佈版、依賴過多等 |
裝之後:preflight_inventory()¶
按能力分組列出當前 profile 下已裝插件,例如界面、工具、記憶、語音、計費、會話、市場、通知等。每行包含版本、是否有 bundle、是否帶前端、peer 依賴數量、patch 行數、是否被停用。
更新前:preflight_updates()¶
對每個已裝插件查詢 npm 最新版,取新版本 manifest 再跑一遍裝前檢查,並與當前版本對比,只報告新引入的問題,便於在點擊更新前評估風險。
會話內面板¶
安裝並啓用 bundle 後,會話標題欄右側會出現「體檢」入口,打開後爲裝機面板:
- 裝機清單:按能力分組的卡片列表,帶搜索;展示版本、是否帶 UI、是否停用
- 更新風險:現查各插件更新,按風險色標排序(紅=高風險 / 黃=需注意 / 綠=低風險)
數據路由(只讀):
/api/dsh-preflight/inventory/api/dsh-preflight/updates/api/dsh-preflight/check
安裝與啓用¶
已抓取資料中的 README 與 package.json 未給出統一的 dsh plugin add … 安裝命令行文案。建議從 SkillHub 目錄頁 或 GitHub 倉庫說明按當前 DSH 版本的插件安裝方式操作;安裝前請自行閱讀源碼與 MIT 許可證,並確認插件將以當前 DSH 進程權限運行。
peer 依賴(package.json):@deepseek-ai/cordis(>=4.0.0)、@deepseek-ai/dsh-tools(>=0.1.0),均爲 optional meta;bundle 通過 cordis.patch.yml 注入客戶端與 API。
典型用法¶
DSH 內工具調用¶
README 中的對應關係如下:
裝之前 preflight_check 能不能裝?會和誰撞?
裝之後 preflight_inventory 按能力分類的裝機清單
更新前 preflight_updates 這次更新會引入什麼問題?
裝前檢查示例(與 README 一致):
dsh-preflight check github:mouyu6508-hue/dsh-fusion
獨立 CLI(不啓動 DSH 也可跑)¶
DSH 起不來時,可直接用 CLI 做盤點與檢查;加 --json 便於腳本消費。
dsh-preflight inventory --profile desktop
dsh-preflight check github:owner/repo
dsh-preflight updates --profile desktop
dsh-preflight profiles
開發自測(倉庫 README):
node --test
node bin/preflight.js inventory --profile desktop
核心實現分佈在 lib/core.js(semver、分類、manifest 與 loader 撞名、風險定級)、lib/profile.js(只讀 profile 插件清單與 loader 行)、lib/sources.js(npm / GitHub / 本地目錄 → manifest)、lib/report.js(三份報告拼裝),入口爲 lib/index.js,CLI 爲 bin/preflight.js。
適用場景與注意¶
適合誰
- 經常從 GitHub / npm 試裝社區插件、需要裝前看清 bundle / engine / peer / loader 衝突的 DSH 用戶
- 插件較多、需要按能力瀏覽裝機清單、或在批量更新前做風險分級的維護者
- 希望 DSH 未啓動時仍能用 CLI 做 inventory / check / updates 的運維或腳本場景
注意
- 檢查結果依賴 manifest、npm 與本地 profile 只讀信息;網絡或 registry 異常時,更新預判可能不完整
dsh-preflight做的是事前評估,不能替代已發生衝突後的修復流程;可與dsh-fusion搭配使用- 安裝任意 DSH 插件前,應審查源碼與許可證;插件能力在 DSH 進程內執行,權限與宿主一致
結尾¶
dsh-preflight 把「能不能裝、裝了什麼、更新會不會多出問題」收成三個可重複調用的步驟,並輔以會話內體檢面板與獨立 CLI。若你在 DSH 上持續疊加社區插件,在裝與更新前先跑一遍檢查鏈會更穩妥。
- 目錄頁:https://www.skillhub.cn/plugins/mouyu6508-hue/dsh-preflight
- GitHub:https://github.com/mouyu6508-hue/dsh-preflight