@khorsheed/dsh-client-message-tools 0.3.1 → 0.3.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/CHANGELOG.md +6 -0
- package/README.en.md +1 -1
- package/README.i18n.yaml +2 -2
- package/README.md +1 -1
- package/lib/client.js +26 -25
- package/lib/types/client/index.js +5 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# 变更记录
|
|
2
2
|
|
|
3
|
+
## 0.3.2(2026-09-27)
|
|
4
|
+
|
|
5
|
+
适配宿主 0.1.7-rc.2 线(verifiedHost 前移至 0.1.7-rc.2)。
|
|
6
|
+
|
|
7
|
+
- **适配 rc.2 的 `ModelDirectoryState.pending`**:rc.2 起模型目录自己持有在途选择,`pending: ModelSelection | null` 成为必填字段;本包从不渲染的空目录 stub 去掉 `: ModelDirectoryState` 标注、补上 `pending: null`,改按结构受检——同一份字面量在 rc.1(无此字段,新鲜字面量会撞 excess-property 检查)与 rc.2(必填)上都编译通过。双线行为不变
|
|
8
|
+
|
|
3
9
|
## 0.3.1(2026-09-26)
|
|
4
10
|
|
|
5
11
|
适配宿主 rc.1 线并实证 0.1.5/0.1.7 双线可用(0.1.5-rc.1 全量 boot 实证,2026-09-25)。
|
package/README.en.md
CHANGED
|
@@ -39,7 +39,7 @@ dsh plugin --profile web remove @khorsheed/dsh-client-message-tools
|
|
|
39
39
|
## Compatibility
|
|
40
40
|
|
|
41
41
|
- npm release line (`@deepseek-ai/dsh@0.1.5-rc.1`): ✅ full — adapted to the 0.1.5-rc.1 format v2/v3 (`assistant/attempt` replaces `assistant/chunk`; the surfaceOp replace fields `start`/`end` are renamed `startSeq`/`endSeq`), full build+test green; minHost moves up to 0.1.5-rc.1 — older hosts stay on the previous release line. The Session V4 producer-owned source (kind `message-tools`) also writes durably on a 0.1.5 host: 0.1.5's `user/message` admission only requires a non-empty kind string.
|
|
42
|
-
- source line (deepseek-harness master): ✅ (verifiedHost: 0.1.7-rc.
|
|
42
|
+
- source line (deepseek-harness master): ✅ (verifiedHost: 0.1.7-rc.2) — Session V4 adaptation: the write side moved to the producer-owned source (kind `message-tools`; V4 native admission refuses the retired `kind: 'plugin'` wrapper), and the read side accepts the new kind, `plugin:message-tools` (the V3→V4 migrated form), and the released V3 wrapper (served verbatim on a 0.1.5 host); the `conversation.chat.node` rc.1 contract (the new hookContext/inject shapes, the `SessionEventLike` match-event union) re-verified; the ui-primitives icon rename (`Icon*Outline14/16` → `Icon*OutlineMedium`) followed.
|
|
43
43
|
|
|
44
44
|
**Version line mapping**: the first release after 0.2.0 supports host `0.1.5-rc.1` and later; hosts on `0.1.2-rc.1` stay on `0.2.0`, hosts on `0.1.0-rc.6` ~ `0.1.1-rc.2` stay on the 0.1.x release line (last release `0.1.0`).
|
|
45
45
|
|
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# last confirmed-consistent state. Both languages carry equal authority; after
|
|
3
3
|
# editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/message-tools/README.en.md
|
|
5
|
-
packages/message-tools/README.en.md:
|
|
6
|
-
packages/message-tools/README.md:
|
|
5
|
+
packages/message-tools/README.en.md: 9702add3810a55bd7de335bb9c7f3419e41537d4
|
|
6
|
+
packages/message-tools/README.md: 4d721719a84b4ba1f74015e406108f1782289c44
|
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ dsh plugin --profile web remove @khorsheed/dsh-client-message-tools
|
|
|
39
39
|
## Compatibility
|
|
40
40
|
|
|
41
41
|
- npm 发布线(`@deepseek-ai/dsh@0.1.5-rc.1`):✅ 完整——适配 0.1.5-rc.1 的 format v2/v3(`assistant/attempt` 取代 `assistant/chunk`;surfaceOp replace 字段 `start`/`end` 更名 `startSeq`/`endSeq`),全量构建测试通过;minHost 前移至 0.1.5-rc.1,旧宿主请停留在旧发布线。Session V4 的生产者归属 source(kind `message-tools`)在 0.1.5 宿主同样合法落盘:0.1.5 的 `user/message` 准入只要求非空 kind 字符串。
|
|
42
|
-
- 源码线(deepseek-harness master):✅(verifiedHost: 0.1.7-rc.
|
|
42
|
+
- 源码线(deepseek-harness master):✅(verifiedHost: 0.1.7-rc.2)——Session V4 适配:写侧改生产者归属 source(kind `message-tools`,V4 原生准入拒绝退役的 `kind: 'plugin'` 包装),读侧兼认新 kind、`plugin:message-tools`(V3→V4 迁移形态)与 V3 包装存量(0.1.5 宿主原位读取);`conversation.chat.node` rc.1 契约(hookContext/inject 新形状、match 事件 `SessionEventLike` 并集)复验通过;ui-primitives 图标改名(`Icon*Outline14/16` → `Icon*OutlineMedium`)跟进。
|
|
43
43
|
|
|
44
44
|
**版本线对照**:0.2.0 之后的首个发布起支持宿主 `0.1.5-rc.1` 及以后;宿主 `0.1.2-rc.1` 请停留在 `0.2.0`,宿主 `0.1.0-rc.6` ~ `0.1.1-rc.2` 请停留在 0.1.x 发布线(末版 `0.1.0`)。
|
|
45
45
|
|
package/lib/client.js
CHANGED
|
@@ -4286,7 +4286,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4286
4286
|
}
|
|
4287
4287
|
}
|
|
4288
4288
|
//#endregion
|
|
4289
|
-
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-session@0.1.7-rc.
|
|
4289
|
+
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-session@0.1.7-rc.2_@deepseek-ai+cordis@4.0.4_@deepseek-ai+dsh-scope@0._96480dbecf47e43f89b841d272151264/node_modules/@deepseek-ai/dsh-session/lib/types/surface.js
|
|
4290
4290
|
/** Runtime counterpart of the message-producing event union. */
|
|
4291
4291
|
const SURFACE_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
4292
4292
|
"system/message",
|
|
@@ -5067,7 +5067,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5067
5067
|
return true;
|
|
5068
5068
|
}
|
|
5069
5069
|
//#endregion
|
|
5070
|
-
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-client-store@0.1.7-rc.
|
|
5070
|
+
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-client-store@0.1.7-rc.2_@deepseek-ai+cordis@4.0.4/node_modules/@deepseek-ai/dsh-client-store/lib/index.js
|
|
5071
5071
|
/**
|
|
5072
5072
|
* Shallow equality for selector slices (zustand/shallow semantics; travels
|
|
5073
5073
|
* with the engine so hook consumers need no zustand dependency).
|
|
@@ -5213,16 +5213,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5213
5213
|
document.head.appendChild(tag);
|
|
5214
5214
|
}
|
|
5215
5215
|
var ModelChip_module_css_default = {
|
|
5216
|
-
"
|
|
5217
|
-
"menu": "IO2TjW_menu",
|
|
5216
|
+
"trigger": "IO2TjW_trigger",
|
|
5218
5217
|
"option": "IO2TjW_option",
|
|
5219
5218
|
"chip": "IO2TjW_chip",
|
|
5220
|
-
"
|
|
5221
|
-
"trigger": "IO2TjW_trigger",
|
|
5222
|
-
"triggerEffort": "IO2TjW_triggerEffort",
|
|
5219
|
+
"empty": "IO2TjW_empty",
|
|
5223
5220
|
"check": "IO2TjW_check",
|
|
5224
5221
|
"groupTitle": "IO2TjW_groupTitle",
|
|
5225
|
-
"
|
|
5222
|
+
"triggerEffort": "IO2TjW_triggerEffort",
|
|
5223
|
+
"selectFailed": "IO2TjW_selectFailed",
|
|
5224
|
+
"group": "IO2TjW_group",
|
|
5225
|
+
"menu": "IO2TjW_menu"
|
|
5226
5226
|
};
|
|
5227
5227
|
//#endregion
|
|
5228
5228
|
//#region src/client/ModelChip.tsx
|
|
@@ -5405,19 +5405,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5405
5405
|
document.head.appendChild(tag);
|
|
5406
5406
|
}
|
|
5407
5407
|
var UserMessageView_module_css_default = {
|
|
5408
|
+
"bubble": "uq6O-a_bubble",
|
|
5409
|
+
"editor": "uq6O-a_editor",
|
|
5408
5410
|
"editorTrailing": "uq6O-a_editorTrailing",
|
|
5411
|
+
"textRun": "uq6O-a_textRun",
|
|
5412
|
+
"actions": "uq6O-a_actions",
|
|
5409
5413
|
"actionError": "uq6O-a_actionError",
|
|
5410
|
-
"
|
|
5414
|
+
"action": "uq6O-a_action",
|
|
5411
5415
|
"editedLabel": "uq6O-a_editedLabel",
|
|
5412
|
-
"bubble": "uq6O-a_bubble",
|
|
5413
|
-
"actions": "uq6O-a_actions",
|
|
5414
|
-
"refChip": "uq6O-a_refChip",
|
|
5415
5416
|
"userRow": "uq6O-a_userRow",
|
|
5416
5417
|
"editorActions": "uq6O-a_editorActions",
|
|
5417
5418
|
"userStack": "uq6O-a_userStack",
|
|
5418
|
-
"
|
|
5419
|
-
"
|
|
5420
|
-
"action": "uq6O-a_action"
|
|
5419
|
+
"editorInput": "uq6O-a_editorInput",
|
|
5420
|
+
"refChip": "uq6O-a_refChip"
|
|
5421
5421
|
};
|
|
5422
5422
|
//#endregion
|
|
5423
5423
|
//#region src/client/UserMessageView.tsx
|
|
@@ -5806,20 +5806,20 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5806
5806
|
document.head.appendChild(tag);
|
|
5807
5807
|
}
|
|
5808
5808
|
var WithdrawnDividerView_module_css_default = {
|
|
5809
|
-
"entryUser": "Hb4H5q_entryUser",
|
|
5810
|
-
"row": "Hb4H5q_row",
|
|
5811
|
-
"title": "Hb4H5q_title",
|
|
5812
|
-
"leading": "Hb4H5q_leading",
|
|
5813
|
-
"badge": "Hb4H5q_badge",
|
|
5814
|
-
"empty": "Hb4H5q_empty",
|
|
5815
|
-
"entryKind": "Hb4H5q_entryKind",
|
|
5816
5809
|
"textRun": "Hb4H5q_textRun",
|
|
5817
|
-
"
|
|
5810
|
+
"empty": "Hb4H5q_empty",
|
|
5811
|
+
"entryImages": "Hb4H5q_entryImages",
|
|
5812
|
+
"title": "Hb4H5q_title",
|
|
5818
5813
|
"restoreFailed": "Hb4H5q_restoreFailed",
|
|
5819
|
-
"restoreRow": "Hb4H5q_restoreRow",
|
|
5820
5814
|
"body": "Hb4H5q_body",
|
|
5815
|
+
"badge": "Hb4H5q_badge",
|
|
5821
5816
|
"marker": "Hb4H5q_marker",
|
|
5822
|
-
"
|
|
5817
|
+
"row": "Hb4H5q_row",
|
|
5818
|
+
"entryAssistant": "Hb4H5q_entryAssistant",
|
|
5819
|
+
"entryUser": "Hb4H5q_entryUser",
|
|
5820
|
+
"leading": "Hb4H5q_leading",
|
|
5821
|
+
"entryKind": "Hb4H5q_entryKind",
|
|
5822
|
+
"restoreRow": "Hb4H5q_restoreRow"
|
|
5823
5823
|
};
|
|
5824
5824
|
//#endregion
|
|
5825
5825
|
//#region src/client/WithdrawnDividerView.tsx
|
|
@@ -5950,6 +5950,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5950
5950
|
groups: [],
|
|
5951
5951
|
failures: [],
|
|
5952
5952
|
status: "idle",
|
|
5953
|
+
pending: null,
|
|
5953
5954
|
error: null
|
|
5954
5955
|
});
|
|
5955
5956
|
/**
|
|
@@ -15,8 +15,12 @@ const EMPTY_MODEL_DIRECTORY = {
|
|
|
15
15
|
getSnapshot: () => EMPTY_MODEL_DIRECTORY_STATE,
|
|
16
16
|
subscribe: () => () => { },
|
|
17
17
|
};
|
|
18
|
+
// No `: ModelDirectoryState` annotation on purpose: the literal must satisfy both
|
|
19
|
+
// the 0.1.7-rc.1 shape (no `pending` yet — a fresh literal would trip the excess
|
|
20
|
+
// check) and rc.2's (which made `pending` required). A non-fresh binding is
|
|
21
|
+
// checked structurally, so both lines accept it.
|
|
18
22
|
const EMPTY_MODEL_DIRECTORY_STATE = Object.freeze({
|
|
19
|
-
current: null, routable: null, groups: [], failures: [], status: 'idle', error: null,
|
|
23
|
+
current: null, routable: null, groups: [], failures: [], status: 'idle', pending: null, error: null,
|
|
20
24
|
});
|
|
21
25
|
/**
|
|
22
26
|
* Required services: slots, sessions, the remote channel, the scope-addressed
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"cordis",
|
|
8
8
|
"messages"
|
|
9
9
|
],
|
|
10
|
-
"version": "0.3.
|
|
10
|
+
"version": "0.3.2",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"main": "lib/index.js",
|
|
13
13
|
"types": "lib/types/index.d.ts",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"compat": {
|
|
57
57
|
"minHost": "0.1.5-rc.1",
|
|
58
|
-
"verifiedHost": "0.1.7-rc.
|
|
58
|
+
"verifiedHost": "0.1.7-rc.2"
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
"license": "MIT",
|