@deepseek-ai/dsh-client-ui-model-selection 0.1.5-alpha.1 → 0.1.5-alpha.2

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/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/client/ui-model-selection/README.md
5
- README.md: b050f1fa7e680b7669e208d88851754aa72f09e2
6
- README.zh.md: 85b4d44a1beb45a5a11fa946d2f36d83f9201e29
5
+ README.md: ae939ce678bcc50aa69c6c260f1782830eea103f
6
+ README.zh.md: d9826f55a48f141f8baa65f230e24ea8d0254e30
package/README.md CHANGED
@@ -29,7 +29,7 @@ Mount this plugin alongside `ui-conversation` and the commands package; the comp
29
29
 
30
30
  ### Model and effort
31
31
 
32
- Models stay grouped by provider. The menu shows model and effort names only; catalog descriptions remain available to other consumers. The `/model` popup applies the selected model's default effort; the composer can then choose any advertised effort. An adapter without reasoning metadata leaves the Effort row absent; there is no arbitrary effort input.
32
+ Models stay grouped by provider. The composer menu shows model and effort names only. The `/model` popup shows provider names and catalog descriptions; it localizes the two built-in DeepSeek descriptions and leaves external provider descriptions verbatim. The popup applies the selected model's default effort; the composer can then choose any advertised effort. An adapter without reasoning metadata leaves the Effort row absent; there is no arbitrary effort input.
33
33
 
34
34
  ### Unroutable sessions
35
35
 
package/README.zh.md CHANGED
@@ -29,7 +29,7 @@ Web GUI 允许用户通过 `/model` 弹窗或 composer 模型控件切换既有
29
29
 
30
30
  ### 模型与推理强度
31
31
 
32
- 模型按提供方分组。菜单只显示模型与推理强度名称;目录中的说明仍可供其他消费方使用。`/model` 弹窗应用所选模型的默认推理强度;composer 随后可以选择任一已公布的推理强度。适配器没有推理元数据时不显示 Effort 行;不存在任意推理强度输入。
32
+ 模型按提供方分组。composer 菜单只显示模型与推理强度名称。`/model` 弹窗显示提供方名称与目录说明;其中两个内置 DeepSeek 模型的说明使用当前语言,外部提供方说明保持原文。弹窗应用所选模型的默认推理强度;composer 随后可以选择任一已公布的推理强度。适配器没有推理元数据时不显示 Effort 行;不存在任意推理强度输入。
33
33
 
34
34
  ### 不可路由的会话
35
35
 
package/lib/client.js CHANGED
@@ -795,6 +795,8 @@ window.__ModuleLoader__.load({
795
795
  const zh = {
796
796
  "command.description": "选择本会话使用的模型",
797
797
  "option.loadError": "目录加载失败:{message}",
798
+ "option.deepseekV4Flash.description": "快速、高效且经济;适合目标明确、常规或并行任务。",
799
+ "option.deepseekV4Pro.description": "更强的自主编码、知识与复杂推理能力;适合复杂或质量优先的任务,但成本更高。",
798
800
  "trigger.fallback": "选择模型",
799
801
  "trigger.loading": "正在加载模型…",
800
802
  "trigger.selectAria": "选择模型",
@@ -816,6 +818,8 @@ window.__ModuleLoader__.load({
816
818
  const en = {
817
819
  "command.description": "Select the model for this conversation",
818
820
  "option.loadError": "Catalog failed to load: {message}",
821
+ "option.deepseekV4Flash.description": "Fast, efficient, and economical; suited to focused, routine, or parallel tasks.",
822
+ "option.deepseekV4Pro.description": "Stronger agentic coding, knowledge, and difficult reasoning; suited to complex or quality-critical tasks at higher cost.",
819
823
  "trigger.fallback": "Select model",
820
824
  "trigger.loading": "Loading models…",
821
825
  "trigger.selectAria": "Select model",
@@ -839,15 +843,26 @@ window.__ModuleLoader__.load({
839
843
  function rowId(providerId, modelId) {
840
844
  return `${providerId}/${modelId}`;
841
845
  }
846
+ const BUILTIN_DESCRIPTION_KEYS = {
847
+ "deepseek-official/deepseek-v4-flash": "option.deepseekV4Flash.description",
848
+ "deepseek-official/deepseek-v4-pro": "option.deepseekV4Pro.description"
849
+ };
850
+ function descriptionOf(providerId, model, t) {
851
+ const key = BUILTIN_DESCRIPTION_KEYS[rowId(providerId, model.id)];
852
+ return key !== void 0 && model.description === en[key] ? t(key) : model.description;
853
+ }
842
854
  /** Flatten the directory into popup rows; failure rows are listed for visibility but never selectable. */
843
855
  function optionsOf(directory, t) {
844
856
  const rows = [];
845
- for (const group of directory.groups) for (const model of group.models) rows.push({
846
- id: rowId(group.id, model.id),
847
- label: model.name,
848
- detail: model.description !== void 0 ? `${group.name} · ${model.description}` : group.name,
849
- ...directory.current !== null && directory.current.provider === group.id && directory.current.model === model.id ? { active: true } : {}
850
- });
857
+ for (const group of directory.groups) for (const model of group.models) {
858
+ const description = descriptionOf(group.id, model, t);
859
+ rows.push({
860
+ id: rowId(group.id, model.id),
861
+ label: model.name,
862
+ detail: description !== void 0 ? `${group.name} · ${description}` : group.name,
863
+ ...directory.current !== null && directory.current.provider === group.id && directory.current.model === model.id ? { active: true } : {}
864
+ });
865
+ }
851
866
  for (const failure of directory.failures) rows.push({
852
867
  id: `failure/${failure.id}`,
853
868
  label: failure.name,
@@ -11,6 +11,8 @@
11
11
  export declare const zh: {
12
12
  'command.description': string;
13
13
  'option.loadError': string;
14
+ 'option.deepseekV4Flash.description': string;
15
+ 'option.deepseekV4Pro.description': string;
14
16
  'trigger.fallback': string;
15
17
  'trigger.loading': string;
16
18
  'trigger.selectAria': string;
@@ -34,6 +36,8 @@ export type ModelKey = keyof typeof zh;
34
36
  export declare const en: {
35
37
  'command.description': string;
36
38
  'option.loadError': string;
39
+ 'option.deepseekV4Flash.description': string;
40
+ 'option.deepseekV4Pro.description': string;
37
41
  'trigger.fallback': string;
38
42
  'trigger.loading': string;
39
43
  'trigger.selectAria': string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-ui-model-selection",
3
3
  "description": "Model selection over the shared model catalog, Session projection, and session.selectModel",
4
- "version": "0.1.5-alpha.1",
4
+ "version": "0.1.5-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -45,30 +45,28 @@
45
45
  "react": "^18.2.0",
46
46
  "react-dom": "^18.2.0",
47
47
  "@types/react-dom": "~18.3.0",
48
- "@deepseek-ai/dsh-api-remotes": "^0.1.5-alpha.1",
49
- "@deepseek-ai/dsh-api-session-controller": "^0.1.5-alpha.1",
50
- "@deepseek-ai/dsh-client-locale": "^0.1.5-alpha.1",
51
- "@deepseek-ai/dsh-client-test-runtime": "^0.1.5-alpha.1",
52
- "@deepseek-ai/dsh-client-ui-commands": "^0.1.5-alpha.1",
53
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-alpha.1",
54
- "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.5-alpha.1",
55
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-alpha.1",
56
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.5-alpha.1",
57
- "@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.1",
48
+ "clsx": "^2.1.1",
49
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.5-alpha.2",
50
+ "@deepseek-ai/dsh-api-remotes": "^0.1.5-alpha.2",
51
+ "@deepseek-ai/dsh-client-locale": "^0.1.5-alpha.2",
52
+ "@deepseek-ai/dsh-client-ui-commands": "^0.1.5-alpha.2",
53
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-alpha.2",
54
+ "@deepseek-ai/dsh-client-test-runtime": "^0.1.5-alpha.2",
55
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.5-alpha.2",
56
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-alpha.2",
57
+ "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.5-alpha.2",
58
+ "@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.2",
58
59
  "@deepseek-ai/cordis": "^4.0.2",
59
- "@deepseek-ai/dsh-client-store": "^0.1.5-alpha.1",
60
- "@deepseek-ai/dsh-session": "^0.1.5-alpha.1",
61
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-alpha.1",
62
- "@deepseek-ai/dsh-client-ui-session": "^0.1.5-alpha.1"
60
+ "@deepseek-ai/dsh-client-store": "^0.1.5-alpha.2",
61
+ "@deepseek-ai/dsh-session": "^0.1.5-alpha.2",
62
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-alpha.2",
63
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.5-alpha.2"
63
64
  },
64
65
  "files": [
65
66
  "lib/index.js",
66
67
  "lib/client.js",
67
68
  "lib/types/**/*.d.ts"
68
69
  ],
69
- "dependencies": {
70
- "clsx": "^2.1.1"
71
- },
72
70
  "scripts": {
73
71
  "bundle": "tsdown",
74
72
  "watch": "tsdown --watch"