@morlay/dsh-session-mode 0.0.12 → 0.0.13

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/dist/client.cjs CHANGED
@@ -1042,76 +1042,76 @@ window.__ModuleLoader__.load({
1042
1042
  //#endregion
1043
1043
  //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/hints.ts
1044
1044
  var SchemaFormHints = class extends _deepseek_ai_cordis.Service {
1045
- #readers = /* @__PURE__ */ new Map();
1046
- #texts = /* @__PURE__ */ new Map();
1047
- #selects = /* @__PURE__ */ new Map();
1048
- #sources = /* @__PURE__ */ new Map();
1049
- #listeners = /* @__PURE__ */ new Set();
1045
+ readers = /* @__PURE__ */ new Map();
1046
+ texts = /* @__PURE__ */ new Map();
1047
+ selects = /* @__PURE__ */ new Map();
1048
+ sources = /* @__PURE__ */ new Map();
1049
+ listeners = /* @__PURE__ */ new Set();
1050
1050
  constructor(ctx) {
1051
1051
  super(ctx, "schemaFormHints");
1052
1052
  }
1053
1053
  keysFor(ns, path) {
1054
- return lookup(this.#readers, ns, path)?.() ?? [];
1054
+ return lookup(this.readers, ns, path)?.() ?? [];
1055
1055
  }
1056
1056
  textFor(ns, path) {
1057
- return lookup(this.#texts, ns, path)?.() ?? {};
1057
+ return lookup(this.texts, ns, path)?.() ?? {};
1058
1058
  }
1059
1059
  select(ns, path, spec) {
1060
1060
  const key = locationKey(ns, path);
1061
- this.#selects.set(key, spec);
1062
- this.#publish();
1061
+ this.selects.set(key, spec);
1062
+ this.publish();
1063
1063
  return () => {
1064
- if (this.#selects.get(key) !== spec) return;
1065
- this.#selects.delete(key);
1066
- this.#publish();
1064
+ if (this.selects.get(key) !== spec) return;
1065
+ this.selects.delete(key);
1066
+ this.publish();
1067
1067
  };
1068
1068
  }
1069
1069
  selectFor(ns, path) {
1070
- return lookup(this.#selects, ns, path);
1070
+ return lookup(this.selects, ns, path);
1071
1071
  }
1072
1072
  source(name, spec) {
1073
- this.#sources.set(name, spec);
1074
- this.#publish();
1073
+ this.sources.set(name, spec);
1074
+ this.publish();
1075
1075
  return () => {
1076
- if (this.#sources.get(name) !== spec) return;
1077
- this.#sources.delete(name);
1078
- this.#publish();
1076
+ if (this.sources.get(name) !== spec) return;
1077
+ this.sources.delete(name);
1078
+ this.publish();
1079
1079
  };
1080
1080
  }
1081
1081
  sourceFor(name) {
1082
- return this.#sources.get(name);
1082
+ return this.sources.get(name);
1083
1083
  }
1084
1084
  describe(ns, path, read) {
1085
1085
  const key = locationKey(ns, path);
1086
- this.#texts.set(key, read);
1087
- this.#publish();
1086
+ this.texts.set(key, read);
1087
+ this.publish();
1088
1088
  return () => {
1089
- if (this.#texts.get(key) !== read) return;
1090
- this.#texts.delete(key);
1091
- this.#publish();
1089
+ if (this.texts.get(key) !== read) return;
1090
+ this.texts.delete(key);
1091
+ this.publish();
1092
1092
  };
1093
1093
  }
1094
1094
  suggestKeys(ns, path, read) {
1095
1095
  const key = locationKey(ns, path);
1096
- this.#readers.set(key, read);
1097
- this.#publish();
1096
+ this.readers.set(key, read);
1097
+ this.publish();
1098
1098
  return () => {
1099
- if (this.#readers.get(key) !== read) return;
1100
- this.#readers.delete(key);
1101
- this.#publish();
1099
+ if (this.readers.get(key) !== read) return;
1100
+ this.readers.delete(key);
1101
+ this.publish();
1102
1102
  };
1103
1103
  }
1104
1104
  subscribe(listener) {
1105
- this.#listeners.add(listener);
1105
+ this.listeners.add(listener);
1106
1106
  return () => {
1107
- this.#listeners.delete(listener);
1107
+ this.listeners.delete(listener);
1108
1108
  };
1109
1109
  }
1110
1110
  refresh() {
1111
- this.#publish();
1111
+ this.publish();
1112
1112
  }
1113
- #publish() {
1114
- for (const listener of this.#listeners) listener();
1113
+ publish() {
1114
+ for (const listener of this.listeners) listener();
1115
1115
  }
1116
1116
  };
1117
1117
  function locationKey(ns, path) {
@@ -1502,25 +1502,25 @@ window.__ModuleLoader__.load({
1502
1502
  document.head.appendChild(tag);
1503
1503
  }
1504
1504
  var schema_form_module_css_default = {
1505
- "lineToken": "N3kx7G_lineToken",
1505
+ "lineNumber": "N3kx7G_lineNumber",
1506
1506
  "lineFold": "N3kx7G_lineFold",
1507
- "compactInput": "N3kx7G_compactInput",
1508
- "addWrap": "N3kx7G_addWrap",
1509
- "compactTextField": "N3kx7G_compactTextField",
1507
+ "valueSlot": "N3kx7G_valueSlot",
1508
+ "lineKey": "N3kx7G_lineKey",
1509
+ "hoverActions": "N3kx7G_hoverActions",
1510
+ "lineBody": "N3kx7G_lineBody",
1511
+ "valueTrigger": "N3kx7G_valueTrigger",
1510
1512
  "editorRoot": "N3kx7G_editorRoot",
1511
- "lineNumber": "N3kx7G_lineNumber",
1513
+ "addWrap": "N3kx7G_addWrap",
1514
+ "lineRow": "N3kx7G_lineRow",
1512
1515
  "lineFoldSpacer": "N3kx7G_lineFoldSpacer",
1516
+ "compactTextField": "N3kx7G_compactTextField",
1513
1517
  "lineActions": "N3kx7G_lineActions",
1514
- "lineComment": "N3kx7G_lineComment",
1515
- "lineKey": "N3kx7G_lineKey",
1516
1518
  "hint": "N3kx7G_hint",
1519
+ "lineComment": "N3kx7G_lineComment",
1520
+ "lineToken": "N3kx7G_lineToken",
1517
1521
  "lineValue": "N3kx7G_lineValue",
1518
- "valueSlot": "N3kx7G_valueSlot",
1519
- "lineInvalid": "N3kx7G_lineInvalid",
1520
- "valueTrigger": "N3kx7G_valueTrigger",
1521
- "lineBody": "N3kx7G_lineBody",
1522
- "lineRow": "N3kx7G_lineRow",
1523
- "hoverActions": "N3kx7G_hoverActions"
1522
+ "compactInput": "N3kx7G_compactInput",
1523
+ "lineInvalid": "N3kx7G_lineInvalid"
1524
1524
  };
1525
1525
  //#endregion
1526
1526
  //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/TruncatedTooltip.tsx
@@ -2396,11 +2396,11 @@ window.__ModuleLoader__.load({
2396
2396
  });
2397
2397
  }
2398
2398
  function install(ctx) {
2399
+ const hints = new SchemaFormHints(ctx.root);
2399
2400
  ctx.effect(() => ctx.locale.register(NS$1, {
2400
2401
  zh: zh$1,
2401
2402
  en: en$1
2402
2403
  }), "ui-schema-form: dictionaries");
2403
- const hints = new SchemaFormHints(ctx);
2404
2404
  ctx.effect(() => ctx.slots.registerFactory({
2405
2405
  name: "settings.schema-form.form",
2406
2406
  scope: "root",
@@ -2513,55 +2513,55 @@ window.__ModuleLoader__.load({
2513
2513
  document.head.appendChild(tag);
2514
2514
  }
2515
2515
  var layout_module_css_default = {
2516
- "fill": "_7Ar2dq_fill",
2516
+ "toneTertiary": "_7Ar2dq_toneTertiary",
2517
2517
  "scroll": "_7Ar2dq_scroll",
2518
+ "truncate": "_7Ar2dq_truncate",
2519
+ "fill": "_7Ar2dq_fill",
2520
+ "wrap": "_7Ar2dq_wrap",
2521
+ "gap2": "_7Ar2dq_gap2",
2522
+ "gap16": "_7Ar2dq_gap16",
2523
+ "sizeLg": "_7Ar2dq_sizeLg",
2524
+ "gap0": "_7Ar2dq_gap0",
2525
+ "fixed": "_7Ar2dq_fixed",
2526
+ "toneDanger": "_7Ar2dq_toneDanger",
2527
+ "alignCenter": "_7Ar2dq_alignCenter",
2528
+ "gap14": "_7Ar2dq_gap14",
2529
+ "justifyEnd": "_7Ar2dq_justifyEnd",
2530
+ "padRow": "_7Ar2dq_padRow",
2531
+ "boxed": "_7Ar2dq_boxed",
2532
+ "padPage": "_7Ar2dq_padPage",
2518
2533
  "wSearch": "_7Ar2dq_wSearch",
2519
- "padBlocking": "_7Ar2dq_padBlocking",
2520
- "justifyBetween": "_7Ar2dq_justifyBetween",
2521
- "alignStart": "_7Ar2dq_alignStart",
2522
- "row": "_7Ar2dq_row",
2523
- "sizeXs": "_7Ar2dq_sizeXs",
2524
- "sizeBase": "_7Ar2dq_sizeBase",
2525
- "tabular": "_7Ar2dq_tabular",
2526
- "toneSecondary": "_7Ar2dq_toneSecondary",
2534
+ "gap12": "_7Ar2dq_gap12",
2527
2535
  "padCard": "_7Ar2dq_padCard",
2528
- "gap14": "_7Ar2dq_gap14",
2529
- "gap16": "_7Ar2dq_gap16",
2536
+ "plain": "_7Ar2dq_plain",
2537
+ "text": "_7Ar2dq_text",
2538
+ "gapWide": "_7Ar2dq_gapWide",
2539
+ "narrow": "_7Ar2dq_narrow",
2540
+ "gap10": "_7Ar2dq_gap10",
2530
2541
  "gap4": "_7Ar2dq_gap4",
2531
- "gap2": "_7Ar2dq_gap2",
2532
- "stack": "_7Ar2dq_stack",
2542
+ "alignEnd": "_7Ar2dq_alignEnd",
2543
+ "row": "_7Ar2dq_row",
2533
2544
  "push": "_7Ar2dq_push",
2534
- "gap12": "_7Ar2dq_gap12",
2545
+ "stack": "_7Ar2dq_stack",
2546
+ "sizeXs": "_7Ar2dq_sizeXs",
2535
2547
  "sizeSm": "_7Ar2dq_sizeSm",
2548
+ "sizeBase": "_7Ar2dq_sizeBase",
2549
+ "mono": "_7Ar2dq_mono",
2550
+ "gap6": "_7Ar2dq_gap6",
2536
2551
  "sizeMd": "_7Ar2dq_sizeMd",
2552
+ "padNone": "_7Ar2dq_padNone",
2553
+ "tabular": "_7Ar2dq_tabular",
2537
2554
  "padBody": "_7Ar2dq_padBody",
2538
- "strong": "_7Ar2dq_strong",
2539
- "fixed": "_7Ar2dq_fixed",
2540
- "narrow": "_7Ar2dq_narrow",
2541
- "gap6": "_7Ar2dq_gap6",
2555
+ "alignStart": "_7Ar2dq_alignStart",
2542
2556
  "weightMedium": "_7Ar2dq_weightMedium",
2543
- "truncate": "_7Ar2dq_truncate",
2544
- "boxed": "_7Ar2dq_boxed",
2545
- "toneDanger": "_7Ar2dq_toneDanger",
2546
- "padNone": "_7Ar2dq_padNone",
2557
+ "padBlocking": "_7Ar2dq_padBlocking",
2558
+ "gap8": "_7Ar2dq_gap8",
2559
+ "justifyBetween": "_7Ar2dq_justifyBetween",
2547
2560
  "justifyCenter": "_7Ar2dq_justifyCenter",
2548
- "gapWide": "_7Ar2dq_gapWide",
2549
- "toneTertiary": "_7Ar2dq_toneTertiary",
2550
- "mono": "_7Ar2dq_mono",
2551
- "padPage": "_7Ar2dq_padPage",
2552
- "alignCenter": "_7Ar2dq_alignCenter",
2553
- "justifyEnd": "_7Ar2dq_justifyEnd",
2554
- "sizeLg": "_7Ar2dq_sizeLg",
2555
- "gap10": "_7Ar2dq_gap10",
2561
+ "tonePrimary": "_7Ar2dq_tonePrimary",
2562
+ "toneSecondary": "_7Ar2dq_toneSecondary",
2556
2563
  "grow": "_7Ar2dq_grow",
2557
- "plain": "_7Ar2dq_plain",
2558
- "gap0": "_7Ar2dq_gap0",
2559
- "alignEnd": "_7Ar2dq_alignEnd",
2560
- "wrap": "_7Ar2dq_wrap",
2561
- "text": "_7Ar2dq_text",
2562
- "gap8": "_7Ar2dq_gap8",
2563
- "padRow": "_7Ar2dq_padRow",
2564
- "tonePrimary": "_7Ar2dq_tonePrimary"
2564
+ "strong": "_7Ar2dq_strong"
2565
2565
  };
2566
2566
  //#endregion
2567
2567
  //#region ../../client/dsh-client-ui-primitives/src/client/layout/scales.ts
@@ -2644,15 +2644,15 @@ window.__ModuleLoader__.load({
2644
2644
  document.head.appendChild(tag);
2645
2645
  }
2646
2646
  var SettingsFieldRow_module_css_default = {
2647
- "hint": "Il1Dtq_hint",
2648
- "reset": "Il1Dtq_reset",
2647
+ "text": "Il1Dtq_text",
2649
2648
  "body": "Il1Dtq_body",
2650
2649
  "row": "Il1Dtq_row",
2651
2650
  "badge": "Il1Dtq_badge",
2652
2651
  "invalid": "Il1Dtq_invalid",
2653
- "text": "Il1Dtq_text",
2654
- "inline": "Il1Dtq_inline",
2655
- "label": "Il1Dtq_label"
2652
+ "hint": "Il1Dtq_hint",
2653
+ "reset": "Il1Dtq_reset",
2654
+ "label": "Il1Dtq_label",
2655
+ "inline": "Il1Dtq_inline"
2656
2656
  };
2657
2657
  //#endregion
2658
2658
  //#region ../../client/dsh-client-ui-primitives/src/client/settings-form/SettingsFieldRow.tsx
@@ -2768,8 +2768,8 @@ window.__ModuleLoader__.load({
2768
2768
  document.head.appendChild(tag);
2769
2769
  }
2770
2770
  var DisclosureRow_module_css_default = {
2771
- "contentLayout": "_2HN-kW_contentLayout",
2772
- "content": "_2HN-kW_content"
2771
+ "content": "_2HN-kW_content",
2772
+ "contentLayout": "_2HN-kW_contentLayout"
2773
2773
  };
2774
2774
  //#endregion
2775
2775
  //#region ../../client/dsh-client-ui-primitives/src/client/controls/DisclosureRow.tsx
@@ -2792,11 +2792,11 @@ window.__ModuleLoader__.load({
2792
2792
  document.head.appendChild(tag);
2793
2793
  }
2794
2794
  var SeatButton_module_css_default = {
2795
+ "label": "JqQ4qG_label",
2796
+ "icon": "JqQ4qG_icon",
2795
2797
  "chevron": "JqQ4qG_chevron",
2796
- "expanded": "JqQ4qG_expanded",
2797
2798
  "seat": "JqQ4qG_seat",
2798
- "icon": "JqQ4qG_icon",
2799
- "label": "JqQ4qG_label"
2799
+ "expanded": "JqQ4qG_expanded"
2800
2800
  };
2801
2801
  //#endregion
2802
2802
  //#region ../../client/dsh-client-ui-primitives/src/client/controls/SeatButton.tsx
@@ -2833,8 +2833,8 @@ window.__ModuleLoader__.load({
2833
2833
  document.head.appendChild(tag);
2834
2834
  }
2835
2835
  var Spinner_module_css_default = {
2836
- "spin": "_1uNobG_spin",
2837
- "spinner": "_1uNobG_spinner"
2836
+ "spinner": "_1uNobG_spinner",
2837
+ "spin": "_1uNobG_spin"
2838
2838
  };
2839
2839
  //#endregion
2840
2840
  //#region ../../client/dsh-client-ui-primitives/src/client/controls/Spinner.tsx
@@ -2928,15 +2928,15 @@ window.__ModuleLoader__.load({
2928
2928
  }
2929
2929
  var ModelRouteList_module_css_default = {
2930
2930
  "id": "_1vK46q_id",
2931
- "notice": "_1vK46q_notice",
2932
- "provider": "_1vK46q_provider",
2933
- "picked": "_1vK46q_picked",
2934
- "error": "_1vK46q_error",
2935
2931
  "list": "_1vK46q_list",
2932
+ "text": "_1vK46q_text",
2936
2933
  "item": "_1vK46q_item",
2937
- "name": "_1vK46q_name",
2934
+ "picked": "_1vK46q_picked",
2938
2935
  "group": "_1vK46q_group",
2939
- "text": "_1vK46q_text"
2936
+ "notice": "_1vK46q_notice",
2937
+ "name": "_1vK46q_name",
2938
+ "error": "_1vK46q_error",
2939
+ "provider": "_1vK46q_provider"
2940
2940
  };
2941
2941
  //#endregion
2942
2942
  //#region ../../client/dsh-client-ui-primitives/src/client/controls/ModelRouteList.tsx
@@ -3044,8 +3044,8 @@ window.__ModuleLoader__.load({
3044
3044
  }
3045
3045
  var SearchSelect_module_css_default = {
3046
3046
  "searchRow": "kEYv4q_searchRow",
3047
- "searchInput": "kEYv4q_searchInput",
3048
3047
  "trigger": "kEYv4q_trigger",
3048
+ "searchInput": "kEYv4q_searchInput",
3049
3049
  "empty": "kEYv4q_empty"
3050
3050
  };
3051
3051
  //#endregion
@@ -3159,13 +3159,13 @@ window.__ModuleLoader__.load({
3159
3159
  document.head.appendChild(tag);
3160
3160
  }
3161
3161
  var TagInput_module_css_default = {
3162
+ "row": "Qg7I9G_row",
3163
+ "chip": "Qg7I9G_chip",
3162
3164
  "chipRemove": "Qg7I9G_chipRemove",
3163
- "box": "Qg7I9G_box",
3164
3165
  "input": "Qg7I9G_input",
3165
- "chip": "Qg7I9G_chip",
3166
+ "anchor": "Qg7I9G_anchor",
3166
3167
  "empty": "Qg7I9G_empty",
3167
- "row": "Qg7I9G_row",
3168
- "anchor": "Qg7I9G_anchor"
3168
+ "box": "Qg7I9G_box"
3169
3169
  };
3170
3170
  //#endregion
3171
3171
  //#region ../../client/dsh-client-ui-primitives/src/client/controls/TagInput.tsx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morlay/dsh-session-mode",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "Session modes for dsh: coding / chat as data — a mode is a persona plus its tool lists, its upstream policy lists, its instruction / skill-catalog / runtime-context switches and an optional default model. The host applies the current mode to each session, and the chip in the composer sits beside the official agent-preset entry, which stays.",
5
5
  "keywords": [
6
6
  "dsh",
@@ -43,7 +43,7 @@
43
43
  "./locale/*.json": "./locale/*.json"
44
44
  },
45
45
  "dependencies": {
46
- "@morlay/dsh-client-ui-primitives": "0.0.12",
46
+ "@morlay/dsh-client-ui-primitives": "0.0.13",
47
47
  "zod": "4.4.3"
48
48
  },
49
49
  "devDependencies": {
@@ -106,9 +106,12 @@
106
106
  "@deepseek-ai/dsh-tools": "^0.2.1-rc.1",
107
107
  "@deepseek-ai/dsh-typert-protocol": "^0.2.1-rc.1",
108
108
  "@deepseek-ai/schemastery": "^3.18.5",
109
- "@morlay/dsh-context-assembler": "0.0.9",
109
+ "@morlay/dsh-context-assembler": "0.0.10",
110
110
  "react": "^18.2.0"
111
111
  },
112
+ "engines": {
113
+ "dsh": ">= 0.2.1-rc.1 < 0.2.2"
114
+ },
112
115
  "dsh": {
113
116
  "client": {
114
117
  "platform": "web",
@@ -120,9 +123,6 @@
120
123
  ]
121
124
  }
122
125
  },
123
- "engines": {
124
- "dsh": ">= 0.2.1-rc.1 < 0.2.2"
125
- },
126
126
  "scripts": {
127
127
  "build": "pnpm exec tsdown"
128
128
  }
@@ -80,7 +80,7 @@ function unwrapHintService(scope: Context): HintsService {
80
80
 
81
81
  // 装上会话里的那一个面、本行配置页的字段文案,以及装本行的 bundle 那一页的表单。
82
82
  export function apply(ctx: Context): void {
83
- // 基础面随本包 inline(不再是装配行):装上它提供的字典、字段槽与按行配置页;多份副本只装一次。
83
+ // 基础面(内联库)由 `@morlay/dsh-client-modules` 的 client 行统一装配;这里只注册本行的字段文案。
84
84
  const t = ctx.locale.bind(NS);
85
85
  ctx.effect(() => ctx.locale.register(NS, { zh, en }), "session-mode: dictionaries");
86
86
 
@@ -76,8 +76,7 @@ export const MODE_SOURCES: readonly ModeSource[] = [
76
76
  {
77
77
  id: "coding",
78
78
  name: "编码模式",
79
- description:
80
- "功能完整的编码 Agent:文件、Shell、检索、联网等工具常驻,其余用法说明按需加载。",
79
+ description: "功能完整的编码 Agent:文件、Shell、检索、联网等工具常驻,其余用法说明按需加载。",
81
80
  persona: CODING_PERSONA,
82
81
  // 用户可选,也允许作为子代理的 mode(子代理默认继承父 mode,不看角色;这里是"可被指定"的候选集)。
83
82
  role: ["main", "subagent"],
@@ -116,8 +115,7 @@ export const MODE_SOURCES: readonly ModeSource[] = [
116
115
  {
117
116
  id: NOOP_MODE_ID,
118
117
  name: "原样模式",
119
- description:
120
- "与上游一致:不加人格提示词、不收窄工具与技能、policy 规则全开、官方注入面照旧。",
118
+ description: "与上游一致:不加人格提示词、不收窄工具与技能、policy 规则全开、官方注入面照旧。",
121
119
  // 用户可选,也允许作为子代理的 mode:它不做任何过滤,给子代理当候选同样成立。
122
120
  role: ["main", "subagent"],
123
121
  // 其余字段一律不写:名单留空 = 不设收窄,`instructions` / `runtimeContext` 走 schema 默认 `true`,