🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

三级模型级联选择 jcleener/dsh-model-cascade

DeepSeek Harness
jcleener25 天前有提交已提供中文文档扫描:未发现敏感能力

按供应商、系列、模型逐级挑选并设置思考强度

27.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jcleener/dsh-model-cascade
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 25 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:模型选择三级级联菜单(供应商→系列→完整模型名)

README

由 DeepSeek 最新模型翻译生成
dsh-model-cascade · 三级级联模型选择器 本插件的工作区布局(规范见 plugins/README.md) - code/ 运行代码 | tests/ 测试代码 | docs/ 开发文档 | reference/ 参考资料 - package.json / cordis.patch.yml / README.md / LICENSE 是包契约文件,必须留在本目录根 - 状态:休眠 | 运行实体:~/.dsh/profiles/desktop/plugins/dsh-model-cascade/ - 本目录是备份 + 开发文档存放处,不在这里开发:要改代码请改运行实体,验证通过后再回写到这里 把输入框(composer)右下角的模型座位换成三级级联菜单:供应商 → 系列 → 完整模型。 内置座位是一层扁平长列表,模型一多就得靠滚动和记忆找;这里先选供应商、再选系列,最后才落到具体模型 id,并在同一菜单里给出「思考强度」入口。 纯 UI 插件:宿主半是空的 apply()(只为在 Loader 里占一行),真正干活的是浏览器半 lib/client.js,它注册到 conversation.input.model 座位,以 priority: -1 遮蔽内置的两级列表。
展开完整文档(README 剩余 1 节)
dsh-model-cascade · 三级级联模型选择器

本插件的工作区布局(规范见 plugins/README.md)

- code/ 运行代码 | tests/ 测试代码 | docs/ 开发文档 | reference/ 参考资料
- package.json / cordis.patch.yml / README.md / LICENSE 是包契约文件,必须留在本目录根
- 状态:休眠 | 运行实体:~/.dsh/profiles/desktop/plugins/dsh-model-cascade/
- 本目录是备份 + 开发文档存放处,不在这里开发:要改代码请改运行实体,验证通过后再回写到这里

把输入框(composer)右下角的模型座位换成三级级联菜单:供应商 → 系列 → 完整模型。
内置座位是一层扁平长列表,模型一多就得靠滚动和记忆找;这里先选供应商、再选系列,最后才落到具体模型 id,并在同一菜单里给出「思考强度」入口。

纯 UI 插件:宿主半是空的 apply()(只为在 Loader 里占一行),真正干活的是浏览器半 lib/client.js,它注册到 conversation.input.model 座位,以 priority: -1 遮蔽内置的两级列表。

特性

- 三级级联:第 1 级是 harness 供应商分组(group.name,即配置里那条 API 路由),第 2 级是从模型 id 推断出的系列,第 3 级是完整模型 id。各级顺序沿用模型目录自己的顺序。
- 面包屑 + 返回:菜单顶部显示当前层级路径,可逐级返回;Esc 也是「退一级」。
- 思考强度(effort)独立一屏:当前模型支持 reasoning 时,根部多一行「思考强度」,进入后列出该模型的 effort 列表(含「默认」项),选择会提交 { provider, model, reasoningEffort }。
- 复用同一份 ModelDirectory:modelDirectories.directoryFor(sessionId) 拿到的是内置座位用的那个 per-session 目录 store,因此选中态、连接重置、composer 阻塞等行为与内置座位一致。
- 状态可见:加载中提示、整体加载失败(带「重新加载」)、分组级失败逐条告警、选择失败弹 Toast。
- 纯中英双语:注册 model-cascade 命名空间字典(zh / en),无其它配置。

启用方式

cordis.patch.yml 是 bundle patch 层,内容就是一行挂载:

- insert:
- id: dsh-model-cascade
name: dsh-model-cascade

- 宿主半:lib/index.js 的 apply() {} 是空函数,不注册服务、不读配置、不占端口。
它的存在只是让插件在 Loader 里有一个 dsh-model-cascade 条目。
- 浏览器半发现:靠 package.json 的 dsh.bundle.patch 与 dsh.client (platform: "web"),浏览器半从 exports["./client"] 载入。
- 依赖的服务(客户端 inject): slots、modelDirectories、sessions、locale、remote、remote.session。
后两个不是可选装饰:ui-model-selection 的 directoryFor 在铸造 per-session 目录时会解引用
this.ctx["remote.session"],缺了就会抛 "without inject",座位被错误边界摘掉、内置座位重新生效
(这段原因写在代码注释里)。
- 把包放进 profile 的 node_modules 并追加上面的 insert 行后,浏览器半随实例加载;客户端半的发现链路需要实例重启 + 浏览器硬刷新(与同仓 dsh-qq-bridge 同类,本插件代码内未体现)。
- 遮蔽机制:同一 slot 单占用,最低 priority 渲染;本插件注册 priority: -1,压过内置的两级列表。内置座位的 priority 约定若变化,遮蔽可能失效。

配置项

无配置。宿主半没有 settings.register(...),客户端半只注册 locale 字典:

ctx.effect(() => ctx.locale.register('model-cascade', { zh, en }), 'dsh-model-cascade: dictionaries')

档位、开关、默认模型等都不由本插件提供;它只改写选择器的交互形态。

主要能力

注册的 Slot

| 项 | 值 |
| slot 名 | conversation.input.model |
| locale | model-cascade |
| priority | -1(遮蔽内置座位) |
| 组件入参 | locked、available、directory、load、select、t |

- available = sessions.subagentAddress(sessionId) === undefined:子代理会话里座位不渲染(return null)。
- load() 调目录 store 的 load();select(selection) 调 directory.select(...),成功/失败折成布尔,失败时用目录快照里的 error 弹 Toast。
- 数据来自 directory.subscribe / directory.getSnapshot(),读 groups / current / status (loading / ready / selecting)/ error / failures。

交互

- 触发按钮显示「当前模型名」+「思考强度名」(有 effort 时用 · 连接), locked 时禁用;aria-haspopup="menu" / aria-expanded / aria-label 齐备。
- 键盘:↑/↓ 在当前面板的可用按钮间循环聚焦;Esc = 退出 effort 屏 → 退一级 → 关闭并回焦触发按钮(Esc 同时挂文档级监听,因为点行会卸载该按钮、焦点落回 <body>)。
- 鼠标:点击菜单外部关闭,焦点离开根节点关闭;菜单底部固定显示「当前供应商 / 当前模型」。

菜单内容

- 第 1 级:供应商行(右侧显示该供应商下的模型总数)。
- 第 2 级:系列行(右侧显示系列内模型数);系列名 = 模型 id 中最后一个 / 之后、第一个 - 之前的字符串(如 deepseek/deepseek-chat → deepseek);无 - 时退化为整段。
- 第 3 级:完整模型 id(可选描述副标题,选中项打勾)。点模型即直接选中,需要调思考强度时再走根部的「思考强度」行分开设置。

文件结构

dsh-model-cascade/
├── README.md # 本文件 ├── package.json # name/version 0.1.2;dsh.bundle.patch 指向 cordis.patch.yml;dsh.client(web) ├── cordis.patch.yml # bundle patch 层:一行 insert 挂载 id/name = dsh-model-cascade └── lib/ ├── index.js # 宿主半:空 apply(),只为让插件出现在 Loader 里 └── client.js # 浏览器半(预构建产物,window.__ModuleLoader__.load 工厂):三级级联座位组件 + 字典

备注 / 已知限制

- 声明依赖与实际 require 不一致:package.json 的 dsh.client.inject 声明了 @deepseek-ai/dsh-client-locale 与 @deepseek-ai/dsh-client-ui-model-selection;而 lib/client.js 实际 require 的是 react、react/jsx-runtime、 @deepseek-ai/dsh-client-ui-primitives(用到 Toast、IconCheckOutline16、 IconChevronRightOutline14、IconChevronDownOutline14、IconChevronLeftOutline14、 IconWarningOutline16)。也就是说:真正被 require 的 ui-primitives 未声明,声明的 ui-model-selection 从未被 require(它只作为被遮蔽的服务提供方间接存在)。
- lib/client.js 是预构建产物(window.__ModuleLoader__.load 工厂 + react/jsx-runtime 编译后的 jsx/jsxs 调用),不是可直接阅读的 ESM/JSX 源码;源码形态未随包提供。
- 系列分组是启发式的:完全按 id 文本切分,不看模型元数据。同一系列命名不统一(例如带版本号的 -v4 前缀差异)会裂成多个系列;这仅是显示层的分组,选择时提交的始终是供应商分组 id + 完整模型 id。
- CSS 与锚点硬编码:样式只注入一次,判重键是 data-plugin-css="dsh-model-cascade/ModelCascadeSelect.module.css";Toast 的 anchor 依赖 [data-composer-card] 这个属性选择器;宽度/高度用的是 min(280px, 100vw - 32px) 与 min(420px, 100vh - 96px) 固定值。
- 宿主半没有任何行为:无服务、无 model 工具、无命令、无事件监听、无 HTTP 路由、无设置命名空间——想通过它暴露能力需要另行扩展 lib/index.js。
- modelDirectories / sessions.subagentAddress / remote.session 等都是 DSH 0.1.5-rc.1 服务层的内部契约;服务重命名或签名变化时,本插件会在注册阶段或首次 directoryFor 时失败。

兼容性

- DSH 0.1.7-rc.1:可用(2026-09-24 实测,需两处适配后才可用)。
1. 图标家族改名:dsh-client-ui-primitives 把尺寸后缀图标整族删除(IconChevronDownOutline14、IconWarningOutline16…),改为描边档 …Artwork / …Regular / …Medium。旧名字渲染时取到 undefined 会抛错,而 0.1.7 的槽位新增 abdicate(除名)机制会把崩溃条目移出投影 —— 表现为「注册成功但座位消失、退回官方两级菜单」。
已改名,并为原本 14px 的图标补 size: 14(Regular 档默认 16px)。
2. 菜单底色:--dsw-specific-menu 在 0.1.7 由不透明改为半透明(浅 #f8f9fa94 / 深 #30313680,官方菜单配 backdrop-filter 做毛玻璃),本插件没配模糊 → 菜单透出背后内容。已改用不透明的 --dsw-alias-bg-layer-3。
- DSH 0.1.6-alpha.2:可用。
预览分享卡片长什么样 ↓jcleener/dsh-model-cascade
分享 · DeepSeek Harness Hub
jcleener/dsh-model-cascade

按供应商、系列、模型逐级挑选并设置思考强度

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部