dsh-skill-market:DSH 设置页技能市场

DSH 插件化架构允许用户通过 Web UI 扩展功能,技能通常存储在 ~/.dsh/skills 目录中。手动从 GitHub 查找并下载技能 tarball 到安装目录较为繁琐。dsh-skill-market 插件在 DSH 的 Web 设置页中集成了一个“技能市场”,提供搜索和一键安装能力。

插件介绍

该插件由用户 QQ-M 维护,旨在简化技能的获取流程。它将技能市场集成到 Web UI 的设置页面中,允许用户在浏览器中直接搜索 GitHub 仓库,并根据仓库结构一键安装技能到模型可读取的根目录。

核心功能

  1. GitHub 搜索:优先搜索带有 dsh-skill 主题的仓库,同时支持通过关键词进行搜索。
  2. 仓库布局检查:自动识别仓库结构。如果根目录存在 SKILL.md,则视为单个技能;如果存在 skills/<name>/SKILL.md 或 skills/<name>.md,则识别为多个技能。
  3. 一键安装:通过调用 GitHub 的 codeload 接口下载 tarball,解压后将技能文件复制到配置的安装目录(默认为 ~/.dsh/skills)。
  4. 技能管理:提供已安装技能列表,支持卸载操作。卸载时,技能文件会被移动到 .trash-* 目录,便于恢复。
  5. 安全防护:对写操作(安装/卸载)实施同源 POST 保护。

安装与启用

使用官方插件命令安装:

dsh plugin --profile web add "github:QQ-M/dsh-skill-market"

安装完成后,需要重启 Web 配置文件(dsh web),插件才会加载浏览器端的设置入口。

配置说明

插件支持通过 cordis.patch.yml 进行配置。默认配置如下:

配置项 默认值 说明
installDir ~/.dsh/skills 技能的安装目录
githubToken '' GitHub Token 字符串
githubTokenFile '' 包含 GitHub Token 的文件路径
searchLimit 20 搜索结果最大数量

如果未设置 Token,插件会读取环境变量 GITHUB_TOKEN。匿名搜索受限于约 10 请求/分钟,建议为高频搜索配置 Token。

API 接口

所有接口均挂载在 /skill-market/api/ 路径下,返回 JSON 格式数据:

  • GET /api/search?q=<query>:搜索技能
  • GET /api/repo?owner=&repo=:检查仓库详情
  • POST /api/install { owner, repo, ref? }:安装技能
  • GET /api/installed:查看已安装技能列表
  • POST /api/uninstall { name }:卸载技能

技术架构

该插件由两部分组成:

  • Host Half (index.js):运行在服务端,提供 /skill-market/api/* 路由,负责 GitHub 交互、文件下载、解压与安装逻辑。
  • Client Half (client.js):运行在浏览器端,是一个无构建步骤的 __ModuleLoader__ bundle,负责向 DSH 的设置页面注入“技能市场”标签页。

依赖方面,Host 仅依赖 Node.js 内置模块及 @deepseek-ai/schemastery;Client 依赖 react。

注意事项

  • 权限与安全:插件以当前 DSH 进程的权限运行,安装前请检查源代码与许可证。
  • 社区生态:该插件属于社区目录项目,与 DeepSeek 或幻方无官方从属关系。
羽毛球分组比赛记分
小程序二维码

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

小夜