flyemFSB/dsh-reasoning-effort-hdbzq ↗★ 0
dsh-reasoning-effort-hdbzq
DeepSeek Harness composer model seat: model picker plus a three-stop reasoning bar (小难梁 / 梁子 / 梁圣)
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:flyemFSB/dsh-reasoning-effort-hdbzq说明文档
阅读完整 README ↗dsh-reasoning-effort-hdbzq
DeepSeek Harness 前端插件:把输入框里的模型选择控件换成模型列表 + 三档推理档位滑块。档位名称和头像取自 src/client/assets/ 下的三张图片,从左到右:小难梁 · 梁子 · 梁圣。
实现遵循官方客户端插件契约(packages/client/AGENTS.md、ui-slots 插槽系统、tsdown.client.ts 构建契约),没有基于既有插件二开:
- 用官方
ctx.slots.inject+slots.register(priority: -10)覆盖内置conversation.input.model席位,卸载后自动恢复。 - 复用官方
modelDirectories服务与共享目录 store,不自己实现模型调用。真实 Effort ID(如off/high/max)原样交给session.selectModel,「小难梁 / 梁子 / 梁圣」只在浏览器界面出现,不会写进模型请求。 - 样式只用官方
--dsw-alias-*语义 token,跟随亮/暗主题。 - 文案走官方 locale 字典机制(
zh/en双词典)。 - 构建产出与官方一致的
__ModuleLoader__闭包包(lib/client.js+ source map),CSS Modules 经 lightningcss 编译并自动注入 ``。
功能
- 触发按钮:当前模型名 + 当前档位名 + 档位头像。
- 弹出面板:按 provider 分组的模型列表(含加载/失败/空态),下方是可拖动的三档滑块。
- 滑块是原生
range语义 + 完全自绘交互:- 连续跟手:拖动时 thumb、填充、档位名、头像由指针直接驱动,没有往返延迟。原生 value 拖动中是步进取整,无法跟手,所以 pointerdown 直接弃用原生拖动。
- 弹性越界:拖出轨道两端后 thumb 带 25% 阻尼跟随,松手弹簧回弹。
- 松手吸附提交:松手吸附到最近档位并提交一次真实 Effort ID;半程松手吸附最近档;键盘 ← → 和点击轨道即时提交。
- 合并去重:自己提交在途时输入保持可用,新档位 latest-wins 落地后续传,连续快速拖动不丢档位。提交被拒时回弹到已确认档位,错误显示在面板内。
- 面板稳定:拖动中不响应外点关闭;面板打开期间按钮标签冻结,轨道不会位移;档位标签与轨道刻度对齐。
- 档位名称按位置映射:
efforts[i]↔ 第 i 张图片的文件名;图片不足或档位超过三张时回退到 host 目录提供的原始名称。 - 被寻址的子代理会话(
subagentAddress命中)不渲染任何内容,与内置席位契约一致。 - 无障碍:
role="slider"+ 实时aria-valuetext、键盘 ← →、Escape 关闭并还原焦点、外部点击关闭、prefers-reduced-motion。
档位映射
| 位置(从左到右) | 图片文件 | 显示名 | 提交的 Effort ID |
|---|---|---|---|
| 第 1 档 | 小难梁.png | 小难梁 | host 目录 efforts[0] 的 id |
| 第 2 档 | 梁子.png | 梁子 | host 目录 efforts[1] 的 id |
| 第 3 档 | 梁圣.png |