一个为 DeepSeek Harness Web 输入栏打造的「思考等级」滑动变阻器控件。 A retro sliding rheostat (sliding potentiometer) control for the reasoning level in the DeepSeek Harness web composer input bar.
复古滑杆 · 3D 立体 · 主题令牌统一 · 合成机械音效
浅色 / 深色主题下的外观(当前档位 high):
- 5 档思考等级:
off/low/medium/high/max(跟随模型reasoningEfforts配置自动生成档位) - 复古滑动变阻器外观:凹陷金属滑轨凹槽、机加工立体滑块(防滑纹 + 穹顶高光)、发丝刻度线、限位挡片
- 仿真机械音效(Web Audio 合成,无需音频文件):
- 按下 → 低频「咔哒」
- 滑动跨过每个档位刻度 → 清脆棘轮「嗒」
- 松手落位 → 低沉「咔」确认
- 主题令牌统一:颜色全部取自 DSH 主题令牌(
--dsw-alias-*),浅色/深色主题自动适配,与输入栏其他按钮同一套中性灰阶 + 单一品牌强调色 - 无障碍:
role="slider"、键盘方向键 / Home / End、:focus-visible焦点环 - 点击放大反馈:按住时滑块下压、控件轻微放大
将本仓库的 thinking-level-slider 包安装到你的 DSH web profile 的 node_modules:
# <profile> = 你的 DSH web 配置文件目录,通常是 ~\.dsh\profiles\web
Copy-Item -Recurse . "<profile>\node_modules\thinking-level-slider"在 <profile>\cordis.patch.yml 追加:
- insert:
- id: thinking-level-slider
name: thinking-level-slider在 ~\.dsh\settings.yaml 中为你的 LLM provider 配置 reasoningEfforts(否则控件不会显示):
llm-pi-ai:
providers:
opencod:
models:
deepseek-v4-pro:
reasoningEfforts: { off: null, low: low, medium: medium, high: high, max: max }
deepseek-v4-flash:
reasoningEfforts: { off: null, low: low, medium: medium, high: high, max: max }
off必须为null;其余档位值即 wire 上发送的 effort 字符串。若你的模型目录本身标记 low/medium 不支持,这两档可能在请求时被拒绝 —— 可按需去掉。
静态 Client 插件在 DSH 进程重启后加载:
dsh web重启后输入栏左侧会出现复古滑杆,右侧显示当前档位名。
- 拖动 / 点击:按住滑块左右滑动,指针在刻度间卡点
- 键盘:
←/→(或↑/↓)逐档切换,Home到off,End到max - 音效:随按压 / 过档 / 落位播放合成机械声
- 纯 Client 端 UI 插件:通过
package.json的dsh.client声明被 DSH web 扫描加载(无需自定义 Host 行为) - 读取/设置思考等级走的是内置连接 RPC:
connection.api.sessions.models/connection.api.sessions.selectModel - 参考了 DSH 内置的
dsh-client-ui-model-selection与dsh-client-ui-input-trigger的槽位注入模式(conversation.input.left)
MIT
