DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Health Readout — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
H

dsh-health-readout

Health Readout

DSH 的声明式健康状态读取:声明从哪里读取、什么算作健康,以及每次读取对应哪种判定结果。只读——它组合读取结果,但不会成为新的事实来源。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:laa1991/dsh-health#bc28cbd1607d49f4ac903e59b615342f0db1fc85
README兼容性版本

兼容性与来源证明

Health Readout 以 dsh-health-readout 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/28

版本

0.1.0stable
2026/9/28

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Ab Chartdsh-ab-chart带有绘制其调用的浏览器卡片的图表渲染工具,封装在一个可发布的插件包中Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义

README

dsh-health-readout

Declare where to read, what counts as healthy, and what each failure means — get one verdict.

A read-only dsh plugin. It composes readings that already exist (files, JSON endpoints, log tails) and returns a single verdict with per-reading detail. It never writes anything, never keeps state, and never becomes a source of truth.

{
  "readings": [{
    "id": "queue-depth",
    "title": "Queue depth is under the ceiling",
    "source":  { "kind": "json-field", "path": "status.json", "field": "queueDepth" },
    "healthy": { "op": "lt", "value": 8, "bad": "degraded" },
    "blind":   "A single sample: a queue that drains and refills between samples looks identical to a quiet one."
  }]
}

Three rules, built into the API

These are not style preferences. Each one is a bug we shipped somewhere before it became a rule, and here they are enforced by the type shapes and by tests rather than by good intentions:

  1. "Cannot tell" is never zero. A source that cannot be read yields unknown — never ok, never 0, never false. unknown is always printed, and it moves the verdict on its own.
  2. Every criterion must be able to fire. selftest: true feeds each declared criterion its own counter-example and reports any criterion that stayed green — a criterion nobody can falsify is decoration, and it is reported as such.
  3. Every reading states its blind spot. blind is required. A reading whose limits are unstated reads like a reading whose limits do not exist.

Install

dsh plugin --profile <name> add dsh-health-readout      # npm
dsh plugin --profile <name> add ./dsh-health-readout-0.1.0.tgz
dsh plugin --profile <name> add <git-url>               # prebuilt: no build step, no postinstall

The package ships exactly the files that run (no build, no prepare script, no runtime dependencies), so a git install needs no build permission from the user.

Configure

Every value resolves in this order: the plugin row's config: block → environment variable → built-in default.

settingconfig keyenvironment variabledefault
where readings livedataDirDSH_HEALTH_READOUT_DATA_DIR~/.dsh-health-readout
the declarationsspecFileDSH_HEALTH_READOUT_SPECreadings.json (inside dataDir)
evaluate only some idsonlyDSH_HEALTH_READOUT_ONLYall

The data directory is deliberately not a dsh platform directory. dsh may rebuild its own directories on upgrade; a user's readings must not be inside something that can be rebuilt out from under them. Point dataDir anywhere you control.

Relative paths inside the spec resolve against dataDir. ~ and ${dataDir} are expanded.

The spec

Copy examples/readings.example.json to <dataDir>/readings.json and edit it.

Source kinds

kindreadsrequired fields
file-age-secondsseconds since a file was writtenpath
file-sizebytespath
file-existswhether a path exists (false is knowledge, not ignorance)path
json-fielda dotted path inside a JSON filepath, field
jsonl-last-fielda dotted path in the last parseable JSONL line (tail-read)path, field, maxBytes?
text-countregex matches in the last maxBytes of a filepath, pattern, maxBytes?, flags?
dir-countfiles in a directory, optionally by suffixpath, suffix?
http-json-fielda dotted path in a JSON endpoint (always timed out)url, field, timeoutMs?

Operators (healthy.op): lt lte gt gte eq neq between matches exists absent.

States (healthy.bad, default degraded), ordered by severity — the worst reading decides the verdict:

ok < notice < unknown < degraded < broken

unknown sits above notice on purpose: a readout that cannot see part of the world must not report a confident ok.

The tool

health_readout — one read-only call, two optional arguments:

  • only — comma-separated reading ids to evaluate.
  • selftest — also prove every declared criterion can go red.

The rendered output lists each reading with its value, its verdict, its reason and its blind spot, and prints the unreadable ones separately ("Could not read" is not "fine".).

Tests

node --test test/criteria.test.mjs test/sources.test.mjs test/spec.test.mjs test/readout.test.mjs

43 tests, no test framework and no fixtures on disk. The two arms worth knowing about: deleting a watched file must move the verdict to unknown (never leaving it at ok), and a deliberately unfalsifiable criterion (matches: ".*") must be reported as such by selftest.

Limitations (stated, not hidden)

  • No cross-line folding. A reading is one value from one place. "How many records are still open" means folding several JSONL lines into a state, which is a query, not a reading. Point the spec at a file that already carries that number (a derived snapshot) and keep the fold in whatever produced it — this plugin composes readings, it does not become a query engine.
  • No history. Every reading is one sample of the present. Trends need a recorder, and a recorder is a writer — out of scope for a readout.
  • No changed-within operator. Comparing to a previous value requires state; see above.
  • unknown is noisy by design. A missing file moves the verdict. That is the intended trade: silence about a blind spot is more expensive than a loud report about one.
  • A spec may read any file the dsh process can read. That is the trust model: the user writes the spec, the user owns the paths.
  • Host-only. No browser half, no settings UI; the verdict reaches the model as a tool result.

License

MIT.