dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Codex-style reasoning-effort slider for DeepSeek Harness — turns the model menu's Effort row into a continuous, level-snapping slider with a blue-to-violet fill and a starfield at high levels.
English | 中文
Turns the Effort row of DeepSeek Harness's model menu into a Codex-style reasoning-effort slider:
┌────────────────────────────────────────┐
│ Model DeepSeek-V4.1-Flash 1017 › │
├────────────────────────────────────────┤
│ Effort Max › │ ← native row; its value text is tinted by level
│ ●━━━━━━━━━━━━━━━━━━━━━━━━━◯ │ ← injected: 28px track + white knob
│ · · · · │ ← level ticks (reached ones brighten)
│ Max │ ← current level name (live while dragging)
└────────────────────────────────────────┘
Nothing is added to the composer tool row. The collapsed model seat keeps the native
model · effort ⌄ typography; only that effort text is tinted.
| Action | Behaviour |
|---|---|
| Press on the track | Jumps to the pressed cell |
| Drag | The knob follows the pointer: knob and fill track the cursor, while the level name, ticks and writes use the nearest level; on release it snaps onto the cell in 80 ms, without bounce |
| Release | Commits immediately (resting the pointer for ~160 ms also commits) |
← → ↑ ↓ | One level per press, committed immediately |
Home / End | Lowest / highest level |
| Hover | Tooltip with the current level and “further right costs more tokens” |
Writes are deduplicated and coalesced: a drag commits at most a few times, and picking the level already in effect writes nothing. A failure shows its reason under the track and clears after 4 s.
| Position | Fill right end | Starfield | Level text |
|---|---|---|---|
| First level | blue #4d93f8 | none | native (an Off level is never tinted) |
| Middle | blue → violet #9333ea | none | blue → indigo |
| Highest | deep violet #4c1d95 | 26 staggered stars + violet nova layer | violet #8b5cf6 |
linear-gradient(90deg, blue → colour at the current position): always blue on the
left, deepening to the right.data-dres-row attribute to the native effort row (taller, wrapping). Native
classes, copy and chevron are untouched.aria-controls on the trigger, a menu that is not the
model/effort pair, or a row outside this composer card means “do not inject” — the native menu
keeps working.ResizeObserver, which re-measures and clamps the panel
back on screen.| Purpose | API |
|---|---|
| Read levels | session.modelCatalog() → groups[].models[].reasoning.efforts |
| Read current value | the modelSelection session projection (useProjection), falling back to the catalog default |
| Write level | session.selectModel({ sessionId, provider, model, reasoningEffort }) — the same entry the native menu uses |
From GitHub:
dsh plugin --profile <profile> add github:sleepinggggggggggg/dsh-reasoning-effort-slider
From a local directory:
dsh plugin --profile <profile> add <absolute path to this directory>
On desktop, use Settings → Plugins → Add plugin with the same value, then reload the page (or restart the app).
The supported host range is declared in package.json as engines.dsh:
DSH >=0.2.0-rc.2 <0.3.0-0, verified against 0.2.1-rc.2.
DSH checks that range before loading a plugin. A host release outside it is refused with an explicit incompatibility message instead of leaving a slider that silently never appears.
aria-haspopup / aria-expanded /
aria-controls, two root rows with role="menuitem"). If a host release changes it, the plugin
silently does nothing — it never breaks the menu — and needs a follow-up.setActive drops the growth).The design decisions come from reading three sibling implementations. No code was copied; this repository is an independent implementation.
modelSelection projection +
session.selectModel data path.aria-haspopup /
aria-expanded / aria-controls / role="menuitem"), plus the blue → violet → deep violet
palette and the starfield position curve.MIT — see LICENSE.
| File | Purpose |
|---|---|
index.js | Host half: empty apply(), only there so the bundle enters the profile |
client.js | Everything: DOM bridge, portaled slider, colour/starfield logic, dictionaries |
cordis.patch.yml | Inserts the bundle row |
locale/{zh,en}.json | Plugin-manager copy and control strings |
icon.svg | Icon shown in the plugin manager |