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
P

@dsh-electron/dsh-plugin-scaffold

Plugin Scaffold

一个最小化的外置 DeepSeek Harness 插件脚手架:兼容性门控、主机服务条目、浏览器客户端锚点,以及完整的构建/测试/冒烟测试链路

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

npx -y @deepseek-ai/dsh plugin --profile web add github:cherrchen/dsh-plugin-scaffold#971e114f91be7c36f40fd3f222f2e77c66316d4b
README兼容性版本

兼容性与来源证明

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

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/20

版本

0.0.0stable
2026/10/20

相关插件

正在加载相关插件…

最新版
0.0.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/20
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

dsh-plugin-scaffold

中文 | English

项目简介

这是一个最小的 out-of-tree DSH(DeepSeek Harness)插件脚手架。它不修改上游任何包,把搭一个 DSH 插件真正需要、却很容易搭错的部分先准备好:

  • bundle 骨架:兼容性门禁行、宿主服务行、浏览器 client 图锚点行,三行各司其职;
  • host/client 分半构建:tsdown 产出宿主 ESM 与浏览器闭包工厂,tsc 产出两套声明;
  • 兼容性代码契约:精确版本 allowlist、unsupported / mixed / incomplete 判定、升级车道;
  • 完整验证链:类型检查、lint、单测、组合冒烟、打包门禁、文档检查;
  • 工程约定:AGENTS.md、.agent/、docs/ 九分区、双语 README/CHANGELOG、CI/release/upgrade/diag 工作流。

脚手架当前只提供可运行的骨架:src/service.ts 暴露一个占位服务,src/client/index.ts 的 apply 为空。把这里替换成你的插件行为即可,其余基础设施不需要重搭。

环境要求

作为插件使用者:一个下表中的 DSH 版本(精确匹配,不是范围)。dsh plugin 负责安装,无需本地 Node 工具链。

DSH 系列受支持的版本
0.2.10.2.1-rc.2

从源码开发:Node.js ^22.19.0 || >=24,pnpm 11.25.0(建议经 corepack 启用);开发 pin 的 DSH 为 0.2.1-rc.2。

快速开始

git clone https://github.com/cherrchen/dsh-plugin-scaffold.git my-dsh-plugin
cd my-dsh-plugin
export CI=true
pnpm install
pnpm verify:all

pnpm verify:all 会依次跑 lint、typecheck、build、test、组合冒烟、打包门禁与打包冒烟。首次运行需要能访问 npm registry。

把它变成你的插件

脚手架里的所有标识都集中在一组明确的 name 上。派生新项目时,按下表替换后再跑 pnpm verify:all:

位置脚手架当前值替换为
package.json name@dsh-electron/dsh-plugin-scaffold你的包名
package.json repository.urlgit+https://github.com/cherrchen/dsh-plugin-scaffold.git你的仓库地址
LICENSE 版权行Copyright (c) 2026 Cherry Chen你的名字或组织
包名引用(源码/脚本/测试)@dsh-electron/dsh-plugin-scaffold你的包名
环境变量DSH_PLUGIN_SCAFFOLD_COMPATDSH_<YOUR_PLUGIN>_COMPAT
兼容性服务键dshPluginScaffoldCompat你的服务键
宿主服务键dshPluginScaffold你的服务键
Connection 通道/dsh-plugin-scaffold你的通道
patch 行 iddsh-plugin-scaffold-compat / -service / -client你的行 id
文档与计划文件名含 dsh-plugin-scaffold 的文件你的文档名

一次定位所有需要改的地方:

grep -rn "dsh-plugin-scaffold\|dshPluginScaffold\|DSH_PLUGIN_SCAFFOLD" \
  --exclude-dir=node_modules --exclude-dir=.git --exclude-dir=lib .

随后按你的插件实际耦合的包,调整 src/compat/dsh-version.ts 里的 REQUIRED_CORE_PACKAGES、OPTIONAL_CORE_PACKAGES 与 peerDependencies;pnpm compat:check 会在两处漂移时报错。

安装与验证组合

安装进 DSH 运行时并检查组合:

dsh plugin --profile web add /path/to/repo
dsh --profile web --dump-config | grep -A4 'dsh-plugin-scaffold'

预期输出:

# == @dsh-electron/dsh-plugin-scaffold
- id: dsh-plugin-scaffold-compat
  name: '@dsh-electron/dsh-plugin-scaffold/compat'
- id: dsh-plugin-scaffold-service
  name: '@dsh-electron/dsh-plugin-scaffold/service'
- id: dsh-plugin-scaffold-client
  name: '@dsh-electron/dsh-plugin-scaffold'

dsh-plugin-scaffold-compat 是启动门禁,dsh-plugin-scaffold-service 是宿主服务半部(它 inject dshPluginScaffoldCompat,门禁不过即不启动),dsh-plugin-scaffold-client 挂在裸包名上,是 web 客户端图读取 dsh.client 声明的唯一锚点。

[!TIP] dsh 不在 PATH 里时(例如用源码仓库跑 DSH),把命令里的 dsh 换成 pnpm dsh。

开发命令

pnpm compat:check       # allowlist / peers / 开发 pin / 已安装树四者一致
pnpm lint               # oxlint
pnpm typecheck          # host + client 两面,noEmit
pnpm build              # 声明 + tsdown bundle(host ESM + browser client)
pnpm test               # vitest;断言 BUILT lib/ 产物,所以要先 build
pnpm smoke              # smoke:compose,真实 dsh plugin add + --dump-config
pnpm pack:check         # tarball 成员、exports 目标、patch 引用模块
pnpm smoke:packed       # 对打包产物复跑组合冒烟
pnpm docs:check         # 文档结构检查
pnpm verify:all         # 上面除 compat:check 外的完整链

项目结构

.
├── src/
│   ├── compat.ts                    启动门禁(版本 allowlist 与混装判定)
│   ├── compat/dsh-version.ts        兼容性契约本体:SUPPORTED_DSH_RELEASES、包清单、分类
│   ├── service.ts                   宿主服务半部(占位服务,替换为你的插件行为)
│   ├── client/                      浏览器半部(空 apply,替换为你的槽位贡献)
│   ├── contract.ts                  host/client 共用的 Connection 通道名
│   └── index.ts                     公共面 barrel;空 apply 同时承载裸包名 client 锚点行
├── tests/                           兼容性判定、patch 不变量、client 制品形态
├── scripts/                         冒烟、兼容性检查、打包门禁、升级流程、lefthook 安装器
└── docs/                            需求、架构、ADR、计划、开发流程、参考与故障排查

贡献指南

  1. 先读 AGENTS.md(仓库级规则)与开发工作流。
  2. 从 main 拉分支;提交信息遵循 conventional commits。
  3. PR 前本地必须全部通过:pnpm verify:all、pnpm compat:check、pnpm docs:check。
  4. 影响行为的变更需同批更新 docs/ 下对应文档;README 保持中英双语同步;有取舍的工程决策请新增 ADR。
  5. 硬约束:不修改上游仓库(deepseek-harness)任何包。

已知限制

  • 插件行为尚未实现:service.ts 只提供 dshPluginScaffold 服务键与兼容性裁决,客户端 apply 为空。这是刻意的起点,不是缺陷。
  • 支持矩阵是精确版本 allowlist:宿主版本不在清单上、或核心包混装了不同版本时,被门禁的服务行不启动,组合退化为"没装这个插件"(ADR-0001)。
  • 上游接缝没有 semver 承诺:升级车道只提供候选版本的证据,提升支持矩阵是人工决策。

文档

  • 版本变更记录(CHANGELOG)
  • 用户指南
  • 脚手架需求
  • DSH 插件 bundle 参考
  • 决策记录(ADR)
  • 计划
  • 开发工作流
  • 常见问题排查

Coding Agent 的仓库级规则定义于 AGENTS.md。

许可证

MIT