dsh-model-groups 0.0.0-stage → 0.3.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DeepSeek
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,160 @@
1
- # Temporary Holding Version
1
+ # DSH Model Groups
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 给 DeepSeek Harness 的模型选择菜单增加分层折叠,并在自定义模型 API 中管理多份密钥配置。
4
+
5
+ - 按“供应商 → 密钥配置 → 模型”展开和选择。
6
+ - 同一供应商的多份配置可以使用相同的模型 ID,选择时分别使用对应密钥。
7
+ - 支持名称搜索、全部展开、全部收起,以及折叠状态记忆。
8
+ - 模型和密钥由用户手动选择,不自动轮换或切换配置。
9
+
10
+ ## 适用范围
11
+
12
+ **当前版本仅支持 DSH `0.2.2-rc.1` 的 Harness 网页界面,安装脚本需要 Node.js 22 或更新版本。**
13
+
14
+ 在 dsh-go 手机上使用时,功能出现在对应的 Harness 网页中。dsh-go 原生聊天界面的模型菜单不在本插件的修改范围内。
15
+
16
+ 完整安装包括两部分:**注册客户端插件**,以及**应用五项 DSH 兼容补丁**。只安装 npm 包不会自动应用补丁。补丁用于让模型设置、模型发现和请求发送共同识别每份密钥配置。
17
+
18
+ ## 交给 AI 安装
19
+
20
+ 把下面整段复制给能够访问 DSH 安装环境的 AI。这是一项安装任务,不是文档审阅任务。
21
+
22
+ ```text
23
+ 请帮我安装 dsh-model-groups,并完成安装后的验证。
24
+
25
+ 官方说明:
26
+ https://github.com/betsunninda9-lgtm/dsh-model-groups
27
+
28
+ 请实际执行安装,不要只评价文档或给出命令建议:
29
+ 1. 确认当前使用的 DSH 主机、profile 和界面。该插件仅支持
30
+ DSH 0.2.2-rc.1 的 Harness 网页界面;版本不符就停止并说明。
31
+ 2. 阅读仓库当前 README,使用 npm 官方源下载当前版本,
32
+ 解压到长期保留的插件目录。不要修改供应商、密钥或模型配置。
33
+ 3. 找到正在使用的 DSH 实际安装目录,核对包名与版本。
34
+ 不要把插件目录当成 DSH 目录,也不要猜测安装路径。
35
+ 4. 在解压后的插件目录执行 native-patches.mjs 的 --check,
36
+ 显式传入 --dsh-root。遇到哈希或版本不符就停止,不强制覆盖。
37
+ 5. 用 dsh plugin --profile <当前profile> add <插件绝对路径>
38
+ 注册插件。只有当前实例使用 web profile 时才填写 web。
39
+ 6. 在合适的停机窗口应用兼容补丁;如果当前对话依赖这个引擎,
40
+ 先完成可在线执行的步骤,再告诉我如何停止、应用补丁和重启。
41
+ 不要直接中断正在进行的对话。
42
+ 7. 重启原来使用的 DSH 服务并刷新原网页,核对模型菜单分组和
43
+ 设置页“多密钥配置”开关。不要启动另一个服务代替原服务。
44
+ 8. 报告安装版本、插件目录、补丁检查结果,以及是否仍需我重启。
45
+ 不要把下载成功或插件注册成功当成整项安装已完成。
46
+ ```
47
+
48
+ ## 手动安装
49
+
50
+ 以下命令适用于 Bash 环境。先确认 DSH 版本,再执行。
51
+
52
+ ### 1. 下载并解压
53
+
54
+ ```bash
55
+ PLUGIN_DIR="${DSH_HOME:-$HOME/.dsh}/local-plugins/dsh-model-groups-0.3.3"
56
+ mkdir -p "$PLUGIN_DIR"
57
+ cd "$PLUGIN_DIR"
58
+ npm pack dsh-model-groups@0.3.3 --registry=https://registry.npmjs.org/
59
+ tar -xzf dsh-model-groups-0.3.3.tgz --strip-components=1
60
+ ```
61
+
62
+ 这一步只准备插件文件。请保留该目录,后续注册与补丁回退都需要使用它。
63
+
64
+ ### 2. 确认 DSH 目录并检查补丁
65
+
66
+ `DSH_ROOT` 是正在使用的 DSH 安装目录:该目录本身或其 `node_modules/@deepseek-ai/dsh` 下的包应为 `@deepseek-ai/dsh@0.2.2-rc.1`,且该目录下包含补丁要修改的 `node_modules/@deepseek-ai/` 文件。它不是插件目录、profile 目录或项目工作目录。
67
+
68
+ 下面会询问实际路径,不要直接填写示例路径:
69
+
70
+ ```bash
71
+ read -r -p '请输入实际 DSH 安装目录:' DSH_ROOT
72
+ node scripts/native-patches.mjs --dsh-root "$DSH_ROOT" --check
73
+ ```
74
+
75
+ 成功时会列出五个目标文件。`pristine` 表示尚未应用,`patched` 表示已应用本插件对应的补丁。版本、内容或路径不匹配时,脚本报错并停止;请先解决原因。
76
+
77
+ ### 3. 注册插件
78
+
79
+ 以下以 `web` profile 为例;其他实例请填写其实际 profile 名称:
80
+
81
+ ```bash
82
+ dsh plugin --profile web add "$PLUGIN_DIR"
83
+ ```
84
+
85
+ 注册成功仍不代表兼容补丁已经生效。
86
+
87
+ ### 4. 应用补丁并重启
88
+
89
+ 保存正在编辑的内容,停止正在使用的 DSH 服务。在外部终端回到步骤 1 的插件目录,使用步骤 2 确认的 DSH 路径执行:
90
+
91
+ ```bash
92
+ read -r -p '请输入实际 DSH 安装目录:' DSH_ROOT
93
+ node scripts/native-patches.mjs --dsh-root "$DSH_ROOT" --apply
94
+ ```
95
+
96
+ 补丁脚本会校验版本与文件哈希,备份原文件后写入变更。已经应用的补丁会跳过;脚本不会启动或停止 DSH。
97
+
98
+ 用原来的方式启动 DSH,然后刷新原网页。dsh-go 本机环境中,先准备好外部终端的执行方式,再停止引擎;停止后当前 AI 对话无法继续替你执行命令。
99
+
100
+ ### 5. 确认安装结果
101
+
102
+ - 会话中的模型菜单按供应商分组,能够展开和收起。
103
+ - 在“设置 → 模型”编辑支持的自定义模型 API,可以看到“多密钥配置”开关。
104
+ - 开启并保存多份配置后,模型菜单出现对应的配置层级。
105
+
106
+ 只有客户端分组出现、设置页没有新开关时,请检查五项补丁是否全部应用,以及原 DSH 服务是否已重启。
107
+
108
+ ## 使用方法
109
+
110
+ 在“设置 → 模型”新增或编辑自定义模型 API,填写公共的 Provider ID、API 地址和协议。开启“多密钥配置”,为每份配置填写名称、密钥和模型列表,点击“应用”保存。
111
+
112
+ 例如,两个配置都提供同一模型时,菜单中会分别显示:
113
+
114
+ ```text
115
+ 示例供应商 A
116
+ 配置 A
117
+ 示例模型
118
+ 配置 B
119
+ 示例模型
120
+ 示例供应商 B
121
+ 示例模型
122
+ ```
123
+
124
+ 选择哪个配置,就使用哪份配置的密钥。搜索供应商、配置或模型名称时,匹配路径会临时展开;清空搜索后恢复原来的折叠状态。
125
+
126
+ 已有的单密钥配置会保留。旧会话仍使用原来的选择,需要时可手动切换到新配置。关闭多密钥配置会保留已保存的配置和凭据;删除某份配置也不会同时删除凭据。存在未保存的密钥输入时,需要先保存或清空输入,才能确认关闭。
127
+
128
+ 插件不会自动合并已有供应商,也不会替用户迁移密钥。API 地址不同的服务应分别配置。
129
+
130
+ ## 升级与卸载
131
+
132
+ **DSH 升级后,请先确认插件支持的新版本,不能把本版补丁强行应用到其他 DSH 版本。**
133
+
134
+ 仅停用或移除客户端插件不会还原 DSH 兼容补丁。完整卸载前:
135
+
136
+ 1. 在相关会话和子代理配置中切换回普通单密钥模型,确认不再使用带 `@dsh-key/` 前缀的选择。
137
+ 2. 关闭各供应商的多密钥配置并应用。备份 DSH 配置后,清理原版 DSH 不支持的 `multiKey`、`keyEntries` 配置字段;保留仍需使用的单密钥配置和凭据。
138
+ 3. 停止 DSH,在保留的插件目录中执行下面命令,再启动原服务。
139
+
140
+ ```bash
141
+ read -r -p '请输入实际 DSH 安装目录:' DSH_ROOT
142
+ node scripts/native-patches.mjs --dsh-root "$DSH_ROOT" --revert
143
+ dsh plugin --profile web remove dsh-model-groups
144
+ ```
145
+
146
+ 其他 profile 请替换 `web`。还原脚本只恢复代码,不会替用户修改会话、配置或凭据;仍引用多密钥模型的会话在还原后将无法继续使用该选择。
147
+
148
+ ## 开发
149
+
150
+ 从 GitHub 获取源码后,运行:
151
+
152
+ ```bash
153
+ npm run build
154
+ npm test
155
+ npm run check:build
156
+ ```
157
+
158
+ 需要检查真实 DSH 目标文件时,可设置 `DSH_ROOT` 后运行测试。测试覆盖层级、折叠状态、选择器交互和补丁安装器;真实网页中的安装验收仍需按上文完成。
159
+
160
+ 本项目采用 MIT 许可证。客户端选择器包含改编自 DeepSeek Harness 的代码,保留原版权声明。
@@ -0,0 +1,3 @@
1
+ - insert:
2
+ - id: model-groups
3
+ name: dsh-model-groups