dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 的运行可观测与插件运维面板:展示 Profile 插件树、Loader 真实 fiber 状态、能力/依赖/兼容性、本轮会话插件活动与上游来源/版本核验,支持一键关闭/启用/更新/卸载,并提供 DSH 未运行时也能打开的独立启动失败诊断页。
DSH Insight Tree is an observability and diagnostics plugin for DeepSeek Harness (DSH). It combines Profile configuration, installed packages, Loader runtime state, session activity, and upstream release metadata into one explainable report, then presents that report through a plugin tree, a current-session activity panel, and a standalone diagnostics page.
It is not a plugin marketplace. It answers practical questions:
You can also manage installed plugins directly from the plugin tree, including disabling, re-enabling, uninstalling, and updating them.
The plugin includes a standalone diagnostics page. When DSH fails to start and the failure is identified as plugin-related, the diagnostics page opens automatically. You can also start it manually. It does not depend on the DSH Web UI or on a running DSH instance: launch it from the command line to inspect the current DSH and its plugins as a whole, and perform the supported operations.
Current version: 0.1.2. The repository is public on GitHub; for the published npm release see
https://www.npmjs.com/package/dsh-insight-tree.
This is a single npm package with five integration surfaces:
lib/index.js for report generation, routes, Loader/Session integration, and plugin operations.lib/client.js, injected by DSH Web for the plugin tree and current-session activity UI.dsh-insight-tree-diagnose, backed by bin/diagnose.mjs.dsh-insight-tree-web, backed by bin/web-with-diagnostics.mjs.cordis.patch.yml, which connects the plugin to the DSH bundle and Loader chain.Runtime dependencies include js-yaml, semver, and zod. Loader, Session Projection, and
Session Query integrations are peer dependencies; optional components are detected and the plugin
degrades with an explicit source marker when they are unavailable.
Run this in PowerShell:
dsh plugin --profile web add dsh-insight-tree
Restart DSH Web after installation so the host, client bundle, and cordis.patch.yml assembly are loaded:
schtasks /run /tn DSHWebRestart
Verify that the package is present in the web Profile:
dsh --profile web --dump-config
After DSH starts, open Settings -> Plugins -> Plugin Tree. The Current Activity entry is available inside DSH conversations only.
If pnpm's supply-chain policy rejects a newly published dependency, relax it for this command only:
dsh plugin --profile web add dsh-insight-tree --config.minimum-release-age=0
For local development, install the checkout as a link:
dsh plugin --profile web add I:\DSH\dsh-insight-tree
After rebuilding changed source files, restart DSH Web to load the new lib/ output.
The npm package includes a standalone diagnostics command. It can run while DSH is running or when DSH is stopped:
dsh-insight-tree-diagnose --profile web --port 3092
Open http://127.0.0.1:3092/. If the command is not available on PATH, invoke the package script directly:
node node_modules\dsh-insight-tree\bin\diagnose.mjs --profile web --port 3092
Normal DSH startup does not open this page automatically. The failure-aware launcher opens it only when the startup error is explicitly attributable to a non-core plugin:
dsh-insight-tree-web --profile web
The core is an evidence aggregation pipeline rather than a single page:
Profile / package.json / node_modules / cordis.patch.yml
|
v
DSH Loader / Fiber state
|
v
Session Projection / Query
|
v
InsightTreeReport
/ | \
v v v
Plugin tree Activity Diagnostics
All surfaces consume InsightTreeReport from src/model.ts (schema v3), so the Web UI,
standalone diagnostics, and exports share the same compatibility and severity decisions.
package.json, actual node_modules, and package metadata.dsh.profile.bundles and Loader relationships from cordis.patch.yml.ctx.loader entries and their Fiber phases.session/event, durable projections, and optional historical session queries.The runtime Loader state takes precedence over static declarations. Actual installed versions take precedence over Profile specs. Missing context is reported as temporarily unknown, not as an automatic incompatibility.
The labels current plugin, latest plugin, and latest compatible plugin always refer to the plugin's own version, not the DSH host version. For example:
Current plugin 2.10.3 npm: dsh-pocket Latest compatible version
The DSH host is shown separately:
Compatible with current DSH host @deepseek-ai/dsh@0.1.2-rc.1
Compatibility checks use the dependency type:
@deepseek-ai/dsh or engines.dsh: compare with the actual installed DSH host version.@deepseek-ai/dsh-*: compare with the corresponding companion package installed in the current Profile.unknown and explain why it cannot yet be confirmed.Installing another DSH host version causes the report to recalculate compatibility. The same plugin release can therefore have different results under different host or companion-package combinations.
Normal DSH startup does not open the standalone page. Inside DSH, users can open:
The standalone page does not depend on the full DSH Web UI. It reads the Profile, package metadata, and patch files, and provides reports, exports, and protected configuration operations.
It listens on loopback only. Disable, enable, and uninstall operations back up Profile files, validate
configuration changes with a dry run, and refuse to operate on core @deepseek-ai/* packages or targets
with active dependents.
| File | Responsibility |
|---|---|
src/index.ts | Plugin entry, event statistics, projections, Loader snapshot, and route assembly |
src/model.ts | InsightTreeReport and plugin, compatibility, finding, and activity types |
src/discovery.ts | Profile, package metadata, patch, dependency, and report generation |
src/loader.ts | Pure mapping from Loader entries to Fiber phases |
src/activity.ts | Session projection folding and history helpers |
src/owners.ts | Explicit and stable tool-to-plugin ownership mapping |
src/upstream.ts | Plugin directory, npm/GitHub metadata, and version compatibility |
src/rules.ts | Missing-package, duplicate-assembly, compatibility, and startup-impact rules |
src/route.ts | Report, session, export, compare, and operation APIs |
src/diagnostics.ts | Attribution of startup failures to non-core plugins |
src/client/index.tsx | DSH plugin tree and current activity UI |
bin/diagnose.mjs | Standalone diagnostics HTTP service |
bin/web-with-diagnostics.mjs | dsh web wrapper and failure diagnostics entry point |
tests/*.test.mjs | Report, Loader, activity, route, export, version, and diagnostics regression tests |
Node.js ^22.19.0 or >=24.0.0 is required. On Windows, use Node 22/24 from PowerShell rather
than the Node 18 binary bundled with Git Bash.
npm install --legacy-peer-deps --no-audit --no-fund
npm run typecheck
npm run build
npm test
node --check bin/diagnose.mjs
node --check bin/web-with-diagnostics.mjs
git diff --check
npm test builds first and then runs tests/*.test.mjs. The latest full verification passed all 63/63
tests, along with typecheck, both diagnostics script checks, and git diff --check.