dsh-possibility-space
Explore AI outputs as a steerable semantic possibility space for DeepSeek Harness.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 31, 2026
- Updated
- Sep 1, 2026
Introduction
dsh-possibility-space
English | 中文
Stop asking for another version. Drag to the version you want.
dsh-possibility-space turns a DSH answer into an explorable two-dimensional semantic map, expanded directly beneath that answer. It does not generate ten candidates and choose for you. It discovers meaningful trade-offs first, then generates exactly one version at the point where you release the cursor.


The interaction
Every finalized assistant answer gets a map action. Click it to expand an inline map while the answer and composer remain visible; use the expand control only when you want a fullscreen focus mode. From there you can:
- Discover three independent semantic trade-off axes for that specific answer.
- Pick two axes for the map.
- Drag to preview a coordinate; release to generate one version.
- Lock good paragraphs verbatim or add semantic invariants.
- Inspect the diff and revisit every generated point in the version trail.
- Copy the selected answer and save its coordinates as a personal preference. A later space with the same semantic axes restores that point without generating in the background.
The same interaction works for UI design, code architecture, writing, product strategy, and decisions because the axes are inferred from the answer rather than selected from a fixed style template.
Install
Requires DSH 0.1.1-rc.2 or newer and Node.js 22+.
npx --yes @deepseek-ai/dsh@latest plugin --profile web add \
github:zhangguiping-xydt/dsh-possibility-space
npx --yes @deepseek-ai/dsh@latest web
No separate API key is required. The plugin reuses the provider and model provenance of the answer you opened, then calls the model through the configured DSH adapter.
Token discipline
- One model call discovers the axes when a space is first opened.
- Internal axis discovery and controlled rewrites keep the answer's provider/model. They select reasoning effort
offonly when that exact model advertises it; otherwise the adapter's valid default is preserved. - Pointer movement makes no request;
pointerupor an explicit Generate action makes one. - Coordinates are quantized to
0.05to suppress pointer noise. - Baseline, axes, coordinate, and locks form a deterministic local cache key.
- No background candidate fan-out and no model-driven auto-selection.
Constraint guarantees
A quote lock carries both the exact source text and its invariant. The Host rejects a variant unless every non-empty quote is preserved byte-for-byte and every lock id is acknowledged. Rejected variants never enter the trail. Custom semantic invariants cannot be mechanically proven; they remain visible for human review.
Privacy and safety
- There is no plugin-owned cloud service. Requests stay between the browser, the authenticated DSH Host, and its configured model adapter.
- Answers, variants, locks, cache entries, and preferences live in browser
localStorage. - The original Session log is never rewritten.
- The Host bounds input length, lock count, output tokens, and concurrency, then validates all model JSON.
- The plugin does not run tools, edit files, or submit code.
Architecture
final assistant answer
│ text + message id + actual model provenance
▼
assistant-actions slot ──► inline anchor under that DSH turn
│ └─ map, diff, locks, trail, optional fullscreen
│ local cache and preferences
▼
authenticated DSH Connection RPC endpoint
│ only on axis discovery or pointer release
▼
ctx.llm.stream ──► the answer's configured DSH model adapter
│
└─ schema + lock validation ──► one variant
It uses the official conversation.chat.assistant-actions client slot. The action mounts a React Portal into that turn's existing data-turn-tail container, so the explorer participates in normal conversation scrolling without claiming another plugin's slot. Browser-to-Host calls use a private DSH Connection RPC interceptor. No DSH source patch is required.
Configuration
- id: dsh-possibility-space
name: '@dsh-external/dsh-possibility-space'
config:
maxBaselineChars: 80000
maxVariantTokens: 6000
maxConcurrentRequests: 2
Develop
corepack enable
pnpm install
pnpm run check
pnpm run test:coverage
pnpm run pack:check
The test suite includes inline turn mounting, pointer drag commits, preference restore, bounded history, provider capability handling, request validation, lock guarantees, and Client Slot registration. lib/ is committed intentionally because GitHub-based DSH installation does not run a build step.
See CONTRIBUTING.md, SECURITY.md, and CHANGELOG.md.
MIT © 2026 Guiping Zhang