dsh-better-panel:DeepSeek Harness 的 Codex 风格推理条与模型面板

前言

DeepSeek Harness(DSH)的官方输入行里,推理档位通常用几个离散按钮呈现。拖动时缺乏连续感,颜色与视觉反馈也比较朴素。Bai-2008 提供的 dsh-better-panel 把这一行改造成一条可拖动的连续滑条,并接管模型选择入口,把原本单行按钮扩展成两级面板(Provider 列表 → 模型列表 + 搜索)。它支持深浅主题自适应、粒子特效,并且在各种异常情况下会回退到不破坏官方界面。

是什么

dsh-better-panel 是为 DSH 0.2.0-rc.2(主要是 Windows 的 DSH Desktop)提供的插件。它用 Codex 风格的连续滑条替换了官方输入行的推理档位按钮,并接管了模型选择入口。插件不依赖任何运行时库,零依赖,通过宿主提供的接口读取模型目录和档位信息,并在本地渲染一个浮层面板。

核心功能

  • 一条连续滑条:拖动即可改档位,颜色与粒子效果由位置连续驱动,与模型有几位无关。
  • 一档一色:填充层从蓝渐变到紫罗兰,右端是当前位置的颜色;右侧数值文字也跟随变色,Off 档保持官方灰。
  • 粒子与星云:高档位亮起紫色星云与星尘粒子,粒子数与横穿速度随位置变化。
  • 两级面板:输入区只有一颗按钮,点开后是 provider 列表 → 模型列表(带搜索)的二级面板。点模型不关闭面板,滑条会立即跳到新模型的中间档。
  • 深浅主题自适应:面板使用官方菜单的毛玻璃效果(blur(40px) saturate(150%)),星尘与旋钮颜色固定,始终落在蓝紫填充层上。
  • 失败可读、fail-open:读不到目录、宿主没列出 provider、加载失败时,面板会写出原因原文(含宿主逐 provider 的报错);任何一步认不出就退回“什么都不做”。

安装与启用

安装方式有三种,按省事程度排序。

  1. 在 DSH Desktop 里直接装:打开 DSH Desktop → 喂喂喂?帮我装个插件 → 甩入项目网址或 release 里的 zip 包。

  2. 使用一键脚本(不打开 DSH 时):

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

脚本会备份 profile 的 package.json、在 dsh.profile.bundles 里追加包名、在 node_modules 下创建链接(Windows 用 junction),并校验这三项。

  1. 命令行安装(仅非 desktop profile 可用):
dsh plugin --profile tui add link:"<插件的绝对路径>"
dsh plugin --profile tui add github:Bai-2008/dsh-better-panel

如果使用 desktop profile,命令行会被拒绝。

升级时,在面板里重装 / 重新指向新目录,然后完全退出并重开 DSH Desktop。卸载用面板卸载或 install.cmd -Uninstall;手工创建过 junction 的用 cmd /c rmdir <junction>。注意不要用 Remove-Item -Recurse,它可能顺着链接删除插件目录里的文件。

典型用法

插件在输入框右侧以一颗按钮呈现收起态:

[ DeepSeek-V41-Flash  Max  ⌄ ]

点开后是两级面板。主要操作如下:

  • 点 provider 行:面板横向翻页到该 provider 的模型列表(带搜索框)。
  • 点某个模型:只切换模型,不关闭面板;滑条会立即跳到新模型的中间档(奇数档取正中,偶数档取中间的下一个)。
  • 拖滑条 / 点轨道:改档位。拖动期间不写宿主,松手或停手 260 ms 后落地一次。
  • 点档位名(Max ⌄):展开档位弹层,每行 = 档位名 + 原始 API 取值(max)。
  • Esc:逐层退避:弹层 → 二级页 → 关闭面板。
  • 点面板外 / 点按钮:关闭面板。

面板右缘与输入框右缘对齐,底边贴按钮上方 8px;页面滚动或窗口缩放时只重新定位、不关闭(助手流式输出时聊天区会一直自动滚动);助手运行期间宿主会藏起控件行,此时面板保持原位。

配置

插件是编译期配置,没有运行时设置界面。主要常量在 lib/client.js 中,修改后需要重新构建并重启 DSH Desktop。

常量 位置 作用
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 里的对比度约束

面板材料(模糊、底色、阴影)在 lib/client.picker.src.js 的 GLASS_VARS 里,可以通过调整 alpha 实现更透或更实的效果。

适用场景与注意

  • 适合需要连续拖动调整推理档位、希望视觉反馈更直观的开发者与使用者。
  • 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
  • 需要重启 DSH Desktop 才能生效(客户端 bundle 在启动时注入)。
  • 官方模型菜单的唯一入口被接管后,不能通过原来的按钮打开;切模型可通过本插件面板或官方 /model 命令。
  • 如果宿主目录没列出的模型,面板里也看不到;插件依赖官方语义锚点(aria-haspopup / aria-expanded / aria-controls / role),若官方结构变更,插件会静默退回“什么都不做”。

短结尾

dsh-better-panel 把 DSH 输入行的推理档位改造成一条连续滑条,并接管模型选择入口,提供两级面板、颜色渐变与粒子特效。它不依赖任何运行时库,对深浅主题自适应,并在异常情况下保持可读性。适合希望提升档位选择体验与视觉反馈的开发者。

  • 插件目录页:https://www.skillhub.cn/plugins/Bai-2008/dsh-better-panel
  • GitHub:https://github.com/Bai-2008/dsh-better-panel
羽毛球分组比赛记分
小程序二维码

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

小夜