前言¶
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