dsh-collapsible-models
v0.1.1
Published
DSH client plugin: collapsible model-provider groups in the composer model picker — click a provider row to fold or unfold its models
Downloads
344
Maintainers
Readme
dsh-collapsible-models
一个 DeepSeek Harness 客户端插件:把输入框模型选择器里的 模型提供商分组做成可折叠。
在模型下拉菜单中点击任意一行提供商名称,即可折叠 / 展开它下面的全部模型—— 提供商名称旁的三角形会旋转以指示当前状态。配置了很多提供商时,可以让模型列表更短、更聚焦。
工作原理
- 输入框的模型选择器是单占用 slot
conversation.input.model,默认由官方client-ui-model-selection插件占用(priority 0)。 - 本插件以
priority: -1注册一个 shadow 条目。slot 条目按 priority 升序排列, 最低者渲染,因此带折叠能力的版本接管了这个座位,而官方 UI 仍保留在底层。 - 数据层完全不改动。每个会话的模型目录(目录、当前选择、load/select 动词)来自官方的
modelDirectoriescordis 服务,因此模型选择、推理等级、加载态、失败与提示的 行为和原生选择器完全一致。 - 若宿主机没有官方模型选择器(缺少
client-ui-model-selection),插件照常加载但 不注册任何东西——默认 UI 原样保留。
安装
dsh plugin add dsh-collapsible-models或在 DSH Desktop 中通过 Community Market 安装(本包带有受管安装器所校验的 bundle patch)。安装后重启 harness;新的模型座位在下一次客户端 generation 生效。
卸载:
dsh plugin remove dsh-collapsible-models行为说明
- 所有提供商分组默认 展开(与原生 UI 一致)。折叠状态只在本次下拉打开期间 有效,刻意不做持久化。
aria-expanded状态与每个分组的可访问标签跟随当前语言(zh/en)。- 模型列表的键盘导航保持不变;分组标题是真正的
<button>,可用键盘聚焦与切换。
开发
插件以手写 lazy-CJS 客户端 bundle 协议(window.__ModuleLoader__.load)编写——
无需构建步骤。两个半部:
dsh/index.js— 宿主机半部(空实现;通过cordis.patch.yml让包出现在宿主 Cordis 图中)。dsh/client.js— 浏览器半部(带折叠的ModelSelectshadow)。
不发布、本地试用的方式:
dsh plugin add <指向本仓库的路径或 URL>许可
MIT
