DeepSeek Harness plugin

DSH-arena

Local-first experiment and evaluation workbench for DeepSeek Harness.

Jump to install

Source facts

Repository
Apageoflove/DSH-arena
Latest update
Aug 15, 2026
Category
Tools & Capabilities
GitHub stars
3
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Apageoflove/DSH-arena
Plugin: DSH-arena
Author: Apageoflove

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

DSH Arena

DSH Arena 是 DeepSeek Harness(DSH)的本地实验与评估工作台插件。它拿同一个任务、同一份仓库快照去对比多个候选 profile:先把没过硬性门槛(hard gate)的跑法拦下来,再做 Pareto 排序;导出报告时自动脱敏常见凭据;还带一个 Web 实验台。

![DSH Arena 界面截图 1](git-img/联想截图_20260815224710.png)

![DSH Arena 界面截图 2](git-img/联想截图_20260815224742.png)

现在能做什么

  • 原子化的本地持久化存储,运行队列有并发上限,支持中止和超时
  • 确定性 hard gates:不满足直接判失败,不进入排序
  • Pareto 排名与 winner 汇总
  • Web 矩阵界面,实时刷新
  • 执行走 adapter 驱动,不猜、不调 DSH 没文档化的 headless 命令

兼容性边界

  • 只按官方文档化的 Cordis 契约写:nameapply(ctx, config)、Schemastery 的 Config schema
  • 不碰 DSH Client/Host 没文档化的内部接口;能力识别用特性探测(ctx.arena),不用私有槽位
  • 真实 DSH 上的 Web / Headless E2E 还没跑通,所以本仓库不声称 100% 兼容。等真机验证过了再改口

构建

Node 24 自带 TypeScript 类型剥离,构建不需要额外依赖:

cd dsh-arena
npm run build
npm test

产物是 lib/index.js(host 入口)和 lib/client.js(浏览器入口)。package.json 里声明了 dsh.bundle.patchdsh.client;目前 private: true,还没发 npm。

装进 DSH

先构建:

npm run build

然后在官方 DeepSeek Harness 检出目录里执行(或把 pnpm dsh 换成全局安装的 dsh 命令):

pnpm dsh plugin --profile arena add <本目录路径>
pnpm dsh --profile arena --dump-config
pnpm dsh --profile arena web

不想走源码目录安装的话,先 npm pack 打出本地 tgz,再直接 add 那个文件:

pnpm dsh plugin --profile arena add dsh-arena-0.1.15.tgz

cordis.patch.yml 是发布用的补丁,解析为 name: dsh-arena,里面没有本机绝对路径。

本地开发

cordis.local.patch.yml 直接指向工作区里的 TypeScript 入口,改完刷新即可。从 DSH 检出目录跑:

pnpm dsh web --patch <本目录>/cordis.local.patch.yml

项目挪了位置,只需要改这个文件里的绝对路径。

服务接口

host 服务暴露的操作都是显式的:

startExperiment(input)recordRun(run)getSnapshot()report(directions)subscribe(listener)clear()flush()getPersistenceStatus()bindExecutor(adapter, options)

  • 第一次修改前先 await arena.ready
  • 只有 bindExecutor 能创建运行编排器,adapter 必须由调用方传入——它不会自己发明 DSH headless 命令,也不会悄悄发起模型调用

持久化默认写到 .dsh-arena/state.json(同目录临时文件 + 原子重命名),想关掉就设 persistencePath: false。路径都限制在 dataRoot 内,越界路径直接拒绝。

Web 实验台与离线报告

界面是 Shadow DOM 组件:当 ctx.arena 服务可用(提供 getSnapshot / report / subscribe)时实时渲染。没有假设一定有浏览器 Host bridge,所以提供了「导入报告」:选一个本地 Arena JSON 报告,离线渲染出:

  • 候选/模型运行矩阵
  • run 与 hard gate 状态
  • 质量、时长、token、成本指标
  • Pareto 候选与建议 winner
  • 审计告警

导入的内容只用 DOM API 和 textContent 渲染,不拼动态 HTML。文件留在浏览器里,没有上传或遥测。

测试与安全

npm test 在 Node 24 上直接跑,不需要装运行时依赖。

  • 核心不会自动执行生成的 DSH 命令,不会删 worktree,git 参数一律用数组构建
  • 实验 runner 执行的是你自己配置的候选命令(--dsh)——Windows 上 pnpm/dsh 是 .cmd 启动器,必须经命令解释器拉起;任务文本拼入命令前已做引号转义。信任边界:跑的是你自己机器上、你自己写的命令
  • 导出 JSON/JSONL/Markdown 前,按字段名和值对内联的 authorization / token / key / secret / password / cookie 做脱敏