证据快照复核于 2026-09-16GitHub 数据核对日期: 2026-08-21
来源已审查集成发现与管理dsh-desktop Profile

PerryLink DSH Catalog

将 PerryLink 维护的目录源添加到 DSH Desktop,用于浏览列出的 npm 插件。

快速了解

它能做什么

将 PerryLink 维护的目录源添加到 DSH Desktop,用于浏览列出的 npm 插件。

本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。

能力
发现与管理Plugin 发现Plugin 管理配置

选择前先看

这是面向 PerryLink DeepSeek Harness 插件系列的 DSH Community Market 目录源。在 DSH Desktop 中添加其 HTTPS manifest 后,可浏览由生成流程产出的、按契约校验的目录;安装列出的插件仍需在 Market 中另行操作。

适合谁

希望从额外 Market 源发现 PerryLink 所列 npm 插件的 DSH Desktop 用户。

常见任务

  • 在 DSH Desktop Market 中添加目录源。
  • 浏览和搜索目录中列出的插件。
  • 在决定是否通过 Market 安装前查看插件元数据。

权限与数据

浏览会从配置的 HTTPS 源获取目录元数据;安装由 DSH Desktop Market 另行处理。

权限
  • 需要访问已配置 HTTPS 目录端点的网络权限。
数据处理
  • 目录数据说明为来自 npm registry 和 PerryLink 插件仓库。
外部服务
  • PerryLink 的 Cloudflare Workers 目录端点。
  • 作为目录数据来源的 npm registry。
凭据
  • 提供的证据未说明浏览目录需要凭据。

局限

  • 目录收录不等于对任一列出插件的安全审查或认证。
  • 提供的证据未声明所需的 DSH Desktop 版本。
  • 不要注册 README 提到的生成用占位域名;应使用在线 manifest URL。

DSHub 已核对

  • 仓库源已固定到提交 d85e318c6db7d70a7a7803b8c3513f7ef6d44a99。
  • README 给出了在线 manifest URL 和在 DSH Desktop 中添加源的路径。
  • README 说明浏览为只读,安装仍需经过 Market 的 npm 身份校验与用户确认。

DSHub 未核对

  • 本次整理未实际访问端点、添加该源或安装任何列出的插件。
  • 未验证运行时可用性,也未验证与某个特定 DSH Desktop 版本的兼容性。

固定版本安装

主要操作

这个集成没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。

访问源码项目 ↗

维护者原文

项目 README

查看 commit d85e318 对应的 README ↗
维护者编写的上游内容原文于 2026/9/10 从 README.md 获取,正文和仓库相对媒体固定到 commit d85e318c6db7,内容哈希为 c0c6bf1a4530。以下是未经 DSHub 翻译的上游原文,语言可能与当前页面不同;第三方托管的 badge 可能独立更新。

dsh-catalog

License DSH plugin Gitee npm version npm downloads

A DSH Community Market standard catalog source for the PerryLink DeepSeek Harness plugin family:40 packages, generated from the npm registry, validated against the public v1 contract schemas.

  • Manifest: catalog-source.json (generated; see Deploy)
  • Provider page: artifacts/v1/plugins.json (generated)
  • Source of truth: data/packages.json (npm name → repo → display name → categories) + data/npm-snapshot.json (npm registry snapshot)
  • Generator / validator: scripts/build-catalog.mjs, scripts/validate.mjs
  • Deploy: live at https://perrylink-dsh-catalog.perrylink.workers.dev (Cloudflare Workers, automated via deploy.yml; Vercel static alternative in vercel.json; Deno unit deploy/deno-worker.js as manual alternative)

Compliance notes

  • Contract: catalog-provider-contract.md (v1, manifestVersion/schemaVersion 1.0.0). The schemas are vendored nowhere in this repo; scripts/validate.mjs mirrors the structural rules of catalog-source.schema.json and catalog-provider-page.schema.json and the cross-field rules (unique item ids, npm name pattern, no install commands in items, HTTPS repository URLs, page shape).
  • The minimal valid profile is used: query.supported = [], defaultLimit = maxLimit = 50, sorts = []. The endpoint returns the complete bounded page (40 items ≤ 50), so DSH Desktop scans it in one request and runs search/filtering over its local index.
  • Every item carries package.registry = "npm" + package.name and a canonical repository.url; no install commands, shell fragments or executable data are ever emitted.
  • Every item also carries a same-origin media.icon (/icons/<slug>.png, generated deterministically by scripts/build-icons.mjs); the Worker serves the PNGs itself, so the icons stay on the catalog origin as the market media rule requires.
  • The manifest endpoint and the manifest itself must share one HTTPS origin (market rule). The generated placeholder endpoint https://replace-with-deploy-origin.invalid/... is replaced by the real deploy origin at deploy time — do not register the placeholder URL in DSH Desktop.

Build

node scripts/build-catalog.mjs            # placeholder endpoint
node scripts/validate.mjs                 # structural checks
node scripts/build-catalog.mjs https://<your-project>.deno.dev   # real origin

build-catalog.mjs writes the manifest and provider page to the repo root and mirrors both into deploy/, so deploy/deno-worker.js is a self-contained Deno Deploy unit (its ./ imports always resolve).

data/npm-snapshot.json is refreshed UTF-8-safely with:

node scripts/refresh-snapshot.mjs   # re-fetch every package from registry.npmjs.org

Maintaining data/

data/packages.json and data/npm-snapshot.json are one unit: a new or renamed package needs its snapshot row in the same commit. Two consecutive main deploys went red on 2026-09-09 exactly this way — first a missing comma in data/packages.json, then a package listed without its snapshot row (Error: npm snapshot missing for …). Both are caught locally by the pre-push gate; enable it once per clone:

git config core.hooksPath .githooks   # then every push runs node scripts/check-data.mjs

scripts/check-data.mjs is read-only. Do not use node scripts/build-catalog.mjs as a gate: called without an argument it rewrites the committed deploy/ artifacts with the placeholder origin.

.github/workflows/ci.yml runs scripts/check-data.mjs plus the build/validate pair on every push to main and on every pull request, so the hook above is a convenience rather than the only line of defence. CI additionally stages the committed deploy/ copies at the repository root and validates those — the payload that actually ships — then rebuilds to assert that the committed deploy/catalog-source.json still matches, which catches a data/ change that was never mirrored into deploy/. That rebuild is the one place the no-argument form is safe: the runner's checkout is throwaway, and the manifest carries no timestamp, so it is byte-reproducible.

Deploy

Live: https://perrylink-dsh-catalog.perrylink.workers.dev (Cloudflare Workers, deployed automatically by the deploy workflow).

Automated channels — the workflow rebuilds the manifest with the live origin, validates, then deploys; each channel skips gracefully when its token secret is absent:

  • Cloudflare Workers (active): deploy/wrangler.toml + deploy/cloudflare-worker.js. Requires CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID secrets. Two-pass deploy: first uploads the placeholder-origin worker, reads the assigned *.workers.dev URL, rebuilds the manifest pinned to that origin, and redeploys. Falls back to Cloudflare Pages (.pages.dev) when workers.dev is unavailable.
  • Vercel: vercel.json rewrite /v1/plugins → artifacts/v1/plugins.json. Requires VERCEL_TOKEN.
  • Deno Deploy (manual): self-contained deploy/deno-worker.js; rebuild with node scripts/build-catalog.mjs https://<your-project>.deno.dev before deploying.

The site serves GET /catalog-source.json and GET /v1/plugins as application/json on one HTTPS origin.

Use in DSH Desktop

Open the built-in Market → Sources → add source → paste the manifest URL https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Browsing is read-only; installation of any listed plugin goes through the Market's own npm-identity verification and user confirmation.

A listing in this catalog is metadata, not a security review. The same plugins also have evidence records in dsh-plugin-certification and MCP access via dsh-cert-mcp.


中文说明

PerryLink 全家桶的 DSH Community Market 标准目录源:40 个 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.

有意识地管理

安装与管理

前置条件与目标 Profile

目标: dsh-desktop Profile

交付方式: 手动 Patch — https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json。

兼容性与访问范围

DSH Desktop catalog source; exact app version not declared: Not declared in supplied evidence。

检查兼容性证据 ↗

风险事实

security-scope

Catalog inclusion is metadata, not a security review of a listed plugin.

证据 ↗
external-data

Catalog data is derived from the npm registry and PerryLink plugin repositories.

证据 ↗
license

Source repository is licensed under Apache License 2.0.

证据 ↗
证据与编辑审查Manifest、Bundle patch、分发与新鲜度

不可变证据

审查状态与源码活动

AI 已审查

将其作为发现来源使用;安装前请独立评估每个列出的插件。

AI 审查于 2026/9/10 UTC 14:30。GitHub 事实核对日期: 2026/9/10 UTC 14:30。

自当前证据基线以来,没有记录到重要源码变化。

下一步

比较生态 Artifact 类型 →

订阅重要变化: PerryLink DSH Catalog →