dsh-update-center 0.8.0 → 0.8.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 +15 -1
- package/data/awesome-categories.json +1199 -0
- package/data/extra-plugins.json +152 -112
- package/data/registry-snapshot.json +11941 -7636
- package/lib/categorize.mjs +131 -0
- package/lib/client.js +191 -18
- package/lib/client.js.map +1 -1
- package/lib/github-topic.mjs +94 -80
- package/lib/index.js +136 -25
- package/lib/index.js.map +1 -1
- package/package.json +76 -76
- package/plugins.json +11941 -7636
- package/scripts/build.mjs +101 -101
- package/scripts/classify-categories.mjs +43 -0
- package/scripts/refresh-snapshot.mjs +122 -93
- package/scripts/repair-bash-terminal.mjs +65 -0
- package/scripts/restart-dsh.mjs +123 -0
package/README.md
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
# dsh-update-center
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/dsh-update-center)
|
|
4
|
+
|
|
3
5
|
DeepSeek Harness 的本地更新中心:内置插件市场(浏览/搜索/一键安装/卸载/禁用),统一管理已装插件与 dsh 本体、profile 中的 npm/link 插件以及 agent preset 的更新。
|
|
4
6
|
|
|
5
7
|
## 安装
|
|
6
8
|
|
|
7
|
-
插件声明了 `dsh.bundle`(bundle patch 位于 `cordis.patch.yml
|
|
9
|
+
插件声明了 `dsh.bundle`(bundle patch 位于 `cordis.patch.yml`),构建产物随包分发,用官方 CLI 安装即可挂载为 profile 层。
|
|
10
|
+
|
|
11
|
+
推荐 npm 安装(秒级,无需构建):
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
dsh plugin --profile web add dsh-update-center
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
或从 GitHub 安装:
|
|
8
18
|
|
|
9
19
|
```bash
|
|
10
20
|
dsh plugin --profile web add github:Britneycode/dsh-update-center
|
|
@@ -24,16 +34,19 @@ dsh plugin --profile web add link:<本插件目录>
|
|
|
24
34
|
- 增量扫描:后台每 12 小时扫描 GitHub `topic:dsh-plugin`(星标前 500,排除 fork),与注册表按 owner/name 去重合并——重复条目仅刷新星标,新条目追加;掉出扫描窗口的老条目在 plugins.json 中保留(累计语义,上限 2000 防膨胀)。
|
|
25
35
|
- npm 包名映射:同一轮扫描会查询 npm 关键词搜索(`keywords:dsh-plugin`,约 800+ 包),按 repository 地址与市场条目匹配——仓库一致才映射(天然防抢注);命中的条目显示 npm 标记并走 npm 秒级安装,未命中的走 `github:` 安装。
|
|
26
36
|
- 更新注册表:`npm run refresh:snapshot` 会以现有 plugins.json 为基底累计合并最新扫描结果并连同离线快照一起重写,提交推送后生效。
|
|
37
|
+
- 注册表自动刷新:仓库内置 GitHub Actions 定时任务(`.github/workflows/registry-refresh.yml`)每天自动跑刷新脚本并在有变化时提交推送,也可在 Actions 页面手动触发。
|
|
27
38
|
- 离线兜底:磁盘缓存 → 随包快照(`data/registry-snapshot.json`);常驻条目(`data/extra-plugins.json`)无条件并入,保证 0 星新插件始终可见。
|
|
28
39
|
- 清单自动刷新:缓存超过 24 小时会在打开面板时自动拉取最新;「刷新清单」按钮随时强制更新。
|
|
29
40
|
- 出网请求仅允许 https 且 host 白名单(raw.githubusercontent.com 额外限定为清单仓库路径,防 SSRF);安装目标只接受清单内条目,不接受任意包名。
|
|
30
41
|
- 安装优先走 npm 包(秒级),并做防抢注校验:npm 包的 repository 与清单 GitHub owner/repo 不一致时自动回退 `github:owner/repo`。
|
|
31
42
|
- 安装后校验包可解析且存在可运行入口(dsh 清单或 main 文件);校验失败自动回滚卸载,不会留下坏包。
|
|
43
|
+
- 非标准组合套装可作为“手动安装”条目收录:市场只展示项目安装说明,不会误走 `pnpm add`。`dsh-routing-suite` 即按此方式提供。
|
|
32
44
|
- pnpm ≥10 拒绝或跳过构建脚本时,错误信息会带 pnpm-workspace.yaml 放行指引。
|
|
33
45
|
- 卸载 = `pnpm remove` + 移出 `dsh.profile.bundles`,仅对 npm 安装的插件开放;link/preset 插件请直接编辑 profile。
|
|
34
46
|
- 禁用/启用 = 在 profile 的 `cordis.patch.yml` 写入/移除受管的 `disabled: true` 条目(按插件自身 insert id 定位,带标记区块与备份),不删文件、可随时恢复,重启后生效。
|
|
35
47
|
- 市场条目与已安装列表互通元数据:已安装插件显示市场描述与 GitHub 链接,市场里已装的插件显示「可更新」徽标。
|
|
36
48
|
- 市场支持排序:星标最多(默认)/ 默认策展顺序 / 最近添加,可叠加搜索与分类筛选。
|
|
49
|
+
- 市场列表默认展示前 500 个筛选结果;结果更多时可在列表底部继续加载,每次增加 500 个。
|
|
37
50
|
|
|
38
51
|
## 一键全部更新
|
|
39
52
|
|
|
@@ -56,6 +69,7 @@ dsh plugin --profile web add link:<本插件目录>
|
|
|
56
69
|
- dsh 或本地插件存在未提交改动时停止更新,避免覆盖本地工作。
|
|
57
70
|
- 任一步骤失败都会返回失败阶段;不会把依赖安装或构建失败显示成成功。
|
|
58
71
|
- 更新写入磁盘后明确提示重启 dsh web。
|
|
72
|
+
- 一键「重启 dsh」:工具条按钮以原进程完全相同的启动方式(execPath + execArgv + argv + cwd)自动重新拉起 dsh web,更新完插件后直接点即可,无需手动重启;有更新任务执行时会禁用并在服务端拒绝,避免中断后台任务。
|
|
59
73
|
- POST 动作仅接受同源请求(Origin 与 Host 一致)。
|
|
60
74
|
- `Start-DSH.ps1` 会等待后台更新完成再启动,`Stop-DSH.ps1` 不会结束更新 worker。
|
|
61
75
|
|