dsh-skill-hub 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -231
- package/README.zh.md +67 -205
- package/lib/client.js +739 -2
- package/lib/client.js.map +1 -1
- package/lib/index.js +2 -3
- package/lib/types/client/SkillHubSettingsCard.d.ts +1 -1
- package/lib/types/client/index.d.ts +6 -1
- package/lib/types/client/settings-form.d.ts +1 -1
- package/lib/types/client/slash-dots.d.ts +2 -9
- package/lib/types/index.d.ts +2 -1
- package/package.json +38 -29
- package/src/client/SkillHubSettingsCard.tsx +1 -1
- package/src/client/index.tsx +10 -1
- package/src/client/settings-form.ts +2 -1
- package/src/client/slash-dots.test.ts +24 -6
- package/src/client/slash-dots.tsx +55 -1
- package/src/index.ts +2 -2
package/README.zh.md
CHANGED
|
@@ -7,268 +7,130 @@
|
|
|
7
7
|
<img alt="downloads" src="https://img.shields.io/npm/dm/dsh-skill-hub">
|
|
8
8
|
<img alt="license" src="https://img.shields.io/npm/l/dsh-skill-hub">
|
|
9
9
|
<img alt="node" src="https://img.shields.io/badge/node-%3E%3D22.19-339933">
|
|
10
|
-
<a href="https://github.com/cheshireez/dsh-skill-hub/actions"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/cheshireez/dsh-skill-hub/ci.yml?branch=main"></a>
|
|
11
10
|
</p>
|
|
12
11
|
|
|
13
12
|
<p align="center">
|
|
14
13
|
<img src="https://raw.githubusercontent.com/cheshireez/dsh-skill-hub/main/promo/real-skill-hub.png" alt="dsh-skill-hub 面板" width="640">
|
|
15
14
|
</p>
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
在 dsh Web GUI 里浏览官方 `ctx.skills` 注册表提供的完整本地技能目录,启用/禁用技能、查看正文、
|
|
19
|
-
排查技能为什么没出现、从内置市场安装新技能、并新建技能。
|
|
16
|
+
面向 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的图形化技能中枢 — 在 Web GUI 里浏览 `ctx.skills` 全量目录,开关技能、查看正文、诊断缺失、从市场安装、一键新建。
|
|
20
17
|
|
|
21
|
-
>
|
|
22
|
-
> 官方槽位渲染进 GUI。不改任何 dsh 源码。
|
|
18
|
+
> 宿主只用官方 SDK,浏览器通过官方槽位渲染,不改 dsh 源码。
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
> 保证;界面截图可能滞后于最新版本。
|
|
20
|
+
## 为什么还需要一个管理器?
|
|
26
21
|
|
|
27
|
-
|
|
22
|
+
[dsh-skill-manager](https://www.npmjs.com/package/dsh-skill-manager) 只读浏览,[dsh-skill-importer](https://github.com/saitamahang/dsh-skill-importer) / [dsh-find-skill](https://github.com/Moximxxx/dsh-find-skill) 只做导入。**本插件是可管理的全量目录。**
|
|
28
23
|
|
|
29
|
-
-
|
|
30
|
-
- [功能](#功能)
|
|
31
|
-
- [快速开始](#快速开始)
|
|
32
|
-
- [工作原理](#工作原理)
|
|
33
|
-
- [使用](#使用)
|
|
34
|
-
- [故障排查](#故障排查)
|
|
35
|
-
- [HTTP API](#http-api)
|
|
36
|
-
- [开发](#开发)
|
|
37
|
-
- [社区](#社区)
|
|
38
|
-
- [License](#license)
|
|
39
|
-
|
|
40
|
-
## 为什么还需要一个技能管理器?
|
|
41
|
-
|
|
42
|
-
[dsh-skill-manager](https://www.npmjs.com/package/dsh-skill-manager) 是只读浏览器;
|
|
43
|
-
[dsh-skill-importer](https://github.com/saitamahang/dsh-skill-importer) 和
|
|
44
|
-
[dsh-find-skill](https://github.com/Moximxxx/dsh-find-skill) 专注导入与市场式安装。
|
|
45
|
-
**dsh-skill-hub 补上两者之间的空白:一份你可以真正管理的完整目录。**
|
|
46
|
-
|
|
47
|
-
| 能力 | dsh-skill-manager(只读版) | **dsh-skill-hub(本插件)** |
|
|
24
|
+
| 能力 | 只读浏览器 | **dsh-skill-hub** |
|
|
48
25
|
| --- | --- | --- |
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
| 触发统计 | ❌ | ✅(从会话日志读每技能实际调用次数;组头汇总) |
|
|
57
|
-
| 来源跟踪 | ❌ | ✅(记录上游 repo + commit 快照;检查更新 / 同步 / 上游删除跟进进回收站;删除→恢复保留来源与场景归属) |
|
|
58
|
-
| 市场 | ❌ | ✅(统一市场列表:内置精选目录 + 自定义仓库;扫描、一键导入、每源显示已装/可更新数量、一键全部更新) |
|
|
59
|
-
| 实时更新 | — | 文件系统 provider 的 watcher 驱动,面板 5s 轮询兜底 |
|
|
26
|
+
| 目录 | 自扫盘、仅用户根 | `ctx.skills`:项目/自定义/用户/内置 + 第三方 |
|
|
27
|
+
| 工作区 | ❌ | ✅ `.dsh/skills` & `.agents/skills`(默认合并,只读) |
|
|
28
|
+
| 开关 | ❌ | ✅ 重命名 `SKILL.md`(不删除),分组三态开关 + 拖拽排序 |
|
|
29
|
+
| 诊断/新建 | ❌ | ✅ frontmatter 诊断 / `~/.dsh/skills` 向导 |
|
|
30
|
+
| 来源跟踪 | ❌ | ✅ repo+commit,检查/同步/回收站(恢复保留来源与场景) |
|
|
31
|
+
| 市场 | ❌ | ✅ 内置+自定义,任意顶层根目录,徽章+一键全更 |
|
|
32
|
+
| 统计 | ❌ | ✅ 会话日志调用次数(14 天窗口,增量缓存) |
|
|
60
33
|
|
|
61
34
|
## 功能
|
|
62
35
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
用户 `~/.dsh/skills` 与 `~/.agents/skills`、内置、以及第三方 provider。
|
|
69
|
-
- **搜索与分组** —— 搜索框、来源筛选、平铺/分组视图合并为一行;分组 = 用户 tag(场景)+ 来源
|
|
70
|
-
集合(按上游仓库自动聚合),未归类兜底可见。
|
|
71
|
-
- **工作区发现** —— 已知工作区(来自 dsh 的工作区注册表)默认合并进目录,并按「项目级」三级树
|
|
72
|
-
分组(每个项目可选细分 `.dsh` / `.agents`);面板顶部的路径输入框可以把视图固定到单个工作区。
|
|
73
|
-
- **组开关(三态)** —— 每个分组头部一个滑动开关,一键启用/禁用整组;关闭时若成员在其他组开启,
|
|
74
|
-
弹窗询问(全部关闭 / 保留开启 → 该组开关进入半开混合态)。只读技能跳过并逐名报告。
|
|
75
|
-
- **启用 / 禁用** —— 禁用时把 `SKILL.md` 重命名移出发现范围(记录在 sidecar 文件中),重启后
|
|
76
|
-
仍然生效且可一键恢复。文件从不删除。
|
|
77
|
-
- **技能详情** —— 直接从磁盘读取技能正文,并附来源卡片(仓库、commit、检查 / 同步 / 跟进删除)。
|
|
78
|
-
- **新建技能向导** —— 在 GUI 里把合法技能脚手架写入 `~/.dsh/skills` 或 `~/.agents/skills`。
|
|
79
|
-
|
|
80
|
-
### 市场与更新
|
|
81
|
-
|
|
82
|
-
> **加一个仓库,一键安装,从此自动跟进更新。** 导入即受来源跟踪;更新按来源聚合展示,可一次全部应用。
|
|
83
|
-
|
|
84
|
-
- **统一市场列表** —— 市场 tab 只有一张列表:内置精选目录的条目在未添加时显示简介 + 「添加」
|
|
85
|
-
按钮;已添加的(以及手动输入的自定义源)同一行变成完整状态行,不会出现重复条目。
|
|
86
|
-
- **扫描 → 安装** —— 扫描任意仓库的 `skills/` 与 `design-templates/` 根目录,勾选要装的技能,
|
|
87
|
-
一键导入;导入自动记录上游 repo/commit。
|
|
88
|
-
- **状态徽章** —— 每个来源行聚合显示:已装 N / 可更新 N / 上游已删 N。
|
|
89
|
-
- **检查全部 / 全部更新** —— 「检查全部」一次刷新所有来源(版本 + 技能差异);「全部更新」一次
|
|
90
|
-
同步所有待更新来源(单个来源失败不影响其他,汇总报告)。打开面板时每天最多自动检查一次
|
|
91
|
-
(localStorage 记时间戳),手动按钮永不受节流限制。
|
|
92
|
-
- **来源跟踪** —— 按来源检查更新(每来源 1–2 次 GitHub API 请求,服务端 5 分钟节流)、选择同步
|
|
93
|
-
(确认覆盖)、上游删除跟进移入可恢复的回收站。删除后再恢复的技能保留来源与场景归属(回收站
|
|
94
|
-
条目存有快照)。个人技能(无来源记录)不跟踪。
|
|
95
|
-
- **自身更新检查** —— 面板头部可检查插件自己的 GitHub 最新发布。
|
|
96
|
-
|
|
97
|
-
### 统计与诊断
|
|
98
|
-
|
|
99
|
-
> **知道你的 Agent 到底在用什么。** 调用次数来自你自己的会话日志——没有任何数据离开本机。
|
|
100
|
-
|
|
101
|
-
- **触发统计** —— 从会话日志读每个技能的实际调用次数与最近使用时间(可选;没有 session-query
|
|
102
|
-
的部署直接省略);分组标题汇总。
|
|
103
|
-
- **发现诊断** —— 目录逐项报告技能被忽略的原因(缺 YAML frontmatter、缺 `name`/`description`、
|
|
104
|
-
非法名称)。
|
|
105
|
-
- **设置卡片** —— 在 **设置 → 插件 → Skill Hub** 启用插件、开关向 Agent 的公告、调整面板显示偏好。
|
|
36
|
+
- **目录** — 搜索+来源筛选+平铺/分组一行完成;分组=场景(tag)+ 来源集合;工作区默认合并为项目树。
|
|
37
|
+
- **开关** — 单技能/整组开关;冲突弹窗(全部关闭/保留开启→半开态);仅 `~/.dsh/skills` & `~/.agents/skills` 可写。
|
|
38
|
+
- **排序与编辑** — 分组头拖拽手柄(持久化到 `~/.dsh/dsh-skill-hub.json`);编辑开关收敛排序/删除控件。
|
|
39
|
+
- **市场** — 统一列表(内置 Add → 变来源行);任意含 `SKILL.md` 的顶层目录视为根(无白名单),异步导入 `{jobId, totalBytes}` 轮询+取消;检查全部/全部更新(单源失败不影响全局,每日自动检查一次)。
|
|
40
|
+
- **统计** — 每技能 `count` + `lastUsed`,分组头汇总;窗口/间隔在设置卡片实时可调。
|
|
106
41
|
|
|
107
42
|
## 快速开始
|
|
108
43
|
|
|
109
44
|
```bash
|
|
110
45
|
dsh plugin --profile web add dsh-skill-hub
|
|
46
|
+
# 重启 dsh web → 设置 → 技能 → 市场 → 扫描 → 导入
|
|
111
47
|
```
|
|
112
48
|
|
|
113
|
-
|
|
114
|
-
`owner/repo`),扫描、勾选、导入。从此该来源自动受跟踪:检查更新、一键同步。
|
|
115
|
-
|
|
116
|
-
技能本质就是一个带 `SKILL.md` 的目录——面板也可以直接帮你脚手架一个:
|
|
49
|
+
`SKILL.md` 模板:
|
|
117
50
|
|
|
118
51
|
```markdown
|
|
119
52
|
---
|
|
120
53
|
name: my-skill
|
|
121
|
-
description:
|
|
54
|
+
description: 一句话说明何时使用。
|
|
122
55
|
---
|
|
123
56
|
# my-skill
|
|
124
|
-
|
|
125
|
-
技能做什么、什么时候用、期望输出什么。
|
|
57
|
+
正文...
|
|
126
58
|
```
|
|
127
59
|
|
|
128
|
-
要求 Node
|
|
60
|
+
要求 `Node ^22.19 || >=24` + dsh web(`0.1.0-rc.7` / `0.1.1-rc.2`,兼容后续 `0.1.x`)。
|
|
129
61
|
|
|
130
62
|
## 工作原理
|
|
131
63
|
|
|
132
64
|
```text
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
/api/skill-hub/* 路由 ──▶ 浏览器面板(设置 → 技能)
|
|
65
|
+
GitHub 仓库 ──扫描/导入──▶ ~/.dsh/skills
|
|
66
|
+
▲ │
|
|
67
|
+
└─检查/同步/删除── ctx.skills ◀─ provider
|
|
68
|
+
│ snapshot/get
|
|
69
|
+
▼
|
|
70
|
+
/api/skill-hub/* ──▶ 面板(设置 → 技能)
|
|
140
71
|
```
|
|
141
72
|
|
|
142
73
|
| 文件 | 职责 |
|
|
143
74
|
| --- | --- |
|
|
144
|
-
| `src/index.ts` |
|
|
145
|
-
| `src/routes.ts` |
|
|
146
|
-
| `src/store.ts` |
|
|
147
|
-
| `src/repo.ts` |
|
|
148
|
-
| `src/skillfs.ts` |
|
|
149
|
-
| `src/
|
|
150
|
-
| `src/protocol.ts` | host ↔ browser 共享 API 契约(类型 + 端点表) |
|
|
151
|
-
| `src/client/` | browser 半边:设置卡片 + 技能中枢面板。状态与流程收敛在 `useSkillHub.ts`;视图是薄组件(`SourcesView` / `ScenesView` / `MarketView` / `SkillRow` / dialogs / …)。CSS Modules,苹果风 |
|
|
152
|
-
|
|
153
|
-
- **宿主半边** 只用官方 SDK:`ctx.skills.snapshot()/get()`、`ctx.webServer.register()`、
|
|
154
|
-
`ctx.systemPrompt.section()`。不修改 dsh 源码。
|
|
155
|
-
- **浏览器半边** 通过官方槽位挂载:一个 **设置 → 技能** 分区,和一个
|
|
156
|
-
**设置 → 插件 → Skill Hub** 配置卡片。
|
|
157
|
-
- **配置为 dsh 原生化**。rc.7 起宿主把每个已注册的设置命名空间都提供给 Web 客户端(旧的命名空间
|
|
158
|
-
白名单已移除),因此插件注册 `dsh-skill-hub` 设置命名空间,卡片经官方 settings 传输读写它——
|
|
159
|
-
可配置插件列表按命名空间分发卡片,宿主消费同一份解析后的值(单一事实来源)。
|
|
160
|
-
从旧版 sidecar 配置升级的安装会把已保存的配置一次性迁移进该命名空间。
|
|
161
|
-
|
|
162
|
-
## 使用
|
|
163
|
-
|
|
164
|
-
在 dsh Web GUI 打开 **设置 → 技能**(Skill Hub),三个 tab:
|
|
165
|
-
|
|
166
|
-
- **来源** —— 技能列表,平铺或分组:项目级三级树(默认合并所有工作区,每项目可选细分
|
|
167
|
-
`.dsh`/`.agents`)+ 来源集合 + 未归类。搜索、来源筛选、排序共用一行;分组头部有三态开关,
|
|
168
|
-
来源组的徽章兼作重新检查入口。(见本页顶部截图)
|
|
169
|
-
- **场景** —— 你自己的启用/禁用单元(比如「Godot 开发」和「Java 开发」各一个场景):新建 tag、
|
|
170
|
-
勾选成员,一键整场景开关。
|
|
75
|
+
| `src/index.ts` | inject `[webServer, skills, systemPrompt, settings]`,设置命名空间,公告 |
|
|
76
|
+
| `src/routes.ts` | `/api/skill-hub/*` 围栏+处理(异步导入、拖拽排序) |
|
|
77
|
+
| `src/store.ts` | `~/.dsh/dsh-skill-hub.json` v4(禁用/tags/sources/market/trash/统计/排序) |
|
|
78
|
+
| `src/repo.ts` | 发现/导入/比对(任意顶层 `SKILL.md`) |
|
|
79
|
+
| `src/skillfs.ts` | 开关/回收站/脚手架/诊断 |
|
|
80
|
+
| `src/client/` | 面板(`useSkillHub` + 薄视图),CSS Modules |
|
|
171
81
|
|
|
172
|
-
|
|
173
|
-
<img src="https://raw.githubusercontent.com/cheshireez/dsh-skill-hub/main/promo/real-skill-hub-scenes.png" alt="场景 tab" width="560">
|
|
174
|
-
</p>
|
|
175
|
-
- **市场** —— 一张统一列表:内置精选仓库(未添加时显示「添加」)+ 你的自定义源;扫描安装、
|
|
176
|
-
检查更新、一键全部更新。
|
|
82
|
+
宿主仅用 `ctx.skills.snapshot/get`、`ctx.webServer.register`、`ctx.systemPrompt.section`。
|
|
177
83
|
|
|
178
|
-
|
|
179
|
-
<img src="https://raw.githubusercontent.com/cheshireez/dsh-skill-hub/main/promo/real-skill-hub-catalog.png" alt="市场 tab" width="560">
|
|
180
|
-
</p>
|
|
181
|
-
|
|
182
|
-
各 tab 通用:顶部**工作区路径**输入框(看项目级只读技能)、**回收站**区(可恢复,恢复时挂回
|
|
183
|
-
来源与场景)、**发现诊断**区(技能为什么没出现)、**新建技能**表单。
|
|
184
|
-
|
|
185
|
-
插件自身的开关在 **设置 → 插件 → Skill Hub** 卡片上:
|
|
186
|
-
|
|
187
|
-
| 字段 | 含义 |
|
|
188
|
-
| --- | --- |
|
|
189
|
-
| Enable plugin | 总开关:路由、provider 与公告随之启用。 |
|
|
190
|
-
| Announce to agent | 在系统提示中加入本插件说明,用户提到技能管理时 Agent 知道如何协作。 |
|
|
191
|
-
| 模型/用户圆点颜色 | 覆盖技能面板与聊天 `/` 菜单中单个状态圆点的颜色(蓝 = 模型可调,绿 = 仅用户可调)。 |
|
|
192
|
-
| 显示调用次数 | 有会话统计时显示每个技能的调用次数角标。 |
|
|
193
|
-
| 显示最近调用时间 | 在技能行显示相对最近调用时间。 |
|
|
194
|
-
| 显示分组汇总 | 在分组标题后汇总调用次数与最近调用时间。 |
|
|
84
|
+
## 使用
|
|
195
85
|
|
|
196
|
-
|
|
86
|
+
**设置 → 技能** — 三个 tab:**来源**(平铺/分组+项目树+拖拽)、**场景**(tag,分组开关+拖拽)、**市场**(统一列表)。顶部工作区路径可固定到单个 cwd;回收站与诊断常驻。
|
|
197
87
|
|
|
198
|
-
|
|
199
|
-
本地 `file:` 安装)。只保留一种安装方式;升级时用替换而不是再装一份。
|
|
200
|
-
- **技能没出现在目录里** —— 看「发现诊断」区:缺 frontmatter、目录名与 frontmatter 名称不匹配、
|
|
201
|
-
描述过短,都会逐条列出原因。
|
|
202
|
-
- **更新检查没有结果** —— 服务端每来源 5 分钟节流,面板每天自动检查一次;手动按钮永不受限。
|
|
203
|
-
- **只读边界** —— 仅用户级技能(`~/.dsh/skills`、`~/.agents/skills`)可写;项目、内置、运行时
|
|
204
|
-
技能只读展示。
|
|
205
|
-
- **聊天 `/` 菜单的状态圆点依赖 dsh 内部注册表** —— 圆点通过包装核心 `/skill` 触发源的
|
|
206
|
-
候选渲染;若 dsh 升级改变了这部分内部形状,圆点会静默消失,但技能列表与 `/` 菜单功能不受影响。
|
|
207
|
-
已知限制,非缺陷:为可移植性而有意为之,不影响技能管理本身。
|
|
88
|
+
**设置 → 插件 → Skill Hub** — 总开关、向 Agent 公告、圆点颜色、`show*` 三开关、统计窗口(天,默认 14,`0`=全部)与间隔(分钟,默认 5)。
|
|
208
89
|
|
|
209
90
|
## HTTP API
|
|
210
91
|
|
|
211
|
-
|
|
92
|
+
仅回环(`127.0.0.1`/`localhost`),JSON。
|
|
212
93
|
|
|
213
94
|
| 端点 | 方法 | 用途 |
|
|
214
95
|
| --- | --- | --- |
|
|
215
|
-
| `/api/skill-hub/catalog?cwd=` | GET |
|
|
216
|
-
| `/api/skill-hub/skill?name=&cwd=` | GET |
|
|
217
|
-
| `/api/skill-hub/skill/delete` | POST |
|
|
218
|
-
| `/api/skill-hub/toggle` | POST |
|
|
219
|
-
| `/api/skill-hub/toggle-batch` | POST |
|
|
220
|
-
| `/api/skill-hub/create` | POST |
|
|
221
|
-
| `/api/skill-hub/stats` | GET |
|
|
222
|
-
| `/api/skill-hub/config` | GET/POST |
|
|
223
|
-
| `/api/skill-hub/groups` | GET |
|
|
224
|
-
| `/api/skill-hub/tag` | POST |
|
|
225
|
-
| `/api/skill-hub/
|
|
226
|
-
| `/api/skill-hub/
|
|
227
|
-
| `/api/skill-hub/
|
|
228
|
-
| `/api/skill-hub/
|
|
229
|
-
| `/api/skill-hub/
|
|
230
|
-
| `/api/skill-hub/
|
|
231
|
-
| `/api/skill-hub/
|
|
232
|
-
| `/api/skill-hub/market/source/sync` | POST | 市场源版本对齐,返回该源跟踪的技能。 |
|
|
233
|
-
| `/api/skill-hub/repo?repo=` | GET | 发现 GitHub 仓库中可导入的技能。 |
|
|
234
|
-
| `/api/skill-hub/repo/import` | POST | 创建异步导入任务(返回 `{jobId, total, totalBytes}`,轮询进度见下)。 |
|
|
235
|
-
| `/api/skill-hub/repo/import/progress?jobId=` | GET | 轮询导入任务进度(`{status, done, total, downloadedBytes, totalBytes, bytesPerSecond, current, imported, skipped, failed}`)。 |
|
|
236
|
-
| `/api/skill-hub/repo/import/cancel` | POST | 取消进行中的导入任务(`{jobId}`)。 |
|
|
237
|
-
| `/api/skill-hub/sources` | GET | 来源记录、派生 origin/集合、回收站。 |
|
|
238
|
-
| `/api/skill-hub/sources/check` | POST | 检查上游更新(5 分钟节流)。 |
|
|
239
|
-
| `/api/skill-hub/sources/sync` | POST | 同步某来源所选(或全部)技能。 |
|
|
240
|
-
| `/api/skill-hub/sources/delete` | POST | 跟进上游删除(移入回收站)。 |
|
|
241
|
-
| `/api/skill-hub/sources/restore` | POST | 从回收站恢复技能(重新挂回来源与场景)。 |
|
|
242
|
-
| `/api/skill-hub/sources/trash/clear` | POST | 永久清空回收站。 |
|
|
243
|
-
| `/api/skill-hub/update` | GET | 检查插件自身最新发布。 |
|
|
96
|
+
| `/api/skill-hub/catalog?cwd=` | GET | 目录+禁用+诊断 |
|
|
97
|
+
| `/api/skill-hub/skill?name=&cwd=` | GET | 技能正文 |
|
|
98
|
+
| `/api/skill-hub/skill/delete` | POST | 移入回收站(快照来源+场景) |
|
|
99
|
+
| `/api/skill-hub/toggle` | POST | `{name, enabled}` |
|
|
100
|
+
| `/api/skill-hub/toggle-batch` | POST | `{names, enabled}` |
|
|
101
|
+
| `/api/skill-hub/create` | POST | `{name, description?, root?}` |
|
|
102
|
+
| `/api/skill-hub/stats` | GET | 调用次数 |
|
|
103
|
+
| `/api/skill-hub/config` | GET/POST | 运行时配置(`null` 清除) |
|
|
104
|
+
| `/api/skill-hub/groups` | GET | tags+集合+排序 |
|
|
105
|
+
| `/api/skill-hub/tag` 等 | POST | 新建/重命名、删除、设成员、排序(`/tag/reorder`、`/collections/reorder`、`/source-groups/reorder`) |
|
|
106
|
+
| `/api/skill-hub/market` 等 | GET/POST | 市场源 列表/添加/删除/钉 ref/检查/同步 |
|
|
107
|
+
| `/api/skill-hub/repo?repo=` | GET | 发现(任意根) |
|
|
108
|
+
| `/api/skill-hub/repo/import` | POST | 异步任务 `{jobId, total, totalBytes}` |
|
|
109
|
+
| `/api/skill-hub/repo/import/progress?jobId=` | GET | 轮询进度 |
|
|
110
|
+
| `/api/skill-hub/repo/import/cancel` | POST | 取消任务 |
|
|
111
|
+
| `/api/skill-hub/sources` 等 | GET/POST | 来源 列表/检查/同步/删除/恢复/清空回收站 |
|
|
112
|
+
| `/api/skill-hub/update` | GET | 插件最新发布 |
|
|
244
113
|
|
|
245
114
|
## 开发
|
|
246
115
|
|
|
247
116
|
```bash
|
|
248
|
-
npm
|
|
249
|
-
npm
|
|
250
|
-
npm
|
|
251
|
-
npm run build # tsc 声明 + tsdown 双半边产物(lib/index.js + lib/client.js)
|
|
252
|
-
npm pack # 生成可安装的 tgz(dsh-skill-hub-<version>.tgz)
|
|
117
|
+
npm run typecheck # tsc --noEmit
|
|
118
|
+
npm test # 174 tests, 9 suites
|
|
119
|
+
npm run build # tsc + tsdown → lib/index.js + lib/client.js
|
|
253
120
|
```
|
|
254
121
|
|
|
255
|
-
>
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
> 需要预览实例时先停旧实例,或使用独立的 `DSH_HOME`。
|
|
122
|
+
> 同一 `$DSH_HOME` + cwd 下勿开两个 `dsh web` — rc 无会话日志锁,会 `seq gap` 损坏。换 `DSH_HOME` 或先关旧实例。
|
|
123
|
+
|
|
124
|
+
## 故障排查
|
|
259
125
|
|
|
260
|
-
|
|
261
|
-
|
|
126
|
+
- `duplicate loader entry id: skill-hub` — 删掉重复安装(只留一种 `dsh plugin add`)。
|
|
127
|
+
- 技能不出现 — 看诊断(缺 frontmatter / 名称不一致 / 描述过短)。
|
|
128
|
+
- `/` 菜单圆点消失 — dsh 内部触发源变更,目录功能不受影响。
|
|
262
129
|
|
|
263
130
|
## 社区
|
|
264
131
|
|
|
265
|
-
|
|
266
|
-
- [讨论区](https://github.com/cheshireez/dsh-skill-hub/discussions) —— 提问、反馈与想法。
|
|
267
|
-
- [官方仓库展示帖](https://github.com/deepseek-ai/deepseek-harness/discussions/3161) —— 已发布在 deepseek-harness 官方 Discussion。
|
|
268
|
-
- [社区插件市场收录](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin/pull/1746) —— 已提交待合并;合并后可在「设置 → Plugin Market」一键安装。
|
|
269
|
-
- [DeepSeek Harness 官方 Discord](https://discord.gg/Ycq5dCaS4) —— 官方社区(以中文为主)。
|
|
270
|
-
- [贡献指南](CONTRIBUTING.md) —— 开发环境与贡献规范。
|
|
132
|
+
[Issues](https://github.com/cheshireez/dsh-skill-hub/issues) · [讨论区](https://github.com/cheshireez/dsh-skill-hub/discussions) · [官方展示](https://github.com/deepseek-ai/deepseek-harness/discussions/3161) · [市场收录 PR](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin/pull/1746) · [Discord](https://discord.gg/Ycq5dCaS4)
|
|
271
133
|
|
|
272
134
|
## License
|
|
273
135
|
|
|
274
|
-
MIT
|
|
136
|
+
MIT — [LICENSE](LICENSE).
|