dsh-select-quote 0.3.9 → 0.3.11
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 +40 -8
- package/lib/client.js +2000 -627
- package/lib/index.js +911 -2
- package/package.json +12 -4
package/README.md
CHANGED
|
@@ -3,15 +3,17 @@
|
|
|
3
3
|
[DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/guide/quickstart) 的客户端插件:在对话里**划词加批注**——选中的原文连同你的评论一起交给模型,并让它在回答里明确指出说的是哪一段。
|
|
4
4
|
|
|
5
5
|
- **划词工具条**:选中对话区任意文本,浮出「复制 / 添加到任务」;选中的文本是 http(s) 链接(或落在链接上)时多一个「打开链接」,用系统默认浏览器打开(绕开应用内浏览器);拖拽结束才出现,不挡操作
|
|
6
|
+
- **右键菜单**:在选区矩形内点右键,同一套「复制 / 打开链接 / 添加到任务」出现在指针处;选区之外、其它插件已接管的右键一律不碰,桌面端未接管时保留宿主的原生 Copy 菜单
|
|
7
|
+
- **快捷键**:选中文字后一键打开菜单或直接添加;桌面 macOS 是 `⌘L` / `⇧⌘L`,其它平台的默认键位见下表;可在设置里单独开关
|
|
6
8
|
- **批注摘要**:添加后输入框上方出现一块「N 条批注」摘要,草稿里不会出现任何协议文本
|
|
7
|
-
-
|
|
9
|
+
- **正文标记**:被划中的文字在原消息里留下淡色底、虚线下划线和序号角标,点摘要条目会滚回那段文字;点标记或角标会打开该条批注的预览(原文 + 评论),角标也能用 Tab 聚焦、Enter 打开。角标始终压在选区高亮之上,多条批注结尾重合时会自动向右/向上错开
|
|
8
10
|
- **模型回指**:模型回答里指向某条批注的位置,渲染成带预览的 chip
|
|
9
11
|
- **对话记录**:已发送消息仍由宿主气泡渲染(时间、复制、撤回都在),批注收成一块摘要,悬停(触屏点按)展开列表
|
|
10
12
|
- **界面语言**:跟随 dsh 自己的语言设置,简体中文 / English / Русский
|
|
11
13
|
|
|
12
|
-

|
|
13
15
|
|
|
14
|
-
<sub
|
|
16
|
+
<sub>示意图:正文标记、批注摘要与 chip 预览(按产品真实设计 token 渲染,源文件 `assets/screenshot-1.mock.html`)</sub>
|
|
15
17
|
|
|
16
18
|
---
|
|
17
19
|
|
|
@@ -42,8 +44,33 @@ dsh web --patch "$PWD/dev.patch.yml"
|
|
|
42
44
|
1. 在对话区选中一段文本,点「添加到任务」——到这一步批注就已经保存,输入框上方同步出现批注摘要。触屏下操作条固定在屏幕底部,不跟随选区挤在系统选择菜单旁边
|
|
43
45
|
2. 想补充的话在弹出的评论框里写一句,点「添加评论」或 `⌘/Ctrl + Enter`;不写就直接点空白处或「暂不评论」,批注同样保留。触屏下评论在底部抽屉里完成,抽屉顶部会带上选中的原文
|
|
44
46
|
3. 悬停(触屏点按)输入框上方的摘要展开列表,可逐条编辑、删除或一键清空,点条目跳回正文对应文字;对话记录里的摘要只提供列表和跳转。键盘聚焦摘要后按 Enter / ↓ 展开,Tab 在面板内移动,Esc 关闭并回到摘要
|
|
45
|
-
4.
|
|
46
|
-
5.
|
|
47
|
+
4. 点正文里的标记或角标(角标可用 Tab 聚焦后按 Enter)打开批注预览,查看原文和评论;点浮层外或按 Esc 关闭
|
|
48
|
+
5. 正常打字发送,批注随消息一起交给模型,摘要随之消失
|
|
49
|
+
6. 模型回答里引用某条批注的位置显示为 chip:悬停、点击(触屏点按)或键盘聚焦都会打开预览,显示原文和评论;预览默认在 chip 上方,右上角「原文」按钮回到正文;键盘聚焦 chip 后按 ↓ 进入按钮,Esc 关闭
|
|
50
|
+
|
|
51
|
+
### 入口与菜单
|
|
52
|
+
|
|
53
|
+
选中文字后有三条路打开「复制 / 打开链接 / 添加到任务」:
|
|
54
|
+
|
|
55
|
+
- **自动浮出**(默认):拖拽结束就在选区上/下方显示工具条
|
|
56
|
+
- **右键菜单**:在选区矩形内点右键,菜单出现在指针处;点选区外仍是宿主自己的菜单(桌面端是原生 Copy),别的处理器已经 `preventDefault` 的右键也不会抢
|
|
57
|
+
- **快捷键**:选中文字后按下表键位,不用经过菜单
|
|
58
|
+
|
|
59
|
+
| 操作 | 桌面 macOS | 桌面 Win/Linux | Web macOS | Web Windows | Web Linux |
|
|
60
|
+
|---|---|---|---|---|---|
|
|
61
|
+
| 打开划词菜单 | `⌘L` | `Ctrl+Shift+L` | `⇧⌘L` | `Ctrl+Shift+L` | `Ctrl+Shift+,` |
|
|
62
|
+
| 添加到任务 | `⇧⌘L` | `Ctrl+Shift+.` | `⌥⌘L` | `Ctrl+Shift+.` | `Ctrl+Shift+.` |
|
|
63
|
+
|
|
64
|
+
「打开划词菜单」把菜单锚在选区首行下边缘;「添加到任务」直接保存批注并打开评论框,和点工具条上的同名按钮一致。「复制」不注册插件命令,直接用系统的 `⌘C` / `Ctrl+C`。两个命令都只认对话区的选区,有一条批注正在编辑时会提示先完成它。所有键位都能在宿主的「快捷键」设置里改。
|
|
65
|
+
|
|
66
|
+
前两条由「划词入口」切换,快捷键是独立开关;默认只开自动浮出,右键和快捷键都关。
|
|
67
|
+
|
|
68
|
+
## 设置
|
|
69
|
+
|
|
70
|
+
插件页 → `dsh-select-quote`,配置直接显示在该插件的外层页面(描述与行列表之间),不用再点进「配置」:
|
|
71
|
+
|
|
72
|
+
- **划词入口**:自动浮出 / 右键菜单 / 两者都开;默认自动浮出。触屏始终使用底部操作条
|
|
73
|
+
- **快捷键**:打开或关闭「打开划词菜单」「添加到任务」两个命令;开启后开关下方直接列出它们当前生效的键位,被别的插件占用时显示冲突。命令只在开启期间出现在宿主的「快捷键」设置里,改键也在那里;默认关闭
|
|
47
74
|
|
|
48
75
|
## 语言
|
|
49
76
|
|
|
@@ -65,7 +92,9 @@ dsh web --patch "$PWD/dev.patch.yml"
|
|
|
65
92
|
- **占用了用户气泡的渲染**:本插件以 `priority: -10` 接管内置 `user` / `steering` 节点,再委托宿主 `UserMessageNodeView` 渲染(只改写 `node` 的文本块,剥掉协议)。其它插件若也想接管这两个键,优先级数值必须小于 `-10` 才会赢过本插件;被别的接管者赢走时,本插件不再折叠消息里的协议块。
|
|
66
93
|
- **摘要宽度有限**:输入框上方只有一块摘要(约输入框的 1/5,148–220px),悬停列表里的原文和评论最多显示三行;编辑批注时原文完整显示,超过 132px 在框内滚动。
|
|
67
94
|
- **划词只在对话区生效**:不介入编辑器、终端等面板。
|
|
68
|
-
-
|
|
95
|
+
- **右键只在选区矩形内接管**:指针在选区外、右键已被其它插件处理、或触发方式没开「右键菜单」时,插件完全不介入,宿主自己的菜单照常出现。桌面端接管时原生 Copy 菜单会被抑制;没接管时仍由客户端弹原生菜单,这是两条互斥的路径。
|
|
96
|
+
- **Web Linux 快捷键只有两个可用组合**:宿主的 Web 快捷键只接受 `Ctrl+/`、`Ctrl+Shift+,`、`Ctrl+Shift+.` 三种组合,其中 `Ctrl+/` 已被宿主的快捷键面板占用,所以本插件用后两个,且不能像其它平台一样用字母键。桌面 Windows/Linux 用 `Ctrl+Shift+L` / `Ctrl+Shift+.`,不影响 `Ctrl+L` 的平台含义,也避开 AltGr 会打出字符的组合。
|
|
97
|
+
- **创建选区仍依赖指针**:对话正文是静态渲染,没有可放置的键盘光标;键盘用户需借助光标浏览或辅助技术建立选区。选区建立后的工具条按钮可聚焦,摘要面板已支持 Enter / ↓ / Tab / Esc 与触屏点按;已有批注可以从正文角标 Tab 聚焦后按 Enter 回看。
|
|
69
98
|
|
|
70
99
|
## 常见问题
|
|
71
100
|
|
|
@@ -87,13 +116,15 @@ dsh web --patch "$PWD/dev.patch.yml"
|
|
|
87
116
|
|
|
88
117
|
```bash
|
|
89
118
|
pnpm install
|
|
90
|
-
pnpm run check # typecheck + build + verify
|
|
119
|
+
pnpm run check # typecheck + test + build + verify
|
|
91
120
|
pnpm run watch # 增量重建
|
|
92
121
|
```
|
|
93
122
|
|
|
94
123
|
依赖用 pnpm 管理(锁文件 `pnpm-lock.yaml`);构建产物 `lib/` 随源码一起提交,运行时直接读它。
|
|
95
124
|
|
|
96
|
-
`pnpm run verify` 无头执行产物:断言
|
|
125
|
+
`pnpm run test` 用 Vitest 跑纯逻辑(角标避让、评论泡定位、浮层翻转、触发矩阵、配置归一、链接识别、快捷键默认矩阵);`pnpm run verify` 无头执行产物:断言 10 项贡献都注册上,检查三份词典的键与 `{placeholder}` 在每种语言里都齐备(复数消息必须有 `.other` 兜底)、插件页展示元信息(locale + icon)按宿主规则解析、`npm pack` 实际发货清单。它还会回放批注持久化与跨标签同步、链接识别、宿主视图解析、发送手势、协议块读写与回声剥离、右键接管判定与两个快捷键命令等关键路径。
|
|
126
|
+
|
|
127
|
+
CI 在 push 与 PR 上跑同一套 `pnpm run check`(`.github/workflows/check.yml`)。
|
|
97
128
|
|
|
98
129
|
### 热更新到桌面客户端
|
|
99
130
|
|
|
@@ -120,6 +151,7 @@ fork 后开分支,提交前跑 `pnpm run check`。一个 PR 只讲一件事,
|
|
|
120
151
|
## 致谢
|
|
121
152
|
|
|
122
153
|
- [@imallakov](https://github.com/imallakov):多语言文案、跨平台构建、装饰器楔死修复与批注归属(PR #2 / #3 / #4)
|
|
154
|
+
- [@Ladersbt](https://github.com/Ladersbt):批注 chip 悬停预览的需求与反馈([#9](https://github.com/latte03/dsh-select-quote/issues/9))
|
|
123
155
|
- [@EliteOtaku](https://github.com/EliteOtaku):桌面端渲染进程楔死的定位报告与 CDP 探针方法([#1](https://github.com/latte03/dsh-select-quote/issues/1))
|
|
124
156
|
|
|
125
157
|
## License
|