这是由 SparkElf 维护的 DeepSeek Harness(dsh)独立插件仓库。这里的插件通过 profile composition bundle 安装到上游 dsh(dsh plugin --profile <name> add <package-or-git-spec>;每个包自行声明 Cordis 插件入口),并且不依赖 deepseek-harness-plus 产品分支。
-
deepseek-harness-plus跟踪 dsh 与 Plus 产品,并通过固定版本的 manifest 组合第三方插件。 - 本仓库保存 SparkElf 自有插件的源码,使这些插件也能直接用于原版 dsh。所有权与分发规则记录在 Plus 插件所有权与分发决策 中。
-
@sparkelf/dsh-plugin-ping:提供/ping连通性命令;无需模型调用即可回复pong。 -
@sparkelf/dsh-mobile-bridge:完整的 Host 与 Client 插件,提供出站 E2EE 隧道、配对二维码和一等公民的“移动连接”设置页。手机端只注入连接 facade;Harness 各功能包继续拥有自己的响应式界面。 -
@sparkelf/dsh-mobile-bridge-server:多用户盲中继,支持邮箱验证码、可选的微信身份通道、页面内相机扫码和持久手机登录,让手机通过自有服务器访问本地 Harness。 -
@sparkelf/dsh-dataops-integration:独立DSH的完整DataOps Host + Web Client连接插件,拥有Authorization Code + PKCE、持久target、session-lifetime access credential、Settings和generic MCP组合;不修改DSH core,也不在DataOps托管容器中挂载。 -
@sparkelf/dsh-dataops-managed:DataOps托管workspace的JWT与HTTP MCP插件;复用当前DataOps会话权限,不发起OAuth,也不提供连接或断开操作。 -
@sparkelf/dsh-chart:完整的 Host + Web Client 交互图表 capability。Host 记录可 durable replay 的完整 ECharts option,Client 在 Harness 消息流中渲染并负责 resize、主题切换和 disposal。当前为 opt-in 发布候选,不默认挂载,也不在正式发布前声明生产 npm pin。 -
@sparkelf/dsh-query-result-analysis:有界分页、checkpoint和hierarchical reduction的独立DataOps query-result分析插件;每个模型批次和归并进入持久DSH子会话,由普通AgentLoop记录模型可见内容并拥有重试。 -
@sparkelf/dsh-univer-government-docs:依赖dsh-univer-office的政府文档资产与 Skill 插件,注册通用政务和正式红头两份原生 Traditional.univer模板,不新增模型 Tool。 -
@sparkelf/dsh-plugin-supervisor:独立的 Plus runtime Supervisor,提供 Host Session捕获/恢复入口、dsh-plus-supervisorNode executable、local command socket和进度页;不依赖 Plus fork源码。
- CI(
ci.yml):每次 push 和 PR 都执行 pnpm install、tsc --noEmit、Vitest 单元测试和可发布制品构建。 - CD(
publish.yml):v*tag 触发后,重新执行 typecheck、测试和构建,再使用NPM_TOKENsecret 将包发布到 npm。 - UI 系统测试只断言可操作交互和可见状态变化;间距、对齐、像素几何、计算样式和截图由人在目标视口审查,截图不作通过条件。真实DataOps取数、分析、图表和刷新回放用例要求已配置且已连接的profile及显式业务prompt/marker;缺少输入时只记为skip,不作为验收通过。
- 创建
packages/<name>,按照 Cordis 插件模式实现name、inject和apply;上游 dsh 的@deepseek-ai/dsh-command-compact可作为参考。 - 在包旁添加不需要密钥的单元测试。
- 插件不得依赖
deepseek-harness-plus;只能依赖已发布的上游包(@deepseek-ai/cordis、@deepseek-ai/dsh-*)。 - 更新包版本,并通过
v<repo-version>tag 发布。 - 根文档和面向用户的包 README 必须在同一
README.md中维护“中文”和“English”两个对应章节,内容变更时同步更新。
This repository contains independent DeepSeek Harness (dsh) plugins maintained by SparkElf. The plugins install into upstream dsh through profile composition bundles (dsh plugin --profile <name> add <package-or-git-spec>; each package declares its own Cordis plugin entry) and never depend on the deepseek-harness-plus product fork.
-
deepseek-harness-plustracks dsh and the Plus product, and composes third-party plugins through a version-pinned manifest. - This repository owns the source of SparkElf plugins so they remain usable with vanilla dsh. The ownership and distribution rules are recorded in the Plus plugin ownership and distribution decision.
-
@sparkelf/dsh-plugin-ping: provides the/pingconnectivity command and replies withpongwithout a model call. -
@sparkelf/dsh-mobile-bridge: a complete Host and Client plugin providing an outbound E2EE tunnel, pairing QR, and first-class Mobile Bridge settings section. The phone injects only the connection facade; each Harness package retains ownership of its responsive UI. -
@sparkelf/dsh-mobile-bridge-server: a multi-user blind relay with email-code and optional WeChat identity channels, in-page camera scanning, and persistent phone sign-in, allowing phones to reach a local Harness through a self-hosted server. -
@sparkelf/dsh-dataops-integration: the complete Host + Web Client DataOps connection plugin for standalone DSH. It owns Authorization Code + PKCE, a persistent target, a session-lifetime access credential, Settings, and generic MCP composition; it changes no DSH core and is not mounted in DataOps-managed containers. -
@sparkelf/dsh-dataops-managed: the JWT and HTTP MCP plugin for DataOps-managed workspaces. It reuses current DataOps session permissions without OAuth or connect/disconnect controls. -
@sparkelf/dsh-chart: a complete Host + Web Client interactive-chart capability. The Host records a complete ECharts option for durable replay; the Client renders it in the Harness conversation and owns resize, theme changes, and disposal. It is currently an opt-in release candidate, is not mounted by default, and does not claim a production npm pin before an actual release exists. -
@sparkelf/dsh-query-result-analysis: an independent DataOps query-result analysis plugin with bounded paging, checkpoints, and hierarchical reduction. Each model batch and reduction runs in a durable DSH child session whose normal AgentLoop logs model-visible content and owns retry. -
@sparkelf/dsh-univer-government-docs: government-document assets and a Skill plugin fordsh-univer-office. It registers native Traditional.univertemplates for general government and official redhead documents without adding a model-facing Tool. -
@sparkelf/dsh-plugin-supervisor: an independent Plus runtime Supervisor containing the Host Session capture/recovery entry,dsh-plus-supervisorNode executable, local command socket, and progress page without depending on Plus fork source.
- CI (
ci.yml): runs pnpm install,tsc --noEmit, Vitest unit tests, and publishable artifact builds on every push and PR. - CD (
publish.yml): onv*tags, repeats typecheck, tests, and builds before publishing packages to npm with theNPM_TOKENsecret. - UI system tests assert only operable interactions and visible state changes. Humans review spacing, alignment, pixel geometry, computed CSS, and screenshots at target viewports; screenshots are not pass criteria. The real DataOps query, analysis, chart, and reload-replay case requires a configured connected profile plus explicit business prompt/markers; missing inputs produce only a skip and never acceptance evidence.
- Create
packages/<name>and implementname,inject, andapplyfollowing the Cordis plugin pattern; upstream dsh's@deepseek-ai/dsh-command-compactis the reference. - Add keyless unit tests beside the package.
- Keep the plugin independent of
deepseek-harness-plus; depend only on published upstream packages (@deepseek-ai/cordis,@deepseek-ai/dsh-*). - Bump the package version and publish through a
v<repo-version>tag. - Root-facing and user-facing package documentation must keep matching “中文” and “English” sections in the same
README.md, updated together whenever the content changes.