dsh-web
zhu1090093659
DeepSeek Harness (DSH) Web 插件聚合生态 · 万物皆插件,通过创意工坊分发||DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:bitterSmilezzz/dsh-model-selector
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
增强模型选择器(Model Selector) —— DeepSeek Harness (DSH) 的增强模型选择器:单层菜单(搜索 + 分组)+ 底部内联推理强度(Reasoning Effort)滑杆。从 dsh-ui-tweaks 按功能拆分出的独立插件包。
| 默认菜单(分组折叠 + 推理滑杆) | 搜索过滤(跨供应商同名模型带供应商标) |
|---|---|
![]() |
![]() |
conversation.input.model,shadow 方式叠加,不禁用官方组件)İ/café 这类 Unicode 折叠差异都能命中(NFKD 归一化;高亮只在码位长度不变时标注,不画错位置)/model 弹窗共用官方 modelDirectories 目录,两处实时同步# npm(推荐):包名 @bittersmilezzz/dsh-model-selector
dsh plugin --profile <profile> add @bittersmilezzz/dsh-model-selector
# 或从 GitHub
dsh plugin --profile <profile> add github:bitterSmilezzz/dsh-model-selector
# 或本地路径
dsh plugin --profile <profile> add <path-to-repo>
启用后刷新浏览器页面(web profile),模型选择器即替换输入区原 seat。
无设置项(纯 UI 插件),不占用「设置 → 插件 → 配置」卡片位。
@deepseek-ai/dsh-client-ui-slots 等官方注入包(见 package.json peerDependencies)。权限等级:low。纯 client UI:不注册 host 工具、不读写宿主文件、不访问凭据、不发起自有网络请求。
模型目录与切换动作走官方 session RPC(ctx.remote.session 的目录加载与 selectModel),与官方模型选择器使用同一条通道、同一份 modelDirectories 目录状态;除此之外不与宿主通信。UI 反馈(Toast、图标、浮层定位)运行时复用官方 @deepseek-ai/dsh-client-ui-primitives。
ModelSelectInjected),需同步适配;这是官方认可的 slot 叠加机制,并非禁用官方 entry。conversation.input.model 的插件同时安装时,优先级决定渲染赢家,可能互相覆盖(本插件优先级 -1 最低,默认胜出)。test/official-seat-shadow.test.mjs 钉住:官方当前注册该座位时不声明 priority(即默认 0),遮蔽才成立;官方一旦开始声明(尤其 <= -1)或把该座位从 single 改成 chain,测试先变红,提示重新评估策略。priority: -1),没有禁用/替换官方 entry,也没有改动任何 @deepseek-ai/* 组件本体。标准双半区结构,lib/ 为构建产物(入库:CI 会校验重建结果与提交一致):
pnpm install
pnpm typecheck # 双 program(host + client)
pnpm build # tsc host + tsdown client bundle + client d.ts
pnpm test # node --test(纯函数 + 产物/契约门禁)
pnpm validate:registry # 上架前自检(当前 = pnpm test)
纯函数模块与调优常量(含义与调法见各常量旁注释):
| 位置 | 内容 |
|---|---|
src/client/ModelSelect.tsx 顶部 |
DIRECTORY_STALE_MS / MAX_VISIBLE_HITS / EFFORT_COMMIT_TIMEOUT_MS |
src/client/menuFit.ts |
MENU_MAX_HEIGHT / MENU_VIEWPORT_MARGIN |
src/client/effortCanvas.ts |
DRAG_EASE / IDLE_EASE / SETTLE_EPSILON(辐射特效手感) |
src/client/effort.ts |
EFFORT_RANK(档位强弱序,决定「最强思考档」) |
search.ts(折叠匹配/命中窗口/空态)、keys.ts(键盘状态机)、copy.ts(trigger
文案链)、roving.ts(行键与 Tab 落点)都是纯函数模块,node --test 直接跑源码。
刻意不做配置化——纯 UI 插件无 settings namespace,不为此引入配置基建。
改完源码必须 pnpm build 并提交 lib/:CI(.github/workflows/ci.yml)会跑
pnpm build && git diff --exit-code -- lib,入库产物与重建结果不一致即失败
(测试里也钉了源码内容指纹,本地 pnpm test 即可发现「改了源码没重建」)。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: ui。