dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH Web 客户端的 Codex 风格「思考强度」电源滑块 —— 拖一下就切换会话的真实推理强度;紫色扫描、漂浮星尘、拖柄墨点全部手写,零构建零依赖。
给 DeepSeek Harness(DSH)Web GUI 装一条 Codex 风格的推理强度滑杆:不用再钻进二级菜单逐档点选,当前在哪一档、还能怎么调,一眼就能看见。
A third-party, Codex-inspired reasoning effort slider for the DSH Web GUI.
| 卡片 | Ultra 档 | 模型列表 |
|---|---|---|
![]() | ![]() | ![]() |
License MIT · 平台 dsh web · 零构建 · 零 Node 依赖
dsh plugin --profile desktop add dsh-codex-power-slider
本地开发也可以把包名换成 link:C:\path\to\dsh-codex-power-slider。
这是第三方客户端插件,复刻的是 Codex 桌面应用的交互与材质,与官方无关,也不提供模型服务。
6.1 Sol 深入 ⌄;点开才展开卡片。| 操作 | 结果 |
|---|---|
| 点输入框旁的模型入口 | 打开强度卡片;入口变成「选择推理强度」胶囊 |
| 点卡片里的模型名 | 打开独立模型列表,悬停条目看中文介绍 |
| 拖动滑杆 / 点轨道 | 切换推理强度并写入会话(松手提交) |
| 点右上角重置图标 | 回到该模型公布的默认档位 |
| 点左上角闪电开关 | 开启后在下一条消息末尾追加一次子智能体偏好 |
↑ ↓ ← → | 焦点在滑杆上时逐档切换 |
Esc | 模型列表 → 卡片 → 关闭 |
闪电开关开启后常亮、状态持久化。它追加的是偏好说明,不代表宿主一定会调用子智能体,也不会绕过宿主的路由限制。
conversation.input.model 插槽、priority: -1,遮蔽原生 ModelSelect(single 槽「越低越优先」)。padding: 0 4px 0 8px、13px、caption 灰字、12px 下拉箭头。| 部分 | 参数与行为 |
|---|---|
| 强度卡片 | 宽 262px、圆角 16px |
| 档位标题 | 居中 14px,下方是可点击的模型名 |
| 滑杆 | 轨道 22px、白色拖柄 25px、每个档位一个刻度 |
| 模型列表 | 独立圆角浮层,按提供方分组,当前项打勾,34px 行高 |
| 介绍气泡 | 贴在该行右侧,垂直跟随行、水平间距固定 5px,宽度贴合文案(≤300px) |
| 额度提醒 | 最高档显示「使用额度消耗更快」,1.6s 后淡回模型名 |
Ultra 皮肤只在最高档且该模型具备 ≥3 档强度时启用。
animation-timing-function 实现分段缓动,
所以起手是「平稳地快」而不是硬弹。background-position 把取景窗从右往左推;两半在基础蓝 #447ac6 处
颜色接续,所以扫描前沿是一道柔和过渡而不是一刀切。只动 background-position,
比位移裁切(mask / clip-path)在任何 Chromium 上都更稳。#9298ff 跟着扫描从右往左掠过整条轨道。#20204f–#252851,
比卡片底更暗更蓝,不是发光白点)。一次性 —— 70ms 起步、单颗飞行 400ms、边飞边淡,约 500ms 后完全消失,不循环。prefers-reduced-motion: reduce 时全部动效停掉,扫描停在终态、底光常亮。适配器返回的 effort.name 永远优先;只有适配器只给 id、没有本地化名字时才回落到下表:
| effort id | 显示 | 说明 |
|---|---|---|
none / min / minimal | 轻度 | 提供快速且深思熟虑的回复 |
low / light | 标准 | 平衡思考时间与回复速度 |
standard / medium | 深度 | 延长思考时间以处理复杂问题 |
high / extended / xhigh | 极高 | 适用于复杂问题的极高推理深度 |
max | 深入 | 针对高难度问题提供更深入的分析 |
ultra | Ultra | 同上,并启用 Ultra 皮肤 |
conversation.input.model ← 原生模型选择器所在的 single 槽(session 作用域)
│ ctx.slots.inject + ctx.slots.register({ priority: -1 })
▼
<PowerSlider> ──portal──▶ document.body(卡片 + 模型列表 + 说明气泡)
读:ctx.sessions.binding(sessionId).session.projections.faceOf('modelSelection')
→ { lastUsed, next } ← 与原生模型菜单共用同一份投影
列:ctx.remote.session.modelCatalog()
→ groups[].models[].reasoning.{ efforts[{id,name,description}], defaultEffort }
写:ctx.remote.session.selectModel({ sessionId, provider, model, reasoningEffort })
关键约束(第三方 client 插件通用):
window.__ModuleLoader__.load({ id, factory }),
不能出现 import / export;id 必须等于包名。factory(require) 只能 require 平台种子:react、react-dom、react/jsx-runtime、
@deepseek-ai/cordis、@deepseek-ai/dsh-client-store、@deepseek-ai/dsh-client-ui-slots、
@deepseek-ai/dsh-client-ui-primitives、@deepseek-ai/dsh-client-ui-dockkit。package.json 必须有 dsh.client.platform === "web" 与 exports["./client"],
且 name 要与 cordis.patch.yml 里 insert.name 完全一致 —— 不一致会被静默跳过。ctx.slots.inject(name, cb),直接 register 会抛 slot "…" is not declared。document.body 的浮层拿不到祖先的 CSS 自定义属性;祖先只要有 transform
就会成为 position: fixed 的包含块。开发过程中踩过的坑(含我自己的判断错误、可复用的验证手段)单独整理在 PITFALLS.md —— 写 DSH 插件的话值得先读一遍。
session/writer-held)。lib/client.js 是手写的单文件经典脚本,改完直接刷新页面即可生效 —— 宿主按
mtimeMs/ctimeMs/size 算 revision,变化会通过 SSE 推 rebuilt 帧。
视觉验证用仓库之外的一个离线 harness(本包内不含):把 lib/client.js 挂到假 DSH 宿主上渲染成
静态 HTML,再用 Edge 无头模式截图,因此在没有 GUI 的机器上也能核对像素级几何。
MIT,见 LICENSE。素材与来源说明见 PROVENANCE.md;旧版 README 存档于
docs/README-v1.md。