virlen-remote 0.3.0 → 0.5.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"mock-host.js","sourceRoot":"","sources":["../../src/testing/mock-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-host.js","sourceRoot":"","sources":["../../src/testing/mock-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 传输档位 —— 「这条链路上,详细内容发不发」。
3
+ *
4
+ * ## 为什么要有这一层
5
+ *
6
+ * 「直连 / 中继」此前只影响**界面上一枚胶囊**(`link-kind.ts`):用户看到「TURN 中继」,知道慢,
7
+ * 但慢的代价其实落在手机上 —— 中继意味着**每一个字节都要经 TURN 服务器绕一圈**,而手机那头
8
+ * 常常是蜂窝流量。手机上真正的大头也不是聊天正文,而是**工具输出**(`git diff` / 命令回显 /
9
+ * 文件片段,单条动辄数 KB,一屏历史里几十条)。
10
+ *
11
+ * 于是把链路类型**再映射一层**成可执行的档位:
12
+ * - `full`(完整):该发什么发什么;
13
+ * - `lean`(精简):只发「主要内容」;详细内容(当前 = `role:'tool'` 的输出正文)由电脑端
14
+ * 在**投影时**省略(`toMessageDTO`),并带上 `MessageDTO.detail = 'omitted'`,
15
+ * 让手机端如实显示「输出已省略」,而不是骗人的「这次调用没有输出」。
16
+ *
17
+ * ## 口径为什么也必须只有一份
18
+ *
19
+ * 档位是**两端都会读**的:电脑端据此裁剪(发送侧 —— 唯一能真正省下流量的地方),
20
+ * 手机端据此解释「工具输出为什么是空的」并在通讯面板上显示当前档位。两端口径一旦漂移,
21
+ * 用户看到的就是自相矛盾(电脑按精简发、手机写着「完整传输」)—— 与 `link-kind.ts`
22
+ * 当初收敛到本包是同一条理由:**这里即那份唯一实现。**
23
+ *
24
+ * ## 判定口径(用户 2026-10-02 拍板)
25
+ *
26
+ * - `direct`(P2P 直连)→ `full`:字节不经服务器,省它没有意义,信息完整优先;
27
+ * - `relay`(TURN 中继)→ `lean`:字节要过服务器(手机流量 + 服务器带宽),砍详细内容;
28
+ * - `unknown`(还没结论 / 非 WebRTC 链路)→ **也是 `lean`**:宁可把「其实一直是直连」的链路
29
+ * 先按精简发,也不要在开局那一屏白白走完整档 —— 而开局那一屏恰好是全量最大的一笔
30
+ * (手机连上就拉最近一窗消息,里面全是历史工具输出)。
31
+ *
32
+ * ⚠️ **代价如实记在这里**:`unknown` 是常态之一 —— 非 WebRTC 链路(同源 Broadcast 联调 /
33
+ * 测试注入的链路)永远读不到候选对,于是永远按精简发;真机上也存在「其实是直连、但首个
34
+ * 候选对还没定形」的几秒。这些情形下用户看到的是「工具输出已省略」而不是崩溃或空屏,
35
+ * 重开会话(重拉窗口)或链路判定为直连之后新产生的数据都会是完整的。
36
+ * **不要**把「联调时工具输出是空的」当成 bug 去修。
37
+ */
38
+ import type { LinkKind } from './link-kind.js';
39
+ /** 传输档位:`full` = 完整(含详细内容);`lean` = 精简(只发主要内容)。 */
40
+ export type TransferTier = 'full' | 'lean';
41
+ /**
42
+ * 两端都要声明/列出的**能力名**(手机端写进 `hello.capabilities`;电脑端写进 ACL 能力集)。
43
+ *
44
+ * 两端各表一半(能力协商本来就是「我会什么」的交集):
45
+ * - 手机端声明它 = 「我能渲染 `MessageDTO.detail` 的省略标记」;
46
+ * - 电脑端列出它 = 「我会按档位裁剪正文,并在裁掉时打标记」。
47
+ *
48
+ * **为什么裁剪必须被它挡住,而不能无条件裁**:已部署的旧手机端不认 `detail` 字段 ——
49
+ * 它的工具卡片会把「正文为空」显示成「这次调用没有输出」,而那是**假话**(工具有输出,
50
+ * 只是被省略了)。宁可对旧手机端继续全量发送,也不要在它的界面上写一句不成立的结论;
51
+ * 反过来,旧电脑端不认识这个能力名,新手机端也只是继续收完整正文,同样不会出问题。
52
+ */
53
+ export declare const MESSAGE_DETAIL_CAPABILITY = "message.detail";
54
+ /**
55
+ * 链路类型 → 传输档位(**两端唯一口径**)。
56
+ *
57
+ * 纯函数:喂一个 `LinkKind` 即可,不碰 DOM、不碰 store,故可完整单测。
58
+ */
59
+ export declare function transferTierOf(kind: LinkKind): TransferTier;
60
+ //# sourceMappingURL=transfer-tier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-tier.d.ts","sourceRoot":"","sources":["../../src/transport/transfer-tier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AAEzD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAE3D"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 两端都要声明/列出的**能力名**(手机端写进 `hello.capabilities`;电脑端写进 ACL 能力集)。
3
+ *
4
+ * 两端各表一半(能力协商本来就是「我会什么」的交集):
5
+ * - 手机端声明它 = 「我能渲染 `MessageDTO.detail` 的省略标记」;
6
+ * - 电脑端列出它 = 「我会按档位裁剪正文,并在裁掉时打标记」。
7
+ *
8
+ * **为什么裁剪必须被它挡住,而不能无条件裁**:已部署的旧手机端不认 `detail` 字段 ——
9
+ * 它的工具卡片会把「正文为空」显示成「这次调用没有输出」,而那是**假话**(工具有输出,
10
+ * 只是被省略了)。宁可对旧手机端继续全量发送,也不要在它的界面上写一句不成立的结论;
11
+ * 反过来,旧电脑端不认识这个能力名,新手机端也只是继续收完整正文,同样不会出问题。
12
+ */
13
+ export const MESSAGE_DETAIL_CAPABILITY = 'message.detail';
14
+ /**
15
+ * 链路类型 → 传输档位(**两端唯一口径**)。
16
+ *
17
+ * 纯函数:喂一个 `LinkKind` 即可,不碰 DOM、不碰 store,故可完整单测。
18
+ */
19
+ export function transferTierOf(kind) {
20
+ return kind === 'direct' ? 'full' : 'lean';
21
+ }
22
+ //# sourceMappingURL=transfer-tier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-tier.js","sourceRoot":"","sources":["../../src/transport/transfer-tier.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAA;AAEzD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "virlen-remote",
3
- "version": "0.3.0",
4
- "description": "Virlen 手机控制 · 协议栈共享包 —— 帧 / RPC / 错误 / 能力协商 / 设备身份与授权凭证 / 配对载荷 / ICE 解析 / Transport(WebRTC / 内存 / Broadcast)",
3
+ "version": "0.5.0",
4
+ "description": "Virlen 手机控制 · 协议栈共享包 —— 帧 / RPC / 错误 / 能力协商 / 设备身份与授权凭证 / 配对载荷 / ICE 解析 / 链路类型与传输档位 / 消息级操作(引用与删除) / Transport(WebRTC / 内存 / Broadcast)",
5
5
  "license": "MIT",
6
6
  "author": "WeiChens",
7
7
  "keywords": [
package/src/index.ts CHANGED
@@ -63,6 +63,10 @@ export type { ChoiceAnswer } from './protocol/answer'
63
63
 
64
64
  export { negotiate, intersectCapabilities } from './protocol/hello'
65
65
 
66
+ // ── 消息级操作(引用 / 删除)的共用契约:能力名 + 引用快照体 ──
67
+ export { MESSAGE_QUOTE_CAPABILITY, MESSAGE_DELETE_CAPABILITY } from './protocol/message-actions'
68
+ export type { MessageQuote } from './protocol/message-actions'
69
+
66
70
  export { Endpoint } from './protocol/endpoint'
67
71
  export type {
68
72
  CallContext,
@@ -103,6 +107,7 @@ export type {
103
107
  RenameSessionParams,
104
108
  PinSessionParams,
105
109
  DeleteSessionParams,
110
+ DeleteMessageParams,
106
111
  ModelProviderDTO,
107
112
  WorkspaceOptionDTO,
108
113
  ContextInfoDTO,
@@ -147,6 +152,10 @@ export type {
147
152
  StatsProvider,
148
153
  } from './transport/link-kind'
149
154
 
155
+ // ── 传输档位(链路类型 → 发不发详细内容,两端同一份口径)──
156
+ export { MESSAGE_DETAIL_CAPABILITY, transferTierOf } from './transport/transfer-tier'
157
+ export type { TransferTier } from './transport/transfer-tier'
158
+
150
159
  // ── ICE 配置(M7,§31):客户端不再内置任何 TURN 凭证 ──
151
160
  export {
152
161
  ICE_CONFIG_VERSION,
@@ -11,6 +11,7 @@
11
11
  * 具体从电脑侧 store 投影到 DTO 的适配在 M2 的 `dto.ts` 落地。
12
12
  */
13
13
  import type { CallContext, Endpoint } from './endpoint'
14
+ import type { MessageQuote } from './message-actions'
14
15
 
15
16
  // ───────────────────────────── DTO(白名单投影) ─────────────────────────────
16
17
 
@@ -45,9 +46,28 @@ export interface SessionSummaryDTO {
45
46
  export interface MessageDTO {
46
47
  id: string
47
48
  role: 'user' | 'assistant' | 'tool' | 'system'
48
- /** 纯文本投影;图片等富内容一期剥离为占位符(§7-⑦)。空串 = 无正文(手机端不渲染空气泡)。 */
49
+ /**
50
+ * 纯文本投影;图片等富内容一期剥离为占位符(§7-⑦)。空串 = 无正文(手机端不渲染空气泡)。
51
+ *
52
+ * ⚠️ 空串有**两种**来源,靠 `detail` 区分:本来就没有正文,与**正文被传输档位省略**
53
+ * (中继 / 类型未知时工具输出不下发,见共享包的 `TransferTier`)。把后者当成前者,
54
+ * 就是给用户写一句不成立的结论。
55
+ *
56
+ * ⚠️ **引用块不在本字段里**(见 `quotes`):引用是结构化下行的,若同时把它展平进
57
+ * `text`,消费方就会把同一段引文显示两遍(引用条 + 正文里的 `[引用] …`)。
58
+ */
49
59
  text: string
50
60
  createdAt: number
61
+ /**
62
+ * 正文完整性标记(**可选**,只在正文被有意省略时出现)。
63
+ *
64
+ * `'omitted'`:`text` 为空是**档位决定**,不是「这次调用没有输出」—— 工具输出确实存在,
65
+ * 只是这条链路(TURN 中继 / 类型未知)按精简档不下发(§33)。手机端据此显示「输出已省略」。
66
+ *
67
+ * ⚠️ 消费方**不要穷举取值**:判「有没有这个字段」,不认识的值一律按「正文不完整」处理 ——
68
+ * 将来增加别的完整性档(如截断)时,旧消费方仍应给出诚实的提示而不是当成完整正文。
69
+ */
70
+ detail?: 'omitted'
51
71
  /**
52
72
  * 工具名(仅 `role:'tool'`,如 `read_file`)。
53
73
  *
@@ -56,6 +76,17 @@ export interface MessageDTO {
56
76
  * 手机端**不猜**:拿不到就只显示「工具」。
57
77
  */
58
78
  toolName?: string
79
+ /**
80
+ * 本条消息引用了哪些历史消息(快照,**可选**;只有带引用的用户消息才有)。
81
+ *
82
+ * 为什么结构化下行而不展平进 `text`:桌面端把它渲染成气泡上方的引用条(`QuoteChip`),
83
+ * 并可点击跳回原消息 —— 展平成一串文本就再也拆不回来了(`[引用] …` 只是个前缀,
84
+ * 正文里本来就可能有同样的字样)。
85
+ *
86
+ * 消费方注意:`quotes[].text` 是**快照**,可能很长(引用一整段 AI 回答)—— 引用条应**截断显示**,
87
+ * 发给模型的是完整快照(与桌面一致,不要在协议层擅自裁剪用户要引用的内容)。
88
+ */
89
+ quotes?: MessageQuote[]
59
90
  }
60
91
 
61
92
  export interface RuntimeDTO {
@@ -153,6 +184,19 @@ export type StreamMode = 'full' | 'delta'
153
184
  export interface SendParams {
154
185
  sessionId: string
155
186
  text: string
187
+ /**
188
+ * 引用若干条历史消息(可选)。
189
+ *
190
+ * 电脑端把它组装成 `{type:'quote'}` 内容块(与桌面输入框的引用附件走**同一个**
191
+ * `buildUserContent`),因此下游(引擎 / 持久化 / 桌面渲染 / 导出)的语义与桌面完全一致:
192
+ * 模型看到的是结构化的引用块,桌面端显示引用条并可点击跳回原消息,引文是**快照**
193
+ * (原消息被删 / 被压缩也不影响)。
194
+ *
195
+ * ⚠️ **只在电脑端声明 `MESSAGE_QUOTE_CAPABILITY` 时才能发**:旧电脑端不认这个参数,
196
+ * RPC 会「成功」而引文被静默丢掉(用户会以为引用了,AI 却当没看见)。
197
+ * 另外这是 `session.send` 的一个参数,**不是新权限** —— 越权防线仍是 `session.send`。
198
+ */
199
+ quotes?: MessageQuote[]
156
200
  }
157
201
 
158
202
  export interface MsgPageParams {
@@ -334,6 +378,29 @@ export interface DeleteSessionParams {
334
378
  confirm: true
335
379
  }
336
380
 
381
+ /**
382
+ * 删除单条消息**及其之后的全部消息**(截断)—— 与桌面右键菜单的「删除」同一条路径
383
+ * (`deleteSessionMessage`),**不是**「把这一条从中间抽走」。
384
+ *
385
+ * 为什么是截断而不是单删:一条消息的历史是**因果链** —— 抽走中间一条用户提问,
386
+ * 后面 AI 的回答就失去了提问;抽走一条带 `tool_calls` 的 assistant 消息,后面的
387
+ * 工具结果就成了孤儿(引擎侧要额外做悬空修补)。桌面端已经用「本条及后续」表达了这个
388
+ * 事实,手机端**不得**另立一套更「温和」的语义 —— 那只会让两个入口对同一次操作给出
389
+ * 不同的后果(用户删了中间一条,电脑上的历史却不一样)。
390
+ *
391
+ * 角色限制:`role:'tool'` 的消息**不可删**(工具结果与发起它的 assistant 消息是一体两面,
392
+ * 单独删掉只会留下悬空调用)—— 电脑侧拒绝,手机端也不提供入口。
393
+ */
394
+ export interface DeleteMessageParams {
395
+ sessionId: string
396
+ messageId: string
397
+ /**
398
+ * 必须为 `true`。截断不可逆 —— §16.3-3 要求手机端二次确认,电脑侧独立校验,
399
+ * 缺则 `E_CONFIRM_REQUIRED`(手机端 UI 的确认弹窗不算数)。
400
+ */
401
+ confirm: true
402
+ }
403
+
337
404
  /** 电脑实现、手机调用。 */
338
405
  export interface HostApi {
339
406
  'host.hello': { params: import('./hello').HelloParams; result: import('./hello').HelloResult }
@@ -356,6 +423,17 @@ export interface HostApi {
356
423
  'host.session.pin': { params: PinSessionParams; result: { ok: true } }
357
424
  /** ⚠️ 不可逆:必须带 `confirm: true`(缺则 `E_CONFIRM_REQUIRED`)。 */
358
425
  'host.session.delete': { params: DeleteSessionParams; result: { ok: true } }
426
+ /**
427
+ * 删除单条消息及其之后的全部消息(截断,不可逆)。
428
+ *
429
+ * 与 `host.session.message.get` 同属「消息级」方法。结果**不**在本应答里回传快照:
430
+ * 电脑侧会推 `host.event.session.messages.reset`,手机端据此重拉窗口(§3.5 的同一策略——
431
+ * 不发明增量协议,让「重拉快照」这个天然幂等的动作承担一致性)。
432
+ *
433
+ * 电脑侧还会拦两种情况:会话正在回复(`E_BUSY`,与 `send` / `compress` 同一条并发纪律)、
434
+ * 目标是 `role:'tool'` 的消息(`E_BAD_REQUEST`)。
435
+ */
436
+ 'host.session.message.delete': { params: DeleteMessageParams; result: { ok: true } }
359
437
  'host.interaction.answer': { params: AnswerParams; result: AnswerResult }
360
438
  /**
361
439
  * 当前待应答交互(**拉取式**,M4)。
@@ -18,6 +18,7 @@ import type {
18
18
  ContextInfoDTO,
19
19
  ContextParams,
20
20
  CreateSessionParams,
21
+ DeleteMessageParams,
21
22
  DeleteSessionParams,
22
23
  HostEvents,
23
24
  InteractionDTO,
@@ -53,6 +54,19 @@ export interface HostDataSource {
53
54
  setPinned(params: PinSessionParams): { ok: true } | Promise<{ ok: true }>
54
55
  /** ⚠️ 不可逆;实现侧必须校验 `confirm === true`(不得依赖手机 UI)。 */
55
56
  deleteSession(params: DeleteSessionParams): { ok: true } | Promise<{ ok: true }>
57
+ /**
58
+ * 删除单条消息及其之后的全部消息(截断)。
59
+ *
60
+ * ⚠️ 实现侧必须自己把三道闸都做上(不得依赖手机 UI):
61
+ * 1. `confirm === true`(缺则 `E_CONFIRM_REQUIRED`);
62
+ * 2. 会话**正在回复**时拒(`E_BUSY`)—— 删断正在跑的 run 会留下悬空工具调用;
63
+ * 3. 目标是 `role:'tool'` 的消息时拒(`E_BAD_REQUEST`)—— 工具结果与发起它的
64
+ * assistant 消息是一体两面,单独删掉只会留下悬空调用。
65
+ *
66
+ * 结果不在应答里回传:实现侧负责推 `host.event.session.messages.reset`,
67
+ * 客户端重拉窗口(与压缩同一条一致性策略)。
68
+ */
69
+ deleteMessage(params: DeleteMessageParams): { ok: true } | Promise<{ ok: true }>
56
70
  /** 可选:覆盖默认 hello 应答。 */
57
71
  hello?(params: HelloParams): HelloResult | Promise<HelloResult>
58
72
  // ── §22:模型 / 工作目录 / 上下文 ──
@@ -132,6 +146,7 @@ export function registerHostHandlers(
132
146
  on('host.session.rename', async (params) => source.renameSession(params as RenameSessionParams))
133
147
  on('host.session.pin', async (params) => source.setPinned(params as PinSessionParams))
134
148
  on('host.session.delete', async (params) => source.deleteSession(params as DeleteSessionParams))
149
+ on('host.session.message.delete', async (params) => source.deleteMessage(params as DeleteMessageParams))
135
150
  on('host.interaction.answer', async (params) => source.answer(params as AnswerParams))
136
151
  on('host.interaction.list', async () => ({ interactions: await source.listInteractions() }))
137
152
  // ── §22:模型 / 工作目录 / 上下文 ──
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 消息级操作(引用 / 删除)—— **两端共用的契约**:能力名 + 引用引用体。
3
+ *
4
+ * ## 为什么这两个东西要放在共享包里
5
+ *
6
+ * 与 §33 的传输档位同一条理由:它们都是**两端各表一半**的约定。
7
+ * - **引用**:手机端发 `SendParams.quotes`,电脑端把它组装成 `{type:'quote'}` 内容块;
8
+ * 手机端还要把 `MessageDTO.quotes` 渲染成引用条。字段名、角色取值域、快照语义
9
+ * 写两份必然漂移(一边 `quote`、一边 `quotes`,或一边 `assistant`、一边 `ai`)。
10
+ * - **删除**:手机端长按菜单里的「删除」项**只在电脑端声明能力时才出现** ——
11
+ * 能力名是这里的常量,不是两边各写一遍的字面量(§33 的 `typeof` 绑定同一条教训)。
12
+ *
13
+ * ## 能力的两类语义(与 §33 的 `MESSAGE_DETAIL_CAPABILITY` 一致)
14
+ *
15
+ * 本包里导出的能力名有两种角色,**消费方必须分清**:
16
+ * - **功能标记**(`MESSAGE_QUOTE_CAPABILITY` 与 §33 的 `MESSAGE_DETAIL_CAPABILITY`):
17
+ * 只用来决定「界面给不给这个入口」,**不会被 ACL 的 `assert()` 拦**——引用本身就是
18
+ * `session.send` 的一个参数,不是新的权限;
19
+ * - **权限**(`MESSAGE_DELETE_CAPABILITY`):删消息是**破坏性操作**,电脑端必须独立
20
+ * `assert` 它,缺失即 `E_DENIED`——手机端不显示按钮**不是**防线(§7-⑪ 的教训)。
21
+ */
22
+
23
+ /**
24
+ * 一条被引用消息的**快照引用**。
25
+ *
26
+ * ⚠️ `text` 是**快照**,不是外键:被引用的原消息可能随后被删除、被上下文压缩替换、
27
+ * 或滚出手机端的已加载窗口(§20.2 分页)—— 只存 `messageId` 的话,发给模型的引用内容
28
+ * 会在那些情形下凭空缺失,而用户界面上一无所知。这与桌面输入框的 `QuoteAttachment`
29
+ * **同一条口径**(`ui/pages/chat/components/input/hooks.ts`)。
30
+ *
31
+ * 角色取值域只有 `user` / `assistant`:**只有「有正文的两方发言」可被引用**。
32
+ * `tool`(工具输出)与 `system`(压缩摘要)不是对话发言,引用它们没有语义
33
+ * (桌面端的右键菜单同样不给它们「引用」项)。
34
+ */
35
+ export interface MessageQuote {
36
+ /** 被引用消息的 id(同时用作 UI 列表 key / 去重键)。 */
37
+ messageId: string
38
+ /** 被引用消息的发送方。 */
39
+ role: 'user' | 'assistant'
40
+ /** 被引用消息的正文快照(原消息被删 / 被压缩后,引文仍然完整)。 */
41
+ text: string
42
+ }
43
+
44
+ /**
45
+ * 手机端声明它 = **长按气泡的菜单里提供「引用」**,并能把引用条渲染出来。
46
+ * 电脑端列出它 = **本机认识 `SendParams.quotes` 与 `MessageDTO.quotes`**。
47
+ *
48
+ * 为什么必须有这道闸(不是可选的礼貌):**已部署的旧电脑端不认 `quotes` 参数** ——
49
+ * 它是普通字段,RPC 会正常成功,引文被静默丢掉。用户侧的表现是「我明明引用了,
50
+ * AI 却当没看见」,且没有任何报错可查。宁可对旧电脑端不显示这个入口。
51
+ */
52
+ export const MESSAGE_QUOTE_CAPABILITY = 'message.quote'
53
+
54
+ /**
55
+ * 删除单条消息(及其后全部)的能力名 —— 电脑端 ACL 必须声明它,手机端才显示「删除」项。
56
+ *
57
+ * 与上面那个不同,**这是权限而不是功能标记**:电脑端在 handler 里独立 `assert`,
58
+ * 未授权即 `E_DENIED`。手机端隐藏入口只是 UI 收敛,绝不构成防线(§7-⑪)。
59
+ */
60
+ export const MESSAGE_DELETE_CAPABILITY = 'message.delete'
@@ -23,6 +23,7 @@
23
23
  import { BridgeError } from '../protocol/errors'
24
24
  import { answerActionError, normalizeChoiceAnswer } from '../protocol/answer'
25
25
  import { COMPRESS_MIN_RATIO, DEFAULT_CONTEXT_WINDOW_TOKENS } from '../protocol/api'
26
+ import { MESSAGE_DELETE_CAPABILITY, MESSAGE_QUOTE_CAPABILITY } from '../protocol/message-actions'
26
27
  import type { HostDataSource, HostEmit } from '../protocol/host'
27
28
  import type { HostEvents, StreamMode } from '../protocol/api'
28
29
  import type {
@@ -33,6 +34,7 @@ import type {
33
34
  ContextInfoDTO,
34
35
  ContextParams,
35
36
  CreateSessionParams,
37
+ DeleteMessageParams,
36
38
  DeleteSessionParams,
37
39
  InteractionDTO,
38
40
  MessageDTO,
@@ -119,6 +121,16 @@ const DEMO_PROVIDERS: ModelProviderDTO[] = [
119
121
  /** 演示用工作目录候选集(新建会话只能从这里选)。 */
120
122
  const DEMO_WORKSPACES = ['E:/code/virlen-demo', 'E:/code/another-project']
121
123
 
124
+ /**
125
+ * 「只引用了消息、没写正文」时电脑侧补的那句话。
126
+ *
127
+ * 与桌面输入框的兜底**同一条**(`utils/messageContent.ts::buildUserContent` 的「有引用无文本」分支):
128
+ * 不变的话,用例会对着一个与真机不同的正文发绿灯。文案取桌面的中文原文 ——
129
+ * 桌面切成英文时会是另一句,但 mock 只求**行为同形**,不求与 i18n 逐字同步
130
+ * (真要与 i18n 一致,那是 virlen-app 侧的跨端用例该盯的事)。
131
+ */
132
+ const QUOTE_ONLY_TEXT = '请针对引用的消息回复'
133
+
122
134
  export function createMockHostDataSource(options: MockHostOptions = {}): MockHostDataSource {
123
135
  const streamSteps = options.streamSteps ?? 3
124
136
  const streamDelayMs = options.streamDelayMs ?? 40
@@ -380,6 +392,10 @@ export function createMockHostDataSource(options: MockHostOptions = {}): MockHos
380
392
  'session.workspace',
381
393
  'session.context',
382
394
  'session.compress',
395
+ // 消息级操作:mock 确实实现了这两项(引用进内容块 / 截断删除),故如实声明 ——
396
+ // 不声明的话手机端会隐藏入口,用例就测不到真实链路
397
+ MESSAGE_QUOTE_CAPABILITY,
398
+ MESSAGE_DELETE_CAPABILITY,
383
399
  ],
384
400
  paired: true,
385
401
  deviceName: 'Virlen 电脑(演示)',
@@ -427,11 +443,15 @@ export function createMockHostDataSource(options: MockHostOptions = {}): MockHos
427
443
  calls.push('host.session.send')
428
444
  const list = messages.get(params.sessionId)
429
445
  if (!list) throw new BridgeError('E_NOT_FOUND', `session not found: ${params.sessionId}`)
446
+ const quotes = params.quotes ?? []
430
447
  const userMessage: MessageDTO = {
431
448
  id: nextId('u'),
432
449
  role: 'user',
433
- text: params.text,
450
+ // 与真实电脑侧的白名单投影同一条规则:引用**不进 `text`**(而是走 `quotes`),
451
+ // 否则客户端会把它显示两遍(引用条 + 正文里的 `[引用] …`)
452
+ text: params.text || (quotes.length > 0 ? QUOTE_ONLY_TEXT : ''),
434
453
  createdAt: Date.now(),
454
+ ...(quotes.length > 0 ? { quotes: quotes.map((q) => ({ ...q })) } : {}),
435
455
  }
436
456
  list.push(userMessage)
437
457
  emitFor(params.sessionId, 'host.event.message.added', { sessionId: params.sessionId, message: userMessage })
@@ -605,6 +625,35 @@ export function createMockHostDataSource(options: MockHostOptions = {}): MockHos
605
625
  emitList()
606
626
  return { ok: true as const }
607
627
  },
628
+ /**
629
+ * 删除单条消息及其之后的全部消息(截断)—— **与真实电脑侧同一条规则**:
630
+ * confirm 必填 / 回复中拒绝(E_BUSY)/ tool 消息不可删 / 删完推 `messages.reset`。
631
+ *
632
+ * ⚠️ mock 偏宽松 = 用例对着假行为发绿灯(§18.6 的教训),故三道闸一道不少。
633
+ */
634
+ async deleteMessage(params: DeleteMessageParams) {
635
+ calls.push('host.session.message.delete')
636
+ if (params.confirm !== true) {
637
+ throw new BridgeError('E_CONFIRM_REQUIRED', '删除消息需二次确认(confirm:true)')
638
+ }
639
+ const list = messages.get(params.sessionId)
640
+ if (!list) throw new BridgeError('E_NOT_FOUND', `session not found: ${params.sessionId}`)
641
+ const session = sessions.find((s) => s.id === params.sessionId)
642
+ if (session?.working === true) {
643
+ throw new BridgeError('E_BUSY', '该会话正在回复中,请稍后再试')
644
+ }
645
+ const idx = list.findIndex((m) => m.id === params.messageId)
646
+ if (idx === -1) throw new BridgeError('E_NOT_FOUND', `message not found: ${params.messageId}`)
647
+ if (list[idx].role === 'tool') {
648
+ throw new BridgeError('E_BAD_REQUEST', '工具消息不能单独删除')
649
+ }
650
+ // 本条及其后全部删除,并推 `messages.reset` 让客户端重拉窗口
651
+ list.splice(idx)
652
+ if (session) session.updatedAt = Date.now()
653
+ emitFor(params.sessionId, 'host.event.session.messages.reset', { sessionId: params.sessionId })
654
+ bumpContext(params.sessionId, Math.max(0, (contextTokens.get(params.sessionId) ?? 0) - 1_000))
655
+ return { ok: true as const }
656
+ },
608
657
  // ── §22:模型 / 工作目录 / 上下文 ──
609
658
  async listModels() {
610
659
  calls.push('host.model.list')
@@ -0,0 +1,64 @@
1
+ /**
2
+ * 传输档位 —— 「这条链路上,详细内容发不发」。
3
+ *
4
+ * ## 为什么要有这一层
5
+ *
6
+ * 「直连 / 中继」此前只影响**界面上一枚胶囊**(`link-kind.ts`):用户看到「TURN 中继」,知道慢,
7
+ * 但慢的代价其实落在手机上 —— 中继意味着**每一个字节都要经 TURN 服务器绕一圈**,而手机那头
8
+ * 常常是蜂窝流量。手机上真正的大头也不是聊天正文,而是**工具输出**(`git diff` / 命令回显 /
9
+ * 文件片段,单条动辄数 KB,一屏历史里几十条)。
10
+ *
11
+ * 于是把链路类型**再映射一层**成可执行的档位:
12
+ * - `full`(完整):该发什么发什么;
13
+ * - `lean`(精简):只发「主要内容」;详细内容(当前 = `role:'tool'` 的输出正文)由电脑端
14
+ * 在**投影时**省略(`toMessageDTO`),并带上 `MessageDTO.detail = 'omitted'`,
15
+ * 让手机端如实显示「输出已省略」,而不是骗人的「这次调用没有输出」。
16
+ *
17
+ * ## 口径为什么也必须只有一份
18
+ *
19
+ * 档位是**两端都会读**的:电脑端据此裁剪(发送侧 —— 唯一能真正省下流量的地方),
20
+ * 手机端据此解释「工具输出为什么是空的」并在通讯面板上显示当前档位。两端口径一旦漂移,
21
+ * 用户看到的就是自相矛盾(电脑按精简发、手机写着「完整传输」)—— 与 `link-kind.ts`
22
+ * 当初收敛到本包是同一条理由:**这里即那份唯一实现。**
23
+ *
24
+ * ## 判定口径(用户 2026-10-02 拍板)
25
+ *
26
+ * - `direct`(P2P 直连)→ `full`:字节不经服务器,省它没有意义,信息完整优先;
27
+ * - `relay`(TURN 中继)→ `lean`:字节要过服务器(手机流量 + 服务器带宽),砍详细内容;
28
+ * - `unknown`(还没结论 / 非 WebRTC 链路)→ **也是 `lean`**:宁可把「其实一直是直连」的链路
29
+ * 先按精简发,也不要在开局那一屏白白走完整档 —— 而开局那一屏恰好是全量最大的一笔
30
+ * (手机连上就拉最近一窗消息,里面全是历史工具输出)。
31
+ *
32
+ * ⚠️ **代价如实记在这里**:`unknown` 是常态之一 —— 非 WebRTC 链路(同源 Broadcast 联调 /
33
+ * 测试注入的链路)永远读不到候选对,于是永远按精简发;真机上也存在「其实是直连、但首个
34
+ * 候选对还没定形」的几秒。这些情形下用户看到的是「工具输出已省略」而不是崩溃或空屏,
35
+ * 重开会话(重拉窗口)或链路判定为直连之后新产生的数据都会是完整的。
36
+ * **不要**把「联调时工具输出是空的」当成 bug 去修。
37
+ */
38
+ import type { LinkKind } from './link-kind'
39
+
40
+ /** 传输档位:`full` = 完整(含详细内容);`lean` = 精简(只发主要内容)。 */
41
+ export type TransferTier = 'full' | 'lean'
42
+
43
+ /**
44
+ * 两端都要声明/列出的**能力名**(手机端写进 `hello.capabilities`;电脑端写进 ACL 能力集)。
45
+ *
46
+ * 两端各表一半(能力协商本来就是「我会什么」的交集):
47
+ * - 手机端声明它 = 「我能渲染 `MessageDTO.detail` 的省略标记」;
48
+ * - 电脑端列出它 = 「我会按档位裁剪正文,并在裁掉时打标记」。
49
+ *
50
+ * **为什么裁剪必须被它挡住,而不能无条件裁**:已部署的旧手机端不认 `detail` 字段 ——
51
+ * 它的工具卡片会把「正文为空」显示成「这次调用没有输出」,而那是**假话**(工具有输出,
52
+ * 只是被省略了)。宁可对旧手机端继续全量发送,也不要在它的界面上写一句不成立的结论;
53
+ * 反过来,旧电脑端不认识这个能力名,新手机端也只是继续收完整正文,同样不会出问题。
54
+ */
55
+ export const MESSAGE_DETAIL_CAPABILITY = 'message.detail'
56
+
57
+ /**
58
+ * 链路类型 → 传输档位(**两端唯一口径**)。
59
+ *
60
+ * 纯函数:喂一个 `LinkKind` 即可,不碰 DOM、不碰 store,故可完整单测。
61
+ */
62
+ export function transferTierOf(kind: LinkKind): TransferTier {
63
+ return kind === 'direct' ? 'full' : 'lean'
64
+ }