dsh-plugin-model-search
Verifieddsh-plugin-model-search · v1.1.1 · MIT · Web UI
给模型选择菜单(输入栏模型座位)加一个搜索框,按模型名 / 模型 ID / 描述 / provider 名称过滤。
Install
dsh plugin add dsh-plugin-model-search Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
dsh-plugin-model-search
给 DSH Web 输入栏的模型选择菜单加一个搜索框:模型很多时,打开菜单 → 模型 → 直接输入关键字过滤(匹配模型名 / 模型 ID / 模型描述 / provider 名称)。
效果
- 模型面板顶部多一个搜索输入框,进入面板时自动聚焦;
- 输入即过滤,保留分组结构;清空后恢复完整列表;
- 最近使用:每次选择模型都会记录(浏览器本地,最多 5 条),空搜索时 在分组前显示“最近使用/Recent”分组,便于快速切回;
↑/↓从搜索框直接跳转到过滤后的第一项 / 最后一项,Esc清空搜索或返回上一级;- 选择模型、推理等级、加载失败重试、错误 Toast 等行为与原菜单完全一致;
/model命令不受影响(命令面板本身已内置搜索)。
实现方式
这是一个持久化浏览器插件(dsh.client,无宿主逻辑)。package.json 必须
声明 dsh.client(platform: "web"):宿主 index.js 是空的 apply(),
缺声明时插件行照样装载成功、插件清单也显示已启用,但浏览器半边从不进入
window.__DSH_BOOT__,表现为「装了却完全没效果」。1.1.0 正是漏了这条声明。
- 用
ctx.slots.inject("conversation.input.model")以 priority: -1 注册 同名 slot。该 slot 是 single 类型,SlotCore 规定「低优先级胜出」,因此本插件 渲染的搜索版菜单会覆盖内置@deepseek-ai/dsh-client-ui-model-selection的注册(priority 0);如果本插件渲染崩溃,slot 错误边界会自动回退到内置菜单。 - 数据与写入仍复用内置插件提供的
modelDirectories服务(同一份session.models/session.selectModel状态),不读取也不改写任何配置。 - 样式使用 DSH 的设计令牌变量(
--dsw-*),自动适配明暗主题。
安装
cd model-search
./install.sh
脚本会:
- 复制插件到
$DSH_HOME/plugins/model-search; - 软链到
$DSH_HOME/profiles/node_modules/dsh-plugin-model-search; - 在
$DSH_HOME/profiles/web/cordis.patch.yml中追加 insert 条目(幂等)。
然后:
- 重启
dsh web(patch 层在进程启动时读取); - 刷新浏览器页面。
卸载
- 从
$DSH_HOME/profiles/web/cordis.patch.yml中删掉- id: model-search那一行(及其name行); - 删除软链
$DSH_HOME/profiles/node_modules/dsh-plugin-model-search和目录$DSH_HOME/plugins/model-search; - 重启
dsh web并刷新页面。
兼容性
已在 dsh 0.1.7-alpha.2 的隔离部署与生产数据副本中验证:6 个旧 <Name><Size> 图标导出已经换成 …Regular,历史会话中的搜索模型菜单可显示并接受输入。该分支专用于 0.1.7-alpha.2;旧 dsh 0.1.6-alpha.2 不提供这些新图标,请勿把此版本源码链接到旧生产部署。