插件管家

DeepSeek Harness 的官方插件页面是只读的:它列出模块名,但不解释它们是做什么的。想关掉一个插件,需要手改 cordis.patch.yml。技能那边更糟:装了 57 个技能,其中 14 个模型根本看不到。这个插件在同一个页面添加了一个“插件管家”标签页,补上这些事。

插件管理

1. 插件说明

界面展示插件的中文名与说明。说明按优先级获取:dshhub.summary、package.json 的 description、README.md 首段(自动剥离 Markdown 标记)。实测覆盖率中,description 覆盖了绝大多数插件。

2. 来源徽章

界面根据 pnpm-lock.yaml 判定来源:
* 官方:包名在 @deepseek-ai/ 命名空间下。
* 社区:lockfile 中为普通 semver 版本号。
* GitHub 直装:lockfile specifier 为 github:owner/repo#tag。
* 本地链接:specifier 为 file: 或 link:。

3. 热生效开关

提供一键停用/启用功能,通过 Cordis 的 Entry.update({ disabled }) 更新通道实现。停用时 loader 会 await _dispose(fiber) 注销工具与路由;启用时重新 init() 装配。此操作热生效,无需重启。状态保存在 ~/.dsh/plugin-manager.json,重启后自动重放。

4. 安全卸载

卸载流程包含快照、移除与校验:
1. 先快照 entry 的 options。
2. 执行 loader.remove()。
3. 校验确实移除;若仍在,按快照 loader.create() 恢复原状。
官方 @deepseek-ai/* 组件禁止卸载(会破坏启动),界面会置灰相关按钮。

5. 噪声过滤

列表会自动过滤非插件库(没有 dsh.bundle 的普通依赖)和框架内部条目(如 cordis:include、node:* 等)。

技能管理

插件管家页支持在“插件”与“技能”分段切换。

1. 唯一可用触发方式

界面展示技能的 invocation 策略:
* 模型自动加载 + / 命令:模型会自己调用,也可用 /name 手动唤起。
* 仅模型自动加载:模型可见,/name 不可用。
* 仅 / 命令:模型看不到它,只能用 /name 手动唤起。
* 均不可用:已停用。

2. 两个真开关

提供两个独立开关:模型自动加载与 / 命令可用。插件注册一个 rank 0 的影子 provider,将策略置为 false。消费点(模型目录、加载守卫、命令目录)均按策略过滤,实现真正的热生效。

3. 清理线索

界面会标记不生效的技能:
* 目录内有不生效的 SKILL.md:加载器只认 <技能名>/SKILL.md,嵌套目录一律忽略。
* 混入非技能文件:如根目录出现 package.json。

4. 来源与升级

根据路径反解归属:
* 路径含 node_modules/<pkg>/:显示为“插件提供 · 升级对象 <pkg> v<version>”。
* 路径在 ~/.agents/skills/ 或 ~/.dsh/skills/ 下:显示为“用户安装”。
* 注意:插件不提供自动升级按钮,因为技能本身不具备 git 仓库或安装元数据。

安装与启用

dsh plugin --profile web add "github:Amouren7/dsh-plugin-desk#v0.2.1"

安装完成后重启 dsh web,打开 设置 → 插件 → 插件管家。

页面采用懒加载,浏览器可能缓存旧前端。若看不到新标签页,按 Ctrl+Shift+R 强制刷新。

兼容性与依赖

系统要求

  • DSH:>=0.1.5-rc.1
  • Node:>=20
  • Profile:web

服务依赖

技能功能需要部署提供 skills 与 agentPresets 服务,以及可解析的 @deepseek-ai/dsh-scope。缺任一项时,技能开关会拒绝生效。

权限与数据

读取权限

  • profile 的 node_modules(仅读取 package.json / README.md)。
  • pnpm-lock.yaml。
  • 运行中的 loader 条目。
  • 技能注册表。

写入权限

  • ~/.dsh/plugin-manager.json(插件停用/卸载记忆)。
  • ~/.dsh/plugin-desk-skills.json(技能开关覆盖)。

注意:技能开关不修改任何 SKILL.md 文件,通过影子 provider 覆盖策略。删除状态文件即可复原默认策略。

卸载

dsh plugin --profile web remove dsh-plugin-desk

卸载后,上述两个状态文件会保留。若不再需要,可自行删除。

License

MIT

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

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

小夜