@lynn123411/dsh-model-submenu 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/DETAILS.md +46 -0
  2. package/README.md +12 -9
  3. package/package.json +3 -2
package/DETAILS.md ADDED
@@ -0,0 +1,46 @@
1
+ # @lynn123411/dsh-model-submenu 详情
2
+
3
+ > 本文档是 [README.md](./README.md) 的补充:装配形态、开发副本与验证。
4
+
5
+ ## 装配形态
6
+
7
+ 装进 profile 一条命令即可,profile 侧不用手写任何补丁:
8
+
9
+ ```bash
10
+ dsh plugin --profile web add @lynn123411/dsh-model-submenu
11
+ ```
12
+
13
+ 这条命令把包名写进 profile 的 `dependencies`,并登记进 `dsh.profile.bundles`;包内 `cordis.patch.yml` 随之插入一条根层行:
14
+
15
+ ```yaml
16
+ - insert:
17
+ - id: lynn-model-submenu
18
+ name: '@lynn123411/dsh-model-submenu'
19
+ ```
20
+
21
+ 这条行同时承载两个半边:宿主半边在那条行下注册插件本体,浏览器半边由 Web shell 按 root loader 的 enabled entry 依据 `dsh.client` 声明服务 `lib/client.js`。行不写 `config`——写了当场抛,免得拼错的行静默什么都不注册。
22
+
23
+ 客户端半边声明的服务(`dsh.client.inject`):`@deepseek-ai/dsh-client-ui-slots`、`@deepseek-ai/dsh-client-locale`、`@deepseek-ai/dsh-client-ui-model-selection`。少声明一个不会报错,只会让插件在页面里消失。
24
+
25
+ ## 开发副本
26
+
27
+ 运行副本用 `link:` 连到本仓库目录,改完即生效(细则见仓库 `docs/rules/dev-copy.md`):
28
+
29
+ ```bash
30
+ cd ~/.dsh/profiles/web && pnpm add "link:<my-dsh 绝对路径>/plugins/dsh-model-submenu" --offline
31
+ cd <my-dsh 绝对路径>/plugins/dsh-model-submenu && pnpm install && pnpm build
32
+ ```
33
+
34
+ 客户端半边改完刷新页面即生效,必要时硬刷新一次;宿主半边要重启 DSH 实例(loader 只在启动时装载)。
35
+
36
+ ## 验证
37
+
38
+ 在包目录跑一条链:
39
+
40
+ ```bash
41
+ cd plugins/dsh-model-submenu && pnpm check
42
+ ```
43
+
44
+ `check` = `typecheck` + `build`(tsdown)+ `smoke` + `assert:lib-untracked`。`scripts/smoke-client.mjs` 按 Web shell 的方式装载构建产物 `lib/client.js`(`window.__ModuleLoader__.load` 桩件),喂假 cordis 服务,断言导出身份、`inject` 表、以 `priority: -100` 接管 `conversation.input.model` 座位,以及各供应商与模型的注册项齐全;`lib/` 是构建镜像,`assert:lib-untracked` 判它没被 git 跟踪。
45
+
46
+ 要肉眼确认页面上的形态,用仓库的 `node tools/verify-client.mjs dsh-model-submenu --needle '<你新写的类名或文案>'`。
package/README.md CHANGED
@@ -1,19 +1,22 @@
1
1
  # @lynn123411/dsh-model-submenu
2
2
 
3
- 给输入框里的模型选择器加上供应商层级:先在供应商里挑,再挑该供应商的模型。
3
+ 给输入框里的模型选择器加上供应商层级:先在供应商里挑,再挑这个供应商的模型,模型列表与推理等级都留在同一张原生弹层里。
4
4
 
5
- ## 特性
5
+ ## 功能
6
6
 
7
- - **一级仍是原生两行**:根面板保持内置弹层的两行结构,「供应商」取代原来的「模型」,右侧显示当前供应商名;「推理等级」行原样保留。
8
- - **第二级按供应商**:点「供应商」进入供应商列表;当前供应商那行显示它正在使用的模型名并带勾选,其余行显示该供应商的模型数量,顺序沿用 Host 给出的顺序。
9
- - **第三级按模型**:点某个供应商,同一面板内换成它的模型列表,面板顶部是返回行;点模型立即提交并关闭。
10
- - **推理等级照原生**:根面板的「推理等级」行进入当前模型的等级列表,选中即提交,「Default」行表示跟随供应商默认;当前模型没有推理等级时不显示该行。
11
- - **失败与加载态照旧**:目录加载中显示刷新提示,加载失败与供应商加载失败都在供应商列表顶部给出提示与「重新加载」;提交被拒时弹出与内置同款的提示气泡。
7
+ - **按供应商挑模型**:点「供应商」进入供应商列表,当前供应商那行显示它正在使用的模型名并带勾选,其余行显示它有多少个模型;再点某个供应商,同一面板内换成它的模型列表,点模型立即提交并关闭。
8
+ - **推理等级照原生**:根面板的「推理等级」行进入当前模型的等级列表,选中即提交,「Default」行表示跟随供应商默认;当前模型没有推理等级时不显示这一行。
9
+ - **加载与失败有提示**:目录加载中显示刷新提示,加载失败与供应商加载失败都在列表顶部给出提示与「重新加载」,提交被拒时弹出与内置同款的提示气泡。
12
10
  - **键鼠行为照旧**:方向键在行间移动、Tab 等同回车、Escape 与 Shift+Tab 先退回上一层、在根层才关闭;输入框过窄时触发器只显示图标。
11
+
12
+ ## 特性
13
+
14
+ - **一级仍是原生两行**:根面板保持内置弹层的两行结构,「供应商」取代原来的「模型」,右侧显示当前供应商名,「推理等级」行原样保留。
13
15
  - **接管内置座位**:以 `priority: -100` 占据 `conversation.input.model`,外观沿用内置弹层与 `--dsw-*` 主题变量;`/model` 命令面板与设置页不受影响。
16
+ - **形态与装配**:bundle 型插件,客户端半边随包内 `cordis.patch.yml` 的根层行服务,profile 侧不用手写补丁;装法、开发副本与验证见 [DETAILS.md](./DETAILS.md)。
14
17
 
15
18
  ## 安装
16
19
 
17
- ```
20
+ ```bash
18
21
  dsh plugin --profile web add @lynn123411/dsh-model-submenu
19
- ```
22
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynn123411/dsh-model-submenu",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "给输入框的模型选择器加上供应商层级:先选供应商,再选它下面的模型。",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -35,7 +35,8 @@
35
35
  "cordis.patch.yml",
36
36
  "README.md",
37
37
  "locale",
38
- "assets"
38
+ "assets",
39
+ "DETAILS.md"
39
40
  ],
40
41
  "dsh": {
41
42
  "bundle": {