@klarkxy/dsh-model-picker 0.0.0-stage → 0.1.0

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,42 @@
1
+ The Star And Thank Author License (SATA)
2
+ Version 2.1, September 2026
3
+
4
+ Copyright © 2026 Klarkxy(278370456@qq.com)
5
+
6
+ Project Url: https://github.com/klarkxy/dsh-editor
7
+ https://github.com/klarkxy/sata-license
8
+ https://github.com/klarkxy/dsh-plugins
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ And wait, one more thing — an invitation, not a condition: it would be best if
21
+ you star/+1/like the project(s) in the project url section above, and thank the
22
+ author(s) in the Copyright section. You may, and arguably you should — but the
23
+ permissions above hold either way, star or no star.
24
+
25
+ Here are some suggested ways:
26
+
27
+ - Email the authors a thank-you letter, and make friends with him/her/them.
28
+ - Report bugs or issues.
29
+ - Tell friends what a wonderful project this is.
30
+ - And, sure, you can just express thanks in your mind without telling the world.
31
+
32
+ Contributors of this project by forking have the option to add his/her name and
33
+ forked project url at copyright and project url sections, but shall not delete
34
+ or modify anything else in these two sections.
35
+
36
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
40
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
41
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
42
+ THE SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,27 @@
1
- # Temporary Holding Version
1
+ # Model Picker
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
+ Searchable model selection with a reasoning-effort slider for the DeepSeek Harness composer — and the same picker as a reusable component that other plugins can mount.
4
+
5
+ <!-- release-state-note -->
6
+
7
+ ## What it does
8
+
9
+ - Replaces the composer model button with a single-pane picker: a searchable model list grouped by provider, plus a thick gradient reasoning-effort slider with a larger handle and drag feedback. Motion follows your system's reduced-motion preference.
10
+ - Successful model and effort selections become the defaults for new sessions. Switching back to a model used during this page visit restores its last selected effort when still supported; otherwise it follows the model default. Choosing Default clears the explicit effort.
11
+ - Choosing a model or adjusting its effort keeps the panel open, preserving the search and scroll position. Loading failures offer a retry; a saved model that is no longer routable is marked and cannot be re-picked.
12
+ - Model selection is unavailable in subagent sessions, matching the native picker.
13
+
14
+ ## Install
15
+
16
+ The plugin needs no configuration; enable it and the composer model button is replaced.
17
+
18
+ With this plugin and `reasoning-slider` both installed, this picker wins. Disabling or removing it restores whichever picker was active before — `reasoning-slider`, or the native button.
19
+
20
+ ## Other plugins
21
+
22
+ Feature plugins can mount the same picker in their own settings and cards. Mounting is optional: while this plugin is absent each feature keeps its existing menu, so nothing breaks when it is disabled or uninstalled. Consumers should refer to the shared contract in `@klarkxy/dsh-model-route`.
23
+
24
+ ## Limitations
25
+
26
+ - Covers the composer model button and the shared picker; the Settings → Models page keeps its native layout.
27
+ - A saved model that left the catalog stays shown but is marked not routable and cannot be re-picked.
@@ -0,0 +1,5 @@
1
+ # Model picker: replaces the composer model seat and offers the shared picker factory.
2
+ - insert:
3
+ - id: model-picker
4
+ name: '@klarkxy/dsh-model-picker'
5
+ disabled: false
@@ -0,0 +1,27 @@
1
+ # 模型选择器
2
+
3
+ 为 DeepSeek Harness 输入框提供带搜索的模型选择与推理档位滑杆——同一份选择器也以可复用组件形式提供给其他插件挂载。
4
+
5
+ <!-- release-state-note -->
6
+
7
+ ## 功能
8
+
9
+ - 替换输入框的模型按钮:单层面板内按供应商分组搜索模型,下方提供加粗的渐变推理档位滑杆、更大的滑块和拖动反馈;动效遵循系统的「减少动态效果」设置。
10
+ - 成功选择的模型和思考强度会作为新会话默认。切回本次打开页面期间使用过的模型时,会恢复它支持的上次档位,否则使用模型默认;选择「默认」会清除显式档位。
11
+ - 选择模型或调整推理档位后面板保持打开,保留搜索内容和滚动位置。加载失败可重试;已保存但不可路由的模型会被标记且不能再次选中。
12
+ - 子代理会话不可用模型选择,与原生一致。
13
+
14
+ ## 安装
15
+
16
+ 无需配置;启用后即替换输入框的模型按钮。
17
+
18
+ 与 `reasoning-slider` 同时安装时本插件生效;禁用或移除本插件后,按钮回退到之前的占用者——reasoning-slider 或原生按钮。
19
+
20
+ ## 其他插件接入
21
+
22
+ 功能插件可在自己的设置页或卡片里挂载同一选择器。接入是可选的:本插件缺席时各功能继续使用原有菜单,禁用或卸载不影响它们。接入契约见 `@klarkxy/dsh-model-route`。
23
+
24
+ ## 限制
25
+
26
+ - 只覆盖输入框模型按钮与共享选择器;「设置 → 模型」页面保持原生布局。
27
+ - 已保存但离开目录的模型仍显示,但标记为不可路由且不能再次选中。
package/icon.svg ADDED
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36" fill="none">
2
+ <defs>
3
+ <linearGradient id="mp" x1="7" y1="8" x2="30" y2="30" gradientUnits="userSpaceOnUse">
4
+ <stop stop-color="#4D75F5"/>
5
+ <stop offset="1" stop-color="#8EB6FF"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <rect x="5" y="5" width="26" height="26" rx="7" stroke="url(#mp)" stroke-width="2" fill="none"/>
9
+ <line x1="9" y1="15" x2="27" y2="15" stroke="url(#mp)" stroke-width="2" stroke-linecap="round"/>
10
+ <circle cx="15" cy="15" r="3.2" fill="url(#mp)"/>
11
+ <line x1="9" y1="23" x2="27" y2="23" stroke="url(#mp)" stroke-width="2" stroke-linecap="round" opacity="0.55"/>
12
+ <circle cx="23" cy="23" r="3.2" fill="url(#mp)"/>
13
+ </svg>