镜像自 github.com/Chieko3020/dsh-skills-manager
  • JavaScript 100%
Find a file
Chieko3020 68520d5574 init
2026-09-04 16:52:14 +08:00
client init 2026-09-04 16:52:14 +08:00
lib init 2026-09-04 16:52:14 +08:00
scripts init 2026-09-04 16:52:14 +08:00
skills init 2026-09-04 16:52:14 +08:00
src/client init 2026-09-04 16:52:14 +08:00
.gitignore init 2026-09-04 16:52:14 +08:00
build-client.mjs init 2026-09-04 16:52:14 +08:00
cordis.patch.yml init 2026-09-04 16:52:14 +08:00
package.json init 2026-09-04 16:52:14 +08:00
pnpm-lock.yaml init 2026-09-04 16:52:14 +08:00
README.md init 2026-09-04 16:52:14 +08:00

dsh-skills-manager

DSH 技能管理器插件。统一管理技能加载、运行时开关和设置页 UI。

技术栈

层面 选型
插件框架 Cordis 4
前端 React(内联样式,无 CSS 管线)
构建 esbuild(client bundle)

功能

  • 技能统一加载:插件源目录下的 skills/<包>/<技能>/SKILL.md 结构,自动发现
  • 包级 / 技能级开关:~/.dsh/skills-manager.json 持久化状态,重启保持
  • 热更新:改状态后调用 control.invalidate(),当前会话生效,无需重启
  • 斜杠命令:/skill-list /skill-on /skill-off
  • 设置页 UI:注册 settings.section 槽,浏览器端管理
  • HTTP API:/skills-manager/api/{state,set,uninstall,migrate}

目录结构

lib/index.js          插件主体(provider + 命令 + 路由)
src/client/index.jsx  前端源码(React,无 JSX 编译链)
client/client.js      构建产物(esbuild 输出,__ModuleLoader__ 格式)
scripts/migrate.js    一次性迁移脚本(6 个技能源 → 统一根目录)
build-client.mjs      client bundle 构建 + 包装脚本
skills/               .gitkeep 占位(运行数据不纳入本仓库)

部署关系

位置 角色
~/Dev/dsh-skills-manager/ 本仓库:源码管理(skills/ 为运行数据,不纳入 git)
~/Deploy/.../patches/dsh-skills-manager/ 运行位:profile file: 依赖,lib/index.js 以绝对路径指向其 skills/,systemd dsh 读取
~/.dsh/skills-manager.json 开关状态(包级 / 技能级 enabled),重启保持

同步

rsync -a --exclude node_modules ~/Dev/dsh-skills-manager/ \
  ~/Deploy/DeepSeek-Harness/patches/dsh-skills-manager/

文件变更后 watcher 自动生效,无需重启 dsh。

注意

  • lib/index.js 硬编码 SKILLS_ROOT 指向运行位 skills/。从本仓库直接跑会读写运行位技能;设环境变量 DSH_SKILLS_ROOT 可覆盖。
  • 同名技能冲突时,优先级按 层 > rank:[global, ...scopeChain] 后写覆盖;层内 rank 升序先到先得。管理器走 custom(300)。原生 ~/.agents/skills(user-agents 500) 在 scope-chain 层,在场会压过管理器——迁移后须保持原生目录清空。