@epoch-agent/protocol 3.2.0 → 4.0.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.
- package/dist/index.d.ts +251 -104
- package/dist/index.js +22 -22
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -300,7 +300,25 @@ interface Operation {
|
|
|
300
300
|
}
|
|
301
301
|
interface PermissionDecision {
|
|
302
302
|
allowed: boolean;
|
|
303
|
+
/** 给**用户界面**看的原因(审批框 / 安全中心)—— 跟界面语言走 */
|
|
303
304
|
reason?: string;
|
|
305
|
+
/**
|
|
306
|
+
* 给**模型**看的同一条原因,**一律英文**(2026-11-05)。
|
|
307
|
+
*
|
|
308
|
+
* ## 为什么要多一格
|
|
309
|
+
*
|
|
310
|
+
* `reason` 会被 `tool-executor` 拼进工具输出(`Operation blocked by ...`),
|
|
311
|
+
* 而它的读者是模型;`reason` 同时又是审批框上给用户看的那句话。
|
|
312
|
+
* 一个字符串没法同时满足两个读者:跟着界面语言变,模型就会在 zh / en 两台机器上
|
|
313
|
+
* 看到两套措辞;冻成中文,英文用户看到的审批框就成了中文。
|
|
314
|
+
*
|
|
315
|
+
* 所以判定层(`by-level.ts` 的 `reasonPair()`)一次产出两份,**同一个 catalog key
|
|
316
|
+
* 的两种语言渲染**,不是两份手写文案。
|
|
317
|
+
*
|
|
318
|
+
* 缺席时工具输出退回一句固定的英文兜底(不印 `reason`)——
|
|
319
|
+
* 嵌入宿主自己实现 `PermissionManager` 时不填这一格也不会露出中文。
|
|
320
|
+
*/
|
|
321
|
+
modelReason?: string;
|
|
304
322
|
/** deny=false 时是否需要弹出审批对话框(ask_user),deny=true 时为静默拒绝 */
|
|
305
323
|
requireApproval?: boolean;
|
|
306
324
|
/**
|
|
@@ -1218,19 +1236,25 @@ declare class DiagnosticSink {
|
|
|
1218
1236
|
* 角色的来源。同名时优先级 project > user > host > plugin > builtin,
|
|
1219
1237
|
* 但工具集只取交集。
|
|
1220
1238
|
*
|
|
1239
|
+
* ## ⚠️ `builtin` 这一档**今天没有生产者**(2026-11-05)
|
|
1240
|
+
*
|
|
1241
|
+
* 内置的那三个角色(`general` / `explore` / `review`)删掉了。这一档留着是
|
|
1242
|
+
* 因为它是**公开契约**:`epoch agents` 的来源徽标、web 能力页的分组索引
|
|
1243
|
+
* (`web/src/capability/experts.tsx` 的 `ROLE_GROUPS`)都按这个联合建表,
|
|
1244
|
+
* 而嵌入宿主引用这个类型时不应当因为一次「我们那边不打算内置了」而编译红。
|
|
1245
|
+
* 看见 `source === 'builtin'` 不必害怕,但也不要指望它会出现。
|
|
1246
|
+
*
|
|
1221
1247
|
* `plugin`(方案 32)和 `host`(方案 44)的名字**一定带 `<前缀>:`**,所以这两档
|
|
1222
|
-
* 排在哪儿其实观察不到 ——
|
|
1223
|
-
*
|
|
1248
|
+
* 排在哪儿其实观察不到 —— 前缀让它们不可能和别的来源撞名。排在最后只是为了
|
|
1249
|
+
* 让「同名时谁赢」这张表在所有来源上都有定义,不留一个靠合并顺序碰巧决定的角落。
|
|
1224
1250
|
*
|
|
1225
1251
|
* ## `host` 那一档是**装配层**填的,不是宿主自己填的(方案 44 §2.1 a)
|
|
1226
1252
|
*
|
|
1227
1253
|
* 嵌入宿主经 `BuildRuntimeOptions.hostCapabilities` 递进来的是一批**没有 `source`
|
|
1228
1254
|
* 的**角色,这一格和名字前缀都由装配层按宿主给的 namespace 拼。让宿主自己写的
|
|
1229
|
-
* 后果很具体:它注入一个叫 `general`
|
|
1230
|
-
*
|
|
1231
|
-
*
|
|
1232
|
-
* 而那条内置角色的注释写着它「必须存在且必须不带白名单……行为要与方案 18 之前
|
|
1233
|
-
* **逐字一致**」。
|
|
1255
|
+
* 后果很具体:它注入一个叫 `general` 的角色就能静静顶掉同名的用户级那一份
|
|
1256
|
+
* (`mergeRoles` 的同名语义),而屏幕上看不出这一行是从哪来的。前缀把这条
|
|
1257
|
+
* 可能性从根上断掉。
|
|
1234
1258
|
*
|
|
1235
1259
|
* ⚠️ 拼前缀的**顺序**有约束:下面的 {@link AGENT_ROLE_NAME_PATTERN} 不允许 `:`,
|
|
1236
1260
|
* 所以前缀只能在**校验通过之后**拼。这条顺序是 `loadPluginRoles` 立的
|
|
@@ -1311,8 +1335,9 @@ interface AgentRole {
|
|
|
1311
1335
|
* 工具名会被静默忽略并记一条警告诊断,不会报错中断。
|
|
1312
1336
|
*
|
|
1313
1337
|
* ⚠️ **对含 `terminal` 的角色不构成安全边界** —— 有 shell 就能
|
|
1314
|
-
* `echo > file` 绕开「没有 file_write
|
|
1315
|
-
*
|
|
1338
|
+
* `echo > file` 绕开「没有 file_write」。只有白名单里**同时**不含
|
|
1339
|
+
* `terminal` 和 `code_exec` 的时候它才是硬边界 —— 2026-11-05 之前
|
|
1340
|
+
* 内置的 `explore` / `review` 就是那种,现在要自己写。
|
|
1316
1341
|
*/
|
|
1317
1342
|
tools?: string[];
|
|
1318
1343
|
/**
|
|
@@ -1327,7 +1352,7 @@ interface AgentRole {
|
|
|
1327
1352
|
*
|
|
1328
1353
|
* 1. **它当不了边界,想当也当不了。** 技能是盘上的 md 文件,任何拿得到
|
|
1329
1354
|
* `file_read` 的角色都能直接读 `~/.epoch/skills/` 下任何一条 `SKILL.md` ——
|
|
1330
|
-
*
|
|
1355
|
+
* 而只要角色不自己把 `file_read` 从白名单里剔掉,它就有这一条。
|
|
1331
1356
|
* 这比上面 `tools` 那句「对含 `terminal` 的角色不构成安全边界」更彻底:
|
|
1332
1357
|
* 那边是「某些角色能绕」,这边是**每个**角色都能绕。所以它的定位只能是
|
|
1333
1358
|
* **上下文预算**(同 `skills.maxIndexed` 封顶那一档),不是权限轴;
|
|
@@ -1399,7 +1424,18 @@ interface AgentRole {
|
|
|
1399
1424
|
maxTurns?: number;
|
|
1400
1425
|
source: AgentRoleSource;
|
|
1401
1426
|
}
|
|
1402
|
-
/**
|
|
1427
|
+
/**
|
|
1428
|
+
* 默认角色名 —— **历史默认值**,方案 18 时代 `delegate_task` 不带 `role` 时的兜底。
|
|
1429
|
+
*
|
|
1430
|
+
* @deprecated 2026-11-05:内置角色删了,**没有东西再兜底到这个值**。
|
|
1431
|
+
* `delegate_task` 不传 `role` 时现在直接不查表(判据在 `runtime/src/
|
|
1432
|
+
* session-factory.ts` 的 `subRunner`),与「调一个不带白名单的 `general`」
|
|
1433
|
+
* 效果相同 —— 但那是效果相同,不是它仍然被引用。
|
|
1434
|
+
*
|
|
1435
|
+
* 这个常量**没有删**:它是 protocol 的公开导出,嵌入宿主可能还引着它,
|
|
1436
|
+
* 删一次会让下游编译红。新代码别拿它当默认值用,也别指望 `general`
|
|
1437
|
+
* 这个名字在角色表里一定找得到。
|
|
1438
|
+
*/
|
|
1403
1439
|
declare const DEFAULT_AGENT_ROLE = "general";
|
|
1404
1440
|
/** 角色名的合法形状。定成常量是因为 loader 校验和 CLI 提示都要引它 */
|
|
1405
1441
|
declare const AGENT_ROLE_NAME_PATTERN: RegExp;
|
|
@@ -1701,7 +1737,7 @@ declare function agentMessageLine(msg: Pick<AgentMessage, 'from' | 'text'> & {
|
|
|
1701
1737
|
*/
|
|
1702
1738
|
declare function sessionSenderLabel(sessionId: string, title?: string | null): string;
|
|
1703
1739
|
/** 一条给模型看的 note 标题(父会话那一侧,`TaskNoticeTracker` 拼) */
|
|
1704
|
-
declare const AGENT_MESSAGE_NOTE_TITLE = "Agent
|
|
1740
|
+
declare const AGENT_MESSAGE_NOTE_TITLE = "Agent messages";
|
|
1705
1741
|
/**
|
|
1706
1742
|
* 团队共享任务的状态(阶段 2)。
|
|
1707
1743
|
*
|
|
@@ -5187,7 +5223,7 @@ declare function imagePartOmittedSummary(part: EpochImagePart): string;
|
|
|
5187
5223
|
* 理由逐字同 {@link OMIT_LABEL}:它进模型 prompt、进 eval 指纹、**不进 catalog**
|
|
5188
5224
|
* (跟着界面语言变的后果见 §33.2)。
|
|
5189
5225
|
*/
|
|
5190
|
-
declare const OFFLOADED_IMAGE_NOTE = "[
|
|
5226
|
+
declare const OFFLOADED_IMAGE_NOTE = "[image offloaded: the original is still in the artifact directory \u2014 call file_read by path if you need it; do not ask the user to resend, resending does not change the size]";
|
|
5191
5227
|
/**
|
|
5192
5228
|
* 把一张图片部件换成上面那句占位。**内容一个字节都不留** —— 这是「下放」的
|
|
5193
5229
|
* 全部含义:原图在 artifact 目录里,引用它的是路径,不是 base64。
|
|
@@ -5292,7 +5328,7 @@ declare function contentToText(content: EpochUserContent, opts?: ContentToTextOp
|
|
|
5292
5328
|
* 所以措辞是「调用过」而不是「做成了」—— 一次被权限拒掉的 `file_write`
|
|
5293
5329
|
* 在这里照样留一笔,而那句话仍然是真的。
|
|
5294
5330
|
*
|
|
5295
|
-
* ## 为什么住在 protocol
|
|
5331
|
+
* ## 为什么住在 protocol、且是冻住的英文
|
|
5296
5332
|
*
|
|
5297
5333
|
* 它的读者是**模型**,和 {@link contentToText} / {@link filePartSummary} 同一类,
|
|
5298
5334
|
* 所以走同一条规矩:住在这个零依赖的包里、逐字冻住、**不跟着界面语言变**
|
|
@@ -8041,6 +8077,184 @@ declare function isPromptOversize(prompt: number, contextLength: number): boolea
|
|
|
8041
8077
|
*/
|
|
8042
8078
|
declare function totalUsageTokens(usage: TokenUsage): number;
|
|
8043
8079
|
|
|
8080
|
+
/**
|
|
8081
|
+
* 宿主托盘项的两张**运行期表**(2026-11-04)—— 哪几项选中,以及每一项此刻长什么样。
|
|
8082
|
+
*
|
|
8083
|
+
* ```
|
|
8084
|
+
* POST /api/host/tray { id, active } 选中 / 取消一项,回整张表
|
|
8085
|
+
* POST /api/host/tray/items { id, label?, … } 覆盖一项的文案 / 图标 / 关闭键,回整张表
|
|
8086
|
+
* DELETE /api/host/tray/items?id=x 撤掉这一项的覆盖(不带 id = 撤掉整份)
|
|
8087
|
+
* GET /api/host/tray → 200 WireHostTray(两张表一起)
|
|
8088
|
+
* ```
|
|
8089
|
+
*
|
|
8090
|
+
* ## 两张表都是运行期状态,都不是配置
|
|
8091
|
+
*
|
|
8092
|
+
* - **选中态**({@link WireHostTray.active}):云同步正在跑、设备此刻连着 —— 只有
|
|
8093
|
+
* 宿主在运行中才知道。
|
|
8094
|
+
* - **长什么样**({@link WireHostTray.items}):默认来自配置的 `TrayMenuItem`
|
|
8095
|
+
* (两副文案和图标),但宿主可以在运行期覆盖它 —— 文案随状态变(「云同步 3/10」)
|
|
8096
|
+
* 是这一格的用途,而配置那份写得下的是**常态**。
|
|
8097
|
+
*
|
|
8098
|
+
* 两张表都只在服务进程的内存里,**进程重启即清空**:
|
|
8099
|
+
*
|
|
8100
|
+
* - 一个上次进程留下的「同步中」在启动时自己冒出来,说的是一件宿主此刻并不知道的事;
|
|
8101
|
+
* - 覆盖清空则回落到配置那一份 —— 那是安全的默认(配置里写的正是宿主想要的常态)。
|
|
8102
|
+
*
|
|
8103
|
+
* ## 为什么「长什么样」也要一条运行期通道
|
|
8104
|
+
*
|
|
8105
|
+
* 配置那一份是**装配期预置**的:`runtime.config` 在引擎启动时读一次,
|
|
8106
|
+
* `GET /api/config` 原样转发。全仓**没有配置热重载**(`reloadConfig` / `watchConfig`
|
|
8107
|
+
* 一处都没有),也没有写配置的端点 —— 于是改 `trayMenuLeft` 里的一个字,
|
|
8108
|
+
* **刷新页面没有用**(页面重新拉到的还是同一份内存里的配置),**只有重启引擎**
|
|
8109
|
+
* 才会重读。
|
|
8110
|
+
*
|
|
8111
|
+
* 给托盘单开这条通道,而不是把 `EpochConfig` 改成运行期可变:后者是几十个键共用的
|
|
8112
|
+
* 「装配期预置」契约,改成可变要逐个键重审「改了之后已经跑起来的会话 / 已经连上的
|
|
8113
|
+
* provider 怎么办」。而这里要的只是**几格字**。
|
|
8114
|
+
*
|
|
8115
|
+
* ## 合并语义:`配置那一项 ⊕ 覆盖`
|
|
8116
|
+
*
|
|
8117
|
+
* 逐字段覆盖 —— 给了才盖,没给的用配置那份:
|
|
8118
|
+
*
|
|
8119
|
+
* | 配置 | 覆盖 | 屏幕上是 |
|
|
8120
|
+
* | --- | --- | --- |
|
|
8121
|
+
* | `label: '云同步'` / `icon: 'cloud'` | `label: '云同步 3/10'` | 文案换了,图标照旧 |
|
|
8122
|
+
* | `closable: true` | `closable: false` | 选中态不再画那枚 × |
|
|
8123
|
+
*
|
|
8124
|
+
* ⚠️ **`closable: false` 是一句有效的话**,不是「没给」。判据是 `!== undefined`,
|
|
8125
|
+
* 不是 `if (patch.closable)` —— 后者会把「关掉关闭键」读成「不覆盖」。
|
|
8126
|
+
*
|
|
8127
|
+
* ⚠️ **覆盖改不了「有哪些项、什么顺序」**:配置仍是这一件事的唯一真源。往 `items`
|
|
8128
|
+
* 里写一个配置里没有的 `id` 照收(同 `active`:先覆盖再改配置也走得通),但界面上
|
|
8129
|
+
* 一项都不多 —— **运行期加不了一项**。真要动态加,那是另一笔(得先定「运行期项和
|
|
8130
|
+
* 配置项怎么排序、删掉的那一项怎么收」)。
|
|
8131
|
+
*
|
|
8132
|
+
* ## ⚠️ 真源在宿主,页面只画
|
|
8133
|
+
*
|
|
8134
|
+
* 这一条是这个文件里最要紧的判据,它决定了下面三条投递路径为什么必须是**整张表**:
|
|
8135
|
+
*
|
|
8136
|
+
* 页面上点一下托盘项,发的是 `{ type: 'epoch:sidebar-menu', id, action }`
|
|
8137
|
+
* (`TrayMenuMessage`),**页面自己不切状态**。宿主收到、按自己的业务决定、再调
|
|
8138
|
+
* `POST /api/host/tray` 把新表推回来。
|
|
8139
|
+
*
|
|
8140
|
+
* 反过来做(页面先乐观切成选中态)的代价很具体:宿主那边其实没切过去,屏幕上却
|
|
8141
|
+
* 已经说「同步中」了 —— 而用户下一步会照着这句话等一个不会来的结果。这不是
|
|
8142
|
+
* 「体验更好一点」的取舍,是这个仓库从决定 20 ① 起就立着的那一条:
|
|
8143
|
+
* **一个点下去立刻变了的控件,必须在说真话**。
|
|
8144
|
+
*
|
|
8145
|
+
* 代价如实记着:宿主必须接两件事(出站那条监听 + 调这个端点),而只在浏览器里
|
|
8146
|
+
* 打开 `epoch web` 的机器上没有人调这个端点 —— 托盘项会永远停在默认态。
|
|
8147
|
+
* 那是预期形态(和 `userMenuHost` 那一档同一种:没有宿主就等于没有这半个功能),
|
|
8148
|
+
* 不是缺陷。
|
|
8149
|
+
*
|
|
8150
|
+
* 覆盖那半(`items`)同理,只是它没有「点下去」这个触发器:宿主觉得该变就自己发,
|
|
8151
|
+
* 页面每收一帧就按新表重画。所以 **`items` 也不该被页面本地缓存成自己的状态** ——
|
|
8152
|
+
* 一个自己 `useState` 过的文案会在下一帧到达时和宿主那份分叉,而那种分叉只会在
|
|
8153
|
+
* 「宿主改回去了、屏幕上还是旧的」时才被发现。
|
|
8154
|
+
*
|
|
8155
|
+
* ## 三条投递路径
|
|
8156
|
+
*
|
|
8157
|
+
* | 页面此刻在哪 | 走哪条 |
|
|
8158
|
+
* | --- | --- |
|
|
8159
|
+
* | 首屏,流还没接上 | `GET /api/config` 的 `hostTray`(**两张表都空才不带这个键**) |
|
|
8160
|
+
* | 流**每一次**接上(含断线重连) | 连接级帧 `host-tray`(`seq: 0`)—— 接上那一刻的整张表 |
|
|
8161
|
+
* | 流开着,宿主改了一项 | 广播帧 `host-tray`(进环形缓冲)—— 改完之后的整张表 |
|
|
8162
|
+
*
|
|
8163
|
+
* ⚠️ **补齐走流里那一帧,不走「连上之后自己 GET 一次」**,判据逐字同
|
|
8164
|
+
* [wire-host-badges.ts](./wire-host-badges.ts) 的文件头那一段(晚到的一份旧表会盖掉
|
|
8165
|
+
* 新表;同一条有序的流上,最后落地的总是此刻那一份)。
|
|
8166
|
+
*
|
|
8167
|
+
* ## ⚠️ 没有「回环之外一律 403」那道闸
|
|
8168
|
+
*
|
|
8169
|
+
* 判据同 `POST /api/host/badges`:这一发只改内存里一张表、让屏幕上某一格换一副
|
|
8170
|
+
* 文案,能力不比任何一条已鉴权的写端点大。它照旧过鉴权和 `Origin` 那道闸(POST)。
|
|
8171
|
+
*/
|
|
8172
|
+
/**
|
|
8173
|
+
* 托盘那一套运行期表的整份(`GET /api/host/tray` 的响应、`host-tray` 帧的载荷、
|
|
8174
|
+
* 以及 `GET /api/config` 上的 `hostTray`)。
|
|
8175
|
+
*
|
|
8176
|
+
* ⚠️ **两张表一起走、一起补帧**:它们是同一条语义(「宿主此刻说托盘长什么样」)的
|
|
8177
|
+
* 两半,拆成两条流只会让连接级补帧多写一遍、让页面多一个「只到了一半」的时刻。
|
|
8178
|
+
*/
|
|
8179
|
+
interface WireHostTray {
|
|
8180
|
+
/**
|
|
8181
|
+
* 此刻**选中**的那几项的 `id`(托盘项的 `id`,同 `TrayMenuItem.id`),
|
|
8182
|
+
* 按第一次选中的先后排。
|
|
8183
|
+
*
|
|
8184
|
+
* ⚠️ 形状是「选中的那几个 id」,不是 `id → boolean`:取消选中就是从表里拿掉,于是
|
|
8185
|
+
* 「没有这一项」和「这一项是 false」不会是两种说法。以后要带数字的话加一格并列的
|
|
8186
|
+
* 字段,这一格的意思不变。
|
|
8187
|
+
*
|
|
8188
|
+
* ⚠️ **各项互相独立**:同一侧配了多项时,可以同时有多项在这里。互斥(一次只能
|
|
8189
|
+
* 选一个)是宿主的业务决定,不是这个形状的约束 —— 页面照单全画,不替宿主做减法。
|
|
8190
|
+
*
|
|
8191
|
+
* ⚠️ **不认得的 `id` 照收**(服务端不拿它去对配置):界面上只有配过的那几项会画
|
|
8192
|
+
* 选中态,多出来的 id 不画、不报错 —— 宿主可以先选再配,也可以对着同一张表在
|
|
8193
|
+
* 几处画。
|
|
8194
|
+
*/
|
|
8195
|
+
active: string[];
|
|
8196
|
+
/**
|
|
8197
|
+
* 此刻**覆盖**过的项,按 `id` 索引(2026-11-04)。**一项都没覆盖就没有这个键**
|
|
8198
|
+
* —— 和「覆盖了但没给任何字段」不是一回事(后者本就不该发得出来)。
|
|
8199
|
+
*
|
|
8200
|
+
* 值是**只含覆盖字段的那几格**,不含 `id`(`id` 就是这里的键)。页面拿它和配置
|
|
8201
|
+
* 那一份逐项合并,判据见上面的「合并语义」。
|
|
8202
|
+
*
|
|
8203
|
+
* ⚠️ **不认得的 `id` 照收**,理由同上一条 `active`:界面按配置那份清单画,多出来的
|
|
8204
|
+
* 覆盖没有落脚处,不画也不报错。
|
|
8205
|
+
*
|
|
8206
|
+
* ⚠️ **它是整张表**(同 `active`):一次只发变过的那一份会让「回落到配置」表达不出来
|
|
8207
|
+
* —— 页面得知道哪一项的覆盖被撤掉了。
|
|
8208
|
+
*/
|
|
8209
|
+
items?: Record<string, WireTrayItemOverride>;
|
|
8210
|
+
}
|
|
8211
|
+
/**
|
|
8212
|
+
* 一项托盘项的**覆盖字段**(`WireHostTray.items` 的值、`POST /api/host/tray/items` 的
|
|
8213
|
+
* 请求体去掉 `id` 之后那一半)。
|
|
8214
|
+
*
|
|
8215
|
+
* 五格一一对应 `TrayMenuItem` 上可覆盖的那五个字段 —— 配置换了名字这里要跟着换,
|
|
8216
|
+
* 而校验口径也照那边:`label` / `activeLabel` / `icon` / `activeIcon` **空串一律 400**
|
|
8217
|
+
* (空串是配错了,不是「不要这一格」),`closable` **只认布尔**(写成 `"false"` 也是 400,
|
|
8218
|
+
* 同 core 配置 schema 里每一个开关)。
|
|
8219
|
+
*
|
|
8220
|
+
* ⚠️ **缺省 = 不覆盖**(用配置那一份),所以「想撤掉某一格的覆盖」不是给空值,
|
|
8221
|
+
* 是 `DELETE /api/host/tray/items?id=` 把这一项整个撤掉 —— 否则「空串」和「没给」在
|
|
8222
|
+
* 请求体里会成为两种说法,而它们在协议上不该是两件事。
|
|
8223
|
+
*/
|
|
8224
|
+
interface WireTrayItemOverride {
|
|
8225
|
+
/** 屏幕上那几个字(缺省 = 配置那份) */
|
|
8226
|
+
label?: string;
|
|
8227
|
+
/** 选中态印的那几个字(缺省 = 配置那份;配置也没写就退回 `label`) */
|
|
8228
|
+
activeLabel?: string;
|
|
8229
|
+
/** 行首那枚图标的名字(缺省 = 配置那份) */
|
|
8230
|
+
icon?: string;
|
|
8231
|
+
/** 选中态那枚图标的名字(缺省 = 配置那份) */
|
|
8232
|
+
activeIcon?: string;
|
|
8233
|
+
/** 选中态左端那一格画成关闭键吗(缺省 = 配置那份;`false` 是有效覆盖) */
|
|
8234
|
+
closable?: boolean;
|
|
8235
|
+
}
|
|
8236
|
+
/** `POST /api/host/tray` 的请求:选中 / 取消**一项**。同一个值写两次是幂等的(不发帧) */
|
|
8237
|
+
interface WireHostTrayRequest {
|
|
8238
|
+
/** 托盘项的 `id`,非空字符串 */
|
|
8239
|
+
id: string;
|
|
8240
|
+
/** `true` 选中、`false` 取消。只认布尔,写成字符串是 400 */
|
|
8241
|
+
active: boolean;
|
|
8242
|
+
}
|
|
8243
|
+
/**
|
|
8244
|
+
* `POST /api/host/tray/items` 的请求:**覆盖一项**的文案 / 图标 / 关闭键。
|
|
8245
|
+
*
|
|
8246
|
+
* 形状就是 `id` 加上 {@link WireTrayItemOverride} 那五格 —— 「哪些字段能覆盖」只有
|
|
8247
|
+
* 一份定义,改的时候两边一起改。
|
|
8248
|
+
*
|
|
8249
|
+
* ⚠️ **一个覆盖字段都不给是 400**:那一发什么都不变,却会把这一项记进覆盖表里
|
|
8250
|
+
* (而它和配置一模一样),屏幕上看着正常、宿主自己却读回一份没意义的表。想撤掉
|
|
8251
|
+
* 覆盖用 `DELETE`,想写值就给到具体的格。
|
|
8252
|
+
*/
|
|
8253
|
+
interface WireHostTrayItemRequest extends WireTrayItemOverride {
|
|
8254
|
+
/** 托盘项的 `id`,非空字符串。**不对配置**(同 `WireHostTrayRequest.id`) */
|
|
8255
|
+
id: string;
|
|
8256
|
+
}
|
|
8257
|
+
|
|
8044
8258
|
/**
|
|
8045
8259
|
* Wire 契约 —— 浏览器与本地服务之间那根线上的形状。
|
|
8046
8260
|
*
|
|
@@ -8457,9 +8671,9 @@ type WireHubEvent =
|
|
|
8457
8671
|
dots: string[];
|
|
8458
8672
|
}
|
|
8459
8673
|
/**
|
|
8460
|
-
*
|
|
8461
|
-
*
|
|
8462
|
-
* [wire-host-tray.ts](./wire-host-tray.ts) 的文件头。
|
|
8674
|
+
* **宿主托盘项的两张运行期表**(2026-11-04)—— 哪几项选中(`active`),以及每一项
|
|
8675
|
+
* 此刻被覆盖成什么样(`items`)。**整张表**,形状、三条投递路径、以及「为什么这两张表
|
|
8676
|
+
* 一起走」全在 [wire-host-tray.ts](./wire-host-tray.ts) 的文件头。
|
|
8463
8677
|
*
|
|
8464
8678
|
* ⚠️ **它有两种身份**(逐字同上一帧):宿主改了一项 → 广播帧(进环形缓冲、占序号);
|
|
8465
8679
|
* 每一条连接刚接上 → **连接级帧**(`seq: 0`,排在 `connected` 和补帧之后)。
|
|
@@ -8468,6 +8682,7 @@ type WireHubEvent =
|
|
|
8468
8682
|
| {
|
|
8469
8683
|
type: 'host-tray';
|
|
8470
8684
|
active: string[];
|
|
8685
|
+
items?: Record<string, WireTrayItemOverride>;
|
|
8471
8686
|
}
|
|
8472
8687
|
/**
|
|
8473
8688
|
* 这一轮的用户消息 —— **一轮开跑那一刻**广播(2026-10-10)。
|
|
@@ -9248,83 +9463,6 @@ interface WireHostBadgeRequest {
|
|
|
9248
9463
|
dot: boolean;
|
|
9249
9464
|
}
|
|
9250
9465
|
|
|
9251
|
-
/**
|
|
9252
|
-
* 宿主托盘项的**选中态**(2026-11-04)—— 宿主在运行中决定托盘上哪几项是选中态。
|
|
9253
|
-
*
|
|
9254
|
-
* ```
|
|
9255
|
-
* POST /api/host/tray { id, active } → 200 WireHostTray(改完之后的整张表)
|
|
9256
|
-
* GET /api/host/tray → 200 WireHostTray
|
|
9257
|
-
* ```
|
|
9258
|
-
*
|
|
9259
|
-
* ## 它是运行期状态,不是配置
|
|
9260
|
-
*
|
|
9261
|
-
* 那一项**长什么样**归配置(`EpochConfig.trayMenuLeft` / `trayMenuRight` 的
|
|
9262
|
-
* `TrayMenuItem`:两副文案和图标);它**此刻选没选中**归宿主的业务(云同步正在跑、
|
|
9263
|
-
* 设备此刻连着),只有宿主在运行中才知道。所以它只在服务进程的内存里,
|
|
9264
|
-
* **进程重启即清空** —— 一个上次进程留下的「同步中」在启动时自己冒出来,
|
|
9265
|
-
* 说的是一件宿主此刻并不知道的事。
|
|
9266
|
-
*
|
|
9267
|
-
* ## ⚠️ 真源在宿主,页面只画
|
|
9268
|
-
*
|
|
9269
|
-
* 这一条是这个文件里最要紧的判据,它决定了下面三条投递路径为什么必须是**整张表**:
|
|
9270
|
-
*
|
|
9271
|
-
* 页面上点一下托盘项,发的是 `{ type: 'epoch:sidebar-menu', id, action }`
|
|
9272
|
-
* (`TrayMenuMessage`),**页面自己不切状态**。宿主收到、按自己的业务决定、再调
|
|
9273
|
-
* `POST /api/host/tray` 把新表推回来。
|
|
9274
|
-
*
|
|
9275
|
-
* 反过来做(页面先乐观切成选中态)的代价很具体:宿主那边其实没切过去,屏幕上却
|
|
9276
|
-
* 已经说「同步中」了 —— 而用户下一步会照着这句话等一个不会来的结果。这不是
|
|
9277
|
-
* 「体验更好一点」的取舍,是这个仓库从决定 20 ① 起就立着的那一条:
|
|
9278
|
-
* **一个点下去立刻变了的控件,必须在说真话**。
|
|
9279
|
-
*
|
|
9280
|
-
* 代价如实记着:宿主必须接两件事(出站那条监听 + 调这个端点),而只在浏览器里
|
|
9281
|
-
* 打开 `epoch web` 的机器上没有人调这个端点 —— 托盘项会永远停在默认态。
|
|
9282
|
-
* 那是预期形态(和 `userMenuHost` 那一档同一种:没有宿主就等于没有这半个功能),
|
|
9283
|
-
* 不是缺陷。
|
|
9284
|
-
*
|
|
9285
|
-
* ## 三条投递路径
|
|
9286
|
-
*
|
|
9287
|
-
* | 页面此刻在哪 | 走哪条 |
|
|
9288
|
-
* | --- | --- |
|
|
9289
|
-
* | 首屏,流还没接上 | `GET /api/config` 的 `hostTray`(有选中项才带这个键) |
|
|
9290
|
-
* | 流**每一次**接上(含断线重连) | 连接级帧 `host-tray`(`seq: 0`)—— 接上那一刻的整张表 |
|
|
9291
|
-
* | 流开着,宿主改了一项 | 广播帧 `host-tray`(进环形缓冲)—— 改完之后的整张表 |
|
|
9292
|
-
*
|
|
9293
|
-
* ⚠️ **补齐走流里那一帧,不走「连上之后自己 GET 一次」**,判据逐字同
|
|
9294
|
-
* [wire-host-badges.ts](./wire-host-badges.ts) 的文件头那一段(晚到的一份旧表会盖掉
|
|
9295
|
-
* 新表;同一条有序的流上,最后落地的总是此刻那一份)。
|
|
9296
|
-
*
|
|
9297
|
-
* ## ⚠️ 没有「回环之外一律 403」那道闸
|
|
9298
|
-
*
|
|
9299
|
-
* 判据同 `POST /api/host/badges`:这一发只改内存里一张表、让屏幕上某一格换一副
|
|
9300
|
-
* 文案,能力不比任何一条已鉴权的写端点大。它照旧过鉴权和 `Origin` 那道闸(POST)。
|
|
9301
|
-
*/
|
|
9302
|
-
/**
|
|
9303
|
-
* 此刻**选中**的那几项的 `id`(托盘项的 `id`,同 `TrayMenuItem.id`),
|
|
9304
|
-
* 按第一次选中的先后排。
|
|
9305
|
-
*
|
|
9306
|
-
* ⚠️ 形状是「选中的那几个 id」,不是 `id → boolean`:取消选中就是从表里拿掉,于是
|
|
9307
|
-
* 「没有这一项」和「这一项是 false」不会是两种说法。以后要带数字的话加一格并列的
|
|
9308
|
-
* 字段,这一格的意思不变。
|
|
9309
|
-
*
|
|
9310
|
-
* ⚠️ **各项互相独立**:同一侧配了多项时,可以同时有多项在这里。互斥(一次只能
|
|
9311
|
-
* 选一个)是宿主的业务决定,不是这个形状的约束 —— 页面照单全画,不替宿主做减法。
|
|
9312
|
-
*
|
|
9313
|
-
* ⚠️ **不认得的 `id` 照收**(服务端不拿它去对配置):界面上只有配过的那几项会画
|
|
9314
|
-
* 选中态,多出来的 id 不画、不报错 —— 宿主可以先选再配,也可以对着同一张表在
|
|
9315
|
-
* 几处画。
|
|
9316
|
-
*/
|
|
9317
|
-
interface WireHostTray {
|
|
9318
|
-
active: string[];
|
|
9319
|
-
}
|
|
9320
|
-
/** `POST /api/host/tray` 的请求:选中 / 取消**一项**。同一个值写两次是幂等的(不发帧) */
|
|
9321
|
-
interface WireHostTrayRequest {
|
|
9322
|
-
/** 托盘项的 `id`,非空字符串 */
|
|
9323
|
-
id: string;
|
|
9324
|
-
/** `true` 选中、`false` 取消。只认布尔,写成字符串是 400 */
|
|
9325
|
-
active: boolean;
|
|
9326
|
-
}
|
|
9327
|
-
|
|
9328
9466
|
/**
|
|
9329
9467
|
* REST 载荷契约 —— [方案 20 §3](../../../docs/verify/VERIFY_RECORD-20-web.md) 那张端点表的类型化版本。
|
|
9330
9468
|
*
|
|
@@ -9854,11 +9992,14 @@ interface WireConfigResponse {
|
|
|
9854
9992
|
*/
|
|
9855
9993
|
hostBadges?: WireHostBadges;
|
|
9856
9994
|
/**
|
|
9857
|
-
*
|
|
9995
|
+
* 首屏那一刻**托盘那两张运行期表**(2026-11-04)—— **两张都空就没有这个键**。
|
|
9858
9996
|
*
|
|
9859
9997
|
* 它只管「流还没接上」那一小段:流一接上,服务端就在那条流上补一帧当前的整张表
|
|
9860
9998
|
* (连接级 `host-tray`),从那以后以流为准。判据全文在
|
|
9861
9999
|
* [wire-host-tray.ts](./wire-host-tray.ts) 的文件头。
|
|
10000
|
+
*
|
|
10001
|
+
* ⚠️ **判据是「两张都空」,不是「没选中」**:只有覆盖、一项都没选中时也得带这个键
|
|
10002
|
+
* —— 不带的话首屏先画配置那份,等流接上才变成覆盖后的样子(闪一下)。
|
|
9862
10003
|
*/
|
|
9863
10004
|
hostTray?: WireHostTray;
|
|
9864
10005
|
/**
|
|
@@ -10916,7 +11057,10 @@ interface WirePatchSessionRequest {
|
|
|
10916
11057
|
*
|
|
10917
11058
|
* 归档说的是「**列不列**这段会话」(默认列表不列归档的),置顶说的是
|
|
10918
11059
|
* 「**排哪儿**」(排在它自己所属那一组的最前,判据在 web 的 `groupSessions`
|
|
10919
|
-
*
|
|
11060
|
+
* 上)。⚠️ **2026-11-04 起浏览器侧那几档更细**:块内是「置顶 → 进行中 →
|
|
11061
|
+
* 最近活动倒序」,而服务端只排「置顶 → `live` → 时间」。差的那几档
|
|
11062
|
+
* (进行中那批内部按 `turnStartedAt` 排、`live` 不参与)只有客户端算得出来;
|
|
11063
|
+
* **当前打开的那一段不参与排序** —— 点开一段会话不该让它在屏幕上跳一下。所以这两个键可以同时出现在一次请求里,一段会话也可以同时是置顶的、
|
|
10920
11064
|
* 归档的 —— 那组合在界面上是合理的(用户在归档列表里同样要把它排最前)。
|
|
10921
11065
|
*
|
|
10922
11066
|
* ⚠️ **置顶不是「激活」,它不推进 `updatedAt`。** 判据在 runtime 的
|
|
@@ -13858,7 +14002,7 @@ declare const WIRE_ROLE_ADD_RESPONSE_FIELDS: WireFields<WireRoleAddResponse>;
|
|
|
13858
14002
|
* | ------------- | -------------------------------------- | ------------------------------------- |
|
|
13859
14003
|
* | `missing` | 请求里没给名字 | (界面不该发出这一发,见下) |
|
|
13860
14004
|
* | `not-found` | 角色表里没有这个名字 | 刷新这一栏再看,多半已经没了 |
|
|
13861
|
-
* | `not-user` |
|
|
14005
|
+
* | `not-user` | 它来自项目 / 插件 / 宿主(不是用户级) | 那句话里点名了是哪一层,各有各的删法 |
|
|
13862
14006
|
* | `ambiguous` | 目录里两份以上都叫这个名字 | 去那个目录里留下要的那一份 |
|
|
13863
14007
|
* | `failed` | 真的删不动(权限 / 只读盘) | 去那条路径那儿看一眼 |
|
|
13864
14008
|
*
|
|
@@ -13905,17 +14049,20 @@ interface WireRoleRemoveResponse {
|
|
|
13905
14049
|
*
|
|
13906
14050
|
* ## ⚠️ 这一格答的是「那一行会不会消失」,而答案常常是「不会」
|
|
13907
14051
|
*
|
|
13908
|
-
*
|
|
13909
|
-
*
|
|
13910
|
-
*
|
|
13911
|
-
*
|
|
14052
|
+
* 「浮上来」需要接管者排在用户级**前面**(合并顺序是 user → project,后来者赢):
|
|
14053
|
+
* 今天那只能是 plugin / host(名字一定带 `<前缀>:`,撞不上手写的那份)或已删的
|
|
14054
|
+
* `builtin` —— 所以 **2026-11-05 之后正常输入下这一格恒为 `null`**。
|
|
14055
|
+
* 用户级盖住项目级这个方向不成立:项目级本来就在上面,那一行的 `source`
|
|
14056
|
+
* 直接就是 `project`,删除会先拿到 `not-user`。
|
|
13912
14057
|
*
|
|
13913
14058
|
* 少了这一格,那一屏对用户说的是「已经删掉 x」而列表里 x 还在 —— 一次成功的
|
|
13914
|
-
*
|
|
14059
|
+
* 删除长成了一次失败的删除,而屏幕上没有任何地方解释得了。机制留着:
|
|
14060
|
+
* 它是公开契约,且将来真出现一个排在用户级前面的无前缀来源时仍然是对的。
|
|
13915
14061
|
*
|
|
13916
|
-
* 非 `null`
|
|
14062
|
+
* 非 `null` 时它是**接管者那一层**(现实中是 `project` / `plugin` / `host`)。
|
|
13917
14063
|
* 界面据此多印一句。⚠️ 它**不可能**是 `'user'`:用户级那一份刚被删掉,
|
|
13918
14064
|
* 而同一个目录里还有第二份同名的话,上面那道 `ambiguous` 已经把这一发拦掉了。
|
|
14065
|
+
* 类型上还有 `'builtin'`,但 2026-11-05 起没有内置角色了,这一档不会出现。
|
|
13919
14066
|
*/
|
|
13920
14067
|
takenOverBy: AgentRoleSource | null;
|
|
13921
14068
|
/**
|
|
@@ -19870,4 +20017,4 @@ declare const SECRET_SERVICE = "epoch-agent";
|
|
|
19870
20017
|
*/
|
|
19871
20018
|
declare const MCP_DATA_KEY_NAME = "mcp-auth-data-key";
|
|
19872
20019
|
|
|
19873
|
-
export { ACTION_CONTEXTS, AGENT_MESSAGE_NOTE_TITLE, AGENT_ROLE_NAME_PATTERN, API_KEY_ENV_VARS, APPEARANCE_ACCENTS, APPEARANCE_BACKGROUND_FITS, APPEARANCE_BACKGROUND_KINDS, APPEARANCE_BACKGROUND_ON_PARAM, APPEARANCE_CODE_FONTS, APPEARANCE_CODE_FONT_SIZE, APPEARANCE_CONTRAST, APPEARANCE_DEFAULT_CODE_FONT_SIZE, APPEARANCE_DEFAULT_FONT_SIZE, APPEARANCE_DIFF_TREE_WIDTH, APPEARANCE_FIRST_SCREEN_FIELDS, APPEARANCE_FIRST_SCREEN_FIELD_ORDER, APPEARANCE_FONT_SIZE, APPEARANCE_LANGS, APPEARANCE_MOTION, APPEARANCE_ROOT_ATTRIBUTES, APPEARANCE_SIDEBAR_WIDTH, APPEARANCE_THEMES, APPEARANCE_THEME_NAME_MAX, APPEARANCE_TRANSLUCENT, APPEARANCE_UI_FONTS, APPROVAL_OUTCOMES, APPROVAL_POLICIES, type ActiveAgentRole, type AgentEvent, type AgentEventOf, type AgentEventType, type AgentMemberInfo, type AgentMemberStatus, type AgentMessage, type AgentRole, type AgentRoleScope, type AgentRoleSource, type AppearanceAccent, type AppearanceAccentValue, type AppearanceBackground, type AppearanceBackgroundFit, type AppearanceBackgroundKind, type AppearanceCodeFont, type AppearanceEffectiveTheme, type AppearanceFirstScreenField, type AppearanceFirstScreenKind, type AppearanceLang, type AppearanceModePatch, type AppearanceMotion, type AppearanceTheme, type AppearanceUiFont, type AppearanceVisualSource, type ApprovalAnswer, type ApprovalOutcome, type ApprovalPolicy, type ApprovalReply, type ApprovalRequest, type ApprovalScope, type ArtifactKind, type AttributeValue, type Attributes, BRAND_WHEN_SIDEBAR_COLLAPSED, type BackgroundTaskInfo, type BackgroundTaskKind, type BackgroundTaskStatus, type BlankCard, type BlankGreeting, type BoardChannel, type BoardPost, type BoardThread, type BoundKey, type BrandWhenSidebarCollapsed, type BudgetBreach, COMMAND_NAME_PATTERN, COMPLIANCE_ACTIONS, COMPLIANCE_CATEGORIES, CURRENCIES, type Catalogs, type ComplianceAction, type ComplianceCategory, type ContextBreakdown, type ContextCacheStats, type ContextNote, type ContextSegment, type ContextSegmentKind, type Currency, type CurrencyDisplay, type CustomCommandDef, type CustomCommandSource, DEFAULT_AGENT_ROLE, DEFAULT_LANG, DEFAULT_PERMISSION_LEVEL, type DecidedTrustLevel, type Diagnostic, DiagnosticSink, type DiagnosticStatus, ENTRY_REF_PREFIX, ENTRY_SECRET_PREFIX, type EpochConfig, type EpochContentPart, type EpochDiffSnapshot, type EpochFilePart, type EpochHook, type EpochImagePart, type EpochMessage, type EpochMessageRole, type EpochPlugin, type EpochSessionPart, type EpochSkill, type EpochTextPart, type EpochTool, type EpochToolCall, type EpochToolResult, type EpochTurnFacts, type EpochUserCommand, type EpochUserContent, type ExpandedCommand, FOLLOW_SYSTEM, type FileOmitReason, type FinishReason, type FixableApproval, type FlatCatalog, type FormatMoneyOptions, GEN_AI, HEADLESS_INPUT_EVENT_TYPES, HEADLESS_INPUT_FORMATS, HEADLESS_OUTPUT_FORMATS, HEADLESS_PROTOCOL_VERSION, type HeadlessEnvelope, type HeadlessEvent, type HeadlessInit, type HeadlessInputEvent, type HeadlessInputEventType, type HeadlessInputFormat, type HeadlessLifecycleEvent, type HeadlessOutputFormat, type HeadlessResult, type HeadlessResultReason, type HookContext, type HookEvent, type HookHandler, type HookManager, type HookRegistration, type HookType, type HostText, type HostUser, type Hsv, type JsonSchema, KEY_ACTIONS, type KeyAction, type KeyChord, type KeyContext, type KeySequence, type KeybindingReport, type KeybindingSource, type KeybindingTable, LANGS, LEAD_AGENT_ID, LEGACY_LEVEL_ALIASES, LINK_CLICKED_MESSAGE_TYPE, type Lang, type LinkClickedMessage, type LocalizedDetail, type LogFn, MAX_ATTACH_BYTES, MAX_ATTACH_FILES, MAX_ATTACH_TOTAL_BYTES, MAX_HEADER_CHARS, MAX_LINK_URL, MAX_OPTIONS, MAX_QUESTIONS, MAX_SESSION_ATTACH_BYTES, MAX_SESSION_REFS, MCP_DATA_KEY_NAME, METRIC, MIN_OPTIONS, MODEL_ENTRY_PROTOCOLS, type MentionSet, type ModelEntry, type ModelEntryCapabilities, type ModelEntryProtocol, type ModelRef, type ModelSelection, type ModelSelectionOrigin, type MoneyDigits, NOOP_TELEMETRY, type NoticeCode, OFFLOADED_IMAGE_NOTE, OPENABLE_LINK_SCHEMES, OPEN_SETTINGS_MESSAGE_TYPE, OPERATION_TYPES, OVERSIZE_RATIO, type OpenSettingsMessage, type Operation, type OperationType, PERMISSION_LEVELS, PLAN_OUTCOMES, PLUGIN_CATEGORY_DISPLAY_SEP, PLUGIN_MENU_MESSAGE_TYPE, PLUGIN_PREVIEW_STREAM_MIME, PLUGIN_UPLOAD_MULTI_SEP, PROVIDER_INFOS, PROVIDER_TYPES, type PermissionDecision, type PermissionLevel, type PermissionManager, type PermissionRuleLists, type PlanApprovalOutcome, type PlanProposal, type PluginContext, type PluginMenuMessage, type ProviderInfo, type ProviderType, type QuestionAnswer, type QuestionItem, type QuestionOption, type QuestionPage, type QuestionRequest, REASONING_EFFORTS, REASONING_OFF, RESERVED_CHORDS, RESERVED_COMMAND_NAMES, type ReasoningChoice, type ReasoningEffort, type ReasoningState, type RejectReason, type RejectedKey, type ResolvedAppearanceVisual, type RuleValue, SCHEDULE_CONFIRM_PLACEHOLDER, SCHEDULE_DEFAULT_PERMISSION, SCHEDULE_DRAFT_SAVED_MARK, SCHEDULE_DRAFT_TOOL, SCHEDULE_INTERVAL_MAX_MINUTES, SCHEDULE_INTERVAL_MIN_MINUTES, SCHEDULE_MAX_TIMES_PER_DAY, SCHEDULE_RUN_STATUSES, SEARCH_API_KEY_ENV, SEARCH_PROVIDER_TYPES, SECRET_SERVICE, SEQUENCE_CONTEXTS, SESSION_MENTION_PREFIX, SESSION_REFERENCE_ERROR_CODES, SETTINGS_PANE_IDS, SHELL_KINDS, SIDEBAR_MENU_MESSAGE_TYPE, SIMULTANEOUS_CONTEXTS, SYSTEM_NOTE_PREFIX, type SandboxMode, type ScheduleAllowlist, type ScheduleBackendKind, type ScheduleCronTrigger, type ScheduleCycle, type ScheduleDefinition, type ScheduleDraft, type ScheduleDraftAllowlist, type ScheduleDraftCreate, type ScheduleDraftPermission, type ScheduleDraftUpdate, type SchedulePendingApproval, type SchedulePendingItem, type ScheduleRun, type ScheduleRunStatus, type ScheduleRunnerSpec, type ScheduleTrigger, type ScheduleTriggerKind, type ScheduleWeekday, type ScheduleWideningKind, type SearchProviderType, type SecretBackendId, type SecretStore, type SelectionContext, type SelectionRejection, type SelectionWarning, type SessionAttachKind, type SessionAttachResult, type SessionOmitReason, type SessionSurfaceMessage, type SessionSurfaceView, type SetSelectionResult, type SettingsPaneId, type SettingsPaneItem, type ShellKind, type SidebarMenuItem, type SidebarMenuMessage, type SidebarNavItem, type SpanLike, type SubToolCall, type SubToolCallResult, type TeamTask, type TeamTaskPatch, type TeamTaskStatus, type Telemetry, type TokenUsage, type ToolAnnotations, type ToolArtifact, type ToolArtifactInput, type ToolContext, type ToolDefinition, ToolExposure, type ToolProvider, type ToolResult, type Translate, type TranslateVars, type TrayMenuItem, type TrayMenuMessage, type TrustExecGrant, type TrustGrant, type TrustLevel, type TrustManager, type TrustRecord, type TrustScope, type TrustTier, UNLIMITED_TURNS, USER_MENU_MESSAGE_TYPE, type UserMenuMessage, type VerifyResult, WIRE_ABORT_FIELDS, WIRE_ABOUT_FIELDS, WIRE_AGENT_ROLE_FIELDS, WIRE_APPEARANCE_RESPONSE_FIELDS, WIRE_APPROVAL_CACHE_REVOKE_REQUEST_FIELDS, WIRE_APPROVAL_CACHE_REVOKE_RESPONSE_FIELDS, WIRE_APPROVAL_LIST_FIELDS, WIRE_APPROVAL_ROW_FIELDS, WIRE_ARTIFACTS_FIELDS, WIRE_ATTACHMENT_FOLDER_FIELDS, WIRE_ATTACHMENT_UPLOAD_FIELDS, WIRE_AUDIT_LOG_FIELDS, WIRE_AUDIT_ROW_FIELDS, WIRE_AUTH_COOKIE, WIRE_AUTH_COOKIE_ATTRS, WIRE_AUTH_TOKEN_PARAM, WIRE_BACKGROUND_TASK_FIELDS, WIRE_BLOCKED_GOALS_FIELDS, WIRE_BLOCKED_GOAL_FIELDS, WIRE_BLOCKED_LEVEL_FIELDS, WIRE_BUILTIN_CONNECTOR_FIELDS, WIRE_CACHED_APPROVAL_FIELDS, WIRE_CAPABILITIES_FIELDS, WIRE_CAPABILITY_PROJECT_FIELDS, WIRE_CHECKPOINT_LIST_FIELDS, WIRE_CHECKPOINT_SUMMARY_FIELDS, WIRE_COMMANDS_FIELDS, WIRE_COMMAND_EXPANSION_FIELDS, WIRE_COMPACT_FIELDS, WIRE_COMPRESSION_LINE_FIELDS, WIRE_CONFIG_FIELDS, WIRE_CONTEXT_FIELDS, WIRE_CREATE_SESSION_FIELDS, WIRE_CREATE_WORKSPACE_FIELDS, WIRE_CREATE_WORKSPACE_RESPONSE_FIELDS, WIRE_CUSTOM_COMMAND_FIELDS, WIRE_DELETE_SESSION_FIELDS, WIRE_DIFF_FILE_FIELDS, WIRE_DIFF_FILE_RESPONSE_FIELDS, WIRE_ERROR_FIELDS, WIRE_FILE_CANDIDATES_FIELDS, WIRE_FILE_CANDIDATE_FIELDS, WIRE_FILE_CHANGE_FIELDS, WIRE_FILE_OPEN_RESPONSE_FIELDS, WIRE_FILE_REFERENCE_FIELDS, WIRE_FILE_STAT_MAX, WIRE_FILE_STAT_OK_FIELDS, WIRE_FILE_STAT_REFUSED_FIELDS, WIRE_FILE_STAT_RESPONSE_FIELDS, WIRE_FILE_TEXT_RESPONSE_FIELDS, WIRE_FORGET_WORKSPACE_FIELDS, WIRE_FORGET_WORKSPACE_RESPONSE_FIELDS, WIRE_GOAL_ACTIONS, WIRE_GOAL_BLOCK_FIELDS, WIRE_GOAL_CLEAR_FIELDS, WIRE_GOAL_CREATE_FIELDS, WIRE_GOAL_FIELDS, WIRE_GOAL_LIMITS_FIELDS, WIRE_GOAL_PHASES, WIRE_GOAL_REFUSALS, WIRE_GOAL_RESPONSE_FIELDS, WIRE_GOAL_WRITE_FIELDS, WIRE_HEALTH_FIELDS, WIRE_IMAGE_REFERENCE_FIELDS, WIRE_KNOWN_WORKSPACE_FIELDS, WIRE_LANG_PARAM, WIRE_LAST_SESSION_FIELDS, WIRE_LAST_SESSION_RESPONSE_FIELDS, WIRE_MANAGED_LOCK_FIELDS, WIRE_MCP_ADD_FIELDS, WIRE_MCP_ADD_RESPONSE_FIELDS, WIRE_MCP_APPLY_ENTRY_FIELDS, WIRE_MCP_APPLY_RESPONSE_FIELDS, WIRE_MCP_CONFIG_APPLY_FIELDS, WIRE_MCP_CONFIG_FIELDS, WIRE_MCP_CONFIG_ISSUE_FIELDS, WIRE_MCP_CONFIG_SAVE_FIELDS, WIRE_MCP_CONFIG_SAVE_RESPONSE_FIELDS, WIRE_MCP_CONNECTOR_FIELDS, WIRE_MCP_RECONNECT_FIELDS, WIRE_MESSAGE_LIST_FIELDS, WIRE_MODEL_ENTRIES_FIELDS, WIRE_MODEL_ENTRY_MODELS_FIELDS, WIRE_MODEL_ENTRY_SAVE_FIELDS, WIRE_MODEL_ENTRY_TEST_FIELDS, WIRE_MODEL_FIELDS, WIRE_MODEL_SELECTION_FIELDS, WIRE_MODEL_SET_FIELDS, WIRE_PATCH_SESSION_FIELDS, WIRE_PATCH_SESSION_RESPONSE_FIELDS, WIRE_PERMISSION_RULE_FIELDS, WIRE_PERMISSION_SET_REQUEST_FIELDS, WIRE_PERMISSION_SET_RESPONSE_FIELDS, WIRE_PERMISSION_SHADOW_FIELDS, WIRE_PERMISSION_STATE_FIELDS, WIRE_PERMISSION_STATUS_FIELDS, WIRE_PLAN_ACTIONS, WIRE_PLAN_FIELDS, WIRE_PLAN_MODE_REQUEST_FIELDS, WIRE_PLAN_MODE_RESPONSE_FIELDS, WIRE_PLAN_MODE_STATE_FIELDS, WIRE_PLUGINS_FIELDS, WIRE_PLUGIN_ACTION_FIELDS, WIRE_PLUGIN_ARCHIVE_SUFFIXES, WIRE_PLUGIN_INSTALL_FIELDS, WIRE_PLUGIN_LOCAL_FIELDS, WIRE_PLUGIN_LOCAL_INSTALL_FIELDS, WIRE_PLUGIN_MARKETPLACE_FIELDS, WIRE_PLUGIN_MARKETPLACE_RESPONSE_FIELDS, WIRE_PLUGIN_NAME_FIELDS, WIRE_PLUGIN_PREVIEW_FIELDS, WIRE_PLUGIN_PREVIEW_RESPONSE_FIELDS, WIRE_PLUGIN_REFRESH_RESPONSE_FIELDS, WIRE_PLUGIN_STAGE_FIELDS, WIRE_PLUGIN_STAGE_RESPONSE_FIELDS, WIRE_PLUGIN_TOGGLE_FIELDS, WIRE_PLUGIN_UPDATE_FIELDS, WIRE_PLUGIN_UPLOAD_CONFIRM_FIELDS, WIRE_PLUGIN_UPLOAD_FIELDS, WIRE_PLUGIN_UPLOAD_FORM_FIELDS, WIRE_PLUGIN_UPLOAD_PREVIEW_RESPONSE_FIELDS, WIRE_PLUGIN_UPLOAD_RESPONSE_FIELDS, WIRE_PLUGIN_VIEW_FIELDS, WIRE_PLUGIN_VIEW_RESPONSE_FIELDS, WIRE_POLICY_DIR_FIELDS, WIRE_POLICY_STATUS_FIELDS, WIRE_PROJECT_INVENTORY_FIELDS, WIRE_PROVIDER_GROUPS, WIRE_QUESTION_LIST_FIELDS, WIRE_QUESTION_ROW_FIELDS, WIRE_RESPOND_APPROVAL_FIELDS, WIRE_RESPOND_APPROVAL_RESPONSE_FIELDS, WIRE_RESPOND_QUESTION_FIELDS, WIRE_RESPOND_QUESTION_RESPONSE_FIELDS, WIRE_REVEAL_WORKSPACE_FIELDS, WIRE_REVEAL_WORKSPACE_RESPONSE_FIELDS, WIRE_REVIVE_FIELDS, WIRE_REWIND_FILE_PLAN_FIELDS, WIRE_REWIND_OUTCOME_FIELDS, WIRE_REWIND_PREVIEW_FIELDS, WIRE_REWIND_REQUEST_FIELDS, WIRE_REWIND_RESPONSE_FIELDS, WIRE_REWIND_SCOPES, WIRE_ROLES_FIELDS, WIRE_ROLE_ADD_FIELDS, WIRE_ROLE_ADD_RESPONSE_FIELDS, WIRE_ROLE_REMOVE_FIELDS, WIRE_RUNNING_SCHEDULE_FIELDS, WIRE_SANDBOX_STATUS_FIELDS, WIRE_SCHEDULE_CAPABILITY_FIELDS, WIRE_SCHEDULE_CREATE_FIELDS, WIRE_SCHEDULE_DEFAULTS_FIELDS, WIRE_SCHEDULE_DELETE_FIELDS, WIRE_SCHEDULE_FIELDS, WIRE_SCHEDULE_FIX_FIELDS, WIRE_SCHEDULE_FIX_REQUEST_FIELDS, WIRE_SCHEDULE_ISSUE_CODES, WIRE_SCHEDULE_LIST_FIELDS, WIRE_SCHEDULE_PENDING_FIELDS, WIRE_SCHEDULE_RECORDING_FIELDS, WIRE_SCHEDULE_ROW_FIELDS, WIRE_SCHEDULE_RUNNING_FIELDS, WIRE_SCHEDULE_RUNS_FIELDS, WIRE_SCHEDULE_RUN_FIELDS, WIRE_SCHEDULE_SAVE_FIELDS, WIRE_SECURITY_FIELDS, WIRE_SECURITY_WORKSPACE_FIELDS, WIRE_SEND_MESSAGE_FIELDS, WIRE_SEND_MESSAGE_RESPONSE_FIELDS, WIRE_SESSION_BRANCH_RESPONSE_FIELDS, WIRE_SESSION_CANDIDATES_FIELDS, WIRE_SESSION_CANDIDATE_FIELDS, WIRE_SESSION_FINISH_FIELDS, WIRE_SESSION_LIST_FIELDS, WIRE_SESSION_REFERENCE_FIELDS, WIRE_SESSION_RESPONSE_FIELDS, WIRE_SESSION_SUMMARY_FIELDS, WIRE_SESSION_WORKSPACE_FIELDS, WIRE_SESSION_WORKSPACE_RESPONSE_FIELDS, WIRE_SETTINGS_FIELDS, WIRE_SETTINGS_WRITE_FIELDS, WIRE_SETTINGS_WRITE_REQUEST_FIELDS, WIRE_SETTING_PENDING_FIELDS, WIRE_SETTING_ROW_FIELDS, WIRE_SETTING_STEP_FIELDS, WIRE_SETTING_WRITE_FIELDS, WIRE_SETTING_WRITE_LAYERS, WIRE_SKILL_BODY_FIELDS, WIRE_SKILL_DROP_SUFFIXES, WIRE_SKILL_FIELDS, WIRE_SKILL_IMPORT_FIELDS, WIRE_SKILL_IMPORT_PREVIEW_FIELDS, WIRE_SKILL_REMOVE_FIELDS, WIRE_SKILL_STAGE_FIELDS, WIRE_TASKS_FIELDS, WIRE_TEAM_FIELDS, WIRE_TOOLS_FIELDS, WIRE_TOOL_GATE_FIELDS, WIRE_TOOL_ROW_FIELDS, WIRE_TRUST_REQUEST_FIELDS, WIRE_TRUST_REQUEST_RESPONSE_FIELDS, WIRE_WITHDRAW_MESSAGE_FIELDS, WIRE_WORKSPACE_DIFF_FIELDS, WIRE_WORKSPACE_DIRS_FIELDS, WIRE_WORKSPACE_DIR_ENTRY_FIELDS, WIRE_WORKSPACE_REF_FIELDS, type WireAbortResponse, type WireAbout, type WireAgentEnvelope, type WireAgentEvent, type WireAgentRoleSummary, type WireAppearanceRequest, type WireAppearanceResponse, type WireApprovalCacheRevokeRequest, type WireApprovalCacheRevokeResponse, type WireApprovalListResponse, type WireApprovalRequest, type WireArtifactsResponse, type WireAttachmentFolderResponse, type WireAttachmentUploadResponse, type WireAuditCode, type WireAuditLog, type WireAuditOutcome, type WireAuditRow, type WireAuthDenyReason, type WireAuthDenyStatus, type WireAuthGuard, type WireAuthRequestView, type WireAuthVerdict, type WireBackgroundTask, type WireBindWorkspaceRequest, type WireBlockedGoal, type WireBlockedGoalsResponse, type WireBlockedLevel, type WireBuiltinConnector, type WireCachedApproval, type WireCachedDecision, type WireCapabilitiesResponse, type WireCapabilityProject, type WireCheckpointListResponse, type WireCheckpointSummary, type WireCommandExpansion, type WireCommandsResponse, type WireCompactRequest, type WireCompactResponse, type WireCompressionLine, type WireConfigResponse, type WireContextResponse, type WireCreateSessionRequest, type WireCreateSessionResponse, type WireCreateWorkspaceRequest, type WireCreateWorkspaceResponse, type WireCustomCommand, type WireDeleteSessionResponse, type WireDiffFile, type WireDiffFileResponse, type WireDiffNote, type WireDiffOmitReason, type WireDiffSource, type WireDiffStatus, type WireEffectiveModel, type WireEffectiveSlots, type WireEntryProbeCode, type WireEntryProvider, type WireEnvelope, type WireErrorResponse, type WireEvent, type WireFields, type WireFileCandidate, type WireFileCandidatesResponse, type WireFileChange, type WireFileKind, type WireFileOpenRefusal, type WireFileOpenResponse, type WireFileReference, type WireFileRefusal, type WireFileStat, type WireFileStatOk, type WireFileStatRefused, type WireFileStatResponse, type WireFileTextResponse, type WireFixture, type WireFixtureCase, type WireForgetWorkspaceRequest, type WireForgetWorkspaceResponse, type WireGoal, type WireGoalBlock, type WireGoalClearResponse, type WireGoalCreateRequest, type WireGoalLimits, type WireGoalPhase, type WireGoalRefusal, type WireGoalResponse, type WireGoalUpdateRequest, type WireGoalWriteResponse, type WireHealthResponse, type WireHostBadgeRequest, type WireHostBadges, type WireHostCompose, type WireHostComposeRequest, type WireHostComposeResponse, type WireHostComposeStateResponse, type WireHostComposeTakeResponse, type WireHostTray, type WireHostTrayRequest, type WireHubEnvelope, type WireHubEvent, type WireImageReference, type WireKnownWorkspace, type WireKnownWorkspaceRef, type WireLastSessionRequest, type WireLastSessionResponse, type WireManagedLock, type WireMcpAddRequest, type WireMcpAddResponse, type WireMcpApplyAction, type WireMcpApplyEntry, type WireMcpApplyResponse, type WireMcpConfigApplyRequest, type WireMcpConfigIssue, type WireMcpConfigResponse, type WireMcpConfigSaveRequest, type WireMcpConfigSaveResponse, type WireMcpConnector, type WireMcpReconnectResponse, type WireMessageListResponse, type WireModelCaveat, type WireModelEffortRequest, type WireModelEffortResponse, type WireModelEntriesResponse, type WireModelEntry, type WireModelEntryModelsResponse, type WireModelEntryProbeRequest, type WireModelEntryRefRequest, type WireModelEntryRefs, type WireModelEntrySaveRequest, type WireModelEntrySaveResponse, type WireModelEntryTestResponse, type WireModelRejection, type WireModelResponse, type WireModelSelection, type WireModelSetRequest, type WireModelSetResponse, type WirePatchSessionRequest, type WirePatchSessionResponse, type WirePermissionRememberFailure, type WirePermissionRuleRow, type WirePermissionSetRequest, type WirePermissionSetResponse, type WirePermissionShadow, type WirePermissionState, type WirePermissionStatus, type WirePickDirectoryResponse, type WirePlanAction, type WirePlanModeRequest, type WirePlanModeResponse, type WirePlanModeState, type WirePlanResponse, type WirePluginActionResponse, type WirePluginCategory, type WirePluginCounts, type WirePluginDependency, type WirePluginDependencyInventory, type WirePluginDependencyStatus, type WirePluginDoc, type WirePluginDocs, type WirePluginEntry, type WirePluginHit, type WirePluginHookTally, type WirePluginInstallRequest, type WirePluginLocalInstallRequest, type WirePluginLocalRequest, type WirePluginMarketplace, type WirePluginMarketplaceRequest, type WirePluginMarketplaceResponse, type WirePluginMenuItem, type WirePluginNameRequest, type WirePluginPanel, type WirePluginPreview, type WirePluginPreviewRequest, type WirePluginPreviewResponse, type WirePluginPreviewStreamLine, type WirePluginProgressStep, type WirePluginRefreshResponse, type WirePluginRefuseReason, type WirePluginSourceType, type WirePluginStageRequest, type WirePluginStageResponse, type WirePluginStatus, type WirePluginToggleRequest, type WirePluginUpdateRequest, type WirePluginUploadChoice, type WirePluginUploadConfirmRequest, type WirePluginUploadField, type WirePluginUploadFieldName, type WirePluginUploadFields, type WirePluginUploadFile, type WirePluginUploadForm, type WirePluginUploadPlan, type WirePluginUploadPreviewResponse, type WirePluginUploadRequest, type WirePluginUploadResponse, type WirePluginVersionUnmet, type WirePluginViewRequest, type WirePluginViewResponse, type WirePluginVisibility, type WirePluginsResponse, type WirePolicyDir, type WirePolicyStatus, type WireProjectInventory, type WireProviderGroup, type WireQuestionListResponse, type WireQuestionRequest, type WireReplayMessage, type WireResetReason, type WireRespondApprovalRequest, type WireRespondApprovalResponse, type WireRespondQuestionRequest, type WireRespondQuestionResponse, type WireRevealWorkspaceRefusal, type WireRevealWorkspaceRequest, type WireRevealWorkspaceResponse, type WireReviveResponse, type WireRewindAction, type WireRewindDrift, type WireRewindFilePlan, type WireRewindOutcome, type WireRewindPreview, type WireRewindRequest, type WireRewindResponse, type WireRewindScope, type WireRoleAddRequest, type WireRoleAddResponse, type WireRoleRemoveFailure, type WireRoleRemoveResponse, type WireRolesResponse, type WireRunningSchedule, type WireSandboxReason, type WireSandboxStatus, type WireScheduleCancelResponse, type WireScheduleCapability, type WireScheduleCreateRequest, type WireScheduleDefaults, type WireScheduleDeleteResponse, type WireScheduleFixRequest, type WireScheduleFixResponse, type WireScheduleIssue, type WireScheduleIssueCode, type WireScheduleListResponse, type WireSchedulePendingResponse, type WireScheduleRecordingResponse, type WireScheduleRegisterRefusal, type WireScheduleRegisterWarning, type WireScheduleRegistration, type WireScheduleResponse, type WireScheduleRow, type WireScheduleRunResponse, type WireScheduleRunningResponse, type WireScheduleRunsResponse, type WireScheduleSaveResponse, type WireScheduleUpdateRequest, type WireSecurityResponse, type WireSecurityWorkspace, type WireSendMessageRequest, type WireSendMessageResponse, type WireSessionBranchResponse, type WireSessionCandidate, type WireSessionCandidatesResponse, type WireSessionFinish, type WireSessionListResponse, type WireSessionReference, type WireSessionResponse, type WireSessionSummary, type WireSessionWorkspace, type WireSessionWorkspaceResponse, type WireSettingApply, type WireSettingFutile, type WireSettingLayer, type WireSettingPending, type WireSettingRow, type WireSettingStep, type WireSettingValue, type WireSettingValueKind, type WireSettingWrite, type WireSettingWriteLayer, type WireSettingsResponse, type WireSettingsWriteRequest, type WireSettingsWriteResponse, type WireSkillBodyResponse, type WireSkillImportConflict, type WireSkillImportEntry, type WireSkillImportFailure, type WireSkillImportForm, type WireSkillImportIssue, type WireSkillImportPreviewResponse, type WireSkillImportResponse, type WireSkillRemoveFailure, type WireSkillRemoveResponse, type WireSkillStageFailure, type WireSkillStageResponse, type WireSkillSummary, type WireSummaryWorkspace, type WireTaggedEvent, type WireTasksResponse, type WireTeamResponse, type WireToolGate, type WireToolGateAxis, type WireToolRow, type WireToolSummary, type WireToolVerdict, type WireToolsResponse, type WireTrustRequestRequest, type WireTrustRequestResponse, type WireTurnState, type WireWithdrawMessageResponse, type WireWorkspaceBinding, type WireWorkspaceDiffResponse, type WireWorkspaceDirEntry, type WireWorkspaceDirsResponse, type WireWorkspaceRef, accentScale, agentMessageLine, apiKeyEnvVar, appearanceInlineVars, appearanceRootAttributes, appearanceVisualCss, approvalPolicyForLevel, assertNeverPart, assistantTurnText, attachSessionSurface, chordId, collectPendingApprovals, compressionThresholdTokens, conformsToWire, contentToText, cronTimes, diagnosticToLine, encodeAppearanceFirstScreenValue, entryDisplayName, entryRef, entrySecretName, extractAllMentions, extractMentions, extractSessionMentions, filePartSummary, fillPlaceholders, flattenCatalog, formatAppearanceTranslucent, formatMoney, getProviderInfo, hasFailure, hexToHsv, hsvToHex, imagePartOmittedSummary, isAppearanceAccent, isAppearanceAccentValue, isAppearanceBackground, isAppearanceBackgroundFit, isAppearanceBackgroundKind, isAppearanceCodeFont, isAppearanceCodeFontSize, isAppearanceContrast, isAppearanceDiffTreeWidth, isAppearanceFontSize, isAppearanceLang, isAppearanceModePatch, isAppearanceMotion, isAppearanceSidebarWidth, isAppearanceTheme, isAppearanceThemeName, isAppearanceTranslucent, isAppearanceUiFont, isApprovalOutcome, isContextNearlyFull, isCurrency, isEntrySecretName, isHeadlessInputFormat, isHeadlessLifecycleEvent, isHeadlessOutputFormat, isHexColor, isKeyAction, isLang, isMentionableFilePath, isModelEntryId, isOpenableLink, isOperationType, isPermissionLevel, isPlanOutcome, isPromptOversize, isProviderType, isQuestionAnswerMap, isReasoningEffort, isSearchProviderType, isSettingsPaneId, isValidAgentRoleName, isValidCommandName, isWireGoalPhase, isWireHubEvent, isWirePlanAction, isWirePluginArchiveName, isWireRewindScope, isWireSettingWriteLayer, isWireSkillDropName, joinUploadMulti, makeTranslate, mcpConnectorState, normalizeAppearanceTranslucent, normalizeApproval, offloadedImagePart, packSessionSurface, parseAppearanceTranslucentText, parseChord, parseModelRef, parseSequence, perAction, placeholdersOf, promptTokens, relativeLuminance, resolveAppearanceVisual, resolveHostText, resolvePermissionLevel, sequenceId, sessionPartSummary, sessionSenderLabel, snapAppearanceContrast, splitUploadMulti, stripSystemNote, systemNote, tableOf, totalUsageTokens, translatorFor, truncateToBudget, turnDigest, unfixedRules, utf8ByteLength, wireFields };
|
|
20020
|
+
export { ACTION_CONTEXTS, AGENT_MESSAGE_NOTE_TITLE, AGENT_ROLE_NAME_PATTERN, API_KEY_ENV_VARS, APPEARANCE_ACCENTS, APPEARANCE_BACKGROUND_FITS, APPEARANCE_BACKGROUND_KINDS, APPEARANCE_BACKGROUND_ON_PARAM, APPEARANCE_CODE_FONTS, APPEARANCE_CODE_FONT_SIZE, APPEARANCE_CONTRAST, APPEARANCE_DEFAULT_CODE_FONT_SIZE, APPEARANCE_DEFAULT_FONT_SIZE, APPEARANCE_DIFF_TREE_WIDTH, APPEARANCE_FIRST_SCREEN_FIELDS, APPEARANCE_FIRST_SCREEN_FIELD_ORDER, APPEARANCE_FONT_SIZE, APPEARANCE_LANGS, APPEARANCE_MOTION, APPEARANCE_ROOT_ATTRIBUTES, APPEARANCE_SIDEBAR_WIDTH, APPEARANCE_THEMES, APPEARANCE_THEME_NAME_MAX, APPEARANCE_TRANSLUCENT, APPEARANCE_UI_FONTS, APPROVAL_OUTCOMES, APPROVAL_POLICIES, type ActiveAgentRole, type AgentEvent, type AgentEventOf, type AgentEventType, type AgentMemberInfo, type AgentMemberStatus, type AgentMessage, type AgentRole, type AgentRoleScope, type AgentRoleSource, type AppearanceAccent, type AppearanceAccentValue, type AppearanceBackground, type AppearanceBackgroundFit, type AppearanceBackgroundKind, type AppearanceCodeFont, type AppearanceEffectiveTheme, type AppearanceFirstScreenField, type AppearanceFirstScreenKind, type AppearanceLang, type AppearanceModePatch, type AppearanceMotion, type AppearanceTheme, type AppearanceUiFont, type AppearanceVisualSource, type ApprovalAnswer, type ApprovalOutcome, type ApprovalPolicy, type ApprovalReply, type ApprovalRequest, type ApprovalScope, type ArtifactKind, type AttributeValue, type Attributes, BRAND_WHEN_SIDEBAR_COLLAPSED, type BackgroundTaskInfo, type BackgroundTaskKind, type BackgroundTaskStatus, type BlankCard, type BlankGreeting, type BoardChannel, type BoardPost, type BoardThread, type BoundKey, type BrandWhenSidebarCollapsed, type BudgetBreach, COMMAND_NAME_PATTERN, COMPLIANCE_ACTIONS, COMPLIANCE_CATEGORIES, CURRENCIES, type Catalogs, type ComplianceAction, type ComplianceCategory, type ContextBreakdown, type ContextCacheStats, type ContextNote, type ContextSegment, type ContextSegmentKind, type Currency, type CurrencyDisplay, type CustomCommandDef, type CustomCommandSource, DEFAULT_AGENT_ROLE, DEFAULT_LANG, DEFAULT_PERMISSION_LEVEL, type DecidedTrustLevel, type Diagnostic, DiagnosticSink, type DiagnosticStatus, ENTRY_REF_PREFIX, ENTRY_SECRET_PREFIX, type EpochConfig, type EpochContentPart, type EpochDiffSnapshot, type EpochFilePart, type EpochHook, type EpochImagePart, type EpochMessage, type EpochMessageRole, type EpochPlugin, type EpochSessionPart, type EpochSkill, type EpochTextPart, type EpochTool, type EpochToolCall, type EpochToolResult, type EpochTurnFacts, type EpochUserCommand, type EpochUserContent, type ExpandedCommand, FOLLOW_SYSTEM, type FileOmitReason, type FinishReason, type FixableApproval, type FlatCatalog, type FormatMoneyOptions, GEN_AI, HEADLESS_INPUT_EVENT_TYPES, HEADLESS_INPUT_FORMATS, HEADLESS_OUTPUT_FORMATS, HEADLESS_PROTOCOL_VERSION, type HeadlessEnvelope, type HeadlessEvent, type HeadlessInit, type HeadlessInputEvent, type HeadlessInputEventType, type HeadlessInputFormat, type HeadlessLifecycleEvent, type HeadlessOutputFormat, type HeadlessResult, type HeadlessResultReason, type HookContext, type HookEvent, type HookHandler, type HookManager, type HookRegistration, type HookType, type HostText, type HostUser, type Hsv, type JsonSchema, KEY_ACTIONS, type KeyAction, type KeyChord, type KeyContext, type KeySequence, type KeybindingReport, type KeybindingSource, type KeybindingTable, LANGS, LEAD_AGENT_ID, LEGACY_LEVEL_ALIASES, LINK_CLICKED_MESSAGE_TYPE, type Lang, type LinkClickedMessage, type LocalizedDetail, type LogFn, MAX_ATTACH_BYTES, MAX_ATTACH_FILES, MAX_ATTACH_TOTAL_BYTES, MAX_HEADER_CHARS, MAX_LINK_URL, MAX_OPTIONS, MAX_QUESTIONS, MAX_SESSION_ATTACH_BYTES, MAX_SESSION_REFS, MCP_DATA_KEY_NAME, METRIC, MIN_OPTIONS, MODEL_ENTRY_PROTOCOLS, type MentionSet, type ModelEntry, type ModelEntryCapabilities, type ModelEntryProtocol, type ModelRef, type ModelSelection, type ModelSelectionOrigin, type MoneyDigits, NOOP_TELEMETRY, type NoticeCode, OFFLOADED_IMAGE_NOTE, OPENABLE_LINK_SCHEMES, OPEN_SETTINGS_MESSAGE_TYPE, OPERATION_TYPES, OVERSIZE_RATIO, type OpenSettingsMessage, type Operation, type OperationType, PERMISSION_LEVELS, PLAN_OUTCOMES, PLUGIN_CATEGORY_DISPLAY_SEP, PLUGIN_MENU_MESSAGE_TYPE, PLUGIN_PREVIEW_STREAM_MIME, PLUGIN_UPLOAD_MULTI_SEP, PROVIDER_INFOS, PROVIDER_TYPES, type PermissionDecision, type PermissionLevel, type PermissionManager, type PermissionRuleLists, type PlanApprovalOutcome, type PlanProposal, type PluginContext, type PluginMenuMessage, type ProviderInfo, type ProviderType, type QuestionAnswer, type QuestionItem, type QuestionOption, type QuestionPage, type QuestionRequest, REASONING_EFFORTS, REASONING_OFF, RESERVED_CHORDS, RESERVED_COMMAND_NAMES, type ReasoningChoice, type ReasoningEffort, type ReasoningState, type RejectReason, type RejectedKey, type ResolvedAppearanceVisual, type RuleValue, SCHEDULE_CONFIRM_PLACEHOLDER, SCHEDULE_DEFAULT_PERMISSION, SCHEDULE_DRAFT_SAVED_MARK, SCHEDULE_DRAFT_TOOL, SCHEDULE_INTERVAL_MAX_MINUTES, SCHEDULE_INTERVAL_MIN_MINUTES, SCHEDULE_MAX_TIMES_PER_DAY, SCHEDULE_RUN_STATUSES, SEARCH_API_KEY_ENV, SEARCH_PROVIDER_TYPES, SECRET_SERVICE, SEQUENCE_CONTEXTS, SESSION_MENTION_PREFIX, SESSION_REFERENCE_ERROR_CODES, SETTINGS_PANE_IDS, SHELL_KINDS, SIDEBAR_MENU_MESSAGE_TYPE, SIMULTANEOUS_CONTEXTS, SYSTEM_NOTE_PREFIX, type SandboxMode, type ScheduleAllowlist, type ScheduleBackendKind, type ScheduleCronTrigger, type ScheduleCycle, type ScheduleDefinition, type ScheduleDraft, type ScheduleDraftAllowlist, type ScheduleDraftCreate, type ScheduleDraftPermission, type ScheduleDraftUpdate, type SchedulePendingApproval, type SchedulePendingItem, type ScheduleRun, type ScheduleRunStatus, type ScheduleRunnerSpec, type ScheduleTrigger, type ScheduleTriggerKind, type ScheduleWeekday, type ScheduleWideningKind, type SearchProviderType, type SecretBackendId, type SecretStore, type SelectionContext, type SelectionRejection, type SelectionWarning, type SessionAttachKind, type SessionAttachResult, type SessionOmitReason, type SessionSurfaceMessage, type SessionSurfaceView, type SetSelectionResult, type SettingsPaneId, type SettingsPaneItem, type ShellKind, type SidebarMenuItem, type SidebarMenuMessage, type SidebarNavItem, type SpanLike, type SubToolCall, type SubToolCallResult, type TeamTask, type TeamTaskPatch, type TeamTaskStatus, type Telemetry, type TokenUsage, type ToolAnnotations, type ToolArtifact, type ToolArtifactInput, type ToolContext, type ToolDefinition, ToolExposure, type ToolProvider, type ToolResult, type Translate, type TranslateVars, type TrayMenuItem, type TrayMenuMessage, type TrustExecGrant, type TrustGrant, type TrustLevel, type TrustManager, type TrustRecord, type TrustScope, type TrustTier, UNLIMITED_TURNS, USER_MENU_MESSAGE_TYPE, type UserMenuMessage, type VerifyResult, WIRE_ABORT_FIELDS, WIRE_ABOUT_FIELDS, WIRE_AGENT_ROLE_FIELDS, WIRE_APPEARANCE_RESPONSE_FIELDS, WIRE_APPROVAL_CACHE_REVOKE_REQUEST_FIELDS, WIRE_APPROVAL_CACHE_REVOKE_RESPONSE_FIELDS, WIRE_APPROVAL_LIST_FIELDS, WIRE_APPROVAL_ROW_FIELDS, WIRE_ARTIFACTS_FIELDS, WIRE_ATTACHMENT_FOLDER_FIELDS, WIRE_ATTACHMENT_UPLOAD_FIELDS, WIRE_AUDIT_LOG_FIELDS, WIRE_AUDIT_ROW_FIELDS, WIRE_AUTH_COOKIE, WIRE_AUTH_COOKIE_ATTRS, WIRE_AUTH_TOKEN_PARAM, WIRE_BACKGROUND_TASK_FIELDS, WIRE_BLOCKED_GOALS_FIELDS, WIRE_BLOCKED_GOAL_FIELDS, WIRE_BLOCKED_LEVEL_FIELDS, WIRE_BUILTIN_CONNECTOR_FIELDS, WIRE_CACHED_APPROVAL_FIELDS, WIRE_CAPABILITIES_FIELDS, WIRE_CAPABILITY_PROJECT_FIELDS, WIRE_CHECKPOINT_LIST_FIELDS, WIRE_CHECKPOINT_SUMMARY_FIELDS, WIRE_COMMANDS_FIELDS, WIRE_COMMAND_EXPANSION_FIELDS, WIRE_COMPACT_FIELDS, WIRE_COMPRESSION_LINE_FIELDS, WIRE_CONFIG_FIELDS, WIRE_CONTEXT_FIELDS, WIRE_CREATE_SESSION_FIELDS, WIRE_CREATE_WORKSPACE_FIELDS, WIRE_CREATE_WORKSPACE_RESPONSE_FIELDS, WIRE_CUSTOM_COMMAND_FIELDS, WIRE_DELETE_SESSION_FIELDS, WIRE_DIFF_FILE_FIELDS, WIRE_DIFF_FILE_RESPONSE_FIELDS, WIRE_ERROR_FIELDS, WIRE_FILE_CANDIDATES_FIELDS, WIRE_FILE_CANDIDATE_FIELDS, WIRE_FILE_CHANGE_FIELDS, WIRE_FILE_OPEN_RESPONSE_FIELDS, WIRE_FILE_REFERENCE_FIELDS, WIRE_FILE_STAT_MAX, WIRE_FILE_STAT_OK_FIELDS, WIRE_FILE_STAT_REFUSED_FIELDS, WIRE_FILE_STAT_RESPONSE_FIELDS, WIRE_FILE_TEXT_RESPONSE_FIELDS, WIRE_FORGET_WORKSPACE_FIELDS, WIRE_FORGET_WORKSPACE_RESPONSE_FIELDS, WIRE_GOAL_ACTIONS, WIRE_GOAL_BLOCK_FIELDS, WIRE_GOAL_CLEAR_FIELDS, WIRE_GOAL_CREATE_FIELDS, WIRE_GOAL_FIELDS, WIRE_GOAL_LIMITS_FIELDS, WIRE_GOAL_PHASES, WIRE_GOAL_REFUSALS, WIRE_GOAL_RESPONSE_FIELDS, WIRE_GOAL_WRITE_FIELDS, WIRE_HEALTH_FIELDS, WIRE_IMAGE_REFERENCE_FIELDS, WIRE_KNOWN_WORKSPACE_FIELDS, WIRE_LANG_PARAM, WIRE_LAST_SESSION_FIELDS, WIRE_LAST_SESSION_RESPONSE_FIELDS, WIRE_MANAGED_LOCK_FIELDS, WIRE_MCP_ADD_FIELDS, WIRE_MCP_ADD_RESPONSE_FIELDS, WIRE_MCP_APPLY_ENTRY_FIELDS, WIRE_MCP_APPLY_RESPONSE_FIELDS, WIRE_MCP_CONFIG_APPLY_FIELDS, WIRE_MCP_CONFIG_FIELDS, WIRE_MCP_CONFIG_ISSUE_FIELDS, WIRE_MCP_CONFIG_SAVE_FIELDS, WIRE_MCP_CONFIG_SAVE_RESPONSE_FIELDS, WIRE_MCP_CONNECTOR_FIELDS, WIRE_MCP_RECONNECT_FIELDS, WIRE_MESSAGE_LIST_FIELDS, WIRE_MODEL_ENTRIES_FIELDS, WIRE_MODEL_ENTRY_MODELS_FIELDS, WIRE_MODEL_ENTRY_SAVE_FIELDS, WIRE_MODEL_ENTRY_TEST_FIELDS, WIRE_MODEL_FIELDS, WIRE_MODEL_SELECTION_FIELDS, WIRE_MODEL_SET_FIELDS, WIRE_PATCH_SESSION_FIELDS, WIRE_PATCH_SESSION_RESPONSE_FIELDS, WIRE_PERMISSION_RULE_FIELDS, WIRE_PERMISSION_SET_REQUEST_FIELDS, WIRE_PERMISSION_SET_RESPONSE_FIELDS, WIRE_PERMISSION_SHADOW_FIELDS, WIRE_PERMISSION_STATE_FIELDS, WIRE_PERMISSION_STATUS_FIELDS, WIRE_PLAN_ACTIONS, WIRE_PLAN_FIELDS, WIRE_PLAN_MODE_REQUEST_FIELDS, WIRE_PLAN_MODE_RESPONSE_FIELDS, WIRE_PLAN_MODE_STATE_FIELDS, WIRE_PLUGINS_FIELDS, WIRE_PLUGIN_ACTION_FIELDS, WIRE_PLUGIN_ARCHIVE_SUFFIXES, WIRE_PLUGIN_INSTALL_FIELDS, WIRE_PLUGIN_LOCAL_FIELDS, WIRE_PLUGIN_LOCAL_INSTALL_FIELDS, WIRE_PLUGIN_MARKETPLACE_FIELDS, WIRE_PLUGIN_MARKETPLACE_RESPONSE_FIELDS, WIRE_PLUGIN_NAME_FIELDS, WIRE_PLUGIN_PREVIEW_FIELDS, WIRE_PLUGIN_PREVIEW_RESPONSE_FIELDS, WIRE_PLUGIN_REFRESH_RESPONSE_FIELDS, WIRE_PLUGIN_STAGE_FIELDS, WIRE_PLUGIN_STAGE_RESPONSE_FIELDS, WIRE_PLUGIN_TOGGLE_FIELDS, WIRE_PLUGIN_UPDATE_FIELDS, WIRE_PLUGIN_UPLOAD_CONFIRM_FIELDS, WIRE_PLUGIN_UPLOAD_FIELDS, WIRE_PLUGIN_UPLOAD_FORM_FIELDS, WIRE_PLUGIN_UPLOAD_PREVIEW_RESPONSE_FIELDS, WIRE_PLUGIN_UPLOAD_RESPONSE_FIELDS, WIRE_PLUGIN_VIEW_FIELDS, WIRE_PLUGIN_VIEW_RESPONSE_FIELDS, WIRE_POLICY_DIR_FIELDS, WIRE_POLICY_STATUS_FIELDS, WIRE_PROJECT_INVENTORY_FIELDS, WIRE_PROVIDER_GROUPS, WIRE_QUESTION_LIST_FIELDS, WIRE_QUESTION_ROW_FIELDS, WIRE_RESPOND_APPROVAL_FIELDS, WIRE_RESPOND_APPROVAL_RESPONSE_FIELDS, WIRE_RESPOND_QUESTION_FIELDS, WIRE_RESPOND_QUESTION_RESPONSE_FIELDS, WIRE_REVEAL_WORKSPACE_FIELDS, WIRE_REVEAL_WORKSPACE_RESPONSE_FIELDS, WIRE_REVIVE_FIELDS, WIRE_REWIND_FILE_PLAN_FIELDS, WIRE_REWIND_OUTCOME_FIELDS, WIRE_REWIND_PREVIEW_FIELDS, WIRE_REWIND_REQUEST_FIELDS, WIRE_REWIND_RESPONSE_FIELDS, WIRE_REWIND_SCOPES, WIRE_ROLES_FIELDS, WIRE_ROLE_ADD_FIELDS, WIRE_ROLE_ADD_RESPONSE_FIELDS, WIRE_ROLE_REMOVE_FIELDS, WIRE_RUNNING_SCHEDULE_FIELDS, WIRE_SANDBOX_STATUS_FIELDS, WIRE_SCHEDULE_CAPABILITY_FIELDS, WIRE_SCHEDULE_CREATE_FIELDS, WIRE_SCHEDULE_DEFAULTS_FIELDS, WIRE_SCHEDULE_DELETE_FIELDS, WIRE_SCHEDULE_FIELDS, WIRE_SCHEDULE_FIX_FIELDS, WIRE_SCHEDULE_FIX_REQUEST_FIELDS, WIRE_SCHEDULE_ISSUE_CODES, WIRE_SCHEDULE_LIST_FIELDS, WIRE_SCHEDULE_PENDING_FIELDS, WIRE_SCHEDULE_RECORDING_FIELDS, WIRE_SCHEDULE_ROW_FIELDS, WIRE_SCHEDULE_RUNNING_FIELDS, WIRE_SCHEDULE_RUNS_FIELDS, WIRE_SCHEDULE_RUN_FIELDS, WIRE_SCHEDULE_SAVE_FIELDS, WIRE_SECURITY_FIELDS, WIRE_SECURITY_WORKSPACE_FIELDS, WIRE_SEND_MESSAGE_FIELDS, WIRE_SEND_MESSAGE_RESPONSE_FIELDS, WIRE_SESSION_BRANCH_RESPONSE_FIELDS, WIRE_SESSION_CANDIDATES_FIELDS, WIRE_SESSION_CANDIDATE_FIELDS, WIRE_SESSION_FINISH_FIELDS, WIRE_SESSION_LIST_FIELDS, WIRE_SESSION_REFERENCE_FIELDS, WIRE_SESSION_RESPONSE_FIELDS, WIRE_SESSION_SUMMARY_FIELDS, WIRE_SESSION_WORKSPACE_FIELDS, WIRE_SESSION_WORKSPACE_RESPONSE_FIELDS, WIRE_SETTINGS_FIELDS, WIRE_SETTINGS_WRITE_FIELDS, WIRE_SETTINGS_WRITE_REQUEST_FIELDS, WIRE_SETTING_PENDING_FIELDS, WIRE_SETTING_ROW_FIELDS, WIRE_SETTING_STEP_FIELDS, WIRE_SETTING_WRITE_FIELDS, WIRE_SETTING_WRITE_LAYERS, WIRE_SKILL_BODY_FIELDS, WIRE_SKILL_DROP_SUFFIXES, WIRE_SKILL_FIELDS, WIRE_SKILL_IMPORT_FIELDS, WIRE_SKILL_IMPORT_PREVIEW_FIELDS, WIRE_SKILL_REMOVE_FIELDS, WIRE_SKILL_STAGE_FIELDS, WIRE_TASKS_FIELDS, WIRE_TEAM_FIELDS, WIRE_TOOLS_FIELDS, WIRE_TOOL_GATE_FIELDS, WIRE_TOOL_ROW_FIELDS, WIRE_TRUST_REQUEST_FIELDS, WIRE_TRUST_REQUEST_RESPONSE_FIELDS, WIRE_WITHDRAW_MESSAGE_FIELDS, WIRE_WORKSPACE_DIFF_FIELDS, WIRE_WORKSPACE_DIRS_FIELDS, WIRE_WORKSPACE_DIR_ENTRY_FIELDS, WIRE_WORKSPACE_REF_FIELDS, type WireAbortResponse, type WireAbout, type WireAgentEnvelope, type WireAgentEvent, type WireAgentRoleSummary, type WireAppearanceRequest, type WireAppearanceResponse, type WireApprovalCacheRevokeRequest, type WireApprovalCacheRevokeResponse, type WireApprovalListResponse, type WireApprovalRequest, type WireArtifactsResponse, type WireAttachmentFolderResponse, type WireAttachmentUploadResponse, type WireAuditCode, type WireAuditLog, type WireAuditOutcome, type WireAuditRow, type WireAuthDenyReason, type WireAuthDenyStatus, type WireAuthGuard, type WireAuthRequestView, type WireAuthVerdict, type WireBackgroundTask, type WireBindWorkspaceRequest, type WireBlockedGoal, type WireBlockedGoalsResponse, type WireBlockedLevel, type WireBuiltinConnector, type WireCachedApproval, type WireCachedDecision, type WireCapabilitiesResponse, type WireCapabilityProject, type WireCheckpointListResponse, type WireCheckpointSummary, type WireCommandExpansion, type WireCommandsResponse, type WireCompactRequest, type WireCompactResponse, type WireCompressionLine, type WireConfigResponse, type WireContextResponse, type WireCreateSessionRequest, type WireCreateSessionResponse, type WireCreateWorkspaceRequest, type WireCreateWorkspaceResponse, type WireCustomCommand, type WireDeleteSessionResponse, type WireDiffFile, type WireDiffFileResponse, type WireDiffNote, type WireDiffOmitReason, type WireDiffSource, type WireDiffStatus, type WireEffectiveModel, type WireEffectiveSlots, type WireEntryProbeCode, type WireEntryProvider, type WireEnvelope, type WireErrorResponse, type WireEvent, type WireFields, type WireFileCandidate, type WireFileCandidatesResponse, type WireFileChange, type WireFileKind, type WireFileOpenRefusal, type WireFileOpenResponse, type WireFileReference, type WireFileRefusal, type WireFileStat, type WireFileStatOk, type WireFileStatRefused, type WireFileStatResponse, type WireFileTextResponse, type WireFixture, type WireFixtureCase, type WireForgetWorkspaceRequest, type WireForgetWorkspaceResponse, type WireGoal, type WireGoalBlock, type WireGoalClearResponse, type WireGoalCreateRequest, type WireGoalLimits, type WireGoalPhase, type WireGoalRefusal, type WireGoalResponse, type WireGoalUpdateRequest, type WireGoalWriteResponse, type WireHealthResponse, type WireHostBadgeRequest, type WireHostBadges, type WireHostCompose, type WireHostComposeRequest, type WireHostComposeResponse, type WireHostComposeStateResponse, type WireHostComposeTakeResponse, type WireHostTray, type WireHostTrayItemRequest, type WireHostTrayRequest, type WireHubEnvelope, type WireHubEvent, type WireImageReference, type WireKnownWorkspace, type WireKnownWorkspaceRef, type WireLastSessionRequest, type WireLastSessionResponse, type WireManagedLock, type WireMcpAddRequest, type WireMcpAddResponse, type WireMcpApplyAction, type WireMcpApplyEntry, type WireMcpApplyResponse, type WireMcpConfigApplyRequest, type WireMcpConfigIssue, type WireMcpConfigResponse, type WireMcpConfigSaveRequest, type WireMcpConfigSaveResponse, type WireMcpConnector, type WireMcpReconnectResponse, type WireMessageListResponse, type WireModelCaveat, type WireModelEffortRequest, type WireModelEffortResponse, type WireModelEntriesResponse, type WireModelEntry, type WireModelEntryModelsResponse, type WireModelEntryProbeRequest, type WireModelEntryRefRequest, type WireModelEntryRefs, type WireModelEntrySaveRequest, type WireModelEntrySaveResponse, type WireModelEntryTestResponse, type WireModelRejection, type WireModelResponse, type WireModelSelection, type WireModelSetRequest, type WireModelSetResponse, type WirePatchSessionRequest, type WirePatchSessionResponse, type WirePermissionRememberFailure, type WirePermissionRuleRow, type WirePermissionSetRequest, type WirePermissionSetResponse, type WirePermissionShadow, type WirePermissionState, type WirePermissionStatus, type WirePickDirectoryResponse, type WirePlanAction, type WirePlanModeRequest, type WirePlanModeResponse, type WirePlanModeState, type WirePlanResponse, type WirePluginActionResponse, type WirePluginCategory, type WirePluginCounts, type WirePluginDependency, type WirePluginDependencyInventory, type WirePluginDependencyStatus, type WirePluginDoc, type WirePluginDocs, type WirePluginEntry, type WirePluginHit, type WirePluginHookTally, type WirePluginInstallRequest, type WirePluginLocalInstallRequest, type WirePluginLocalRequest, type WirePluginMarketplace, type WirePluginMarketplaceRequest, type WirePluginMarketplaceResponse, type WirePluginMenuItem, type WirePluginNameRequest, type WirePluginPanel, type WirePluginPreview, type WirePluginPreviewRequest, type WirePluginPreviewResponse, type WirePluginPreviewStreamLine, type WirePluginProgressStep, type WirePluginRefreshResponse, type WirePluginRefuseReason, type WirePluginSourceType, type WirePluginStageRequest, type WirePluginStageResponse, type WirePluginStatus, type WirePluginToggleRequest, type WirePluginUpdateRequest, type WirePluginUploadChoice, type WirePluginUploadConfirmRequest, type WirePluginUploadField, type WirePluginUploadFieldName, type WirePluginUploadFields, type WirePluginUploadFile, type WirePluginUploadForm, type WirePluginUploadPlan, type WirePluginUploadPreviewResponse, type WirePluginUploadRequest, type WirePluginUploadResponse, type WirePluginVersionUnmet, type WirePluginViewRequest, type WirePluginViewResponse, type WirePluginVisibility, type WirePluginsResponse, type WirePolicyDir, type WirePolicyStatus, type WireProjectInventory, type WireProviderGroup, type WireQuestionListResponse, type WireQuestionRequest, type WireReplayMessage, type WireResetReason, type WireRespondApprovalRequest, type WireRespondApprovalResponse, type WireRespondQuestionRequest, type WireRespondQuestionResponse, type WireRevealWorkspaceRefusal, type WireRevealWorkspaceRequest, type WireRevealWorkspaceResponse, type WireReviveResponse, type WireRewindAction, type WireRewindDrift, type WireRewindFilePlan, type WireRewindOutcome, type WireRewindPreview, type WireRewindRequest, type WireRewindResponse, type WireRewindScope, type WireRoleAddRequest, type WireRoleAddResponse, type WireRoleRemoveFailure, type WireRoleRemoveResponse, type WireRolesResponse, type WireRunningSchedule, type WireSandboxReason, type WireSandboxStatus, type WireScheduleCancelResponse, type WireScheduleCapability, type WireScheduleCreateRequest, type WireScheduleDefaults, type WireScheduleDeleteResponse, type WireScheduleFixRequest, type WireScheduleFixResponse, type WireScheduleIssue, type WireScheduleIssueCode, type WireScheduleListResponse, type WireSchedulePendingResponse, type WireScheduleRecordingResponse, type WireScheduleRegisterRefusal, type WireScheduleRegisterWarning, type WireScheduleRegistration, type WireScheduleResponse, type WireScheduleRow, type WireScheduleRunResponse, type WireScheduleRunningResponse, type WireScheduleRunsResponse, type WireScheduleSaveResponse, type WireScheduleUpdateRequest, type WireSecurityResponse, type WireSecurityWorkspace, type WireSendMessageRequest, type WireSendMessageResponse, type WireSessionBranchResponse, type WireSessionCandidate, type WireSessionCandidatesResponse, type WireSessionFinish, type WireSessionListResponse, type WireSessionReference, type WireSessionResponse, type WireSessionSummary, type WireSessionWorkspace, type WireSessionWorkspaceResponse, type WireSettingApply, type WireSettingFutile, type WireSettingLayer, type WireSettingPending, type WireSettingRow, type WireSettingStep, type WireSettingValue, type WireSettingValueKind, type WireSettingWrite, type WireSettingWriteLayer, type WireSettingsResponse, type WireSettingsWriteRequest, type WireSettingsWriteResponse, type WireSkillBodyResponse, type WireSkillImportConflict, type WireSkillImportEntry, type WireSkillImportFailure, type WireSkillImportForm, type WireSkillImportIssue, type WireSkillImportPreviewResponse, type WireSkillImportResponse, type WireSkillRemoveFailure, type WireSkillRemoveResponse, type WireSkillStageFailure, type WireSkillStageResponse, type WireSkillSummary, type WireSummaryWorkspace, type WireTaggedEvent, type WireTasksResponse, type WireTeamResponse, type WireToolGate, type WireToolGateAxis, type WireToolRow, type WireToolSummary, type WireToolVerdict, type WireToolsResponse, type WireTrayItemOverride, type WireTrustRequestRequest, type WireTrustRequestResponse, type WireTurnState, type WireWithdrawMessageResponse, type WireWorkspaceBinding, type WireWorkspaceDiffResponse, type WireWorkspaceDirEntry, type WireWorkspaceDirsResponse, type WireWorkspaceRef, accentScale, agentMessageLine, apiKeyEnvVar, appearanceInlineVars, appearanceRootAttributes, appearanceVisualCss, approvalPolicyForLevel, assertNeverPart, assistantTurnText, attachSessionSurface, chordId, collectPendingApprovals, compressionThresholdTokens, conformsToWire, contentToText, cronTimes, diagnosticToLine, encodeAppearanceFirstScreenValue, entryDisplayName, entryRef, entrySecretName, extractAllMentions, extractMentions, extractSessionMentions, filePartSummary, fillPlaceholders, flattenCatalog, formatAppearanceTranslucent, formatMoney, getProviderInfo, hasFailure, hexToHsv, hsvToHex, imagePartOmittedSummary, isAppearanceAccent, isAppearanceAccentValue, isAppearanceBackground, isAppearanceBackgroundFit, isAppearanceBackgroundKind, isAppearanceCodeFont, isAppearanceCodeFontSize, isAppearanceContrast, isAppearanceDiffTreeWidth, isAppearanceFontSize, isAppearanceLang, isAppearanceModePatch, isAppearanceMotion, isAppearanceSidebarWidth, isAppearanceTheme, isAppearanceThemeName, isAppearanceTranslucent, isAppearanceUiFont, isApprovalOutcome, isContextNearlyFull, isCurrency, isEntrySecretName, isHeadlessInputFormat, isHeadlessLifecycleEvent, isHeadlessOutputFormat, isHexColor, isKeyAction, isLang, isMentionableFilePath, isModelEntryId, isOpenableLink, isOperationType, isPermissionLevel, isPlanOutcome, isPromptOversize, isProviderType, isQuestionAnswerMap, isReasoningEffort, isSearchProviderType, isSettingsPaneId, isValidAgentRoleName, isValidCommandName, isWireGoalPhase, isWireHubEvent, isWirePlanAction, isWirePluginArchiveName, isWireRewindScope, isWireSettingWriteLayer, isWireSkillDropName, joinUploadMulti, makeTranslate, mcpConnectorState, normalizeAppearanceTranslucent, normalizeApproval, offloadedImagePart, packSessionSurface, parseAppearanceTranslucentText, parseChord, parseModelRef, parseSequence, perAction, placeholdersOf, promptTokens, relativeLuminance, resolveAppearanceVisual, resolveHostText, resolvePermissionLevel, sequenceId, sessionPartSummary, sessionSenderLabel, snapAppearanceContrast, splitUploadMulti, stripSystemNote, systemNote, tableOf, totalUsageTokens, translatorFor, truncateToBudget, turnDigest, unfixedRules, utf8ByteLength, wireFields };
|
package/dist/index.js
CHANGED
|
@@ -54,13 +54,13 @@ function isValidAgentRoleName(name) {
|
|
|
54
54
|
// src/team.ts
|
|
55
55
|
var LEAD_AGENT_ID = "lead";
|
|
56
56
|
function agentMessageLine(msg) {
|
|
57
|
-
return `[
|
|
57
|
+
return `[message from ${msg.fromLabel ?? msg.from}] ${msg.text}`;
|
|
58
58
|
}
|
|
59
59
|
function sessionSenderLabel(sessionId, title) {
|
|
60
60
|
const t = title?.trim();
|
|
61
|
-
return t ?
|
|
61
|
+
return t ? `session "${t}" (${sessionId})` : sessionId;
|
|
62
62
|
}
|
|
63
|
-
var AGENT_MESSAGE_NOTE_TITLE = "Agent
|
|
63
|
+
var AGENT_MESSAGE_NOTE_TITLE = "Agent messages";
|
|
64
64
|
// src/commands.ts
|
|
65
65
|
var RESERVED_COMMAND_NAMES = [
|
|
66
66
|
"help",
|
|
@@ -464,19 +464,19 @@ var SESSION_REFERENCE_ERROR_CODES = Object.freeze([
|
|
|
464
464
|
"budget-exceeded"
|
|
465
465
|
]);
|
|
466
466
|
var OMIT_LABEL = {
|
|
467
|
-
binary: "\
|
|
468
|
-
denied: "
|
|
469
|
-
unreadable: "
|
|
470
|
-
"over-limit": "
|
|
471
|
-
"not-restored": "
|
|
467
|
+
binary: "binary file, content not attached; file_read refuses binary files outright, so fetch the content yourself some other way \u2014 do not ask the user to paste it",
|
|
468
|
+
denied: "permission not granted, content not attached \u2014 call file_read if you need it, that path goes through full approval",
|
|
469
|
+
unreadable: "read failed, content not attached",
|
|
470
|
+
"over-limit": "exceeds the attachment limit for this message, content not attached \u2014 call file_read if you need it",
|
|
471
|
+
"not-restored": "content is not re-read after a session restore; call file_read if you need it"
|
|
472
472
|
};
|
|
473
473
|
function truncatedNote(part) {
|
|
474
474
|
const kept = part.truncatedTo;
|
|
475
475
|
if (kept === void 0) return "";
|
|
476
|
-
const scale = part.bytes === void 0 || part.bytes <= 0 ?
|
|
476
|
+
const scale = part.bytes === void 0 || part.bytes <= 0 ? `truncated to ${kept} bytes` : `only the first ${kept} of ${part.bytes} bytes attached (${Math.round(kept / part.bytes * 100)}%)`;
|
|
477
477
|
const lines = part.text === void 0 ? 0 : countLines(part.text);
|
|
478
|
-
if (lines === 0) return
|
|
479
|
-
return
|
|
478
|
+
if (lines === 0) return `, ${scale}, not even one full line \u2014 call file_read to read it all`;
|
|
479
|
+
return `, ${scale}, up to line ${lines} \u2014 read the rest with file_read offset=${lines + 1}`;
|
|
480
480
|
}
|
|
481
481
|
function countLines(text) {
|
|
482
482
|
let n = 0;
|
|
@@ -484,13 +484,13 @@ function countLines(text) {
|
|
|
484
484
|
return n;
|
|
485
485
|
}
|
|
486
486
|
function filePartSummary(part) {
|
|
487
|
-
if (part.omitted) return `[
|
|
488
|
-
return `[
|
|
487
|
+
if (part.omitted) return `[file ${part.path}: ${OMIT_LABEL[part.omitted]}]`;
|
|
488
|
+
return `[file ${part.path}${truncatedNote(part)}]`;
|
|
489
489
|
}
|
|
490
490
|
function imagePartOmittedSummary(part) {
|
|
491
|
-
return `[
|
|
491
|
+
return `[image ${part.mediaType ?? "unknown type"}: the current model does not support image input, content not attached]`;
|
|
492
492
|
}
|
|
493
|
-
var OFFLOADED_IMAGE_NOTE = "[
|
|
493
|
+
var OFFLOADED_IMAGE_NOTE = "[image offloaded: the original is still in the artifact directory \u2014 call file_read by path if you need it; do not ask the user to resend, resending does not change the size]";
|
|
494
494
|
function offloadedImagePart() {
|
|
495
495
|
return { type: "text", text: OFFLOADED_IMAGE_NOTE };
|
|
496
496
|
}
|
|
@@ -509,7 +509,7 @@ function contentToText(content, opts = {}) {
|
|
|
509
509
|
if (p.type === "file") return filePartSummary(p);
|
|
510
510
|
if (p.type === "session") return sessionPartSummary(p);
|
|
511
511
|
if (p.type === "image") {
|
|
512
|
-
return opts.imagesCarriedAsParts ? void 0 : `[
|
|
512
|
+
return opts.imagesCarriedAsParts ? void 0 : `[image ${p.mediaType ?? "unknown type"}]`;
|
|
513
513
|
}
|
|
514
514
|
return assertNeverPart(p);
|
|
515
515
|
}).filter((line) => line !== void 0).join("\n");
|
|
@@ -522,8 +522,8 @@ function turnDigest(results) {
|
|
|
522
522
|
const named = [...counts.entries()].slice(0, TURN_DIGEST_MAX_TOOLS);
|
|
523
523
|
const parts = named.map(([name, n]) => n > 1 ? `${name}\xD7${n}` : name);
|
|
524
524
|
const rest = counts.size - named.length;
|
|
525
|
-
if (rest > 0) parts.push(
|
|
526
|
-
return `[
|
|
525
|
+
if (rest > 0) parts.push(`and ${rest} more`);
|
|
526
|
+
return `[tools used this turn: ${parts.join(" \xB7 ")}]`;
|
|
527
527
|
}
|
|
528
528
|
var UNFINISHED_TURN_BUDGET = 4e3;
|
|
529
529
|
var UNFINISHED_RESULT_CAP = 1e3;
|
|
@@ -540,14 +540,14 @@ function unfinishedTurnText(results) {
|
|
|
540
540
|
const cap = Math.min(UNFINISHED_RESULT_CAP, left);
|
|
541
541
|
const clipped = output.length > cap;
|
|
542
542
|
lines.push(
|
|
543
|
-
clipped ? `${r.toolName}
|
|
544
|
-
|
|
543
|
+
clipped ? `${r.toolName}: ${output.slice(0, cap)}
|
|
544
|
+
(only the first ${cap} of ${output.length} characters attached \u2014 call it again if you need the rest)` : `${r.toolName}: ${output}`
|
|
545
545
|
);
|
|
546
546
|
left -= Math.min(output.length, cap);
|
|
547
547
|
}
|
|
548
|
-
const head = "[\
|
|
548
|
+
const head = "[this turn was interrupted before it finished. Below are the tools that **already ran** and their results \u2014 do not run them again:]";
|
|
549
549
|
const tail = dropped > 0 ? `
|
|
550
|
-
|
|
550
|
+
(${dropped} more result(s) not attached because of length \u2014 call again if you need them)` : "";
|
|
551
551
|
return `${head}
|
|
552
552
|
${lines.join("\n")}${tail}`;
|
|
553
553
|
}
|