DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@perrylink/dsh-plugin-kit

Plugin Kit

PerryLink DSH 插件的共享零运行时依赖工具包:可插拔的 Provider 注册表接入点、故障关闭式审批和自适应会话事件门控、机械化验证脚本、共享的清理/定价/评判模块,以及新插件骨架。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @perrylink/dsh-plugin-kit@0.1.26
README兼容性版本

兼容性与来源证明

Plugin Kit 以 @perrylink/dsh-plugin-kit 发布,当前版本为 0.1.26。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/11/4

版本

0.1.26stable
2026/11/3
0.1.25stable
2026/11/3
0.1.24stable
2026/11/2
查看其余 23 个版本收起版本
0.1.23stable
2026/11/2
0.1.22stable
2026/11/1
0.1.21stable
2026/11/1
0.1.20stable
2026/10/18
0.1.19stable
2026/10/18
0.1.17stable
2026/10/10
0.1.16stable
2026/10/5
0.1.15stable
2026/10/5
0.1.14stable
2026/10/5
0.1.13stable
2026/10/4
0.1.12stable
2026/9/24
0.1.11stable
2026/9/24
0.1.10stable
2026/9/23
0.1.9stable
2026/9/12
0.1.8stable
2026/9/10
0.1.7stable
2026/9/9
0.1.6stable
2026/9/7
0.1.5stable
2026/9/4

相关插件

正在加载相关插件…

最新版
0.1.26
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
331.6 kB
文件数
94
Surface
any
许可证
Apache-2.0
发布源
npm
GitHub
★ 0
周下载
1,162
安全扫描
✓ v0.1.26 扫描通过
最近提交
2026/11/3
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
0.1.4stable
2026/9/2
0.1.3stable
2026/9/1
0.1.2stable
2026/8/30
0.1.1stable
2026/8/30
0.1.0stable
2026/8/30

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包Ssh@linxin666/dsh-sshdsh Web GUI 的远程 SSH 操作:主机配置存储(~/.dsh/dsh-ssh.json,可从 ~/.ssh/config 导入)、支持跳板主机的持久化 ssh2 连接池、exec / PTY Web 终端 / SFTP 传输 / 本地端口转发隧道 / 集群执行Opsdsh-ops适用于 Windows x64、Linux x64 和 macOS arm64/x64 的原生文件和 PTC 工具;仅限 Windows 的可选 Bash 负载和主机 PowerShell 集成Update@linxin666/dsh-update用于 dsh Web GUI 的自更新插件:探测 npm 上是否有更新的系列版本,并在原地运行所属配置的 pnpm 更新;可通过设置图标旁侧边栏中的触发器启动,并显示发布说明面板

README

@perrylink/dsh-plugin-kit — renamed to dsh-scaffold

This package is the old scoped name of dsh-scaffold. It stays installable for compatibility; new releases are published under the bare name.

dsh plugin --profile <profile> add dsh-scaffold

Source: https://github.com/PerryLink/dsh-scaffold · Docs: https://perrylink.github.io/dsh-plugins/packages/dsh-scaffold.html


dsh-scaffold

Renamed: previously @perrylink/dsh-plugin-kit; now dsh-scaffold. Old repo stays as a pointer/backup. New home: https://github.com/PerryLink/dsh-scaffold

Non-official companion tool. Part of the DSH standards family; not a certification, accreditation, security audit, or official endorsement. Standard: https://github.com/PerryLink/dsh-standards. The dsh.standards block is a not-run placeholder, not a pass.

dsh plugin --profile <name> add dsh-scaffold

Shared zero-runtime-dependency toolkit for the PerryLink DSH plugin repositories. The per-project audit found 20+ plugins hand-rolling the same Provider seam and duplicating the same sanitize/pricing/verdict shapes, so this package extracts all of it — the pluggable Provider seam, the fail-closed approval and adaptive session-event gates, the mechanical verify scripts, and the shared sanitize/pricing/judge pure modules — into one ESM + TypeScript package.

Package name. This project publishes to npm as dsh-scaffold. The bare npm name dsh-scaffold belongs to a different, unrelated project — installing it does not install this package.

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add dsh-scaffold (counts toward the deepseek1024.com install ranking).

DSH Market

English | 简体中文 | Español | Português | हिन्दी

Shared zero-runtime-dependency toolkit for the PerryLink DSH plugin repositories. The per-project audit found 20+ plugins hand-rolling the same Provider seam and duplicating the same sanitize/pricing/verdict shapes, so this package extracts all of it — the pluggable Provider seam, the fail-closed approval and adaptive session-event gates, the mechanical verify scripts, and the shared sanitize/pricing/judge pure modules — into one ESM + TypeScript package.

Install & uninstall

As a library, install is pnpm add (see Quick start). The package also ships an intentionally empty dsh.bundle.patch layer (cordis.patch.yml), so it flows through the harness bundle channel when a profile wants the kit mounted as a package:

# npm channel (published releases)
dsh plugin --profile web add dsh-scaffold

# git channel (latest master)
dsh plugin --profile web add github:PerryLink/dsh-scaffold

Remove with:

pnpm remove dsh-scaffold

Nothing registers global state: uninstall is exactly the reverse of install.

What is dsh-scaffold?

Shared zero-runtime-dependency toolkit for the PerryLink DSH plugin repositories. The per-project audit found 20+ plugins hand-rolling the same Provider seam and duplicating the same sanitize/pricing/verdict shapes, so this package extracts all of it — the pluggable Provider seam, the fail-closed approval and adaptive session-event gates, the mechanical verify scripts, and the shared sanitize/pricing/judge pure modules — into one ESM + TypeScript package.

Workflow diagram for dsh-scaffold: call → plugin → result.

Workflow overview: call → plugin → result. The examples below use the real command surface.

Compatibility

  • DSH harness: the kit imports nothing from @deepseek-ai/* at runtime. @deepseek-ai/cordis (^4.0.5-alpha.1), @deepseek-ai/schemastery (^3.18.5-alpha.1), and the @deepseek-ai/dsh-* packages are optional peer dependencies in the >=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 band the PerryLink plugin repos share; they exist only for type interop. Verified 2026-09-11 against the dsh-v0.1.7-alpha.1 master checkout (full gate chain + profile install smoke), and re-verified 2026-10-05 against the dsh-v0.2.1-alpha.1 checkout (full gate chain + profile install smoke).
  • Node: ^22.19.0 || >=24.0.0, ESM only.
  • Wire compatibility: names and shapes mirror dsh-mask (sanitize), dsh-budget (pricing), and dsh-auto-review (judge and the fallbackPolicy vocabulary), so migration is mechanical.

What you get

  • Zero runtime dependencies — the pure core (seam, gates, shared) is browser-safe.
  • ESM + strict TypeScript — JSDoc contracts on every module; strict, noUncheckedIndexedAccess, exactOptionalPropertyTypes.
  • Fail-closed and adaptive gates — approval never defaults to a grant; session-event appends degrade gracefully on hosts that reject unknown event types.
  • A new-plugin skeleton — template/ with cordis.yml, a three-role src/index.ts (Service Definition / Provider / Consumer), a test, and the shared Renovate preset.

Quick start

dsh plugin --profile web add github:PerryLink/dsh-scaffold

From npm:

pnpm add dsh-scaffold

From git (the prepare script builds lib/ using only production dependencies):

pnpm add github:PerryLink/dsh-scaffold

Replace a hand-rolled registry in one step:

import { ProviderRegistry } from 'dsh-scaffold/seam'

const registry = new ProviderRegistry<Detector>({
  default: { name: 'regex', impl: new RegexDetector() },
})
ctx.effect(() => registry.register('ner', new NerDetector()))
const active = registry.use('ner') ?? registry.use()

Examples

These are the plugin's real entry points; install once, then call one.

Detailed example

Command

import { createStripper } from 'dsh-scaffold/shared'
createStripper().strip('call 13800138000 or email a@b.com')

Output

call <PHONE_1> or email <EMAIL_1>

Observed from README.md:153 (shared sanitize); src/shared/sanitize.ts:268; test/sanitize.test.ts:8-19

Failure branch

Input

const r = new ProviderRegistry(); r.register('openai', impl); r.register('openai', impl)  // second call

Output

Error: Provider "openai" is already registered

Observed from plugins/dsh-scaffold/lib/seam/provider.js:55-58; plugins/dsh-scaffold/test/seam.test.ts:27-30; plugins/dsh-scaffold/README.md:164

Brief examples

  • applyFailClosed
  • parseVerdict

Configuration

No runtime configuration: the gates and helpers are pure functions. The only configuration surface is cordis.patch.yml, the bundle-patch layer shipped for harness profile composition; it mounts no plugin row (the kit is a library) and documents how consuming plugins add their own rows.

Tools & surfaces

SubpathPurpose
seamProviderRegistry<T> — reversible, fail-loud named provider registry.
gatesapplyFailClosed; makeEventGate / maybeAppendSessionEvent / probeIgnorableAppend.
sharedsanitize (Stripper, redactText, redactMapping, sanitizeText, sanitizeUrl), pricing (BUILTIN_PRICES, estimateUsageCost, tokenCarbon, latencyStats, formatMoney, formatTokens), judge (parseVerdict, VERDICT_SCHEMA, riskExceeds).
verifyMechanical CI gates (verify-license, verify-readme-languages, verify-seam) with a VerifyReport and a non-zero-exit CLI: node lib/verify/cli.js all .
template/New-plugin skeleton (cordis.yml, three-role plugin, test, README, renovate.json5).
root barrelRe-exports all of the above.

Permissions & data

The kit performs no I/O, no network access, and no subprocess spawns on its own. Stripper keeps placeholder→original mappings in memory only, and stats()/redactMapping() never emit plaintext; a consumer that persists a mapping owns that decision and its storage permissions.

Security boundaries

  • sanitize/redact* are display hygiene, not a security boundary: they reduce leakage into logs and results, they do not authenticate or authorize.
  • Approval gates are fail closed by default (rejected); the only grant path is an explicit allow-once opt-in.
  • Session-event appends the host refuses are skipped, never retried in a way that could break session resume.
  • Report vulnerabilities via GitHub Security Advisories — see SECURITY.md.

Known limitations

  • Hosts whose Session.append third argument is a SurfaceIntent (0.1.2-rc.1) throw validateNext on the ignorable-envelope probe; the gate degrades to skip-unknown, so audit events are dropped (fail closed) rather than logged on those hosts.
  • 0.1.2-rc.1 (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged.
  • The kit ships no browser UI half; it is a library consumed by the Host (and optionally Client) halves of other plugins.

Development

pnpm install
pnpm run typecheck        # tsc --noEmit
pnpm run typecheck:ci     # CI face: tsc -p tsconfig.ci.json --noEmit
pnpm test                 # vitest unit tests
pnpm run build            # emit lib/ + declarations (also run by prepare)
pnpm run verify:self-contained
pnpm run verify:artifacts

Topics

This repository is also the maintenance hub for the ecosystem: scripts/sync-peer-range.mjs re-pins the shared peer band across every repo in the target directory in one command, renovate/default.json5 is the shared Renovate preset every repo extends, .github/workflows/npm-publish.yml is a reusable tag-triggered publish workflow (needs only an NPM_TOKEN secret), and data/repos.json is the ecosystem registry consumed by the portal. Read that file for the roster; the per-plugin READMEs carry the collapsed list. See docs/ecosystem-tooling.md.

Keywords: dsh, dsh-plugin, deepseek-harness, deepseek, cordis, perrylink, provider, seam, approval, sanitize, pricing, judge.

Contributors

Maintained by PerryLink with contributions from the DSH plugin ecosystem.

PerryLink DSH Plugin Family

This project is part of the DeepSeek Harness plugin family from PerryLink. The roster stays collapsed below so every README keeps a short first screen; expand it to see every row and its status.

Expand all plugins
PluginStatus
dsh-aqua-input-check
dsh-archive-check
dsh-auto-review
dsh-autotier🧊 FROZEN — see the repo README
dsh-bid-ca-precheck
dsh-bid-qual-check
dsh-cert-mcp🧊 FROZEN — see the repo README
dsh-checkpoint-rewind
dsh-click
dsh-composer-history
dsh-contract-stance
dsh-customs-doc-check
dsh-data-quality

License

Apache-2.0 — see LICENSE.

dsh-demurrage-ledger
dsh-doublecheck
dsh-drill-script-check
dsh-eia-guide-check
dsh-emergency-plan
dsh-essay-rubric-check
dsh-evidence-check
dsh-export-ctl-check
dsh-fast
dsh-fmea-table-check
dsh-forecast-penalty
dsh-fund-research
dsh-github
dsh-gongwen-flow-check
dsh-gongwen-word-check
dsh-guard-plan-qc
dsh-hazchem-check
dsh-hazplan-check
dsh-hidden-risk-map
dsh-hs-classify
dsh-icd-rule-check
dsh-industry-research
dsh-lawcite-adapter
dsh-laya
dsh-lc-doc-check
dsh-learning-gap-check
dsh-library
dsh-local-ai
dsh-lsp-actions
dsh-mask
dsh-mcp-panel
dsh-medrec-qc
dsh-memento
dsh-nsfc-form-check
dsh-nurse-record-check
dsh-observe
dsh-origin-rvc-check
dsh-ota-review-check
dsh-output-styles
dsh-paper-doc-adapter
dsh-permission-rules
dsh-permit-report-check
dsh-pipeline-check
dsh-pleading-draft
dsh-plugin-doctor
dsh-plugin-guide
dsh-scaffold
dsh-plugin-upgrade
dsh-policy-brief-draft
dsh-power-loss-split
dsh-power-ticket-check
dsh-ppap-check
dsh-protest-deadline
dsh-railway-window
dsh-repair-order-qc
dsh-research-report
dsh-review-reply-check
dsh-rulefile-check
dsh-safety-brief-check
dsh-score
dsh-session-sync
dsh-site-log-check
dsh-skill-pack-security
dsh-soe-decision-check
dsh-soilwater-check
dsh-sop-sync-check
dsh-spc-gbt-adapter
dsh-talk
dsh-tender-extract
dsh-tender-matrix
dsh-test-drive
dsh-ticktick
dsh-translate
dsh-warranty-calc
dsh-community-bench🧊 FROZEN — see the repo README
dsh-budget🧊 FROZEN — see the repo README
dsh-claude-move🧊 FROZEN — see the repo README
dsh-defend🧊 FROZEN — see the repo README
dsh-draw🧊 FROZEN — see the repo README
dsh-reach🧊 FROZEN — see the repo README
dsh-background-agents🚫 RETIRED — see the repo README
dsh-session-pin🚫 RETIRED — see the repo README
dsh-team-rooms🚫 RETIRED — see the repo README