PerryLink DSH 插件共用的零运行时依赖工具包:可插拔的服务商注册接缝、默认拒绝的审批与自适应会话事件闸门、机械校验脚本、共用的清洗/计价/评判模块,以及新插件骨架。
31.5/100
综合分
2
GitHub 星标
402
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @perrylink/dsh-plugin-kitnpm 源 · @perrylink/dsh-plugin-kit 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@perrylink/dsh-plugin-kit @ 0.1.17
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/14 04:18:24
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 8 处,展示前 8 条)
- 读取本地文件lib/verify/report.js:49
entries = readdirSync(current); - 读取本地文件lib/verify/report.js:60
stat = statSync(full); - 读取本地文件lib/verify/report.js:82
if (!existsSync(file)) - 读取本地文件lib/verify/report.js:85
return readFileSync(file, 'utf8'); - 读取本地文件src/verify/report.ts:69
entries = readdirSync(current) - 读取本地文件src/verify/report.ts:78
stat = statSync(full) - 读取本地文件src/verify/report.ts:99
if (!existsSync(file)) return undefined - 读取本地文件src/verify/report.ts:101
return readFileSync(file, 'utf8')
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-session@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval@deepseek-ai/schemastery@deepseek-ai/dsh-working-directory给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 可插拔服务商注册接缝
- 默认拒绝的审批闸门
- 自适应会话事件闸门
最近更新
在 GitHub 查看全部 →v0.1.222026-11-01
新增 dsh.standards 未运行占位符和 STANDARDS.md;修复已发布 0.2.2-alpha.2 元组的 peer 范围校验。npm:
v0.1.212026-11-01
Adds the dsh.standards not-run placeholder and STANDARDS.md to the manual template package. npm:
原文(未汉化)
v0.1.202026-10-18
· [0.1.20] - 2026-10-18
· 变更
· 把 tsdown/typescript(以及存在时的 @types/react)从运行时依赖移到 devDependencies。Git 安装仍会构建:pnpm 会为 git 依赖安装 devDependencies 并运行 prepare;npm 的 tarball 会带上构建好的 lib/。运行时依赖树不再包含构建链。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成@perrylink/dsh-plugin-kit
已迁移: 本项目现更名为 dsh-scaffold。本仓库仅作指引与备份保留,后续开发在新仓库进行。旧 npm 包 @perrylink/dsh-plugin-kit 已废弃。
非官方配套工具。 属于 DSH 标准家族;不构成认证、资质认定、安全审计或官方背书。标准见:https://github.com/PerryLink/dsh-standards。dsh.standards 块是 not-run 占位符,不代表通过。
dsh plugin --profile <name> add @perrylink/dsh-plugin-kit
PerryLink DSH 插件仓库共用的零运行时依赖工具包。逐项目审计发现,20 多个插件各自手写同一套 Provider 接缝,重复实现同样的 sanitize/pricing/verdict 结构,于是本包把这些全部抽出来——可插拔的 Provider 接缝、失败即拒绝的审批门与会话事件自适应门、机械化的 verify 脚本,以及共用的 sanitize/pricing/judge 纯模块——收进一个 ESM + TypeScript 包。
包名。 本项目在 npm 上发布为 @perrylink/dsh-plugin-kit。
展开完整文档(README 剩余 1 节)
@perrylink/dsh-plugin-kit
已迁移: 本项目现更名为 dsh-scaffold。本仓库仅作指引与备份保留,后续开发在新仓库进行。旧 npm 包 @perrylink/dsh-plugin-kit 已废弃。
非官方配套工具。 属于 DSH 标准家族;不构成认证、资质认定、安全审计或官方背书。标准见:https://github.com/PerryLink/dsh-standards。dsh.standards 块是 not-run 占位符,不代表通过。
dsh plugin --profile <name> add @perrylink/dsh-plugin-kit
PerryLink DSH 插件仓库共用的零运行时依赖工具包。逐项目审计发现,20 多个插件各自手写同一套 Provider 接缝,重复实现同样的 sanitize/pricing/verdict 结构,于是本包把这些全部抽出来——可插拔的 Provider 接缝、失败即拒绝的审批门与会话事件自适应门、机械化的 verify 脚本,以及共用的 sanitize/pricing/judge 纯模块——收进一个 ESM + TypeScript 包。
包名。 本项目在 npm 上发布为 @perrylink/dsh-plugin-kit。裸 npm 名 dsh-plugin-kit 属于另一个无关项目——安装它并不会装上本包。
- 1024 商店渠道:先执行一次 npm i -g dsh1024,再执行 dsh1024 plugin --profile web add @perrylink/dsh-plugin-kit(会计入 deepseek1024.com 的安装排名)。
DSH Market
dshfind
PerryLink DSH 插件仓库共用的零运行时依赖工具包。逐项目审计发现,20 多个插件各自手写同一个 Provider 接缝,重复实现同样的 sanitize/pricing/verdict 结构,所以这个包把这一切都抽出来——可插拔的 Provider 接缝、失败即拒绝的审批门与会话事件自适应门、机械化的 verify 脚本,以及共享的 sanitize/pricing/judge 纯模块——收进一个 ESM + TypeScript 包。
安装与卸载
作为库使用时,安装用 pnpm add(见快速开始)。这个包还附带一个刻意留空的 dsh.bundle.patch 层(cordis.patch.yml),所以当某个配置档想把这套工具作为包挂载时,它会走 harness 的 bundle 通道:
npm channel (published releases)
dsh plugin --profile web add @perrylink/dsh-plugin-kit
git channel (latest master)
dsh plugin --profile web add github:PerryLink/dsh-plugin-kit
卸载用:
pnpm remove @perrylink/dsh-plugin-kit
不会注册任何全局状态:卸载就是安装的逆操作。
dsh-plugin-kit 是什么?
PerryLink DSH 插件仓库共享的零运行时依赖工具包。逐项目审计发现,20 多个插件各自手写同一个 Provider 接缝,重复实现同样的 sanitize/pricing/verdict 结构,所以这个包把这一切都抽出来——可插拔的 Provider 接缝、失败即拒绝的审批门与会话事件自适应门、机械化的 verify 脚本,以及共享的 sanitize/pricing/judge 纯模块——收进一个 ESM + TypeScript 包。
dsh-plugin-kit 的工作流图:调用 → 插件 → 结果。
工作流概览:调用 → 插件 → 结果。下面的示例使用真实的命令接口。
兼容性
- DSH harness:这个工具包在运行时不会从 @deepseek-ai/ 导入任何东西。@deepseek-ai/cordis(^4.0.5-alpha.1)、@deepseek-ai/schemastery(^3.18.5-alpha.1)以及 @deepseek-ai/dsh- 系列包,都是可选的 peer 依赖,落在 PerryLink 插件仓库共用的 >=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 区间内;它们只用于类型互操作。2026-09-11 已针对 dsh-v0.1.7-alpha.1 master 检出验证(完整门链 + 配置档安装冒烟),2026-10-05 又针对 dsh-v0.2.1-alpha.1 检出重新验证(完整门链 + 配置档安装冒烟)。
- Node:^22.19.0 || >=24.0.0,仅支持 ESM。
- 接口兼容:名称和结构与 dsh-mask(sanitize)、dsh-budget(pricing)、dsh-auto-review(judge 与 fallbackPolicy 词汇表)保持一致,所以迁移是机械化的。
你能得到什么
- 零运行时依赖——纯核心(seam、gates、shared)在浏览器里也能安全运行。
- ESM + 严格 TypeScript——每个模块都有 JSDoc 契约;开启 strict、noUncheckedIndexedAccess、exactOptionalPropertyTypes。
- 失败即拒绝与自适应门——审批绝不默认放行;在拒绝未知事件类型的主机上,会话事件追加会优雅降级。
- 新插件骨架 — template/ 内含 cordis.yml、一个三角色 src/index.ts(服务定义 / 提供方 / 消费方)、一个测试,以及共享的 Renovate 预设。
快速开始
dsh plugin --profile web add github:PerryLink/dsh-plugin-kit
从 npm 安装:
pnpm add @perrylink/dsh-plugin-kit
从 git 安装(prepare 脚本只用生产依赖构建 lib/):
pnpm add github:PerryLink/dsh-plugin-kit
一步替换手写的注册表:
import { ProviderRegistry } from '@perrylink/dsh-plugin-kit/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()
示例
下面是插件真实的入口;安装一次,然后调用其中一个。
详细示例
命令
~~~sh
import { createStripper } from '@perrylink/dsh-plugin-kit/shared'
createStripper().strip('call 13800138000 or email a@b.com')
输出
~~~text
call <PHONE_1> or email <EMAIL_1>
来源:README.md:153 (shared sanitize); src/shared/sanitize.ts:268; test/sanitize.test.ts:8-19
失败分支
输入
~~~text
const r = new ProviderRegistry(); r.register('openai', impl); r.register('openai', impl) // second call
输出
~~~text
Error: Provider "openai" is already registered
来源:plugins/dsh-plugin-kit/lib/seam/provider.js:55-58; plugins/dsh-plugin-kit/test/seam.test.ts:27-30; plugins/dsh-plugin-kit/README.md:164
简要示例
- applyFailClosed
- parseVerdict
配置
没有运行时配置:门禁和辅助函数都是纯函数。唯一的配置面是 cordis.patch.yml,这是为 harness 配置档组合提供的 bundle 补丁层;它不挂载任何插件行(本套件是库),只说明使用方插件如何添加自己的行。
工具与接口面
| 子路径 | 用途 |
| seam | ProviderRegistry<T> — 可逆、失败即报错的具名服务商注册表。 |
| gates | applyFailClosed;makeEventGate / maybeAppendSessionEvent / probeIgnorableAppend。 |
| shared | sanitize(Stripper、redactText、redactMapping、sanitizeText、sanitizeUrl)、pricing(BUILTIN_PRICES、estimateUsageCost、tokenCarbon、latencyStats、formatMoney、formatTokens)、judge(parseVerdict、VERDICT_SCHEMA、riskExceeds)。 |
| verify | 机械化的 CI 门禁(verify-license、verify-readme-languages、verify-seam),带 VerifyReport 和非零退出的命令行:node lib/verify/cli.js all . |
| template/ | 新插件骨架(cordis.yml、三角色插件、测试、README、renovate.json5)。 |
| 根 barrel | 重新导出以上全部内容。 |
权限与数据
本套件自身不做 I/O、不访问网络、不启动子进程。Stripper 只在内存中保留占位符到原文的映射,并且
stats()/redactMapping() 绝不输出明文;持久化映射的调用方要自己承担这个决定,并管好存储权限。
安全边界
- sanitize/redact* 属于展示层卫生,不是安全边界:它们只减少泄漏到日志和结果里的内容,不做认证,也不做授权。
- 审批门默认失败关闭(rejected);唯一的放行路径是显式选择 allow-once。
- 宿主拒绝的会话事件追加会被跳过,绝不重试到可能破坏会话恢复的程度。
- 报告漏洞请走 GitHub Security Advisories,见 SECURITY.md。
已知限制
- 如果宿主的 Session.append 第三个参数是 SurfaceIntent(0.1.2-rc.1),可忽略信封探测会抛 validateNext;此时审批门退化为跳过未知项,审计事件被丢弃(失败关闭),而不是在这些宿主上记录日志。
- 0.1.2-rc.1(适配于 2026-09-02):会话信封保留可忽略字段,仅用于兼容已存储日志的读取——Session.append 仍然无法写入该字段,所以审计门行为不变。
- 本套件不提供浏览器 UI 部分;它是库,由其他插件的宿主部分(以及可选的客户端部分)使用。
开发
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
相关主题
本仓库也是生态的维护中心:scripts/sync-peer-range.mjs 一条命令就能在目标目录下所有仓库里重新锁定共享的 peer 版本区间;renovate/default.json5 是每个仓库都继承的共享 Renovate 预设;.github/workflows/npm-publish.yml 是可复用的、由 tag 触发的发布工作流(只需一个 NPM_TOKEN secret);data/repos.json 是门户读取的生态注册表。名单请读那个文件;各插件的 README 里带着折叠列表。详见 docs/ecosystem-tooling.md。
关键词:dsh, dsh-plugin, deepseek-harness, deepseek, cordis, perrylink, provider, seam, approval, sanitize, pricing, judge。
贡献者
由 PerryLink 维护,并得到 DSH 插件生态的贡献。
PerryLink DSH 插件家族
本项目属于 PerryLink 的 DeepSeek Harness 插件家族。名单默认折叠在下方,让每个 README 的首屏都保持简短;展开即可看到每一行及其状态。
展开全部插件
| 插件 | 状态 |
| dsh-aqua-input-check | |
| dsh-archive-check | |
| dsh-auto-review | |
| dsh-autotier | 🧊 FROZEN — 见仓库 README |
| dsh-bid-ca-precheck | |
| dsh-bid-qual-check | |
| dsh-cert-mcp | 🧊 FROZEN — 见仓库 README |
| dsh-checkpoint-rewind | |
| dsh-click | |
| dsh-composer-history | |
| dsh-contract-stance | |
| dsh-customs-doc-check | |
| dsh-data-quality | |
| 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-plugin-kit | |
| 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 | 🧊 已冻结 — 见仓库 README |
| dsh-budget | 🧊 已冻结 — 见仓库 README |
| dsh-claude-move | 🧊 已冻结 — 见仓库 README |
| dsh-defend | 🧊 已冻结 — 见仓库 README |
| dsh-draw | 🧊 已冻结 — 见仓库 README |
| dsh-reach | 🧊 已冻结 — 见仓库 README |
| dsh-background-agents | 🚫 已停用 — 见仓库 README |
| dsh-session-pin | 🚫 已停用 — 见仓库 README |
| dsh-team-rooms | 🚫 已停用 — 见仓库 README |
许可证
Apache-2.0 — 见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
PerryLink/dsh-plugin-kit
PerryLink DSH 插件共用的零运行时依赖工具包:可插拔的服务商注册接缝、默认拒绝的审批与自适应会话事件闸门、机械校验脚本、共用的清洗/计价/评判模块,以及新插件骨架。
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,778已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7