better-dsh-codex-effort-slider:DSH 输入区的 Codex 风格推理等级滑条

前言

在 DeepSeek Harness(DSH)里调模型的推理档位,常见做法是点输入框旁的模型席按钮,在菜单里逐档选择。档位多时要点好几下,颜色和强度也不会随档位连续变化。社区维护者 eloimovo 的 better-dsh-codex-effort-slider 把那颗席按钮换成一条可拖动的连续滑条:拖动即改档,填充色从蓝过渡到紫罗兰,高档位带紫色星云与星尘粒子,并接管官方模型选择面板(仍保留 provider → 模型两级结构)。下面介绍它做什么、怎么装、怎么用,以及改源码时要注意的配置与限制。

这是什么

better-dsh-codex-effort-slider 是面向 DSH Desktop 的客户端插件(dsh-plugin),当前版本 1.3.10,MIT 许可,零运行时依赖。它在输入区仍显示一颗「模型名 · 档位名 ⌄」按钮,点开是自建的两级浮层(provider 列表 → 模型列表与搜索),滑条在面板内连续调节推理等级;收起态与官方布局一致,不会与官方席按钮并排出现(插件以 priority: -1 遮蔽官方占用同一槽位的控件)。

宿主需暴露 slots、sessions、remote、remote.session、modelDirectories 等服务,以及 conversation.input.model、conversation.input.overlay、conversation.input.right 三个槽。README 写明已在 DSH Desktop 0.2.0-rc.2(Windows) 实机验证。

核心功能

连续滑条与视觉反馈

  • 一条连续滑条,而非离散按钮;颜色与粒子由滑块位置驱动,与模型实际有几档解耦。
  • 一档一色:填充从蓝渐变到紫罗兰,右端对应当前位置;官方那一行的档位文字随位置变色(Off 保持官方灰)。
  • 越往右越「通电」:高档位出现紫色星云与星尘,粒子数量与横穿速度随位置变化。
  • 深浅主题跟随 DSH(body[data-ds-dark-theme]);面板使用与官方菜单相近的毛玻璃(blur(40px) saturate(150%))与半透明底。

模型席与档位行为

  • 点模型只切换模型、不关闭面板;滑条立即跟到新模型,默认落在中间档(奇数档取正中,偶数档取「中间的下一个」,例如 4 档 → 第 3 档)。
  • 拖动或点轨道改档:拖动过程中不写宿主,松手或停手 260ms 后再落地一次。
  • 点档位名可展开弹层,每行显示档位名与原始 API 取值(如 max)。
  • Esc 逐层关闭:弹层 → 二级页 → 整面板;点面板外或再点按钮关闭。
  • 读不到目录、宿主未列出 provider、加载失败时,面板会显示原因原文(含宿主逐 provider 报错);任一步无法识别则 fail-open,不破坏官方界面。离线测试套件 911 项通过。

安装与启用

安装后须完全退出并重开 DSH Desktop(仅关窗口不够;宿主在启动时加载插件)。

方式一:插件面板(推荐)

DSH Desktop → 设置 → 插件 → 添加插件,填写以下三者之一:

  • 本地目录路径(解压 Release zip 或 clone 后的根目录)
  • github:eloimovo/better-dsh-codex-effort-slider
  • npm 包名(走 registry)

也可从 GitHub Releases 下载 better-dsh-codex-effort-slider-<version>.zip,解压后把目录路径填进面板。

方式二:一键脚本

当设置里没有「插件」面板时(例如 dsh-base 禁用 plugin-manager),在仓库根目录执行:

install.cmd                    # 装进 desktop profile
install.cmd -Profile tui       # 装进别的 profile
install.cmd -Uninstall         # 卸载

脚本会备份 profile 的 package.json、添加 link: 依赖、写入 dsh.profile.bundles、在 profile 的 node_modules 下建链接(Windows 为 junction)。

方式三:命令行(非 desktop profile)

desktop profile 由 Electron 独占,命令行会被拒绝。其它 profile 可用:

dsh plugin --profile tui add link:"<插件的绝对路径>"
dsh plugin --profile tui add github:eloimovo/better-dsh-codex-effort-slider

升级与卸载

  • 升级:在面板重装或指向新目录,再完全退出并重开 DSH Desktop。
  • 卸载:面板卸载,或 install.cmd -Uninstall。手工建的 junction 用 cmd /c rmdir <junction>;不要用 Remove-Item -Recurse,以免顺着链接删掉插件源目录。

典型用法

收起态示例(输入框右侧一颗按钮):

[ DeepSeek-V41-Flash  Max  ⌄ ]

点开后的常见操作:

操作 结果
点 provider 行 横向进入该 provider 的模型列表(带搜索)
点某个模型 只切模型,滑条跟到新模型并落中间档
拖滑条 / 点轨道 改档位,松手或停手 260ms 后写入宿主
点档位名 展开档位列表(名称 + API 取值)

面板右缘与输入框右缘对齐,底边在按钮上方 8px;页面滚动或缩放时只重新定位、不自动关闭。

本地预览 UI(无需 DSH)可先构建再打开预览页:

npm run build
npm run preview

浏览器打开 preview/panel.html;截图用参数示例:preview/panel.html?shot=1&level=max(?dark=1 深色,?level=<档位 id> 定位档位)。

配置(编译期)

插件没有运行时设置界面,常量改源码后需重新构建并重启 DSH:

常量 文件 作用
ENABLE_OFFICIAL_MENU_SLIDER lib/client.js 默认 false:自建浮层接管官方席;true 为改造官方菜单内滑条的老模式(二者互斥)
STARFIELD_DURATION_SPREAD lib/client.js 星尘时长浮动,默认 ±8%;0 则同速
TRACK_HEIGHT / KNOB_SIZE lib/client.js 轨道高与旋钮直径,默认 28px
COLOR_TEXT_VIOLET 等 lib/client.js 档位文字与填充色;改色前见仓库 ARCHITECTURE.md 对比度说明
GLASS_VARS lib/client.picker.src.js 面板模糊、底色、阴影

改完 lib/client.picker.src.js 后执行 npm run build 生成 lib/client.picker.js。若只改 picker 未动 lib/client.js,浏览器可能因 ?rev= 缓存旧 chunk,可硬刷新(Ctrl+Shift+R)或重启 DSH,或更新 lib/client.js 的时间戳。

开发环境需要 Node >= 22(仅构建与测试;插件本体在宿主内运行,无 npm 运行时依赖)。

适用场景与注意

适合谁:在 DSH Desktop 上频繁切换模型与推理档位、希望 Codex 式连续滑条与视觉反馈的开发者。仍可用官方 /model 命令切模型;接管官方席按钮后,官方模型菜单入口不再从该按钮进入。

权限与安全:插件随当前 DSH 进程加载,与宿主同权限。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,从 Releases 或可信来源安装。

常见问题(摘自 README):

  • 装完无变化:先完全退出重开;在 设置 → 插件 查看详情是否有 error(如 package.json BOM 会导致整包被丢弃)。
  • 「宿主没有列出任何 provider」:模型目录为空,需检查 设置 → 模型 / 账号。
  • 「还没有会话」:新会话壳上尚无会话 id,发一条消息或打开已有会话即可。
  • 官方 DOM 语义变更时插件会静默退回不做修改(依赖 aria-haspopup 等锚点,不依赖哈希 class)。

已知限制:需重启 DSH 才加载客户端 bundle;模型与档位列表以宿主目录为准;8 档模型的满能量观感按连续曲线有意与部分参考实现不同(见仓库 MODIFICATIONS.md)。

链接

社区插件目录由 SkillHub 等站点维护,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」的扩展方式,可按需选用本插件替换输入区推理档位交互。

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

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

小夜