dsh-scaffold

中文文档
0.2.1发布于 2026/11/03Apache-2.0TypeScriptES Module零依赖

PerryLink DSH插件的共享零运行时依赖工具包:可插入的Provider注册接缝、失败关闭审批和自适应会话事件门、机械验证脚本、共享清理/定价/判断模块和新插件框架。

中文使用文档
文档目录16 节
  1. 安装和卸载
  2. 什么是洗碗机脚手架?
  3. 兼容性
  4. 你得到了什么
  5. 快速启动
  6. 例子
  7. 配置
  8. 工具和表面
  9. 权限和数据
  10. 安全边界
  11. 已知的限制
  12. 发展
  13. 主题
  14. 贡献者
  15. PerryLink DSH插件家族
  16. 许可证

dsh-scaffold

重命名: 以前 @perrylink/dsh-plugin-kit;现在 dsh-scaffold。旧的repo保留为指针/备份。新屋: https://github.com/PerryLink/dsh-scaffold

非官方配套工具。 DSH标准家族的一部分;不是认证、认可、安全审核或官方背书。标准: https://github.com/PerryLink/dsh-standards。这个 dsh.standards Block是 not-run 占位符,不是通行证。

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

共享 zero-runtime-dependency 用于PerryLink DSH插件库的工具包。每个项目的审计发现,有20多个插件手工滚动了相同的Provider接缝,并复制了相同的清理/定价/判决形状,所以这个包将所有这些——可插入的Provider接缝、失败关闭的审批和自适应会话事件门、机械验证脚本和共享的清理/定价/判断纯模块——提取到一个ESM + TypeScript包中。

包名称。 这个项目发布到npm dsh-scaffold。裸npm名称 dsh-scaffold 属于一个不同的,不相关的项目-安装它不会安装此包。

  • 1024存储通道: npm i -g dsh1024 有一次,然后 dsh1024 plugin --profile web add dsh-scaffold (数着) deepseek1024.com 安装排名)。

npm version License DSH plugin DSH Market Node Gitee CI Version npm downloads dshfind

英语 | 简体中文 | 西班牙语 | 葡萄牙商业银行 | हिन्दी

共享 zero-runtime-dependency PerryLink DSH插件的工具包 存储库。每个项目的审计发现有20多个插件是手工制作的 相同的提供商接缝,重复相同的清理/定价/裁决 形状,所以这个包提取了它的全部——可插入的Provider接缝 失败关闭审批和自适应会话事件门,机械验证 脚本和共享的净化/定价/判断纯模块合二为一 ESM + TypeScript包。

安装和卸载

作为一个库,安装是 pnpm add (参见快速入门)。该包裹还可以发送电子邮件 故意空 dsh.bundle.patch 层(cordis.patch.yml),所以它流动 通过线束通道,当一个配置文件希望套件安装为 包:

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

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

删除:

pnpm remove dsh-scaffold

没有任何东西注册全局状态:卸载与安装完全相反。

什么是洗碗机脚手架?

共享 zero-runtime-dependency 用于PerryLink DSH插件库的工具包。每个项目的审计发现,有20多个插件手工滚动了相同的Provider接缝,并复制了相同的清理/定价/判决形状,所以这个包将所有这些——可插入的Provider接缝、失败关闭的审批和自适应会话事件门、机械验证脚本和共享的清理/定价/判断纯模块——提取到一个ESM + TypeScript包中。

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

工作流程概述:调用→插件→结果。下面的示例使用真实的命令界面。

兼容性

  • 近年来利用该工具包不进口任何东西 @deepseek-ai/* 在运行时。 @deepseek-ai/cordis (^4.0.5-alpha.1), @deepseek-ai/schemastery (^3.18.5-alpha.1),以及 @deepseek-ai/dsh-* 包 可选 中的对等依赖项 >=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 带PerryLink插件回购分享;它们仅用于类型 交互操作。针对dsh-v0.1.7-alpha验证2026-09-11。1主结帐 (全闸门链+配置文件安装烟雾),并重新验证2026-10-05 这个 dsh-v0.2.1-alpha.1 结帐(全闸门链+型材安装烟)。
  • 节点: ^22.19.0 || >=24.0.0仅限ESM。
  • 线的兼容性:名字和形状的镜像 dsh-mask (清洁) dsh-budget (定价), dsh-auto-review (法官和法官) fallbackPolicy 词汇),所以迁移是机械的。

你得到了什么

  • 零运行时依赖项 -纯核(seam, gates, shared) 是网络安全。
  • ESM +严格TypeScript 每个模块的JSDoc合约 strict, noUncheckedIndexedAccess, exactOptionalPropertyTypes。
  • 故障关闭和自适应门 -批准永远不会默认为授予; 在拒绝未知事件的主机上,会话事件追加会优雅地降级 类型。
  • 新插件框架 - - - - - - template/ 与 cordis.yml三个角色 src/index.ts (服务定义/提供者/消费者),测试,以及 shared更新预设。

快速启动

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

从npm:

pnpm add dsh-scaffold

源自git (the) prepare 脚本构建 lib/ 仅使用生产 依赖项):

pnpm add github:PerryLink/dsh-scaffold

一步替换手工卷制的注册表:

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()

例子

这些是插件的真正入口点;安装一次,然后调用一次。

详细的例子

命令

import { createStripper } from 'dsh-scaffold/shared'
createStripper().strip('call 13800138000 or email [email protected]')

输出

call <PHONE_1> or email <EMAIL_1>

观察到的 README.md:153 (shared sanitize); src/shared/sanitize.ts:268; test/sanitize.test.ts:8-19

失败的分支

输入

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

输出

Error: Provider "openai" is already registered

观察到的 plugins/dsh-scaffold/lib/seam/provider.js:55-58; plugins/dsh-scaffold/test/seam.test.ts:27-30; plugins/dsh-scaffold/README.md:164

简短的例子

  • applyFailClosed
  • parseVerdict

配置

没有运行时配置:门和助手是纯函数。唯一的 构型面为 cordis.patch.yml, bundle-patch层发布 用于线束剖面组成;它没有安装插件行(该工具包是一个 库)和文档如何消费插件添加自己的行。

工具和表面

子路径目的
seamProviderRegistry<T> -可逆的,故障响亮的命名提供商注册表。
gatesapplyFailClosed; makeEventGate / maybeAppendSessionEvent / probeIgnorableAppend。
sharedsanitize (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 和非零退出的CLI: node lib/verify/cli.js all .
template/新插件骨架(cordis.yml、三角色插件、测试、README、 renovate.json5).
根管再出口上述所有产品。

权限和数据

该工具包不执行I/O,不执行网络访问,也不生成子进程 自己的。 Stripper 只在内存中保留占位符→原始映射,和 stats()/redactMapping() 永远不要发出明文;持久的消费者 Mapping拥有该决策及其存储权限。

安全边界

  • sanitize/redact* 是 显示卫生,而不是安全边界:他们 减少泄漏到日志和结果中,它们不进行身份验证或授权。
  • 审批门默认关闭(rejected); 唯一的授权路径 是显式的 allow-once 可选。
  • 跳过主机拒绝的会话事件追加,从不以某种方式重试 这可能会中断会话恢复。
  • 通过GitHub安全咨询报告漏洞-参见 SECURITY.md。

已知的限制

  • 主机的 Session.append 第三个参数是 SurfaceIntent (0.1.2-rc.1)把 validateNext 在可忽略包络探针上;这个 Gate降级为skip-unknown,因此审计事件被丢弃(失败关闭) 而不是登录那些主机。
  • 0.1.2-rc.1(改编于2026-09-02):会话信封保留其可忽略的字段,仅用于存储日志读取兼容性-会话。Append仍然不能盖章,因此审计行为不变。
  • 该工具包没有提供一半的浏览器UI;它是宿主(and)使用的库 (可选客户端)其他插件的一半。

发展

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 在每个repo中重新固定共享的对等带 中的目标目录。 一个命令, renovate/default.json5 共享更新预设每个回购 延伸, .github/workflows/npm-publish.yml 可重用的标签是触发的吗 发布工作流(只需要一个 NPM_TOKEN 秘密), data/repos.json 是 门户使用的生态系统注册表。读一下那份名单;每个插件的readme携带折叠列表。看到 文档/ ecosystem-tooling.md。

关键词:dsh, dsh-plugin, deepseek-harness, deepseek, cordis, perrylink 供应商、接缝、批准、清理、定价、判断。

贡献者

维护的 PerryLink 与贡献 从DSH插件生态系统。

这个项目是DeepSeek线束插件家族的一部分 PerryLink。花名册保持在下面,所以每个自述文件都保持一个简短的第一屏幕;展开它以查看每一行及其状态。

展开所有插件
插件状态
dsh-aqua-input-check
dsh-archive-check
dsh-auto-review
dsh-autotier🧊FROZEN -参见repo README
dsh-bid-ca-precheck
dsh-bid-qual-check
dsh-cert-mcp🧊FROZEN -参见repo 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-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 -参见repo README
dsh-budget🧊FROZEN -参见repo README
dsh-claude-move🧊FROZEN -参见repo README
dsh-defend🧊FROZEN -参见repo README
dsh-draw🧊FROZEN -参见repo README
dsh-reach🧊FROZEN -参见repo README
dsh-background-agents🚫已退休-请参阅repo README
dsh-session-pin🚫已退休-请参阅repo README
dsh-team-rooms🚫已退休-请参阅repo README

许可证

Apache-2.0 -参见 许可证。

版本与发布记录

dsh-scaffold 共发布 3 个版本,首次发布于 2026/11/01;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.2.1latest2026/11/03今天
0.2.02026/11/012 天前
0.0.0-stage2026/11/012 天前

关于 dsh-scaffold 的常见问题

dsh-scaffold 是什么?

PerryLink DSH插件的共享零运行时依赖工具包:可插入的Provider注册接缝、失败关闭审批和自适应会话事件门、机械验证脚本、共享清理/定价/判断模块和新插件框架。

如何安装 dsh-scaffold?

在项目目录运行 npm install dsh-scaffold,或使用 pnpm add / yarn add / bun add。

dsh-scaffold 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

dsh-scaffold 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

dsh-scaffold 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.19.0 || >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

dsh-scaffold 可以商用吗?

dsh-scaffold 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

dsh-scaffold 还在维护吗?

最新版本 0.2.1 发布于 2026/11/03(今天);至今共发布 3 个版本,其中过去 12 个月发布了 3 个;首次发布于 2026/11/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。