DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

dsh-trajectory-debug

d

dsh-trajectory-debug

Identified

DSH Plugin: Trajectory Debug Workbench (trajectory-debug)

English | 中文

Target host: DeepSeek Harness (@deepseek-ai/dsh v0.1.0-rc.x, developer preview)

Turn DSH's event-sourced sessions into debuggable assets: a waterfall trajectory view, deterministic single-step replay (zero token cost), breakpoints, sandboxed edit-and-rerun, fork comparison, and performance analytics — plus OTel GenAI trace export and trajectory_* model tools for agents to introspect their own runs.

Packages

packages/
├── trajectory-debug/              # Service Definition + wire types (pure types, no plugin entry)
├── trajectory-debug-host/         # Host provider: replay/perf/compare engines, breakpoints, projections, commands, RPC transport
├── trajectory-debug-remotes/      # dual-face typert skeleton (browser RPC actually rides the host transport)
├── client-ui-trajectory-debug/    # browser "Debug" tab: waterfall + perf dashboard + replay/breakpoint/rerun/compare console
└── trajectory-debug-bundle/       # installable bundle: dsh.bundle + cordis.patch.yml

Commands

corepack pnpm install       # requires corepack; Node >= 22.19
corepack pnpm -r build      # emit lib/ (lib-first manifests)
corepack pnpm -r typecheck
corepack pnpm test          # 56 vitest cases
corepack pnpm check         # build + typecheck + test
corepack pnpm check:publish # pre-publish manifest validation
node scripts/smoke.mjs      # real dsh process load smoke (rebuilds the td-smoke profile)

Feature Status

CapabilityNotes
Waterfall enginebuildTrajectoryPage: turn/step/tool rows, status, timing, tokens, error codes, filters, paging
Deterministic replaystepContextAt: model view + action per step; ReplayCursor step/seek — zero token, zero tool execution
Performance analyticsanalyzePerf: success rates/percentiles, failure taxonomy, token distribution, TTFT/decode, turn stats (optional price table → cost)
Fork comparecompareTrajectories: step alignment, tool changes, result diffs, summary
BreakpointsBreakpointManager: agent/pre-step waterfall short-circuit + timeout auto-resume
Edit-and-rerunrerunTool through the full ctx.tools pipeline; record|sandbox|ask (ask fails closed without a live agent)
Fork + live resumesessions.fork + agents.resume + followup; cascade: truncate|preserve
ProjectionstrajectoryDebug/trajectory + trajectoryDebug/perf on the session-projection registry — the browser consumes them with zero client folding
Commands/trajectory [stepIndex], /perf
Model toolstrajectory_search / trajectory_step / trajectory_perf (opt-in via enableModelTools)
Trace exportexport('trace'): OTel GenAI semantic-convention spans (Langfuse/LangSmith ready)
Sidecar persistenceFileSidecar atomic JSON writes (sidecar: 'memory'|'file')
Browser UI"Debug" conversation view tab: waterfall + perf dashboard (projection-pushed, live) + replay/breakpoint/rerun/compare console
Browser RPChost registers POST /api/trajectory-debug/rpc (webserver custom route, typert-independent); the browser calls it with fetch
Real loadscripts/smoke.mjs installs into a standalone profile and boots in a real dsh process

Browser RPC transport (typert-free)

DSH's typert Remote chain depends on build-time codegen. This plugin instead uses the sanctioned webserver custom-route extension point:

  • Endpoint: POST /api/trajectory-debug/rpc — body { method, params }, response { ok, value | error };
  • Methods: trajectory.list / step.context / perf / replay.start|step|seek / breakpoint.set|remove|list|resume / intervention.rerunTool / variant.fork|list|compare / export;
  • Security: the server binds loopback by default; the route adds no extra trust.

Client bundle build

pnpm -r build && node scripts/bundle-client.mjs produces the browser bundle:

  • entry src/client/index.ts → esbuild (CJS) → wrapped as window.__ModuleLoader__.load({ id, factory }) (the official DSH client format);
  • runtime externals: only react (shell seed); all dsh references are type-only (erased);
  • output packages/client-ui-trajectory-debug/lib/client.js, served via exports["./client"];
  • after installing into a profile, sync the bundle into the profile copy (pnpm file: deps are copies): robocopy packages\client-ui-trajectory-debug\lib <profile>\node_modules\dsh-client-ui-trajectory-debug\lib /MIR

Install into DSH

Published on npm — install directly (no build required):

dsh plugin --profile web add dsh-trajectory-debug-bundle
dsh web --dump-config   # expect trajectory-debug-host / -remotes / ui-trajectory-debug rows

From a source checkout:

corepack pnpm check
node scripts\smoke.mjs
dsh plugin --profile web add ./packages/trajectory-debug-bundle

Restart dsh web: the Debug tab appears in the conversation view ring; /trajectory and /perf work in the input box.

Publish status

npm

All five packages are published to npm as v0.1.0: dsh-trajectory-debug, dsh-trajectory-debug-host, dsh-trajectory-debug-remotes, dsh-client-ui-trajectory-debug, dsh-trajectory-debug-bundle.

Release pipeline:

corepack pnpm check            # gates
corepack pnpm check:publish    # manifest validation (no file: deps, valid versions, bundle ships patch+index.js)
corepack pnpm publish:all      # pnpm -r publish: workspace:* → version ranges; prepublishOnly builds first
  • Internal deps use workspace:* (pnpm rewrites to version ranges on publish); file: deps are rejected by the validator;
  • Add the dsh-plugin topic to the repository (auto-listed on deepseekdocs.com/ecosystem); curated listing via docs/awesome-submission.md.

Ecosystem Comparison

See COMPARISON.md: positioning vs dsh-message-edit / dsh-plugin-cost / dsh-deeplink / dsh-eval, and the improvements already shipped.

Design Notes

  • Self-contained event model: engines fold a minimal DebugEvent model; adapt.ts is the only boundary touching DSH SessionEvent — immune to DSH's preview-period breaking changes;
  • Projection state is plain JSON (records/arrays, no Maps/Sets), satisfying the projection-cache persistence contract;
  • "Model-visible == recorded" invariant: branch execution only ever uses the existing agent channels; the source session log is never rewritten;
  • Replay is zero-cost: engines never call the LLM or tools;
  • Self-built client bundle: no dependency on DSH's tsdown chain.

Compatibility

  • Deps: @deepseek-ai/cordis + dsh-session / dsh-agent / dsh-commands / dsh-session-projection (all ^0.1.0-rc.6, tracking rc releases);
  • Unloading the plugin withdraws every registration (effect-owned); source sessions are untouched.

Comments

Loading…

From the same category

dsh-desktop

by anywhere-labs

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

UI & ExperienceManifest valid

★ 29.9k

↓ 150/wk

MIT

TypeScript

Oct 3, 2026

dsh plugin --profile web add dsh-plugin-desktop

by zhu1090093659

DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop

UI & ExperienceManifest valid

★ 8.3k

↓ 219/wk

Apache-2.0

TypeScript

Oct 4, 2026

dsh plugin --profile web add dsh-web

A collection of independent Web UI plugins and skins, including task boards, Git graphs, mobile access, and live token stats.

UI & ExperienceManifest valid

★ 7.4k

↓ 219/wk

Apache-2.0

TypeScript

dsh plugin --profile web add dsh-web

by omdsh-dev

开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git,

UI & ExperienceManifest valid

★ 4k

↓ 61.5k/wk

MIT

TypeScript

Oct 4, 2026

dsh plugin --profile web add dsh-better-sidebar

by bowenliang123

The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,

Tools & CapabilitiesUI & ExperienceTerminal & ClientsManifest valid

★ 1.8k

↓ 38.5k/wk

Apache-2.0

TypeScript

Oct 4, 2026

dsh plugin --profile web add dsh-context

by shaobeichen

把 DeepSeek Harness 装进你的口袋:电脑上跑 dsh web,手机扫码即同步访问(局域网 + 公网,实时同屏)Put DeepSeek Harness in your pocket: run dsh web on your computer and access it synchronously by scanning a QR code on your phone (LAN +

UI & ExperienceManifest valid

★ 1.5k

↓ 3.5k/wk

GPL-2.0

JavaScript

Sep 16, 2026

dsh plugin --profile web add dsh-pocket