证据快照复核于 2026-09-10GitHub 数据核对日期: 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/10README.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/pluginsartifacts/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.jsondata/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:30GitHub 事实核对日期: 2026/9/10 UTC 14:30

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

下一步

比较生态 Artifact 类型

订阅重要变化: PerryLink DSH Catalog