dsh-plugin-index:用 package.json 硬判定校验的 DSH 插件索引

前言

在 DSH 里装第三方插件,常见路径是翻社区目录、看星数或关键词,再复制安装命令。不少目录用「热度」代替「证据」:README 里作者曾抽样验证过某头部目录,标为可用的条目里约有四成在默认星数排序下根本不是 DSH 插件。官方文档也说明,包名和 patch 文件名只是惯例,靠名字、星数或关键词筛选会有系统性误差。

dsh-plugin-index(维护者 ymck-x)是客户端类 DSH 插件:在 Harness 内浏览经校验的第三方插件,并支持一键安装。判据只有一条——package.json 里是否存在 dsh.bundle.patch 所指向的声明,与仓库 README 及本插件 package.json 中的 dsh.bundle.patch 一致。

这是什么

  • 定位:DSH 插件索引;收录 1 万余个经上述硬判定校验的插件(数量随抓取管道更新而增长)。
  • 分类:客户端(dsh.client 注入设置 UI)。
  • 数据形态:清单由服务器侧抓取管道产出,本仓库只消费;另有网页版 cj.codexve.cn,与面板同源数据。
  • 许可:MIT(README 与 package.json)。

核心功能

在 DSH 内浏览与安装

路径:设置 → 插件 → 插件索引。

  • 按功能分类筛选(15 类)、按星数筛选;排序可选证据强度、星数或最近更新。
  • 每条展示仓库名、作者、描述、星数、forks、最近更新日期与分类标签。
  • 可「复制」等价的手动安装命令,或点「安装」交给 DSH 处理。

判定与清单来源(只读证据)

发现与判定分三步(README 表格摘要):

步骤 做什么
发现 GitHub topic 分片枚举 + code search 标记文件 + npm 关键词搜索,三源并集
判定 只读 package.json,检查 dsh.bundle 声明
地址解析 优先 npm 版本 → tag → commit,不用分支地址

默认排序按证据强度(读到几个文件、依赖是否完整),不按星数当作质量结论。

数据加载策略

全量清单约 4 MB,国内经 CDN 拉取易超时,因此分两层:

层 内容 用途
内置快照 首片 500 条,打包进 lib/client.js(约 180 KB) 远端失败时的兜底;缩小插件包体积
远端索引 + 分片 index.json + p/<生成戳>-N.json(每片 500 条) 打开面板先取索引,再按需拉分片

远端拉取失败时,面板会写明当前使用的是内置快照(旧版曾静默退回,易误以为数据最新)。

安装与启用

安装命令须使用带 tag 的完整 tarball 地址(README 原文):

dsh plugin --profile desktop add https://github.com/ymck-x/dsh-plugin-index/archive/refs/tags/v0.1.4.tar.gz

将 desktop 换成你在 ~/.dsh/profiles/ 下的 profile 目录名。安装后重启 dsh。

注意(README 强调):

  • 不要用 github:owner/repo 简写——pnpm 可能解析为 SSH,匿名访问 GitHub 会被拒绝。
  • 不要用 refs/heads/main.tar.gz 等分支地址——分支内容会变,pnpm 会记住安装时指纹,作者更新后可能在装其他插件时触发 ERR_PNPM_TARBALL_INTEGRITY。

本插件以当前 DSH 进程权限运行;安装任何第三方插件前,仍应自行查看源码与许可证。

典型用法

  1. 按上文命令安装并重启 DSH。
  2. 打开 设置 → 插件 → 插件索引,用分类或星数缩小范围,用「证据强度」排序优先看判定更完整的条目。
  3. 选中条目后点「安装」,或点「复制」在终端用手动命令安装(适合需要核对 URL 的场景)。
  4. 若在浏览器中挑选,可打开 https://cj.codexve.cn/,排版更宽松,数据与面板一致。

适用场景与注意

适合谁:经常在 DSH 里尝试社区插件、希望列表尽量「真是插件」而非误收录仓库的开发者。

星数与维护信号:README 给出 11443 条样本中约 34.6% 为 0 星;0 星不等于不能用,面板仍提供星数筛选与排序。更实用的参考包括 最近更新(pushed_at)与 forks。「地址已锁定」表示按 tag/commit 解析成功,不保证在当前 DSH 版本上一定能装、能用——运行级验证仍需本机 DSH。

分类与局限:功能分类由关键词规则匹配描述、关键词、包名、仓库名,不调模型;约 16% 可能归入「其他」。星数仅作参考信号。

自行构建(维护者/贡献者):需服务器产出的 data/plugins.json(不进版本库),可运行 python build-client.py、python build-site.py,或使用 refresh-snapshot.ps1 从服务器刷新后发版。详见仓库 README。

链接

羽毛球分组比赛记分
小程序二维码

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

小夜