virlen-remote 0.4.0 → 0.6.1

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +362 -137
  2. package/README.md +389 -201
  3. package/dist/index.d.ts +12 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +12 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/protocol/agents.d.ts +14 -0
  8. package/dist/protocol/agents.d.ts.map +1 -0
  9. package/dist/protocol/agents.js +14 -0
  10. package/dist/protocol/agents.js.map +1 -0
  11. package/dist/protocol/api.d.ts +422 -1
  12. package/dist/protocol/api.d.ts.map +1 -1
  13. package/dist/protocol/api.js.map +1 -1
  14. package/dist/protocol/compress.d.ts +55 -0
  15. package/dist/protocol/compress.d.ts.map +1 -0
  16. package/dist/protocol/compress.js +60 -0
  17. package/dist/protocol/compress.js.map +1 -0
  18. package/dist/protocol/files.d.ts +261 -0
  19. package/dist/protocol/files.d.ts.map +1 -0
  20. package/dist/protocol/files.js +506 -0
  21. package/dist/protocol/files.js.map +1 -0
  22. package/dist/protocol/host.d.ts +41 -1
  23. package/dist/protocol/host.d.ts.map +1 -1
  24. package/dist/protocol/host.js +10 -1
  25. package/dist/protocol/host.js.map +1 -1
  26. package/dist/protocol/message-actions.d.ts +58 -0
  27. package/dist/protocol/message-actions.d.ts.map +1 -0
  28. package/dist/protocol/message-actions.js +38 -0
  29. package/dist/protocol/message-actions.js.map +1 -0
  30. package/dist/protocol/message-files.d.ts +79 -0
  31. package/dist/protocol/message-files.d.ts.map +1 -0
  32. package/dist/protocol/message-files.js +118 -0
  33. package/dist/protocol/message-files.js.map +1 -0
  34. package/dist/protocol/tool-args.d.ts +95 -0
  35. package/dist/protocol/tool-args.d.ts.map +1 -0
  36. package/dist/protocol/tool-args.js +439 -0
  37. package/dist/protocol/tool-args.js.map +1 -0
  38. package/dist/testing/mock-host.d.ts +44 -1
  39. package/dist/testing/mock-host.d.ts.map +1 -1
  40. package/dist/testing/mock-host.js +487 -8
  41. package/dist/testing/mock-host.js.map +1 -1
  42. package/dist/transport/rtc.d.ts +17 -0
  43. package/dist/transport/rtc.d.ts.map +1 -1
  44. package/dist/transport/rtc.js +49 -12
  45. package/dist/transport/rtc.js.map +1 -1
  46. package/dist/transport/signaling.d.ts +12 -1
  47. package/dist/transport/signaling.d.ts.map +1 -1
  48. package/dist/transport/signaling.js +17 -3
  49. package/dist/transport/signaling.js.map +1 -1
  50. package/package.json +69 -69
  51. package/src/index.ts +270 -179
  52. package/src/protocol/agents.ts +13 -0
  53. package/src/protocol/api.ts +960 -553
  54. package/src/protocol/compress.ts +65 -0
  55. package/src/protocol/files.ts +544 -0
  56. package/src/protocol/host.ts +205 -150
  57. package/src/protocol/message-actions.ts +60 -0
  58. package/src/protocol/message-files.ts +161 -0
  59. package/src/protocol/pairing.ts +254 -254
  60. package/src/protocol/tool-args.ts +478 -0
  61. package/src/testing/mock-host.ts +1285 -691
  62. package/src/transport/link-kind.ts +222 -222
  63. package/src/transport/rtc.ts +381 -344
  64. package/src/transport/signaling.ts +331 -317
  65. package/src/transport/transfer-tier.ts +64 -64
package/dist/index.js CHANGED
@@ -21,6 +21,18 @@ export { HOST_KEY_PREFIX, MOBILE_KEY_PREFIX, GRANT_PREFIX, ROOM_PREFIX, GRANT_TT
21
21
  export { PAIRING_PAYLOAD_VERSION, PAIRING_TICKET_TTL_MS, PAIRING_OBFUSCATION_PREFIX, PAIRING_URL_BASE, PAIRING_URL_PARAM, buildPairingPayload, encodePairingPayload, buildPairingUrl, parsePairingPayload, roomOfPayload, } from './protocol/pairing.js';
22
22
  export { normalizeChoiceAnswer, answerActionError, CHOICE_JOINER } from './protocol/answer.js';
23
23
  export { negotiate, intersectCapabilities } from './protocol/hello.js';
24
+ // ── 消息级操作(引用 / 删除)的共用契约:能力名 + 引用快照体 ──
25
+ export { MESSAGE_QUOTE_CAPABILITY, MESSAGE_DELETE_CAPABILITY } from './protocol/message-actions.js';
26
+ // ── 消息里的文件引用(§37 的延伸):能力名 + 引用体 + 两端同一份校验口径 ──
27
+ export { MESSAGE_FILE_CAPABILITY, MESSAGE_FILE_MAX, MESSAGE_FILE_PATH_MAX, sanitizeFileRefs, } from './protocol/message-files.js';
28
+ // ── Agent 相关能力名(新建会话时选定 Agent 的授权口径)──
29
+ export { SESSION_AGENT_CAPABILITY } from './protocol/agents.js';
30
+ // ── §22:上下文压缩方式的取值域 + 能力名(手机端选、电脑端执行)──
31
+ export { COMPRESS_MODES, DEFAULT_COMPRESS_MODE, COMPRESS_MODE_CAPABILITY, compressModeOf, } from './protocol/compress.js';
32
+ // ── 工具入参的两种呈现(折叠态一行摘要 / 展开态完整入参)的唯一格式化口径 ──
33
+ export { summarizeToolArgs, formatToolArgs, elideMiddle, TOOL_ARGS_MAX, TOOL_DETAIL_MAX, } from './protocol/tool-args.js';
34
+ // ── §37:工作目录文件(能力名 / 限额 / base64 / 预览分类 / 路径工具,两端同一份)──
35
+ export { FILE_BROWSE_CAPABILITY, FILE_DOWNLOAD_CAPABILITY, FILE_UPLOAD_CAPABILITY, FILE_EDIT_CAPABILITY, FILE_CHUNK_BYTES, FILE_UPLOAD_MAX_BYTES, FILE_EDIT_MAX_BYTES, FILE_TEXT_PREVIEW_MAX_BYTES, FILE_IMAGE_PREVIEW_MAX_BYTES, FILE_LIST_MAX_ENTRIES, FILE_NAME_MAX_LEN, UPLOAD_PART_SUFFIX, FILE_DIRECT_ONLY_MESSAGE, fileTransferDeniedReason, splitNameExt, previewKindOf, previewLimitOf, mimeTypeOf, isEditableKind, isEditableFileName, detectEolStyle, applyEolStyle, hasUtf8Bom, decodeUtf8Strict, encodeEditedText, bytesToBase64, base64ToBytes, formatFileSize, normalizeRelPath, joinRelPath, parentOfRelPath, baseNameOfPath, isSafeEntryName, duplicateNameCandidate, compareFileEntries, } from './protocol/files.js';
24
36
  export { Endpoint } from './protocol/endpoint.js';
25
37
  export { createCaller, createSubscriber, registerHandlers } from './protocol/api.js';
26
38
  export { DEFAULT_CONTEXT_WINDOW_TOKENS, COMPRESS_MIN_RATIO } from './protocol/api.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,eAAe,EACf,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,yBAAyB;AACzB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAG3F,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAU9C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAsClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAItD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAS/F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,mCAAmC;AACnC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAQ9B,oCAAoC;AACpC,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGrF,yCAAyC;AACzC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Agent 相关的能力名(两端共用的唯一一份口径)。
3
+ *
4
+ * 为什么单列一个模块:`session.agent` 是**权限**而不是功能标记 ——
5
+ * 新建会话时选定 Agent 决定这条会话的 systemPrompt / 工具白名单 / skills / 默认参数
6
+ * (电脑侧落点是 `chat-service.createSession(…, agent, …)`),是实实在在的授权范围变化。
7
+ * 所以电脑侧的 handler 必须独立 `assert`(手机端隐藏入口只是 UI 收敛,§7-⑪ 的教训)。
8
+ *
9
+ * 与 `message-actions.ts` 里的两个常量同族:常量写在共享包里、两端 import 同一个字面量,
10
+ * 免得一边写成 `session.agents`、另一边写 `session.agent` 却没人发现(能力名不匹配时
11
+ * 不会报错,只会「UI 不显示」这种最费解的症状)。
12
+ */
13
+ export declare const SESSION_AGENT_CAPABILITY = "session.agent";
14
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/protocol/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,kBAAkB,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Agent 相关的能力名(两端共用的唯一一份口径)。
3
+ *
4
+ * 为什么单列一个模块:`session.agent` 是**权限**而不是功能标记 ——
5
+ * 新建会话时选定 Agent 决定这条会话的 systemPrompt / 工具白名单 / skills / 默认参数
6
+ * (电脑侧落点是 `chat-service.createSession(…, agent, …)`),是实实在在的授权范围变化。
7
+ * 所以电脑侧的 handler 必须独立 `assert`(手机端隐藏入口只是 UI 收敛,§7-⑪ 的教训)。
8
+ *
9
+ * 与 `message-actions.ts` 里的两个常量同族:常量写在共享包里、两端 import 同一个字面量,
10
+ * 免得一边写成 `session.agents`、另一边写 `session.agent` 却没人发现(能力名不匹配时
11
+ * 不会报错,只会「UI 不显示」这种最费解的症状)。
12
+ */
13
+ export const SESSION_AGENT_CAPABILITY = 'session.agent';
14
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/protocol/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAA"}
@@ -11,6 +11,10 @@
11
11
  * 具体从电脑侧 store 投影到 DTO 的适配在 M2 的 `dto.ts` 落地。
12
12
  */
13
13
  import type { CallContext, Endpoint } from './endpoint.js';
14
+ import type { CompressMode } from './compress.js';
15
+ import type { FilePreviewKind } from './files.js';
16
+ import type { MessageFileRef } from './message-files.js';
17
+ import type { MessageQuote } from './message-actions.js';
14
18
  export interface SessionSummaryDTO {
15
19
  id: string;
16
20
  title: string;
@@ -45,6 +49,14 @@ export interface MessageDTO {
45
49
  * ⚠️ 空串有**两种**来源,靠 `detail` 区分:本来就没有正文,与**正文被传输档位省略**
46
50
  * (中继 / 类型未知时工具输出不下发,见共享包的 `TransferTier`)。把后者当成前者,
47
51
  * 就是给用户写一句不成立的结论。
52
+ *
53
+ * ⚠️ **引用块不在本字段里**(见 `quotes`):引用是结构化下行的,若同时把它展平进
54
+ * `text`,消费方就会把同一段引文显示两遍(引用条 + 正文里的 `[引用] …`)。
55
+ *
56
+ * ⚠️ **工具输出(`role:'tool'`)有长度上限**:超过 `TOOL_DETAIL_MAX`(5000)字符时
57
+ * 电脑侧会做**中间省略**(`elideMiddle`),并把 `…(中间省略 N 字符)…` 写在正文里 ——
58
+ * 头尾都是真的,只少了中间那段。所以它**不是**「正文被篡改」,消费方不得据此
59
+ * 提示「内容不可信」;要判「有没有被砍过」就看那一行标记(长度看不出来)。
48
60
  */
49
61
  text: string;
50
62
  createdAt: number;
@@ -66,6 +78,66 @@ export interface MessageDTO {
66
78
  * 手机端**不猜**:拿不到就只显示「工具」。
67
79
  */
68
80
  toolName?: string;
81
+ /**
82
+ * 工具**入参摘要**(仅 `role:'tool'`;一行纯文本,如 `src/store/chat.ts`、
83
+ * `npm run build`、`在 src 中搜索 sessionError`)。
84
+ *
85
+ * 为什么需要一个字段:工具气泡只说「调了 read_file」,用户并不知道**看的是哪个文件**;
86
+ * 桌面端这条信息来自 `toolCalls[].input`(28 个 `getShortText()` 组件各挑各的主参数)。
87
+ * 手机是第二个屏幕,同样需要「这一步在干什么」。
88
+ *
89
+ * ⚠️ **不是原始入参**:`write_file.content` / `edit_file.edits[].old_string` 可能是整篇文章,
90
+ * 原样下行就是流量事故(§7-⑦)。电脑侧只挑关键入参、格式化并截断
91
+ * (`summarizeToolArgs`,与演示宿主共用同一份实现)。
92
+ *
93
+ * 消费方注意:拿不到(旧电脑端 / 跨页工具调用)时字段缺席 ——
94
+ * 此时**只显示工具名**,不要猜、也不要用正文反推。
95
+ */
96
+ toolArgs?: string;
97
+ /**
98
+ * 工具**入参详情**(仅 `role:'tool'`;多行,展开工具卡片后才渲染)。
99
+ *
100
+ * 为什么与 `toolArgs` 并存:那一行摘要只挑**主参数**(且硬上限 160 字符),真机反馈是
101
+ * 「入参显示不完整」—— 用户点开卡片想知道「刚才那行没显示完的是什么」。这里是入参本身
102
+ * (两空格缩进的 JSON,与桌面导出的同一种形态),路径与 `toolArgs` 走**同一个**缩短回调。
103
+ *
104
+ * ⚠️ **它比 `toolArgs` 重得多**(`write_file.content` 会原样出现,只是被 `TOOL_DETAIL_MAX`
105
+ * 兜住),所以纪律也反了一面:`toolArgs` 是「只给摘要、不给原文」,这里是「用户主动点开
106
+ * 才渲染的现场」。消费方**不得**把它放进折叠态(那会把流量事故从电脑搬到手机屏幕上)。
107
+ *
108
+ * 超长时同样是**中间省略**(标记行写在正文里)。字段缺席 = 没有可显示的入参
109
+ * (旧电脑端 / 跨页工具调用 / 入参为空)→ 展开区不渲染这一块,不要凭空造。
110
+ */
111
+ toolArgsFull?: string;
112
+ /**
113
+ * 本条消息引用了哪些历史消息(快照,**可选**;只有带引用的用户消息才有)。
114
+ *
115
+ * 为什么结构化下行而不展平进 `text`:桌面端把它渲染成气泡上方的引用条(`QuoteChip`),
116
+ * 并可点击跳回原消息 —— 展平成一串文本就再也拆不回来了(`[引用] …` 只是个前缀,
117
+ * 正文里本来就可能有同样的字样)。
118
+ *
119
+ * 消费方注意:`quotes[].text` 是**快照**,可能很长(引用一整段 AI 回答)—— 引用条应**截断显示**,
120
+ * 发给模型的是完整快照(与桌面一致,不要在协议层擅自裁剪用户要引用的内容)。
121
+ */
122
+ quotes?: MessageQuote[];
123
+ /**
124
+ * 本条消息引用了电脑上的哪些文件(**可选**;只有带文件引用的用户消息才有)。
125
+ *
126
+ * 语义与 `quotes` 并列但**不同源**:删除引用是**快照**(存正文,原消息没了也还在),
127
+ * 这里是**路径**(存位置,AI 读的那一刻磁盘上是什么就是什么)。与桌面输入框的文件附件
128
+ * 同一条口径:不搬运文件内容,只把「用户附了这个文件」告诉模型(`[User attached file] <path>`),
129
+ * 具体内容由模型用 `read_file` 按需读取。
130
+ *
131
+ * 为什么结构化下行而不展平进 `text`:电脑侧投影正文时本就已经把文件块展平成
132
+ * `[文件] <名字>` 的占位符(§7-⑦,与图片同一套降级规则),而那个占位符**只有名字没有路径、
133
+ * 也没有体积**(同一目录下的两个 `index.ts` 长得一模一样)。手机端要显示「附了哪个文件」
134
+ * 就得靠这个结构化字段;两条路同时走会显示两遍(与 `quotes` 同一条纪律)。
135
+ *
136
+ * 消费方注意:`path` 是**电脑上的绝对路径**(与 `SessionSummaryDTO.workspace` / `host.file.list`
137
+ * 的 `absPath` 同一口径,手机上本来就看得见工作目录),不是可在手机上打开的东西 ——
138
+ * 手机上它只是一段可复制的文本。
139
+ */
140
+ files?: MessageFileRef[];
69
141
  }
70
142
  export interface RuntimeDTO {
71
143
  working: boolean;
@@ -86,6 +158,43 @@ export interface RuntimeDTO {
86
158
  name: string;
87
159
  chars: number;
88
160
  } | null;
161
+ /**
162
+ * **正在执行中**的工具调用(引擎**已开始执行、结果还没回来**的那几个)。
163
+ *
164
+ * 为什么需要(`toolProgress` 管不到这一段):`toolProgress` 只在**累积参数**期间有值,
165
+ * 一旦工具开始执行就被清掉(那时的判据是「参数生成完了」)—— 于是从「开始执行」到
166
+ * 「结果消息到达」之间,电脑侧界面上有一张**呼吸点卡片**(桌面上由
167
+ * `message-bubble.tsx` 用「assistant 的 `toolCalls[]` 减去已有结果」推导出来),
168
+ * 而手机端此前**一点都看不到**:工具消息只在**执行完之后**才作为消息下行,
169
+ * 这段静默期手机上只剩「正在思考…」,看起来像卡死(真机反馈)。
170
+ *
171
+ * 语义(电脑侧权威,与桌面 pending 卡片**同一判据**):已声明、尚无同 `toolCallId`
172
+ * 结果消息的那些调用;仅 `working === true` 时可能有值,字段缺席 = 此刻没有执行中的工具。
173
+ *
174
+ * ⚠️ **不要把它当成「进度」来理解**:这里没有百分比、没有输出。`args` 是一行**摘要**
175
+ * (与 `MessageDTO.toolArgs` 同一格式化口径),**绝不含参数正文** —— 工具的执行输出走
176
+ * 结果消息(`role:'tool'`),运行中的实时输出目前不下行。
177
+ */
178
+ runningTools?: RunningToolDTO[];
179
+ }
180
+ /** `RuntimeDTO.runningTools` 的一条:正在执行的一次工具调用。 */
181
+ export interface RunningToolDTO {
182
+ /**
183
+ * 本次调用的 id(与结果消息 `MessageDTO.toolCallId` 同一个 id)。
184
+ *
185
+ * 消费方可用它把「执行中」与「已到达的结果」对齐(例如结果到达后收掉那一行);
186
+ * 只按顺序对齐是不行的 —— 同一批可能有多个调用并行执行。
187
+ */
188
+ toolCallId: string;
189
+ /** 工具名(如 `read_file`)—— 手机端「这一步在干什么」的主语。 */
190
+ name: string;
191
+ /**
192
+ * 入参**一行摘要**(与 `MessageDTO.toolArgs` 同一条格式化口径、同一个长度上限)。
193
+ *
194
+ * 拿不到主参数时字段缺席(旧电脑端不会发这个字段;新电脑端给不出摘要时也不发)——
195
+ * 此时只显示工具名,**不要用别的字段反推**。
196
+ */
197
+ args?: string;
89
198
  }
90
199
  /**
91
200
  * 授权分级(M4,见 docs/phone-control-bridge.md §16.2)。
@@ -156,6 +265,32 @@ export type StreamMode = 'full' | 'delta';
156
265
  export interface SendParams {
157
266
  sessionId: string;
158
267
  text: string;
268
+ /**
269
+ * 引用若干条历史消息(可选)。
270
+ *
271
+ * 电脑端把它组装成 `{type:'quote'}` 内容块(与桌面输入框的引用附件走**同一个**
272
+ * `buildUserContent`),因此下游(引擎 / 持久化 / 桌面渲染 / 导出)的语义与桌面完全一致:
273
+ * 模型看到的是结构化的引用块,桌面端显示引用条并可点击跳回原消息,引文是**快照**
274
+ * (原消息被删 / 被压缩也不影响)。
275
+ *
276
+ * ⚠️ **只在电脑端声明 `MESSAGE_QUOTE_CAPABILITY` 时才能发**:旧电脑端不认这个参数,
277
+ * RPC 会「成功」而引文被静默丢掉(用户会以为引用了,AI 却当没看见)。
278
+ * 另外这是 `session.send` 的一个参数,**不是新权限** —— 越权防线仍是 `session.send`。
279
+ */
280
+ quotes?: MessageQuote[];
281
+ /**
282
+ * 引用电脑上的若干文件(可选)—— 手机端在文件面板里挑出来的那些。
283
+ *
284
+ * 电脑端把它组装成 `{type:'file'}` 内容块(与桌面输入框的文件附件走**同一个**
285
+ * `buildUserContent`),因此下游(引擎 / 持久化 / 桌面渲染 / 导出)的语义与桌面完全一致。
286
+ * **不搬运内容**:文件内容由 AI 用 `read_file` 按需读取(桌面 `FileAttachment` 同此口径)。
287
+ *
288
+ * ⚠️ **只在电脑端声明 `MESSAGE_FILE_CAPABILITY` 时才能发**(与 `quotes` 同一条教训):
289
+ * 旧电脑端不认这个字段,RPC 会「成功」而文件引用被静默丢掉。
290
+ * ⚠️ 形状非法 / 超过 `MESSAGE_FILE_MAX` 时电脑侧**拒整条**(`E_BAD_REQUEST`,不静默丢那一条)——
291
+ * 校验口径见 `message-files.ts::sanitizeFileRefs`(两端同一份)。
292
+ */
293
+ files?: MessageFileRef[];
159
294
  }
160
295
  export interface MsgPageParams {
161
296
  sessionId: string;
@@ -244,6 +379,27 @@ export interface WorkspaceOptionDTO {
244
379
  /** 使用该目录的既有会话数(展示用)。 */
245
380
  sessionCount: number;
246
381
  }
382
+ /**
383
+ * 新建会话可选的 Agent(`host.agent.list`)。
384
+ *
385
+ * 白名单投影:只给 `id` / `name` / 默认模型 / 默认工作目录 —— **不含** `systemPrompt`
386
+ * (可达数十 KB)、`allowTools` / `skills` / `params`(本地配置,§7-⑥)。
387
+ *
388
+ * 默认值**只用于展示**(让手机端把「选它会发生什么」说清楚,并在切换 Agent 时联动显示);
389
+ * 真正的会话组装仍在电脑侧 `createSession` 里做 —— 手机端传不传模型 / 目录都不影响结果。
390
+ */
391
+ export interface AgentOptionDTO {
392
+ id: string;
393
+ /** Agent 显示名(电脑侧已解析,手机不查表)。 */
394
+ name: string;
395
+ /** Agent 的默认模型;未配置则缺省(不显示)。 */
396
+ defaultModel?: {
397
+ providerConfigId: string;
398
+ modelId: string;
399
+ };
400
+ /** Agent 的默认工作目录(归一化绝对路径);未配置则缺省。 */
401
+ defaultWorkspace?: string;
402
+ }
247
403
  /**
248
404
  * 上下文占用(`host.session.context` / `host.event.session.context.changed`)。
249
405
  *
@@ -266,6 +422,13 @@ export interface ContextParams {
266
422
  }
267
423
  export interface CompressParams {
268
424
  sessionId: string;
425
+ /**
426
+ * 压缩方式(缺省 = 电脑侧设置里的 `contextCompressMode`)。
427
+ *
428
+ * ⚠️ **只在电脑端声明 `COMPRESS_MODE_CAPABILITY` 时才能传**:旧电脑端不认这个字段,
429
+ * RPC 照样成功 —— 但它会按电脑侧设置的方式压缩(见 `compress.ts` 头注释)。
430
+ */
431
+ mode?: CompressMode;
269
432
  /**
270
433
  * 必须为 `true`。
271
434
  *
@@ -280,6 +443,153 @@ export interface AnswerResult {
280
443
  accepted: boolean;
281
444
  reason?: AnswerRejectReason;
282
445
  }
446
+ /**
447
+ * 目录里的一条(`host.file.list`)。
448
+ *
449
+ * 白名单投影:**只有名字、是否目录、大小、修改时刻** —— 不给绝对路径(那要拼接才有意义,
450
+ * 而拼接口径放在电脑侧由 `FileListResult` 统一给)、不给权限位、不给 inode 这类本机细节。
451
+ */
452
+ export interface FileEntryDTO {
453
+ name: string;
454
+ isDir: boolean;
455
+ /** 字节数(目录恒为 0)。 */
456
+ size: number;
457
+ /** 修改时刻(ms 时间戳);拿不到时字段缺席(手机端不显示而不是显示 1970)。 */
458
+ mtimeMs?: number;
459
+ }
460
+ export interface FileListParams {
461
+ sessionId: string;
462
+ /**
463
+ * **相对**会话工作目录的路径(`'src/store'`);缺省 / 空串 = 工作目录根。
464
+ *
465
+ * ⚠️ 手机端**不得**传绝对路径、也不得传 `..` —— 电脑侧会用 `normalizeRelPath` 规整,
466
+ * 逃出工作目录的段一律被丢掉;真正的拒绝发生在 `resolveSafePath`(工作目录 + 黑白名单)。
467
+ */
468
+ path?: string;
469
+ }
470
+ export interface FileListResult {
471
+ /** 规整后的相对路径(`''` = 工作目录根)—— 手机端原样用于后续请求。 */
472
+ relPath: string;
473
+ /** 绝对路径(电脑侧算好,手机端只用于显示「你在看电脑上的哪个目录」)。 */
474
+ absPath: string;
475
+ entries: FileEntryDTO[];
476
+ /** 条目超过 `FILE_LIST_MAX_ENTRIES` 而截断(手机端如实提示,不假装目录就这么大)。 */
477
+ truncated?: boolean;
478
+ }
479
+ export interface FileReadParams {
480
+ sessionId: string;
481
+ /** 相对会话工作目录的文件路径。 */
482
+ path: string;
483
+ /** 起始字节偏移(缺省 0)—— 分块下载 / 预览都靠它。 */
484
+ offset?: number;
485
+ /** 期望长度(字节);电脑侧按 `FILE_CHUNK_BYTES` 再夹一次。 */
486
+ length?: number;
487
+ }
488
+ export interface FileReadResult {
489
+ /** 本块字节的 **base64**(无 `data:` 前缀)。 */
490
+ data: string;
491
+ /** 本块在文件中的起始偏移(与请求一致;电脑侧夹过长度后仍是原值)。 */
492
+ offset: number;
493
+ /** 文件总大小(字节)—— 首块即给全,手机端因此能先算进度再决定要不要继续。 */
494
+ size: number;
495
+ /** 本块是否已到文件末尾(`true` = 拼完就完整)。 */
496
+ eof: boolean;
497
+ /**
498
+ * 预览分类(**电脑侧算,手机端不猜**)。
499
+ *
500
+ * 手机端据此选渲染器;`binary` = 只能下载。两边跑的是共享包里同一个
501
+ * `previewKindOf`,所以正常情况下永远一致 —— 把它放进协议是为了让**将来变规则时**
502
+ * 旧手机端仍按电脑的意思渲染,而不是按自己那份过期的表。
503
+ */
504
+ kind: FilePreviewKind;
505
+ /** MIME(手机端给 Blob / `<img>` 用)。 */
506
+ mime: string;
507
+ /**
508
+ * 文件当前的修改时刻(ms 时间戳;拿不到时字段缺席)。
509
+ *
510
+ * 它是**编辑保存的第一步**:手机端打开文件时记下它,保存时原样回传(`expectMtimeMs`),
511
+ * 电脑侧比对不一致就拒 —— 否则手机上改的是「几分钟前的那一版」,一保存就把电脑上
512
+ * (AI / 用户 / 编辑器)刚写进去的内容**静默吞掉**。
513
+ */
514
+ mtimeMs?: number;
515
+ }
516
+ /** 上传时同名冲突怎么办。 */
517
+ export type FileConflictPolicy =
518
+ /** 自动加「 - 副本」(默认;与桌面侧文件操作同一条口径)。 */
519
+ 'rename'
520
+ /** 直接拒(`E_CONFLICT`),让用户在手机上自己改名。 */
521
+ | 'reject';
522
+ export interface FileWriteBeginParams {
523
+ sessionId: string;
524
+ /** 目标目录(**相对**工作目录;缺省 = 根)。 */
525
+ dir?: string;
526
+ /** 目标文件名(不含路径)。 */
527
+ name: string;
528
+ /** 文件总大小(字节)—— 电脑侧据此在**开始前**就拒掉超限的上传。 */
529
+ size: number;
530
+ /** 缺省 `'rename'`。 */
531
+ onConflict?: FileConflictPolicy;
532
+ /**
533
+ * **覆写已存在的文件**(编辑保存走这条路;缺省 = 上传新建)。
534
+ *
535
+ * ⚠️ 三处语义分叉,都靠它切换:
536
+ * 1. 目标**必须已存在**(不存在 = 路径错了 → `E_NOT_FOUND`,**不新建** —— 否则手机端一个
537
+ * 路径笔误会在用户目录里凭空造出一个文件);
538
+ * 2. **不做同名改名**:`finish` 原样覆写目标,不回「 - 副本」(那是上传才需要的口径);
539
+ * 3. 需要 `FILE_EDIT_CAPABILITY`,并把 `expectMtimeMs` / `expectSize` 一起校验。
540
+ */
541
+ overwrite?: boolean;
542
+ /**
543
+ * 打开这份文件时电脑侧给的 `mtimeMs`(覆写时校验;不一致 = 电脑上已经变了 → `E_CONFLICT`)。
544
+ *
545
+ * 电脑侧**拿不到 mtime 时按冲突处理**(宁可让用户重新载入,也不拿一份可能已经过期的内容
546
+ * 去覆盖别人的改动)。
547
+ */
548
+ expectMtimeMs?: number;
549
+ /** 打开这份文件时的大小(覆写时校验;与 `expectMtimeMs` 一起用,任一不符即拒)。 */
550
+ expectSize?: number;
551
+ }
552
+ export interface FileWriteBeginResult {
553
+ /** 本次上传的票据(后续 `chunk` / `finish` / `abort` 都带着它)。 */
554
+ uploadId: string;
555
+ /** 冲突消解后的**最终**文件名 —— 手机端据此显示「已存为 a - 副本.txt」。 */
556
+ name: string;
557
+ /** 最终文件的相对路径(相对工作目录)。 */
558
+ relPath: string;
559
+ /** 已接收的字节数(恒 0;预留给将来的续传)。 */
560
+ received: number;
561
+ }
562
+ export interface FileWriteChunkParams {
563
+ uploadId: string;
564
+ /** 本块在文件中的起始偏移(必须等于电脑侧已接收的字节数 —— 乱序即拒)。 */
565
+ offset: number;
566
+ /** **base64** 的本块字节。 */
567
+ data: string;
568
+ }
569
+ export interface FileWriteChunkResult {
570
+ /** 电脑侧累计已接收的字节数(手机端据此显示进度)。 */
571
+ received: number;
572
+ }
573
+ export interface FileWriteFinishParams {
574
+ uploadId: string;
575
+ }
576
+ export interface FileWriteFinishResult {
577
+ /** 最终文件名(与 `begin` 应答一致,便于手机端不依赖本地状态显示结果)。 */
578
+ name: string;
579
+ relPath: string;
580
+ /** 落盘后的实际字节数(与申报的 `size` 不一致时以它为准)。 */
581
+ size: number;
582
+ /**
583
+ * 落盘后的修改时刻 —— 覆写保存的回执。
584
+ *
585
+ * 为何要回这一个字段:手机端要能**连改两次**。第一次保存后本地记的 mtime 已经过期,
586
+ * 拿它去校验第二次保存必然「冲突」;覆写时电脑侧因此回一个当前值。
587
+ */
588
+ mtimeMs?: number;
589
+ }
590
+ export interface FileWriteAbortParams {
591
+ uploadId: string;
592
+ }
283
593
  export interface CreateSessionParams {
284
594
  /** 不传则用电脑端的默认命名 */
285
595
  title?: string;
@@ -289,9 +599,19 @@ export interface CreateSessionParams {
289
599
  * 不传 = 沿用 Agent 的 `defaultWorkspace`(电脑侧行为)。
290
600
  */
291
601
  workspace?: string;
292
- /** 模型服务与模型 id;不传 = 沿用默认 Agent 的默认模型。 */
602
+ /**
603
+ * 模型服务与模型 id;不传 = 沿用**所选 Agent** 的默认模型(未选 Agent 即默认 Agent 的)。
604
+ */
293
605
  providerConfigId?: string;
294
606
  modelId?: string;
607
+ /**
608
+ * 归属 Agent(**必须来自 `host.agent.list`**;电脑侧独立校验,未知 id 即 `E_BAD_REQUEST`)。
609
+ *
610
+ * 不传 = 电脑侧的默认 Agent(与桌面「直接新建」的同构行为)。归属 Agent 决定
611
+ * systemPrompt / 工具白名单 / skills / 默认参数,因此电脑侧接受这条字段受
612
+ * `session.agent` 权限约束(见 `SESSION_AGENT_CAPABILITY`)。
613
+ */
614
+ agentId?: string;
295
615
  }
296
616
  export interface RenameSessionParams {
297
617
  sessionId: string;
@@ -309,6 +629,28 @@ export interface DeleteSessionParams {
309
629
  */
310
630
  confirm: true;
311
631
  }
632
+ /**
633
+ * 删除单条消息**及其之后的全部消息**(截断)—— 与桌面右键菜单的「删除」同一条路径
634
+ * (`deleteSessionMessage`),**不是**「把这一条从中间抽走」。
635
+ *
636
+ * 为什么是截断而不是单删:一条消息的历史是**因果链** —— 抽走中间一条用户提问,
637
+ * 后面 AI 的回答就失去了提问;抽走一条带 `tool_calls` 的 assistant 消息,后面的
638
+ * 工具结果就成了孤儿(引擎侧要额外做悬空修补)。桌面端已经用「本条及后续」表达了这个
639
+ * 事实,手机端**不得**另立一套更「温和」的语义 —— 那只会让两个入口对同一次操作给出
640
+ * 不同的后果(用户删了中间一条,电脑上的历史却不一样)。
641
+ *
642
+ * 角色限制:`role:'tool'` 的消息**不可删**(工具结果与发起它的 assistant 消息是一体两面,
643
+ * 单独删掉只会留下悬空调用)—— 电脑侧拒绝,手机端也不提供入口。
644
+ */
645
+ export interface DeleteMessageParams {
646
+ sessionId: string;
647
+ messageId: string;
648
+ /**
649
+ * 必须为 `true`。截断不可逆 —— §16.3-3 要求手机端二次确认,电脑侧独立校验,
650
+ * 缺则 `E_CONFIRM_REQUIRED`(手机端 UI 的确认弹窗不算数)。
651
+ */
652
+ confirm: true;
653
+ }
312
654
  /** 电脑实现、手机调用。 */
313
655
  export interface HostApi {
314
656
  'host.hello': {
@@ -396,6 +738,22 @@ export interface HostApi {
396
738
  ok: true;
397
739
  };
398
740
  };
741
+ /**
742
+ * 删除单条消息及其之后的全部消息(截断,不可逆)。
743
+ *
744
+ * 与 `host.session.message.get` 同属「消息级」方法。结果**不**在本应答里回传快照:
745
+ * 电脑侧会推 `host.event.session.messages.reset`,手机端据此重拉窗口(§3.5 的同一策略——
746
+ * 不发明增量协议,让「重拉快照」这个天然幂等的动作承担一致性)。
747
+ *
748
+ * 电脑侧还会拦两种情况:会话正在回复(`E_BUSY`,与 `send` / `compress` 同一条并发纪律)、
749
+ * 目标是 `role:'tool'` 的消息(`E_BAD_REQUEST`)。
750
+ */
751
+ 'host.session.message.delete': {
752
+ params: DeleteMessageParams;
753
+ result: {
754
+ ok: true;
755
+ };
756
+ };
399
757
  'host.interaction.answer': {
400
758
  params: AnswerParams;
401
759
  result: AnswerResult;
@@ -431,6 +789,19 @@ export interface HostApi {
431
789
  ok: true;
432
790
  };
433
791
  };
792
+ /**
793
+ * 新建会话可选的 Agent 候选集(手机端 Agent 选择器)。
794
+ *
795
+ * 与 `host.model.list` / `host.workspace.list` 同族,同样**只用于新建会话**:
796
+ * 已有会话的 Agent 不可改 —— 换了 Agent 就是换 systemPrompt / 工具白名单 / skills,
797
+ * 历史对话会前后错配(与工作目录不可改同一条理由,§22.3)。
798
+ */
799
+ 'host.agent.list': {
800
+ params: Record<string, never>;
801
+ result: {
802
+ agents: AgentOptionDTO[];
803
+ };
804
+ };
434
805
  /**
435
806
  * 新建会话可选的工作目录候选集。
436
807
  *
@@ -453,6 +824,7 @@ export interface HostApi {
453
824
  * fire-and-forget:RPC 只回投递确认 —— 进度走 `runtime.compacting`,结果走
454
825
  * `host.event.session.messages.reset`(手机重拉窗口)+ `message.added`(摘要消息)。
455
826
  * ⚠️ 必须带 `confirm: true`;上下文充裕(低于 40%)时电脑侧直接拒(与桌面 token 环同判据)。
827
+ * 方式由 `mode` 指定(需电脑端声明 `COMPRESS_MODE_CAPABILITY`),不传则用电脑侧设置里的那一档。
456
828
  */
457
829
  'host.session.compress': {
458
830
  params: CompressParams;
@@ -460,6 +832,55 @@ export interface HostApi {
460
832
  ok: true;
461
833
  };
462
834
  };
835
+ /**
836
+ * 列目录(`file.browse`)。
837
+ *
838
+ * 候选集就是**会话自己的工作目录**(含子目录):越权防线是电脑侧的 `resolveSafePath`
839
+ * (工作目录 + 黑白名单),手机端传什么路径都不构成越权。
840
+ */
841
+ 'host.file.list': {
842
+ params: FileListParams;
843
+ result: FileListResult;
844
+ };
845
+ /**
846
+ * 读文件的一个分块(`file.download`)—— 预览与下载走**同一条**路径。
847
+ *
848
+ * 分块而不是整文件(见 `files.ts` 文件头):单次请求的内存上界固定,进度可见、可取消。
849
+ */
850
+ 'host.file.read': {
851
+ params: FileReadParams;
852
+ result: FileReadResult;
853
+ };
854
+ /**
855
+ * 上传 / **覆写**:开始(`file.upload`;`overwrite: true` 时走 `file.edit`)。
856
+ *
857
+ * 三道校验都在这里做完(大小上限 / 名字合法性 / 目标目录可写),**且冲突消解在开始时就定名**
858
+ * —— 于是「传到一半才发现同名」不会发生,手机端能在动手前就把最终名字告诉用户。
859
+ *
860
+ * 覆写(编辑保存)复用同一个方法,但语义分叉见 `FileWriteBeginParams.overwrite`:
861
+ * 目标必须已存在、不改名、并校验 `expectMtimeMs` / `expectSize`。
862
+ */
863
+ 'host.file.write.begin': {
864
+ params: FileWriteBeginParams;
865
+ result: FileWriteBeginResult;
866
+ };
867
+ /** 上传 / 覆写:写一块(偏移必须与电脑侧已接收字节数一致)。 */
868
+ 'host.file.write.chunk': {
869
+ params: FileWriteChunkParams;
870
+ result: FileWriteChunkResult;
871
+ };
872
+ /** 上传 / 覆写:收尾(校验字节数 → 从临时文件 `rename` 落盘;覆写时**替换**目标,不改名)。 */
873
+ 'host.file.write.finish': {
874
+ params: FileWriteFinishParams;
875
+ result: FileWriteFinishResult;
876
+ };
877
+ /** 上传 / 覆写:放弃(删临时文件;用户取消 / 出错都走它,避免留垃圾)。 */
878
+ 'host.file.write.abort': {
879
+ params: FileWriteAbortParams;
880
+ result: {
881
+ ok: true;
882
+ };
883
+ };
463
884
  }
464
885
  /** 手机实现、电脑调用。 */
465
886
  export interface MobileApi {
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/protocol/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/protocol/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/protocol/api.ts"],"names":[],"mappings":"AA+NA,uCAAuC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAO,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAkSrC,MAAM,UAAU,YAAY,CAAI,QAAkB;IAChD,OAAO;QACL,IAAI,CAA6B,MAAS,EAAE,MAAsB,EAAE,SAAkB;YACpF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAA4B,CAAA;QACtH,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,QAAkB;IACpD,OAAO;QACL,SAAS,CAA6B,KAAQ,EAAE,QAAiC;YAC/E,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAsC,CAAC,CAAA;QAC1E,CAAC;KACF,CAAA;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,gBAAgB,CAAI,QAAkB,EAAE,IAAoB;IAC1E,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,MAA0B,CAAmD,CAAA;QAC7F,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/protocol/api.ts"],"names":[],"mappings":"AAuWA,uCAAuC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAO,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAijBrC,MAAM,UAAU,YAAY,CAAI,QAAkB;IAChD,OAAO;QACL,IAAI,CAA6B,MAAS,EAAE,MAAsB,EAAE,SAAkB;YACpF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAA4B,CAAA;QACtH,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,QAAkB;IACpD,OAAO;QACL,SAAS,CAA6B,KAAQ,EAAE,QAAiC;YAC/E,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAsC,CAAC,CAAA;QAC1E,CAAC;KACF,CAAA;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,gBAAgB,CAAI,QAAkB,EAAE,IAAoB;IAC1E,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,MAA0B,CAAmD,CAAA;QAC7F,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC"}