@morehao/dsh-skills-console 0.3.8 → 0.4.0
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 +55 -65
- package/client.js +206 -267
- package/cordis.patch.yml +2 -1
- package/lib/agent-table.json +133 -64
- package/lib/core/agents.js +68 -9
- package/lib/core/exporter.js +137 -0
- package/lib/core/inventory.js +73 -39
- package/lib/core/migrations.js +178 -0
- package/lib/core/paths.js +13 -0
- package/lib/core/policy.js +373 -0
- package/lib/core/remote.js +3 -1
- package/lib/core/roots.js +182 -0
- package/lib/core/service.js +391 -137
- package/lib/core/shadow.js +195 -0
- package/lib/core/skill-md.js +23 -4
- package/lib/core/state.js +293 -42
- package/lib/core/visibility.js +145 -0
- package/lib/index.js +27 -0
- package/lib/routes.js +13 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,57 +6,55 @@
|
|
|
6
6
|
[](https://github.com/morehao/dsh-skills-console/actions/workflows/check.yml)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
|
|
9
|
-
DSH(DeepSeek Harness
|
|
9
|
+
DSH(DeepSeek Harness)的技能控制台:**装、更新、删除、启停、导出到其他 Agent,外加一份订阅清单**。
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
它把本机技能收进一张清单:有哪些、从哪来、谁能用、是不是最新。要用的打开,不用的关掉;别的 Agent 需要,一键建链过去——技能本体始终只有一份。
|
|
12
12
|
|
|
13
13
|
## 为什么需要它
|
|
14
14
|
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
15
|
+
- **一个地方管所有技能**:装好的和本机已有的技能都在同一张清单里,来源、版本、接入的 Agent、更新时间一眼看清,不用去翻目录。
|
|
16
|
+
- **按需启停,省上下文**:暂时用不上的技能一键停用,DSH 的模型调用与 `/` 手动调用立刻看不到它,再打开就恢复;磁盘上的技能、导出关系、其他 Agent 都不受影响。
|
|
17
|
+
- **一份技能,多个 Agent**:多数 Agent(OpenCode、Cursor、Gemini CLI 等)直接读共享技能目录,装好即用;只认自己目录的(如 Claude Code)在面板里勾一下就能建链过去。
|
|
18
|
+
- **装完不是结束**:上游仓库一直在动,控制台会检查新提交,先告诉你「会影响哪些技能」,再由你决定更不更新。
|
|
19
|
+
- **删错还能救**:删除先进回收站保留 7 天;更新失败自动回滚上一版。
|
|
20
20
|
|
|
21
21
|
## 功能
|
|
22
22
|
|
|
23
23
|
| 能力 | 说明 |
|
|
24
24
|
| --- | --- |
|
|
25
|
-
| 清单 |
|
|
26
|
-
| 安装 | 填 `owner/repo
|
|
27
|
-
| 更新 |
|
|
28
|
-
| 删除 |
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
25
|
+
| 清单 | 汇总本机技能,来源、版本、可见状态、已接入的 Agent 一处看全;共享目录里已有的技能第一次打开就自动纳入管理 |
|
|
26
|
+
| 安装 | 填 `owner/repo` 或 GitHub URL,先检测仓库里有哪些技能、各自做什么;可以全装,也可以只挑几个 |
|
|
27
|
+
| 更新 | 检查上游新提交,列出 commit 区间和受影响的技能,确认后一键更新;本地改过的技能会先要求确认 |
|
|
28
|
+
| 删除 | 删除前体检(不碰别人建的东西),再快照进回收站(保留 7 天) |
|
|
29
|
+
| 启停 | 一键开关;停用后 DSH 的模型调用与 `/` 手动调用都看不到它,其他 Agent 与磁盘文件不受影响 |
|
|
30
|
+
| 导出 | 只给「只读自己目录」的 Agent 建链,默认不导出;直接读共享目录的 Agent 不出现在列表里 |
|
|
31
|
+
| 查看 | 只读打开技能正文与文件:渲染 / 原文切换、目录树、单文件预览,外加来源、哈希与接入信息 |
|
|
32
|
+
| 订阅 | 关注 `owner/repo` 的上游变化,只记快照、不下载技能;ref / 子目录可选,不填 ref 时跟随默认分支 |
|
|
33
|
+
| 作用范围 | 管 user 级共享技能;暂不支持按项目启停。项目或用户目录里有同名副本时,副本仍优先可见 |
|
|
34
34
|
|
|
35
35
|
## 界面
|
|
36
36
|
|
|
37
|
-
-
|
|
38
|
-
- **一页两 tab**:已安装 /
|
|
39
|
-
-
|
|
40
|
-
-
|
|
37
|
+
- **两个入口**:默认在 DSH 设置页的「技能控制台」分区;页头 ⚙ 里打开「侧边栏入口」,左侧栏就会出现独立面板,切换立即生效。
|
|
38
|
+
- **一页两 tab**:已安装 / 订阅。页头右侧是「新安装时自动导出」与「添加技能 / 添加订阅」。
|
|
39
|
+
- **每行五个动作**:开关(启停)、查看、更新、导出设置、删除;窄面板下隐藏「查看」,技能名本身仍是入口。状态标签覆盖最新 / 可更新 / 本地已改 / 上游已移除 / 软链断裂 / 无上游等。
|
|
40
|
+
- **窄面板不跳版**:动作组按面板宽度自然换行,插件名始终完整;列表按宽度切两列;滚动只发生在列表区,切 tab、调整窗口都不会让整页翻面。
|
|
41
41
|
- **Agent 多了不挤**:每行最多展示 3 个,其余折成 `+n`,悬浮或聚焦即可看全。
|
|
42
42
|
- **找得到**:支持按名称 / 来源 / Agent 搜索,按「可更新 / 待检查 / 已停用」筛选,平铺或按 Agent 分组。
|
|
43
|
-
- **待检查 vs
|
|
43
|
+
- **待检查 vs 无上游**:「待检查」只表示这次没拿到上游结论(限流、网络、仓库 404 等),下次检查会重试;没有可用来源的技能标「无上游」,不参与更新检查。
|
|
44
44
|
|
|
45
45
|
## 查看技能内容
|
|
46
46
|
|
|
47
47
|
管理途中想知道「这个技能写了什么、值不值得留」,点技能名或行内「查看」即可:
|
|
48
48
|
|
|
49
|
-
-
|
|
50
|
-
-
|
|
49
|
+
- **抽屉速览**:列表不动,右侧滑出只读抽屉;Esc / 点遮罩 / × 关闭,关闭后回到原来的筛选与滚动位置。
|
|
50
|
+
- **整页深读**:抽屉底部「在整页打开」切到整页阅读(正文 + 左侧目录),顶部返回条回列表。
|
|
51
51
|
- **三个 tab**:正文(渲染 / 原文切换,原文保留 frontmatter)、文件(目录树 + 单文件预览;`.md` 默认渲染、可切原文,其他文本直接出源码)、信息(来源、ref、commit、skillPath、内容哈希、安装 / 更新时间、接入 Agent、启停、本地改动)。
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
|
|
55
|
-
接口与错误码见 [docs/skill-viewer.md](docs/skill-viewer.md)。
|
|
52
|
+
- **只读**:没有输入框和保存按钮。更新 / 导出设置按可写状态决定是否可用;状态文件损坏时仍可查看,管理动作禁用。
|
|
53
|
+
- **能预览什么**:能按 UTF-8 解码的文本文件(`.md` / `.html` / `.jsx` / `.css` / `.sh` / 无扩展名脚本…)直接显示源码;单文件上限 256 KB(超出截断并提示);图片、音视频、压缩包等二进制显示「暂不支持预览」和文件名 / 大小。
|
|
56
54
|
|
|
57
55
|
## 安装
|
|
58
56
|
|
|
59
|
-
|
|
57
|
+
插件自带下载与解压能力,**不需要预装 Node / npm / npx / git**;首次安装需要联网拉取依赖。
|
|
60
58
|
|
|
61
59
|
在 Harness 里装本地 link:
|
|
62
60
|
|
|
@@ -72,60 +70,52 @@ plugin_manager install_bundle(target = <本仓库绝对路径>)
|
|
|
72
70
|
name: '@morehao/dsh-skills-console'
|
|
73
71
|
```
|
|
74
72
|
|
|
75
|
-
|
|
73
|
+
面板出现在 DSH Web 的设置页 / 侧栏。
|
|
76
74
|
|
|
77
75
|
## 快速上手
|
|
78
76
|
|
|
79
|
-
1. **添加技能**:点右上角「添加技能」,填 `owner/repo` 或 GitHub URL
|
|
80
|
-
2.
|
|
77
|
+
1. **添加技能**:点右上角「添加技能」,填 `owner/repo` 或 GitHub URL,点「检测技能」;仓库里有多个技能时勾选要装的(支持多选,默认全选,列表带每个技能的说明),只有一个会默认勾上。检测不到时可以手填技能名,留空则装仓库内全部。
|
|
78
|
+
2. **导出到别的 Agent**:只有「只读自己目录」的 Agent 才需要这一步(例如 Claude Code)。点行内「导出设置」勾选目标 Agent;本来就读共享目录的 Agent 不在列表里。之后新装技能默认导出到哪里,用页头「新安装时自动导出」设定(默认一个都不勾)。
|
|
81
79
|
3. **检查更新**:点列表头上的刷新图标;有更新的行会亮起「更新」,也可以一次「全部更新」。本地改过的技能会先要求确认。
|
|
82
|
-
4.
|
|
80
|
+
4. **临时停用**:关掉行内开关,只影响 DSH 侧;DSH 的模型与 `/` 调用立刻看不到它,技能文件、导出关系与其他 Agent 都还在,再打开就恢复。项目或用户目录里另有同名副本时,副本仍优先可见,行内会点名。
|
|
83
81
|
|
|
84
|
-
##
|
|
82
|
+
## 安全与可靠性
|
|
85
83
|
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
84
|
+
- **只动自己的东西**:只维护本插件创建的链接;删除前先体检,要删的链接已被换成真实目录或外来链就中止,别人的同名链接不碰也不删。
|
|
85
|
+
- **启停不改文件**:停用只写插件状态,技能本体与导出链一个字节都不动——本地修改不会被下次更新覆盖,更新也不用跟你的编辑抢文件。
|
|
86
|
+
- **可回滚**:删除进回收站(7 天);更新前自动备份,失败还原上一版,需要时也能手动回滚。
|
|
87
|
+
- **状态坏了就只读**:状态文件损坏或版本不认识时,插件降级只读、管理动作禁用,不猜结构、不自动修复。
|
|
88
|
+
- **不接收任意路径**:请求里的目标一律走注册表反查,导出链只会指向共享目录下的同名技能。
|
|
89
|
+
- **大仓库也能更新**:带设计素材的大仓库(压缩包 50MB+)不会被大小上限卡住。
|
|
90
|
+
- **「仅手动」不算丢技能**:技能自己声明只在 `/` 手动调用时,行内标「仅手动」并给出原因,不会被当成异常。
|
|
91
|
+
- **同名副本会点名**:项目或用户目录里另有同名技能时,界面直接指出「模型看到的是另一份」,不假装可见的就是共享目录那一份。
|
|
92
|
+
- **限流有兜底**:公开仓库匿名可用;GitHub 配额打满时会自动换通道继续检查,也可以设置 `GITHUB_TOKEN`,把配额从 60 次/小时提到 5000 次/小时——私有仓库安装也靠它。
|
|
93
93
|
|
|
94
94
|
## 数据与配置
|
|
95
95
|
|
|
96
|
-
| 项 |
|
|
97
|
-
| --- | --- |
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
| 备份 / 回收站 | `$DSH_HOME/skills-console/{backups,trash}` | 本插件 |
|
|
103
|
-
| 事件日志 | `$DSH_HOME/skills-console/dsh-skills-console.log` | 本插件(JSONL,1MB 滚动) |
|
|
104
|
-
|
|
105
|
-
### 环境变量
|
|
106
|
-
|
|
107
|
-
| 变量 | 默认 | 作用 |
|
|
108
|
-
| --- | --- | --- |
|
|
109
|
-
| `DSH_SKILLS_CONSOLE_HOME` | `$DSH_HOME/skills-console` | 状态、备份、回收站与事件日志的根 |
|
|
110
|
-
| `GITHUB_TOKEN` / `GH_TOKEN` | 无 | 只读环境变量;带上后 REST 配额从匿名 60 次/小时提到 5000 次/小时,私有仓库安装也靠它 |
|
|
111
|
-
| `XDG_STATE_HOME` | 未设置 | 设置后 lock 移到 `$XDG_STATE_HOME/skills/.skill-lock.json`,插件跟随读取 |
|
|
112
|
-
|
|
113
|
-
关于 GitHub 配额:**匿名 REST 是 60 次/小时,按出口 IP 共享**(公司、校园网出口常被同网段的人一起打满),打满后探测与更新会收到 403。本插件先走 REST;403/429 时改用 **Atom commit feed** 取 commit,再用 **codeload tarball** 在临时目录解压、扫描并本地计算 tree SHA,不占 REST 配额、也不需要 git。兜底也失败时,错误文案会给出恢复时间,并提示设置 `GITHUB_TOKEN`(5000 次/小时)。
|
|
114
|
-
|
|
115
|
-
> Atom/codeload 兜底只在 `os.tmpdir()` 里解压,用完即删;结果不会落进 canonical 或 lock。
|
|
96
|
+
| 项 | 位置 |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| 技能本体 | `~/.agents/skills`(DSH 与多数 Agent 共用的技能目录) |
|
|
99
|
+
| 插件状态 | `$DSH_HOME/skills-console/state.json`(`DSH_SKILLS_CONSOLE_HOME` 可换根目录) |
|
|
100
|
+
| 备份 / 回收站 | `$DSH_HOME/skills-console/{backups,trash}` |
|
|
101
|
+
| 事件日志 | `$DSH_HOME/skills-console/dsh-skills-console.log`(JSONL,1MB 滚动) |
|
|
116
102
|
|
|
103
|
+
技能本体留在共享目录,导出只是建链,不搬文件。
|
|
117
104
|
|
|
118
105
|
## 开发与发布
|
|
119
106
|
|
|
120
|
-
|
|
107
|
+
源码结构、测试策略与本地 `link:` 验证见 [docs/development.md](docs/development.md);可见性、数据落点与实现边界见 [docs/internals.md](docs/internals.md);发布流程与排障清单见 [docs/publishing.md](docs/publishing.md)。在本仓工作的 AI agent 请先读 [AGENTS.md](AGENTS.md)。
|
|
121
108
|
|
|
122
109
|
## 边界(明确不做)
|
|
123
110
|
|
|
124
|
-
- 不做技能市场 /
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
111
|
+
- 不做技能市场 / 搜索,也不接管或改写其他工具自己的 Agent 分发。
|
|
112
|
+
- 不编辑技能正文:查看器只读,更新会整份覆盖。
|
|
113
|
+
- 不做文件级差异预览:只给 commit 区间与受影响技能;要看具体行,在终端跑 `git diff <from>..<to> -- <skillDir>`。
|
|
114
|
+
- 不做图片 / 二进制预览。
|
|
128
115
|
- 不做跨机器同步,不落盘任何 token。
|
|
116
|
+
- 不做全机隐身:启停只对 DSH 生效,直接读共享目录的其他 Agent 仍会看到技能。
|
|
117
|
+
- 不支持项目级启停:项目里的同名技能仍按 DSH 的优先级可见。
|
|
118
|
+
- 不接管宿主 preset 层与其他插件自带的技能源;诊断里会把它们标成盲区,而不是假装支持。
|
|
129
119
|
|
|
130
120
|
## 许可
|
|
131
121
|
|