@khorsheed/dsh-client-message-tools 0.3.1 → 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/CHANGELOG.md +10 -0
- package/README.en.md +6 -6
- package/README.i18n.yaml +2 -2
- package/README.md +6 -6
- package/lib/client.js +2356 -1192
- package/lib/types/client/index.js +5 -1
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# 变更记录
|
|
2
2
|
|
|
3
|
+
## 0.3.3(2026-09-30)
|
|
4
|
+
|
|
5
|
+
无功能变更。加宽 `@deepseek-ai/dsh-*` peer 区间以覆盖宿主 0.2.0(0.2.0 的兼容闸会禁用 peer 区间不覆盖宿主版本的已装插件)。
|
|
6
|
+
|
|
7
|
+
## 0.3.2(2026-09-27)
|
|
8
|
+
|
|
9
|
+
适配宿主 0.1.7-rc.2 线(verifiedHost 前移至 0.1.7-rc.2)。
|
|
10
|
+
|
|
11
|
+
- **适配 rc.2 的 `ModelDirectoryState.pending`**:rc.2 起模型目录自己持有在途选择,`pending: ModelSelection | null` 成为必填字段;本包从不渲染的空目录 stub 去掉 `: ModelDirectoryState` 标注、补上 `pending: null`,改按结构受检——同一份字面量在 rc.1(无此字段,新鲜字面量会撞 excess-property 检查)与 rc.2(必填)上都编译通过。双线行为不变
|
|
12
|
+
|
|
3
13
|
## 0.3.1(2026-09-26)
|
|
4
14
|
|
|
5
15
|
适配宿主 rc.1 线并实证 0.1.5/0.1.7 双线可用(0.1.5-rc.1 全量 boot 实证,2026-09-25)。
|
package/README.en.md
CHANGED
|
@@ -6,7 +6,7 @@ Sent messages can still be edited or withdrawn — and a withdrawal really delet
|
|
|
6
6
|
|
|
7
7
|
Said something too fast, or the conversation went off the rails? Until now all you could do was send another message to correct course. This plugin puts a row of small buttons on every message you send: copy, edit, withdraw. Editing rewrites in place and re-sends, and the model answers the new text; withdrawing takes that message and everything after it out of the model context, folding it into an expandable "N messages withdrawn" divider — and the original text lands back in your composer draft (never auto-sent). Changed your mind? The divider's "restore to end of conversation" puts it all back.
|
|
8
8
|
|
|
9
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
9
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions1.png" width="640" alt="copy, edit, and withdraw action buttons under a user message">
|
|
10
10
|
|
|
11
11
|
## Features
|
|
12
12
|
|
|
@@ -16,13 +16,13 @@ Said something too fast, or the conversation went off the rails? Until now all y
|
|
|
16
16
|
- **Draft backfill** — a landed withdrawal puts the original text back into the composer draft, never auto-sent.
|
|
17
17
|
- **Restore to tail** — 「恢复到对话末尾」 replays user messages verbatim and assistant text as a 「已恢复」 group; tool calls never replay.
|
|
18
18
|
|
|
19
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
19
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions2.png" width="640" alt="in-place editing: the message becomes an input with a model picker; saving re-sends it as a new message, and the edited original leaves the model context">
|
|
20
20
|
|
|
21
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
21
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions3.png" width="640" alt="the confirmation dialog before withdrawing, explaining that the message and everything after it will be hidden from the model and the original text backfilled into the composer">
|
|
22
22
|
|
|
23
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
23
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions4.png" width="640" alt="withdrawn content folds into an expandable divider with a restore-to-end-of-conversation button at the bottom">
|
|
24
24
|
|
|
25
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
25
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions5.png" width="640" alt="restored messages return to the tail of the conversation as they were, grouped under a Restored section">
|
|
26
26
|
|
|
27
27
|
## Install
|
|
28
28
|
|
|
@@ -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: 497c066e41b335c76e0a9ff910c81cf036e525d4
|
|
6
|
+
packages/message-tools/README.md: 78ac08d243b717b3325a65f31b60f03c53bc4329
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
话说快了、方向跑偏了,以前只能再发一条往回找补。这个插件给你发出的每条消息配上一排小按钮:复制、编辑、撤回。编辑是原地改完重新发,模型按新内容重新回答;撤回会把这条消息和它后面的所有内容一起请出模型上下文,折叠成一条可以展开的「已撤回 N 条消息」分隔线,原话还会自动回填到输入框草稿(绝不替你发送)。后悔了,点分隔线上的「恢复到对话末尾」就能把内容原样放回去。
|
|
8
8
|
|
|
9
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
9
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions1.png" width="640" alt="用户消息下方的复制、编辑、撤回操作按钮">
|
|
10
10
|
|
|
11
11
|
## 特性
|
|
12
12
|
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
- **草稿回填**——撤回成功后把原文回填到 composer 草稿,绝不自动发送。
|
|
17
17
|
- **恢复到尾部**——「恢复到对话末尾」把用户消息逐字重放、助手文本重放为「已恢复」组;工具调用永不重放。
|
|
18
18
|
|
|
19
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
19
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions2.png" width="640" alt="原位编辑:消息变成带模型选择的输入框,保存后以新消息重新发送,被编辑消息不再进入模型上下文">
|
|
20
20
|
|
|
21
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
21
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions3.png" width="640" alt="撤回前的确认弹窗:说明这条消息及其后内容将对模型隐藏、原文会回填到输入框">
|
|
22
22
|
|
|
23
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
23
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions4.png" width="640" alt="撤回后的内容折叠为可展开的分隔线,底部有「恢复到对话末尾」按钮">
|
|
24
24
|
|
|
25
|
-
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-
|
|
25
|
+
<img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/message-actions5.png" width="640" alt="恢复后消息原样回到对话末尾,归入「已恢复」分组">
|
|
26
26
|
|
|
27
27
|
## 安装
|
|
28
28
|
|
|
@@ -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
|
|