dsh-reasoning-effort-slider:将模型菜单的 Effort 行改造为 Codex 风格滑块

前言

DeepSeek Harness(DSH)允许开发者通过插件扩展功能。在模型选择菜单中,Effort(推理强度)通常以离散行呈现。本插件将这一行替换为一个连续的、落点吸附的 Codex 风格滑块:拖动时跟随指针,松开后在 80ms 内吸附到最近级别;支持方向键、Home/End 快捷键;最高等级显示星空与紫光晕。它只扩展 Effort 行,不侵入模型选择器的其他区域。

是什么

  • 名称:dsh-reasoning-effort-slider
  • 维护者:sleepinggggggggggg
  • 分类:客户端
  • 定位:将 DSH 模型菜单的 Effort 行替换为 Codex 风格推理强度滑块
  • 解决的问题:用连续滑块替代原生离散行,提升调整推理强度的操作体验,同时保持与原生菜单的兼容性

核心功能

视觉与交互

  • 连续轨道与白色圆点滑块(高度 28px,中心偏置 14px),始终保持圆形
  • 按级别位置驱动颜色:首级为蓝色(#4d93f8),中间为蓝色→紫色渐变(#9333ea),最高级为深紫(#4c1d95),文字颜色同步变化(最高级为紫色 #8b5cf6)
  • 最高等级时在填充区域右侧出现 26 个错位星点 + 紫光晕层,且光晕与星空被剪裁到已填充部分
  • 交互方式:
  • 按下轨道:跳转到按下格子
  • 拖动:滑块与填充轨道跟随指针,级别名称、刻度与写操作使用最近级别;松开时在 80ms 内吸附,无回弹
  • 松开或指针静止约 160ms:立即提交
  • 方向键:每按一次一个级别,立即提交
  • Home/End:最低/最高级别
  • 悬停:显示当前级别与「右侧级别消耗更多 token」提示

写操作与错误处理

  • 写操作去重与合并:拖动过程中最多写入少数几次;若选中的级别已生效则不写入
  • 失败时在轨道下方显示原因,4 秒后清除

兼容与不破坏原生菜单

  • 仅添加 data-dres-row 属性到原生 Effort 行(该行已被插件撑高并换行)
  • 原生类名、文本与右箭头保持不变
  • 采用 fail-open 策略:若未检测到预期语义结构(缺少 aria-haspopup / aria-expanded / aria-controls 或非模型/effort 对),则不注入,原生菜单继续工作
  • 行高增长触发原生菜单的 ResizeObserver,自动调整面板位置
  • 关闭或卸载页面时移除容器、属性,并恢复所有文字的原生颜色

数据路径

插件通过 DSH 的公共会话接口读写推理强度:

  • 读取级别列表:session.modelCatalog() → groups[].models[].reasoning.efforts
  • 读取当前值:modelSelection session projection(降级使用 catalog 默认值)
  • 写入级别:session.selectModel({ sessionId, provider, model, reasoningEffort })(与原生菜单相同的入口)

安装与启用

从 GitHub 安装:

dsh plugin --profile <profile> add github:sleepinggggggggggg/dsh-reasoning-effort-slider

从本地目录安装:

dsh plugin --profile <profile> add <绝对路径>

在桌面端:使用「设置 → 插件 → 添加插件」,填入与上述相同的值,然后刷新页面或重启应用。

兼容范围

插件在 package.json 中声明 engines.dsh: >=0.2.0-rc.2 <0.3.0-0,已验证与 DSH 0.2.1-rc.2 兼容。DSH 在加载插件前会检查版本范围,超出范围时拒绝加载并给出明确提示。

已知限制

  • 依赖原生菜单的语义结构(aria-haspopup / aria-expanded / aria-controls / role=”menuitem”)。若 DSH 更改这些结构,插件将静默不生效(不破坏菜单),需后续更新。
  • 必须在模型菜单打开时才能切换级别;工具栏折叠态仅保留 Effort 文字的原生样式。
  • 单级别模型(例如禁用推理)不渲染控件,原生行高度恢复为原始值。
  • 模型目录在页面生命周期内被缓存,仅重连时会重新获取;在设置中新增的 Provider 或模型需要刷新页面才能生效。
  • 级别选择仅对下一条请求生效;正在运行的步骤保持其初始级别(与原生菜单一致)。

适用场景与注意

适合希望用更直观的滑块替代原生 Effort 行的开发者。插件以客户端方式运行,安装前建议查看源码与许可证(MIT)。

短结尾

本插件将 DSH 模型菜单的 Effort 行改造为 Codex 风格滑块,提供连续拖动、落点吸附与星空视觉反馈,同时保持对原生菜单的兼容性。详细信息与反馈请访问:
- 插件目录页:https://www.skillhub.cn/plugins/sleepinggggggggggg/dsh-reasoning-effort-slider
- GitHub 仓库:https://github.com/sleepinggggggggggg/dsh-reasoning-effort-slider

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye