dsh-select-quote 0.3.7 → 0.3.9
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.md +21 -19
- package/cordis.patch.yml +2 -1
- package/lib/client.js +1937 -576
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
[DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/guide/quickstart) 的客户端插件:在对话里**划词加批注**——选中的原文连同你的评论一起交给模型,并让它在回答里明确指出说的是哪一段。
|
|
4
4
|
|
|
5
|
-
- **划词工具条**:选中对话区任意文本,浮出「复制 /
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
5
|
+
- **划词工具条**:选中对话区任意文本,浮出「复制 / 添加到任务」;选中的文本是 http(s) 链接(或落在链接上)时多一个「打开链接」,用系统默认浏览器打开(绕开应用内浏览器);拖拽结束才出现,不挡操作
|
|
6
|
+
- **批注摘要**:添加后输入框上方出现一块「N 条批注」摘要,草稿里不会出现任何协议文本
|
|
7
|
+
- **正文标记**:被划中的文字在原消息里留下淡色底、虚线下划线和序号角标,点摘要条目会滚回那段文字
|
|
8
|
+
- **模型回指**:模型回答里指向某条批注的位置,渲染成带预览的 chip
|
|
9
|
+
- **对话记录**:已发送消息仍由宿主气泡渲染(时间、复制、撤回都在),批注收成一块摘要,悬停(触屏点按)展开列表
|
|
10
10
|
- **界面语言**:跟随 dsh 自己的语言设置,简体中文 / English / Русский
|
|
11
11
|
|
|
12
12
|

|
|
@@ -31,18 +31,19 @@ dsh --profile web
|
|
|
31
31
|
```bash
|
|
32
32
|
git clone https://github.com/latte03/dsh-select-quote && cd dsh-select-quote
|
|
33
33
|
pnpm install && pnpm run build
|
|
34
|
+
cp dev.patch.example.yml dev.patch.yml # 把 <CHECKOUT> 改成当前目录的绝对路径
|
|
34
35
|
dsh web --patch "$PWD/dev.patch.yml"
|
|
35
36
|
```
|
|
36
37
|
|
|
37
|
-
打开 `http://127.0.0.1:3080
|
|
38
|
+
打开 `http://127.0.0.1:3080`,在对话消息里划词即可看到工具条。本地 patch 里的插件路径必须是绝对路径(checkout 不在 profile 的 `node_modules` 里);`dev.patch.yml` 是每台机器自己的未跟踪文件,仓库只提供 `dev.patch.example.yml`。
|
|
38
39
|
|
|
39
40
|
## 用法
|
|
40
41
|
|
|
41
|
-
1.
|
|
42
|
-
2. 想补充的话在弹出的评论框里写一句,点「添加评论」或 `⌘/Ctrl + Enter
|
|
43
|
-
3.
|
|
44
|
-
4.
|
|
45
|
-
5.
|
|
42
|
+
1. 在对话区选中一段文本,点「添加到任务」——到这一步批注就已经保存,输入框上方同步出现批注摘要。触屏下操作条固定在屏幕底部,不跟随选区挤在系统选择菜单旁边
|
|
43
|
+
2. 想补充的话在弹出的评论框里写一句,点「添加评论」或 `⌘/Ctrl + Enter`;不写就直接点空白处或「暂不评论」,批注同样保留。触屏下评论在底部抽屉里完成,抽屉顶部会带上选中的原文
|
|
44
|
+
3. 悬停(触屏点按)输入框上方的摘要展开列表,可逐条编辑、删除或一键清空,点条目跳回正文对应文字;对话记录里的摘要只提供列表和跳转。键盘聚焦摘要后按 Enter / ↓ 展开,Tab 在面板内移动,Esc 关闭并回到摘要
|
|
45
|
+
4. 正常打字发送,批注随消息一起交给模型,摘要随之消失
|
|
46
|
+
5. 模型回答里引用某条批注的位置显示为 chip:悬停、点击(触屏点按)或键盘聚焦都会打开预览,显示原文和评论;预览默认在 chip 上方,右上角「原文」按钮回到正文;键盘聚焦 chip 后按 ↓ 进入按钮,Esc 关闭
|
|
46
47
|
|
|
47
48
|
## 语言
|
|
48
49
|
|
|
@@ -60,24 +61,25 @@ dsh web --patch "$PWD/dev.patch.yml"
|
|
|
60
61
|
|
|
61
62
|
## 已知限制
|
|
62
63
|
|
|
63
|
-
- **待发批注按会话持久化**:刷新页面、重启客户端后回到原会话,未发送的批注会原样回来(与草稿同在 localStorage,键各自独立);保留最近 20 个会话、7 天。发送即清除,切换会话跟着切,hero
|
|
64
|
-
-
|
|
65
|
-
-
|
|
64
|
+
- **待发批注按会话持久化**:刷新页面、重启客户端后回到原会话,未发送的批注会原样回来(与草稿同在 localStorage,键各自独立);保留最近 20 个会话、7 天。发送即清除,切换会话跟着切,hero 里换工作区等于换会话,批注不跟着搬。同一会话开多个标签页时通过 `storage` 事件同步,按最后写入为准;一个标签发送清空后,另一个标签不会把旧批注写回。
|
|
65
|
+
- **占用了用户气泡的渲染**:本插件以 `priority: -10` 接管内置 `user` / `steering` 节点,再委托宿主 `UserMessageNodeView` 渲染(只改写 `node` 的文本块,剥掉协议)。其它插件若也想接管这两个键,优先级数值必须小于 `-10` 才会赢过本插件;被别的接管者赢走时,本插件不再折叠消息里的协议块。
|
|
66
|
+
- **摘要宽度有限**:输入框上方只有一块摘要(约输入框的 1/5,148–220px),悬停列表里的原文和评论最多显示三行;编辑批注时原文完整显示,超过 132px 在框内滚动。
|
|
66
67
|
- **划词只在对话区生效**:不介入编辑器、终端等面板。
|
|
68
|
+
- **创建选区仍依赖指针**:对话正文是静态渲染,没有可放置的键盘光标;键盘用户需借助光标浏览或辅助技术建立选区。选区建立后的工具条按钮可聚焦,摘要面板已支持 Enter / ↓ / Tab / Esc 与触屏点按。
|
|
67
69
|
|
|
68
70
|
## 常见问题
|
|
69
71
|
|
|
70
72
|
**升级 dsh 之后功能不对?** 先 `pnpm run check`;产物没问题就对照 [`docs/internals.md`](docs/internals.md) 的「依赖的产品内部约定」逐条复核,那里列了所有产品内部名。
|
|
71
73
|
|
|
72
|
-
**划词没有工具条?** 确认选区在对话区而不是编辑器里;刷新页面(样式与观察者是幂等注入的);宿主 boot 日志里应出现 `dsh-select-quote
|
|
74
|
+
**划词没有工具条?** 确认选区在对话区而不是编辑器里;刷新页面(样式与观察者是幂等注入的);宿主 boot 日志里应出现 `dsh-select-quote`。桌面端工具条挂在对话滚动区里,随正文一起滚动,滚到顶部会像正文一样滑进 header 下面;选中行完全滚出视口后收起,滚回去重新出现。触屏下工具条固定在屏幕底部。
|
|
73
75
|
|
|
74
76
|
**点空白处批注会丢吗?** 不会。点「添加到任务」时批注已经保存,空白点击只关闭评论框;已经写了一半的评论会一并保存到那条批注上。
|
|
75
77
|
|
|
76
78
|
**输入框里出现了协议原文?** 发送前的注入没生效,一般是 composer 结构变了——检查 `[data-composer-card]` 是否还在。
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
**对话记录里没有批注摘要?** 摘要块渲染在宿主用户气泡上方;若 `user` 节点被别的接管者赢走、或那条消息里确实没有批注块,都不会出现。块的开闭标记完整但 JSON 损坏时,气泡只剥掉协议原文、不显示摘要。宿主视图解析失败是另一回事:摘要还在,只是气泡退回纯文本、时间/复制行不再渲染。
|
|
79
81
|
|
|
80
|
-
**界面语言不跟着 dsh 变?**
|
|
82
|
+
**界面语言不跟着 dsh 变?** 文案取自宿主的语言服务。插件依赖宿主的 `locale` 服务(由 `@deepseek-ai/dsh-client-locale` 提供,随 dsh 内置);服务缺失时插件不会激活,而不是静默回退到 English。语言存在但词典缺键时按 `en` 兜底。确认设置里确有语言选项。
|
|
81
83
|
|
|
82
84
|
**改了 CSS 不生效?** 样式只注入一次,刷新页面。
|
|
83
85
|
|
|
@@ -91,7 +93,7 @@ pnpm run watch # 增量重建
|
|
|
91
93
|
|
|
92
94
|
依赖用 pnpm 管理(锁文件 `pnpm-lock.yaml`);构建产物 `lib/` 随源码一起提交,运行时直接读它。
|
|
93
95
|
|
|
94
|
-
`pnpm run verify`
|
|
96
|
+
`pnpm run verify` 无头执行产物:断言 9 项贡献都注册上,检查三份词典的键与 `{placeholder}` 在每种语言里都齐备(复数消息必须有 `.other` 兜底)、插件页展示元信息(locale + icon)按宿主规则解析、`npm pack` 实际发货清单。它还会回放批注持久化与跨标签同步、链接识别、宿主视图解析、发送手势、协议块读写与回声剥离等关键路径。
|
|
95
97
|
|
|
96
98
|
### 热更新到桌面客户端
|
|
97
99
|
|
|
@@ -117,7 +119,7 @@ fork 后开分支,提交前跑 `pnpm run check`。一个 PR 只讲一件事,
|
|
|
117
119
|
|
|
118
120
|
## 致谢
|
|
119
121
|
|
|
120
|
-
- [@imallakov](https://github.com/imallakov)
|
|
122
|
+
- [@imallakov](https://github.com/imallakov):多语言文案、跨平台构建、装饰器楔死修复与批注归属(PR #2 / #3 / #4)
|
|
121
123
|
- [@EliteOtaku](https://github.com/EliteOtaku):桌面端渲染进程楔死的定位报告与 CDP 探针方法([#1](https://github.com/latte03/dsh-select-quote/issues/1))
|
|
122
124
|
|
|
123
125
|
## License
|
package/cordis.patch.yml
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
#
|
|
13
13
|
# Local development from a checkout cannot use this file — the checkout is not
|
|
14
14
|
# in the profile's node_modules, so the loader has no name to resolve. Use
|
|
15
|
-
# `dev.patch.yml` (absolute path) with
|
|
15
|
+
# `dev.patch.yml` (copied from `dev.patch.example.yml`, absolute path) with
|
|
16
|
+
# `dsh web --patch` instead.
|
|
16
17
|
- insert:
|
|
17
18
|
- id: select-quote
|
|
18
19
|
name: 'dsh-select-quote'
|