← 返回列表
未验证
一次拉取全部插件清单,本地完成搜索过滤
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/13 · 已提供中文文档
DSH桌面市场PerryLink插件系列的标准目录源:精选摘要、同源图标、合约验证、CI冒烟测试。
综合分
29.7
GitHub 分
29.7
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add PerryLink/dsh-catalog该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-catalog License DSH plugin Gitee npm version npm downloads 一个面向 PerryLink DeepSeek Harness 插件家族的 DSH 社区市场 标准目录源:包含 44 个包,由 npm registry 生成,并依据公开的 v1 契约 schema 进行校验。 - 清单:catalog-source.json(生成产物;参见部署) - 提供方页面:artifacts/v1/plugins.json(生成产物) - 事实来源:data/packages.json(npm 名称 → 仓库 → 显示名称 → 分类)+ data/npm-snapshot.json(npm registry 快照) - 生成器 / 校验器:scripts/build-catalog.mjs、scripts/validate.mjs - 部署:线上地址为 https://perrylink-dsh-catalog.perrylink.workers.dev(Cloudflare Workers,通过 deploy.yml 自动化;vercel.json 中提供 Vercel 静态替代方案;deploy/deno-worker.js 中的 Deno 单元作为手动替代方案) 合规说明 - 契约:catalog-provider-contract.md(v1,manifestVersion/schemaVersion 为 1.0.0)。本仓库未内嵌任何 schema;scripts/validate.mjs 复刻了 catalog-source.schema.json 和 catalog-provider-page.schema.json 的结构规则以及跨字段规则(条目 id 唯一、npm 名称模式、条目中不含安装命令、HTTPS 仓库 URL、页面结构)。 - 使用最小有效配置:query.supported = []、defaultLimit = maxLimit = 50、sorts = []。该端点返回完整的有界页面(44 个条目 ≤ 50),因此 DSH Desktop 只需一次请求即可扫描,并在其本地索引上执行搜索/过滤。 - 每个条目都带有 package.registry = "npm" + package.name 以及规范的 repository.url;绝不输出安装命令、shell 片段或可执行数据。 - 每个条目还带有同源的 media.icon(/icons/.png,由 scripts/build-icons.mjs 确定性生成);Worker 自行提供这些 PNG,因此图标保持在目录源上,符合市场媒体规则的要求。 - 清单端点和清单本身必须共享同一个 HTTPS 源(市场规则)。生成的占位端点 https://replace-with-deploy-origin.invalid/... 会在部署时被真实的部署源替换——请勿在 DSH Desktop 中注册该占位 URL。 构建 node scripts/build-catalog.mjs # 占位端点 node scripts/validate.mjs # 结构检查sh node scripts/build-catalog.mjs https://.deno.dev # 真实源站 build-catalog.mjs 会将清单和 provider 页面写入仓库根目录,并把两者镜像到 deploy/,因此 deploy/deno-worker.js 是一个自包含的 Deno Deploy 单元(其 ./ 导入始终能解析)。 data/npm-snapshot.json 通过以下方式以 UTF-8 安全的方式刷新: sh node scripts/refresh-snapshot.mjs # 从 registry.npmjs.org 重新获取每个包 维护 data/ data/packages.json 和 data/npm-snapshot.json 是一个整体:新增或重命名的包 需要其快照行在同一次提交中。2026-09-09 连续两次 main 部署变红, 正是因为这个原因——先是 data/packages.json 中缺少一个逗号,然后是一个包 被列出却没有对应的快照行(Error: npm snapshot missing for …)。这两者都能在本地 被 pre-push 门禁捕获;每个克隆启用一次即可: sh git config core.hooksPath .githooks # 之后每次 push 都会运行 node scripts/check-data.mjs scripts/check-data.mjs 是只读的。不要把 node scripts/build-catalog.mjs 当作 门禁:不带参数调用它时,会用占位源站重写已提交的 deploy/ 产物。 .github/workflows/ci.yml 在每次推送到 main 以及每个 pull request 时都会运行 scripts/check-data.mjs 以及构建/校验组合,因此上面的钩子只是一种便利,而不是 唯一的防线。CI 还会将已提交的 deploy/ 副本暂存到仓库 根目录,并校验那些副本——即实际发布的载荷——然后重新构建以断言 已提交的 deploy/catalog-source.json 仍然匹配,这能捕获从未镜像到 deploy/ 的 data/ 变更。那次重新构建是不带参数形式唯一安全的地方:运行器的 检出是一次性的,而且清单不携带时间戳,因此它是 字节级可复现的。 部署 线上:https://perrylink-dsh-catalog.perrylink.workers.dev(Cloudflare Workers,由 deploy 工作流自动部署)。 自动化渠道——工作流会用线上源站重新构建清单、进行校验,然后部署;当某个渠道的令牌密钥缺失时,它会优雅地跳过: - Cloudflare Workers(已启用):deploy/wrangler.toml + deploy/cloudflare-worker.js。需要 CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID 密钥。两阶段部署:先上传占位源站的 worker,读取分配到的 .workers.dev URL,重新构建固定到该源站的清单,然后重新部署。当 workers.dev 不可用时,回退到 Cloudflare Pages(.pages.dev)。 - Vercel:vercel.json 将 /v1/plugins 重写为 artifacts/v1/plugins.json。需要 VERCEL_TOKEN。 - Deno Deploy(手动):自包含的 deploy/deno-worker.js;部署前用 node scripts/build-catalog.mjs https://.deno.dev 重新构建。 该站点在同一个 HTTPS 源站上以 application/json 提供 GET /catalog-source.json 和 GET /v1/plugins。 在 DSH Desktop 中使用 打开内置的 Market → Sources → 添加源 → 粘贴 manifest URL https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选择它。浏览是只读的;安装任何列出的插件都要经过 Market 自身的 npm 身份验证和用户确认。 此目录中的条目是元数据,而非安全审查。相同的插件在 dsh-plugin-certification 中也有证据记录,并可通过 dsh-cert-mcp 进行 MCP 访问。 中文说明 PerryLink 全家桶的 DSH Community Market 标准目录源:44 个 npm 包,由 npm registry 生成,按公开 v1 契约做结构校验。已上线 Cloudflare Workers(perrylink-dsh-catalog.perrylink.workers.dev,deploy workflow 自动部署;Vercel 静态重写与 Deno Deploy 为备选通道)。每个条目还带同源 media.icon 图标(/icons/.png,由 scripts/build-icons.mjs 确定性生成)。在 DSH Desktop 的 市场 → Sources 里添加 manifest URL 即可浏览(浏览只读;安装仍走市场自身的 npm 身份校验与用户确认)。生成产物中的占位域名 replace-with-deploy-origin.invalid 在部署时替换,请勿直接注册占位地址。维护纪律:data/packages.json 与 data/npm-snapshot.json 必须同一次 commit 成对更新(2026-09-09 连续两次 main 部署红灯即由此而来:先是漏逗号,后是新增包缺 npm 快照行);执行一次 git config core.hooksPath .githooks 后,每次 push 都会跑只读门禁 scripts/check-data.mjs。切勿把不带参数的 node scripts/build-catalog.mjs 当作门禁——它会把已入库的 deploy/ 产物改写成占位域名。CI:.github/workflows/ci.yml 在每次 push 到 main 与每个 PR 上跑 scripts/check-data.mjs 与 build+validate,并且先校验已入库的 deploy/ 产物(真正上线的载荷)、再重建断言 deploy/catalog-source.json 未过期,可发现「改了 data/ 却没重建 deploy/」;该重建在 CI 的一次性 checkout 里是安全的,因为 manifest 不含时间戳、可字节复现。 License Apache-2.0. Catalog data derives from the npm registry and the PerryLink plugin repositories.
扫码进群