dsh-report-card

DSH PLUGIN开发与运行时

仓库 tespio/dsh-report-card · npm dsh-report-card

开发与运行时 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

DSH Report Card 是一个独立的动态基准插件,把候选 DSH plugin 装进一次性 profile 实测启动耗时、每轮钩子开销与上下文税,并输出能力面与风险标记报告卡。

一句话选型结论

按资料字段整理

dsh-report-card 是开发与运行时类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-11 创建于 2026-11-10
README 16.2 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-report-card
  1. 1
    确认版本与运行环境

    Node.js 要求 >=24.9.0;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求>=24.9.0来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-report-card可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-report-card:为 DeepSeek Harness 插件实测真实运行代价的报告卡

  • 一次性 profile 实测启动耗时
  • 每轮钩子与请求组装开销
  • 上下文税与能力面差异
  • 静态风险标记与证据
  • 报告卡可复现与归档

适用场景

记忆

上游标签

benchmarkdeepseek-harnessdshdsh-pluginplugin-quality

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-12): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✕ 未通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在开发与运行时场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-report-card当前 L4 · 沙盒安装通过 低风险 0 未标注 有
deepseek-harness L3 · 安装规范通过 低风险 24.6 万 未标注 无
rea L4 · 沙盒安装通过 低风险 2.6 万 0.1.1-rc.2 有
dsh-TUI L4 · 沙盒安装通过 中风险 4,292 0.1.7-rc.2 等 5 个 有
mirage L3 · 安装规范通过 低风险 3,681 未标注 无
dashi-taskboard L4 · 沙盒安装通过 低风险 3,311 0.1.1-rc.2 有

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方tespio仓库 dsh-report-card · 默认分支 main
分类开发与运行时dev
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-10 · 2026-11-11最后推送 2026-11-11
本站收录2026-11-11首次进入本站目录的时间

README 全文

16.2 KB
作者原文,中文版优先;只做安全转义,不改内容

DSH Report Card

An independent, dynamic benchmark for DeepSeek Harness plugins. It installs
one plugin into a throwaway profile, boots the real harness with it, runs one
scripted turn against a local fixture endpoint, and reports what the plugin
costs: boot time, per-turn hook overhead, the tokens it adds to the assembled
prompt, the capability surface it contributes, and the static risk flags its
package carries.

Every number is a reading from a real harness process — wall clock, process CPU,
or the exact bytes of the request it sent — none of it estimated from source
code. Every card stores its samples, its digest, and the command that reproduces
it.

What already exists, and why this is not a duplicate

Searched 2026-11-10: the dsh-plugin-catalog 2026.1110.18259 (9,959 plugins)
and npm. The adjacent tools are all static scores or in-profile meters:

Existing What it actually does Why it is a different thing
dsh-plugin-scorecard 0.3.2 Static quality/security score, rankings, history across the whole catalog Scores package files; never boots the plugin
dsh-quality-score 0.1.4 Static 0-100 from manifest, peers, dist-tags, docs Same: a metadata rubric, no runtime
dsh-trust-check 0.2.6 Static capability disclosure with file:line evidence Facts about source, not behaviour under load
dsh-xray 0.11.0 Per-plugin context-tax attribution, per-request token ledger Prices what is already loaded in your profile; cannot evaluate a candidate
dsh-context-doctor Token costs of instruction chains, skill catalogs, tool schemas Static accounting of the current context
dsh-agent-bench 0.1.1 Replays fixed agent cases and diffs scorecards Measures model behaviour; the plugin is not the subject
dsh-workspace-switch-cost Cold-start cost of switching workspaces Per-workspace, not per candidate plugin

One line: existing scorecards read a plugin's files, and the closest dynamic
instruments price what is already in your profile — nothing installs a candidate
into a disposable profile and times its boot, a scripted turn, and the exact
request it produces; that is what this does, so it complements them.

What a card contains

Dimension How it is measured
Boot wall Process start (performance.timeOrigin) → the measurement probe reporting the plugin tree composed, with and without the plugin
Boot CPU The child's own CPU time (user + system) at that same dump: what composing the tree cost, independent of what else the machine was doing. This is the graded boot figure
Launch The same point measured from process spawn, including OS process startup
Turn / step turn_start → turn_end and step_start → step_end on one fixed scripted turn
Assembly step/start (from the child's own session log inside the captured request) to the request reaching the fixture endpoint: prompt assembly and request serialization — the phase plugin hooks run in. This is the graded per-turn figure
Context tax Model-visible bytes of the request the harness actually sent (system + tools + messages), in tokens at the documented 4-chars/token heuristic; harness extension fields are counted separately
Capability surface Tools and schemas the model is offered, prompt sections and their sizes, event listeners per event, loader entries, prompt variables — all as a diff against the same profile without the plugin
Static risk flags Install scripts, shipped binaries, network hosts, subprocess use, dynamic code, filesystem writes, process.exit — with file and line evidence. Nothing is executed to produce them
Health ok, install-rejected, install-failed, boot-failed, turn-failed, entry-failed, entry-absent. A plugin that fails to activate is a failed card, never a passing one

See docs/example-card.md for a complete card of the
test fixture, and docs/example-card.svg for the
graphic version of the same card.

Every card is written three ways: JSON (the data), Markdown (the readable
report), and SVG (a self-contained 1200×900 graphic — grade badge, metric
tiles with noise floors, context breakdown, capability surface, risk flags).
The SVG opens in any browser, embeds in Markdown, and has no runtime
dependency. In a terminal the CLI prints a boxed, coloured card instead; a
redirected stream gets Markdown.

How it measures

┌──────────────── throwaway DSH_HOME ────────────────┐
subject package ► │ profile "rc-measured" ← shipped "headless" template │
│   subject plugin: an insert row, or the bundle list │
│   probe: inserted last, dumps the surface, exits    │
└────────────┬───────────────────────────┬────────────┘
│ surface runs              │ turn runs
▼                           ▼
spawn → probe dump → exit     spawn → session → turn → exit
boot wall/CPU + surface       assembly/step + exact request
DEEPSEEK_BASE_URL → local fixture
  • Fresh state. Each report gets a new DSH_HOME, a new profile copied from
    the shipped headless template, and an empty working directory. Your real
    profile is never opened, so a measured plugin cannot disturb it.
  • No model calls. DEEPSEEK_BASE_URL points at a loopback endpoint that
    speaks the Anthropic-style Messages SSE stream the shipped adapter parses. The
    reply is a fixed one-line text block, so the turn is deterministic — and the
    request is captured verbatim, which is the context-tax measurement.
  • No background noise. The fixture overlay disables session-title generation
    and telemetry, and a discarded warm-up pair primes the file cache before any
    sample is recorded.
  • Round-paired deltas. Each subject run is paired with the baseline run
    immediately before it; the delta is the median of those paired differences,
    which cancels slow machine drift. Grades charge only the part of a delta that
    clears the machine's measured noise (one standard error of the paired
    differences), so a loaded machine cannot turn a free plugin into a bad grade —
    and cannot hide real overhead either, because the raw numbers stay on the
    card next to their floor.
  • Integrity. The card is hashed (sha256 over canonical JSON, digest
    excluded). Re-running the same subject compares against the previous card in
    the same directory and prints drift.

Install

Published on npm as dsh-report-card@1.2.0. It ships as a bundle with
metadata, locale/en.json, locale/zh.json and an icon. The plugin manager adds
the dependency and enables the bundle in one step; removing it undoes both:

plugin_manager install_bundle  target: "dsh-report-card@1.0.0"
plugin_manager remove_bundle   target: "dsh-report-card"

or from a terminal:

dsh plugin --profile web add dsh-report-card

For development from a checkout, pass a directory spec instead
(file:C:/path/to/dsh-report-card). install_bundle is the sanctioned path
because a bundle is composed through the profile's bundle list, not just
node_modules; the bundle inserts one entry, dsh-report-card, which
contributes one tool.

Use

From a session (the tool is model-facing):

report_card(pluginSpec: "dsh-trust-check@0.2.6", samples: 3)
report_cards_recent(limit: 10)     # the last cards on disk, including automatic ones

report_card measures on demand; report_cards_recent reads the card index so
you can see what the background pass produced.

From a terminal — the same code path, printable output:

node harness/cli.mjs ./test/fixtures/fake-plugin              # terminal card (TTY)
node harness/cli.mjs dsh-trust-check@0.2.6 --samples 3        # npm package
node harness/cli.mjs dsh-quality-score --json                 # raw card
node harness/cli.mjs --from report-cards/x/y.json --pretty    # re-render, no measurement

The terminal card is boxed and coloured when stdout is a TTY; a redirected
stream prints the Markdown card instead. --pretty / --markdown force either
form, --no-color drops ANSI, and --svg writes the graphic beside the
other outputs.

Cards are written to ./report-cards/@/.{json,md,svg} and
indexed in ./report-cards/index.json; set DSH_REPORT_CARD_DIR to move that.

The tool takes ~60–90 s for the default five samples: four harness boots per
sample round (surface × 2, turn × 2) plus one discarded warm-up round. Pass
samples: 3 for a quick look and samples: 8..10 when you need to resolve a
few milliseconds.

Automatic measurement

Since 1.1.0 the card is produced after a plugin is installed, without
anyone asking. The plugin listens to the plugin manager's
plugin-manager/operation event and watches the profile manifest, queues the
new package, and measures it in the background — the same throwaway profile,
three samples, one measurement at a time.

install a plugin
│  manager event (Plugins page, plugin_manager tool)
│  or profile package.json change (dsh plugin add)
▼
debounce 2.5 s → list installed third-party bundles → skip ones already carded
▼
queue → measure in a throwaway profile → save card under $DSH_HOME/report-cards
▼
report_cards_recent lists it

What it skips: shipped/optional/official bundles, bundles that failed to load,
its own package, and any name@version that already has a card. What it does
not do: measure plugins that were already installed before this version
started, unless autoBackfill is on.

The finished card is announced exactly once: the next prompt assembled after
the measurement carries a one-shot note with the grade and the graphic path, and
reading that note clears the flag — so a restart, a second session, or a later
turn cannot repeat the announcement. Automatic cards take roughly 45 s each
(three samples) and run serially; a manual report_card call queues behind a
running automatic card so the two never compete for the machine.

Config, in the profile patch (or the plugin's config in a preset):

- id: dsh-report-card
config:
autoMeasure: true      # false turns the background behavior off
autoSamples: 3         # 3..10; steadier numbers cost more time
autoBackfill: false    # true: card already-installed plugins at startup
autoReportsDir: null   # default: /report-cards

DSH_REPORT_CARD_AUTO=0 disables it for one process without touching config.

Reading a card

**Grade D** · graded boot +6.3 ms CPU · graded turn 0 ms · context +76 tok · risk D
  • The headline shows the two graded deltas plus the exact context delta and
    the risk grade. Every raw number — wall boot, process CPU, turn, assembly,
    step, launch — is in the tables below with its samples and noise floor.
  • Wall time is presented but never graded: it is hostage to whatever else the
    machine is doing. The boot grade uses noise-adjusted process CPU at the
    moment the plugin tree is ready; the turn grade uses the noise-adjusted
    assembly time, the phase plugin hooks run in.
  • context is the median of the captured requests; it is exactly reproducible,
    since the prompt is a function of the profile.
  • risk is disclosure, not a verdict: A none, B informational only,
    C medium flags, D high flags. A postinstall script is a high flag.
  • The overall grade is the worst dimension. F means the card could not measure
    a running plugin.
Dimension A B C D F
Boot CPU (noise-adjusted) ≤ 10 ms ≤ 30 ms ≤ 80 ms ≤ 250 ms > 250 ms
Assembly (noise-adjusted) ≤ 10 ms ≤ 30 ms ≤ 80 ms ≤ 200 ms > 200 ms
Context token delta ≤ 100 ≤ 500 ≤ 2000 ≤ 8000 > 8000
Risk clean info medium high —

Numbers are comparable only on the same machine identity (platform, CPU
count, dsh version) — the card prints it. A delta inside the printed noise floor
is noise; the card says so in its notes.

Reproduce and verify

Every card prints its own reproduce command. The harness's own repeatability
check runs one subject several times and reports the spread:

node harness/repeat.mjs ./test/fixtures/fake-plugin --runs 2 --samples 3

Measured while a harness session was actively running on the same machine (full
output in docs/acceptance.md): the context delta
repeated at 0.00%
, the graded boot CPU and assembly deltas at 0.00%, and
the raw round-paired wall deltas within 1.9% (boot) and 2.4% (assembly). Earlier
in the same session, with a busier machine, raw wall deltas moved by up to 19%.
The card publishes its own jitter and noise floor for exactly this reason.

Tests:

node test/unit.test.mjs      # units, ~1 s
node test/auto.test.mjs     # install trigger and queue, ~1 s
node test/harness.test.mjs   # real boots against fixtures, ~80 s

test/harness.test.mjs covers the whole harness with fake plugins: a healthy
plugin (surface, context tax, risk flags, digest), a plugin that throws during
activation (must be a failed card), a plugin that calls process.exit (must be
a failed boot that still returns), and a second card that must show drift
against the first.

Publishing

The package is publish-ready: npm publish and the catalog PR are documented in
docs/publishing.md, including the exact
data/plugins/__.yml entry the awesome-dsh-plugin list expects, the
repository field the catalog's npm mapping depends on, and the tarball-install
check that was run against the packed artifact.

Safety and limits

  • The subject executes. It runs in a disposable profile with a read-only
    file policy and a fresh DSH_HOME, as your user — that is enough to keep it
    away from your real profile, but it is not a security sandbox. Read the
    risk flags before measuring something you do not trust.
  • No app.asar edits. The harness only spawns the shipped CLI and writes
    into a temp directory.
  • Fail closed. A package the runtime refuses to install (for example a peer
    version gate) is reported as install-rejected or install-failed; the harness never grants a
    version exemption and never bypasses the gate. A plugin that crashes the host
    or hangs is bounded by a per-child timeout.
  • The heuristic is not billing. Context tokens use four characters per
    token, the same heuristic the shipped token meter documents; CJK and JSON
    schemas are underpriced by it. Extension fields (dsh_session_log,
    dsh_plugin_packages) are measured separately and excluded.
  • One turn, one profile shape. The card does not measure multi-turn
    behaviour, compaction, or client-side (browser) cost. Client slot
    contributions are not observable host-side; only host-side surface is
    reported.

Layout

Path Role
index.js The bundle entry: registers the report_card tool
harness/cli.mjs Command line entry
harness/generate.mjs measure → diff → grade → render → store
harness/measure.mjs The four-run loop, event parsing, request pricing
harness/mock-llm.mjs The local Messages endpoint and its SSE fixture
harness/probe/ The fixture plugin that dumps a profile's surface
harness/risk.mjs Static disclosure scan
harness/report.mjs Grades, digest, drift, card assembly
harness/render.mjs Markdown card
harness/svg.mjs Self-contained SVG graphic (and its --from re-renderer)
harness/pretty.mjs Boxed, coloured terminal card
harness/auto.mjs Install trigger, eligibility, and the background measurement queue
harness/repeat.mjs Repeatability check for the harness itself
docs/ An example card and the acceptance evidence
locale/, icon.svg, cordis.patch.yml Bundle metadata and its one insert row
test/ Unit tests, end-to-end tests, fake plugins

License

MIT.

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-report-card 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-report-card` 即可。对应的 npm 包名是 `dsh-report-card`。

dsh-report-card 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-report-card 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-report-card 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-report-card 需要什么运行环境?

Node.js >=24.9.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-report-card 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-report-card 有哪些功能?

一次性 profile 实测启动耗时、每轮钩子与请求组装开销、上下文税与能力面差异、静态风险标记与证据、报告卡可复现与归档。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

tespio 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-12。