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

模型分块选择器 liu19666/dsh-model-block-picker

DeepSeek Harness
liu1966621 天前有提交已提供中文文档扫描:含敏感能力

按来源分块下钻挑选模型,保留搜索与推理强度

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

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

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

状态速览

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

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

验证判据与等级说明 →

可信度证据

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

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
  • 读取本地文件
    index.js:79
    const parsed = JSON.parse(readFileSync(STORE_PATH, 'utf8'));
  • 写入本地文件
    index.js:100
    mkdirSync(dirname(STORE_PATH), { recursive: true });
  • 写入本地文件
    index.js:108
    writeFileSync(temporary, payload, 'utf8');
  • 写入本地文件
    index.js:109
    renameSync(temporary, STORE_PATH);
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DeepSeek Harness 插件:把输入框模型选择器改成按来源渠道分块 + 下钻选模型,保留搜索与推理强度

README

由 DeepSeek 最新模型翻译生成
dsh-model-block-picker DeepSeek Harness (DSH) 插件 —— 按模型来源分块的输入框模型选择器。 把官方那个「所有模型拉成一条长列表」的选择器,换成先按来源渠道分块、再下钻进块内选模型的两级结构;搜索、推理强度(Reasoning Effort)、模型可用性等原有能力完全保留。 效果 点击输入框右下角的模型位,弹出的不再是长长的平铺列表,而是按来源分块的卡片网格: 分块面板与搜索、推理强度 - ① 全局搜索 —— 直接在顶部输入 v3 / sonnet / r1,跨全部 17 个来源聚合匹配;回车选中首项。 - ② 按来源分块 —— 每个渠道一张卡片,标出「N 个模型」与「进入 →」。 - ③「当前」标记 —— 正在使用的来源高亮描边 + 右上角黑标。 - ④ 推理强度 —— 当前模型支持 reasoning 时,浮层底部保留 Reasoning Effort 选择器。 触发按钮本身与同排的截图 / 麦克风图标保持同一设计语言(黑底 + 主题 off-white 描边与文字): 输入框模型位与同排图标 功能 - 按来源分块:DeepSeek 账号、DeepSeek API,以及 CodeBuddy / Qoder / TRAE 等第三方渠道,各自成为一张卡片;卡片上显示来源名、模型数量,当前所用来源带「当前」标记。
展开完整文档(README 剩余 1 节)
dsh-model-block-picker

DeepSeek Harness (DSH) 插件 —— 按模型来源分块的输入框模型选择器。

把官方那个「所有模型拉成一条长列表」的选择器,换成先按来源渠道分块、再下钻进块内选模型的两级结构;搜索、推理强度(Reasoning Effort)、模型可用性等原有能力完全保留。

效果

点击输入框右下角的模型位,弹出的不再是长长的平铺列表,而是按来源分块的卡片网格:

分块面板与搜索、推理强度

- ① 全局搜索 —— 直接在顶部输入 v3 / sonnet / r1,跨全部 17 个来源聚合匹配;回车选中首项。
- ② 按来源分块 —— 每个渠道一张卡片,标出「N 个模型」与「进入 →」。
- ③「当前」标记 —— 正在使用的来源高亮描边 + 右上角黑标。
- ④ 推理强度 —— 当前模型支持 reasoning 时,浮层底部保留 Reasoning Effort 选择器。

触发按钮本身与同排的截图 / 麦克风图标保持同一设计语言(黑底 + 主题 off-white 描边与文字):

输入框模型位与同排图标

功能

- 按来源分块:DeepSeek 账号、DeepSeek API,以及 CodeBuddy / Qoder / TRAE 等第三方渠道,各自成为一张卡片;卡片上显示来源名、模型数量,当前所用来源带「当前」标记。
- 两级下钻:点卡片 → 进入该渠道内只含它自己模型的列表;顶部 ← 所有来源 或 Esc 返回。
- 全局搜索:直接输入 v3 / sonnet / r1 等关键词即可跨所有来源聚合匹配,回车选中首项;清空即回到分块视图。
- 推理强度保留:当前模型支持 reasoning 时,浮层底部出现强度选择器(默认 / low / medium / high…)。
- 主题自适应:浅色、深色均用 DSH 主题 token;深色下触发按钮为黑底 + 主题 off-white 描边/文字,与同排麦克风、截图图标同一设计语言。

安装

从本机目录安装(开发 / 自用)

在 DSH 会话里对 Agent 说:

帮我安装位于 <本仓库路径> 的插件

Agent 会执行 plugin_manager(action: 'install_bundle', target: '<绝对路径>')。

安装后彻底退出 DSH 桌面端再重新打开(客户端 bundle 有启动基线缓存,仅刷新页面不一定加载新代码)。

卸载:plugin_manager(action: 'remove_bundle', target: 'dsh-model-block-picker'),回退到官方原生选择器。

它是怎么工作的

1. 覆盖官方选择器(Slot 影射)

输入框模型位是 DSH 公开的一个命名插槽:conversation.input.model(kind: "single",会话作用域)。

- 官方实现注册在优先级 -10;
- 动态安装的插件注册同名插槽时,系统分配更低的数值即更高优先级获胜;
- 本插件显式注册 priority: -20,因此作为 winner 覆盖原生组件,卸载即自动回退。

注意:single 槽位要求同优先级唯一,所以必须用负数优先级,否则会抛 single slot already has a registration。

2. 复用官方数据服务(不重复造轮子)

不自己请求后端。通过 ctx.modelDirectories:

const directory = models.directoryFor(sessionId);
directory.store // 快照:{ groups: [{ id, name, models: [...] }], current: { provider, model, reasoningEffort } }
directory.load() // 拉取目录
directory.select({ provider, model, reasoningEffort }) // 提交选择

与 /model 命令弹窗共用同一份会话级目录,任一入口的切换另一入口立即可见。

3. 深色外观的白,来自主题而不是硬编码

早期版本手写 #1c1f23 之类的兜底色,在深色下不会反转,导致字和箭头变深灰。现在全部改用真实 token:

| 用途 | token | 深色取值 |
| 主文本 | --dsw-alias-label-primary | #f9fafb(off-white,非纯白) |
| 边框 | --dsw-alias-border-l1 | #ffffff0f |
| 背景 | --dsw-alias-bg-layer-1/2、--dsw-alias-bg-overlay | — |
| 品牌色 | --dsw-alias-brand-primary | — |

深色下额外用 body[data-ds-dark-theme] 把触发按钮设为 .5px 描边 + 该 token,与右侧截图插件(color: var(--dsw-alias-label-primary) + fill:none stroke=currentColor stroke-width=1)保持同一笔画重量。

踩坑记录:写 CSS 时别凭印象编变量名。DSH 里不存在 --dsw-alias-text-regular、--dsw-alias-border-subtle、--dsw-alias-surface-overlay、 --dsw-alias-primary 这些名字——它们会静默回落到你写的兜底值,浅色看着没事、深色就崩。
可用 cordis_inspect_query(platform: 'client', provider: 'Theme', method: 'listTokens') 查真实 token。

文件结构

dsh-model-block-picker/
├── package.json # 清单:dsh.bundle.patch + dsh.client 声明 ├── cordis.patch.yml # Loader patch:把本包插进 profile 名单 ├── index.js # 宿主半边(挂 /diag 诊断路由) ├── client.js # 浏览器半边:React 组件 + 样式 + 插槽注册 ├── LICENSE └── README.md

诊断

排障时会用到:

- 宿主侧日志前缀 [dsh-model-block-picker](DSH 日志里搜这个)。
- 浏览器端各生命周期节点会打到 /plugins/dsh-model-block-picker/diag: module-evaluated → apply-called → slot-inject-triggered → registered-success。
若停在 register-error,说明槽位/优先级冲突;停在 apply-error 多半是 inject 未声明就访问了服务。

另一个坑:客户端沙箱对服务访问有白名单。顶层 inject 声明了 ['slots','modelDirectories'],就不能再直接读 ctx.sessions,否则抛 service "sessions" is not declared 并当场崩溃。

已知限制

- 只替换输入框(composer)的模型位;/model 命令弹窗仍是官方样式(两者共用同一份数据,切换互通)。
- 已寻址的 subagent 会话不提供模型选择(沿用官方约定)。
- 来源分组顺序:DeepSeek 账号 → DeepSeek 官方 → 其余按名称排;如需自定义顺序改 client.js 里的分组排序逻辑。

许可

MIT
预览分享卡片长什么样 ↓liu19666/dsh-model-block-picker
分享 · DeepSeek Harness Hub
liu19666/dsh-model-block-picker

按来源分块下钻挑选模型,保留搜索与推理强度

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