@epoch-agent/protocol 0.16.0 → 0.18.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 CHANGED
@@ -4725,6 +4725,18 @@ type NoticeCode =
4725
4725
  * 它不是模型说的话,塞进正文就会进历史、进落盘、下一轮再进模型。
4726
4726
  */
4727
4727
  | 'blank-response'
4728
+ /**
4729
+ * 判定死循环了,但**这是第一次** —— 已经把「第几次、哪条错误」告诉模型,
4730
+ * 让它换条路再走一轮(2026-09-24)。
4731
+ *
4732
+ * 和 `FinishReason` 的 `'stalled'` 是同一件事的两段,关系同上面
4733
+ * `blank-response` / `'blank'` 那一对:这一帧发在第一次开火的那一刻,
4734
+ * `'stalled'` 只在**提醒过之后又陷进去**时才落。模型听进去了的话,这一轮
4735
+ * 照常收工,屏幕上留着这一句解释「刚才那几轮在打转」。
4736
+ *
4737
+ * ⚠️ 走 `notice` 而不是 `text-delta`,判据同 `skill-learned`:它不是模型说的话。
4738
+ */
4739
+ | 'stall-nudged'
4728
4740
  /**
4729
4741
  * 这一条消息发出去之前,**上下文被自动压了一次**(2026-09-10)。
4730
4742
  *
@@ -6679,6 +6691,36 @@ type WireHubEvent =
6679
6691
  */
6680
6692
  | {
6681
6693
  type: 'sessions-changed';
6694
+ }
6695
+ /**
6696
+ * **插件那张表变了**(2026-09-24)—— 装 / 更新 / 卸载、市场目录重读过、加 / 移除市场。
6697
+ *
6698
+ * ## 它治的是「不是这一页动的手」
6699
+ *
6700
+ * 插件页在这一帧之前只在**自己动手**之后重取(装完、卸完、按了刷新)。而市场卡片上
6701
+ * 那张宿主菜单([plugin-menu.ts](./plugin-menu.ts))把「删掉一条」交给了宿主:
6702
+ * 宿主在自己的后端删完、调一句 `runtime.plugins.refresh()` —— 盘上那份目录已经变了,
6703
+ * 开着的那一页却一无所知,被删的那张卡一直挂着,而用户刚按过「删除」。
6704
+ * 产地是 runtime 的 `PluginControl.onChange`,服务端订阅它、在这儿发一帧。
6705
+ *
6706
+ * ## 纯失效信号,**不带载荷**
6707
+ *
6708
+ * 形状和理由逐字同 `sessions-changed`:收到它的客户端回去打 `GET /api/plugins`。
6709
+ *
6710
+ * ## ⚠️ 它是**进程级**的:信封上**没有 `sessionId`**
6711
+ *
6712
+ * 插件装在 `~/.epoch/plugins/`,一个进程一份(判据同 `server/src/plugin.ts`
6713
+ * 「进程级,所以 URL 上没有 `:id`」)。拿某个会话的 id 填上的话,web 那一侧会把它
6714
+ * 当成那段会话的帧**停进 `parked`**,而 `parkFrame` 丢掉它不认的 Hub 事件 ——
6715
+ * 于是除了正看着那一段的标签页,谁都收不到。信封上那一格本来就是可选的
6716
+ * (连接级帧也不带),缺席在这儿说的是「它不属于任何一段会话」。
6717
+ *
6718
+ * ⚠️ **自己动手的那一页也会收到它**,于是装完那一下会多读一次列表。刻意不去重:
6719
+ * 那一发是纯本地读,而为了省它去给这一帧加一格「谁动的手」,就得让浏览器先证明
6720
+ * 「那一下是我」—— 多一个会错的判断,换一次本来就便宜的 GET。
6721
+ */
6722
+ | {
6723
+ type: 'plugins-changed';
6682
6724
  };
6683
6725
  /** 信封里能装的所有东西 */
6684
6726
  type WireEvent = WireAgentEvent | WireHubEvent;
@@ -6738,7 +6780,11 @@ interface WireEnvelope<E extends WireTaggedEvent = WireEvent> {
6738
6780
  * 这一帧属于哪个会话。
6739
6781
  *
6740
6782
  * **连接级帧(`connected` / `stream-reset`)没有它** —— 它们描述的是这条连接,
6741
- * 不是某个会话。其余每一帧都必有。
6783
+ * 不是某个会话。
6784
+ *
6785
+ * ⚠️ **进程级的广播帧也没有它**(2026-09-24 起只有 `plugins-changed` 一种):
6786
+ * 它进环形缓冲、占广播序号,但说的事不属于任何一段会话。在那之前这一句写的是
6787
+ * 「其余每一帧都必有」—— 读到这儿的人别按那句旧话去断言。
6742
6788
  */
6743
6789
  sessionId?: string;
6744
6790
  /** 服务端产生这条事件的时刻(epoch 毫秒) */
@@ -11142,202 +11188,106 @@ interface WireRoleRemoveResponse {
11142
11188
  declare const WIRE_ROLE_REMOVE_FIELDS: WireFields<WireRoleRemoveResponse>;
11143
11189
 
11144
11190
  /**
11145
- * 插件那一页的契约 —— 十四条端点(方案 59 §六 E2,2026-08-21;本地源与市场管理
11146
- * 2026-09-04 补,见下面第一节的**翻案**;上传 2026-09-08 补,见第一节之二;
11147
- * 落区 2026-09-11 补,见 {@link WirePluginStageRequest})。
11191
+ * 市场卡片右上角那张「⋯」菜单(2026-09-24)—— 宿主往每一张插件卡上挂自己的动作。
11148
11192
  *
11149
- * ```
11150
- * GET /api/plugins 装着的 + 市场里有什么 + 已加的市场 + pendingRestart + uploadEnabled
11151
- * POST /api/plugins/install/preview {ref} → 将安装什么,一个字节都不写
11152
- * POST /api/plugins/install {ref, token} → 真装
11153
- * POST /api/plugins/install/local/preview {path} → 同上,来源是本机一条目录
11154
- * POST /api/plugins/install/local {path, token} → 真装
11155
- * POST /api/plugins/update/preview {name} → 更新会带来什么
11156
- * POST /api/plugins/update {name, token} → 真更新
11157
- * POST /api/plugins/uninstall {name} → 卸载
11158
- * POST /api/plugins/marketplaces {source} → 加一个市场
11159
- * POST /api/plugins/marketplaces/remove {name} → 移除一个市场
11160
- * POST /api/plugins/upload/preview {path} → 会打包哪些文件,一个字节都不发
11161
- * POST /api/plugins/upload {path, token} → 打包 + 交给宿主
11162
- * POST /api/plugins/refresh {} → 让宿主重拉目录 + 回一份新列表
11163
- * POST /api/plugins/stage {path} 或字节 → 落地 + 解包 + 验清单 → 一条目录路径
11164
- * ```
11193
+ * 起因是一个嵌入宿主要的那件事:**当前用户自己上传的插件,由他自己决定删不删**。
11194
+ * 「这是不是他上传的」只有宿主答得出(epoch 不知道当前用户是谁),「删」发生在宿主
11195
+ * 自己的后端上 —— 两半都不在我们手里。于是这一格只给一个落点:宿主说每张卡上有哪几项,
11196
+ * 用户点了哪一项就告诉宿主,之后的事全归宿主。
11165
11197
  *
11166
- * 底座是 `EpochRuntime.plugins`(方案 59 PR-4 落的那一片,判据全文在
11167
- * `runtime/src/plugin-control.ts` 的文件头)。**这一层一条策略判断都没有** ——
11168
- * 谁能装、装什么、要不要重启,三个问题的答案全在那一片里,网线这一侧只是把它
11169
- * 转出来。⚠️ 唯一的例外是下面第二节那道闸,而它答的是一个 runtime 那一层**问不到**
11170
- * 的问题(「网线另一头是不是这台机器」)。
11198
+ * ## 两半,各在一处
11171
11199
  *
11172
- * ## 为什么不塞进 [wire-capability.ts](./wire-capability.ts)
11200
+ * | 那一半 | 在哪 | 谁决定 |
11201
+ * | ---------------- | ----------------------------------------------- | --------------- |
11202
+ * | 每张卡上有哪几项 | `HostMarketplaces.pluginMenu`(runtime,按条目调)| 宿主的代码 |
11203
+ * | 点了之后发生什么 | 一条 `postMessage`(这个文件) | 宿主的窗口 |
11173
11204
  *
11174
- * 判据逐字同 [wire-agent-role.ts](./wire-agent-role.ts) 从那儿分出来那次:那个文件
11175
- * 已经压过 500 行线,而**刀口按题目下不按行数** —— 那份答的是「能力页那三栏读什么」,
11176
- * 这一份答的是「怎么往这台机器上装一包扩展物」,而后者带着一整套预览形状 +
11177
- * 七档拒绝 + 一格 `pendingRestart`。
11205
+ * ⚠️ **第一半是一个按条目调的函数,不是一个配置键** —— 这是它和侧栏那两张宿主菜单
11206
+ * ([sidebar-menu.ts](./sidebar-menu.ts),`EpochConfig.sidebarMenu` / `userMenu`)
11207
+ * 唯一的形状差别。那两张是**整页一份**,写在配置文件里就够了;这一张是**每一条各一份**,
11208
+ * 而「这一条给不给删」要看这一条是谁传的 —— 一个静态的配置键表达不出来。
11178
11209
  *
11179
- * ---
11210
+ * ## 点下去发生什么:**逐字照侧栏那一条**
11180
11211
  *
11181
- * # 一、⚠️ 装进来的路**有两条,各自收一种东西**,第三种说不出口
11182
- *
11183
- * | 端点 | 收什么 | 真装的时候会发生什么 |
11184
- * | ----------------------- | --------------------- | ----------------------------- |
11185
- * | `install` | `<市场>/<插件>` | 看那条目录项,可能 clone / 拉包 |
11186
- * | `install/local` | 本机一条**绝对路径** | **只 `symlinkSync` 一下** |
11187
- * | 没有第三条 | — | — |
11188
- *
11189
- * {@link WirePluginInstallRequest} 上**没有 `source` 这个东西**,
11190
- * {@link WirePluginLocalRequest} 上**只有一条 `path`**。于是「给我一个
11191
- * `github:acme/x` 我就 clone」这件事在这两个形状下**都说不出口** ——
11192
- * 不是靠 review 盯住的,是编译期的事(同 `HostAgentRole` 少一个 `source`)。
11193
- *
11194
- * ## ⚠️ 这一节 2026-09-04 **翻过案**,原话和翻案的理由都记在这儿
11195
- *
11196
- * 原话是「**只收 `<市场>/<插件>`,收不了路径**」,`plugins.tsx` 的文件头上还有
11197
- * 配套的一句「**别在这儿加一个输入框**」。翻案的是**本地路径那一档**,
11198
- * 三条判据:
11199
- *
11200
- * 1. **它和远程不是一个量级的风险,而原来那条判据把两者合在一起判了。**
11201
- * `runtime/src/plugin-control.ts` 文件头第三节自己就把四种来源分成了两档:
11202
- * 本地目录 = `symlinkSync`,其余三种 = 起子进程或拉网。`allowRemote` 默认关
11203
- * 正是为了那三种。把「本地目录」和它们一起挡在网线外,挡掉的是那一档里**风险
11204
- * 最低**的一种;
11205
- * 2. **原来那条路在真实部署上是断的。** `epoch web --plugins` 传的是
11206
- * `{ sources: [] }`(判据在 CLI 那个 `pluginsOption` 上)—— 一台自己机器上
11207
- * 起的界面**没有任何预置市场**,而加市场当时只能在命令行上。于是「可视化装
11208
- * 一个插件」这句话在 CLI 宿主上从来没有成立过:那一页只能看,不能装。
11209
- * ⚠️ 这一条才是翻案的真正理由 —— 一道**只在没人走得到的路上生效**的闸门
11210
- * 不是安全性,是一个空转的判断;
11211
- * 3. **那道真闸门原地不动,而且它挡的正是这一条。** {@link WirePluginLocalRequest}
11212
- * 照样吃第二节那道 403(LAN 那一档下一律拒),于是「浏览器在别人机器上」那个
11213
- * 形态下这条路根本不存在。**本地路径这一档的全部前提是「网线另一头就是这台
11214
- * 机器」**,而那正是 `lanExposed` 那一格答的问题。
11215
- *
11216
- * 逐条对着今天那条最像的路(`POST /api/skills/import`):
11217
- *
11218
- * | 判据 | `skills/import` | `install` | `install/local` |
11219
- * | ---------------- | ------------------------- | -------------------- | -------------------- |
11220
- * | 能不能传字节 | 不能(只收路径) | 不能 | 不能 |
11221
- * | 能不能指任意路径 | **能** | **不能** | **能,但只限本地** |
11222
- * | 装之前有没有预览 | 有 | 有 | 有(**同一屏**) |
11223
- * | LAN 那一档 | 不挡 | **403** | **403** |
11224
- *
11225
- * ⚠️ **`install/local` 只收本地,且必须是绝对路径。** 一条
11226
- * `github:acme/x` 走到那条端点上会被判成 `not-local` 而不是「顺手当远程装了」——
11227
- * 判据在 {@link WirePluginLocalRequest} 上。相对路径同样拒:它会按**服务进程的
11228
- * cwd** 解析,而坐在浏览器前面的人根本不知道那是哪儿。
11229
- *
11230
- * ⚠️ 「清单」= `~/.epoch/marketplaces.json` 里那些,也就是**宿主预置的**加上
11231
- * **用户自己加的**。后者现在有两个入口(命令行那条 `epoch plugin marketplace add`
11232
- * 和 {@link WirePluginMarketplaceRequest}),而它们**是同一件事的两个入口,不是
11233
- * 两道闸门** —— 网线那条多吃一道 403,判据同上第 3 条。
11234
- *
11235
- * # 一之二、⚠️ 还有一条路是**往外**的(2026-09-08)
11236
- *
11237
- * | 端点 | 收什么 | 真按下去会发生什么 |
11238
- * | ---------------- | --------------------- | ---------------------------------------- |
11239
- * | `upload/preview` | 本机一条**绝对路径** | 走一遍目录,**一个字节都不发、连包都不打** |
11240
- * | `upload` | 同上 + `token` | 打成 `.zip` → 交给**宿主**的回调 |
11241
- *
11242
- * 三条性质:
11243
- *
11244
- * 1. **epoch 一个网络请求都不发。** 出口是宿主给的一个回调
11245
- * (`HostMarketplaces.upload`),不是一条我们去 POST 的 URL —— 判据全文在
11246
- * `runtime/src/host-marketplaces.ts` 的 `PluginUploadFn` 上(简版:给一条 URL
11247
- * 就得由我们定 multipart / 鉴权 / 重定向 / 回执四套契约,而那四个答案全在宿主
11248
- * 那一侧;更要紧的是 token 压根不该进到我们的进程里);
11249
- * 2. **`uploadEnabled` 那一格是这条路存在与否的全部凭据。** 宿主没给回调时
11250
- * 界面上那枚按钮整个不画,硬打这条端点拿到 `upload-unavailable`;
11251
- * 3. **预览那一段的清单,就是打包时喂给 `tar` 的那一份**(core 的 `planPack` →
11252
- * `packPlugin`,走 `tar -T --format zip`)。「用户看到的」和「真发出去的」在构造上是同一份,
11253
- * 不是两套规则各走一遍 —— 判据在 core `pack.ts` 的文件头第二节。
11254
- *
11255
- * ## ⚠️ 为什么预览那一屏必须**逐个列出文件名**,不能只给个数
11256
- *
11257
- * 装错了能卸,**发出去收不回来**。而这条路上最常见的一次事故不是「装错了」,
11258
- * 是**目录里有一份 `.env`**。所以 {@link WirePluginUploadPlan.files} 是全量清单
11259
- * 而不是一个 `count`,{@link WirePluginUploadPlan.suspicious} 还要把看起来像密钥的
11260
- * 那几条单独点名 —— 而**它们仍然在 `files` 里面**(静默剔除会让用户以为发出去的
11261
- * 是全量,判据在 core `pack.ts` 的文件头第四节)。
11262
- *
11263
- * # 二、⚠️ 闸门:**绑在回环之外时那十三条 POST 一律 403**
11264
- *
11265
- * > 这个数原来是「九条」,上传那两条 2026-09-08 加进来,刷新那一条 2026-09-10
11266
- * > 加进来(判据在 {@link WirePluginRefreshResponse} 第三节:它让**宿主**发一次
11267
- * > 出站请求,而这条路的前提是「网线另一头就是这台机器」)。**它们吃同一道闸,
11268
- * > 而且是这一整张表里最该吃的两条**:它们读这台机器上任意一条目录、把内容
11269
- * > **发到外面去**。放行的话,一个 LAN 上的人能指着 `~/.ssh` 说「上传它」。
11270
- * >
11271
- * > 落区那一条 2026-09-11 加进来({@link WirePluginStageRequest})。⚠️ 它最容易
11272
- * > 被当成例外 —— 「字节是浏览器那台机器上的,又不读服务端的目录」。**但它落了盘,
11273
- * > 而落下来的东西下一步就要被装,装进去的 `hooks.json` 起子进程。** 风险在落地
11274
- * > 之后那一步,不在字节从哪儿来。⚠️ 它还有一条独占的理由:那道闸**必须在读
11275
- * > 请求体之前**(`server/src/plugin.ts` 文件头第 4 条),而这一条的请求体是
11276
- * > 几十 MB —— 别处漏一格是多解析一次 JSON,这儿漏一格是让 LAN 上的任何人
11277
- * > 把这台机器的内存灌满。
11278
- *
11279
- * 判据同 [wire-agent-role.ts](./wire-agent-role.ts) 那道,但**这条路比它还远一格**,
11280
- * 四条:
11281
- *
11282
- * 1. **装一个插件会带进 hook 和 `mcp.json`,那两样起子进程。** 一份 `hooks.json`
11283
- * 里的 `PreToolUse` 就是一条 shell 命令,`mcp.json` 里的一台就是一个可执行
11284
- * 文件的启动项 —— 下一程启动时它们照着跑。往 `~/.epoch/agents/` 落一份 md
11285
- * 只影响模型看到的字,这一条影响的是**这台机器上会跑起什么进程**;
11286
- * 2. **`install/preview` 那条也吃这道闸,虽然它一个字节都不写。**
11287
- * `allowRemote: true` 的宿主上,预览一条远程条目会 spawn `git clone --depth 1`
11288
- * 到 staging(判据在 core 的 `install.ts` 那张表)—— 那是一次**由网线发起的
11289
- * 子进程**,不是一次只读。九条一起挡,比按「写不写盘」切一刀诚实。
11290
- * ⚠️ **加市场那条同理**:`addMarketplace` 会去取一份目录,远程市场那一档
11291
- * 是一次网络请求 / 一次 clone;
11292
- * 3. **本地那两条也一起挡**,虽然它们既不拉网也不起子进程 ——
11293
- * 判据在第一节翻案那三条的第 3 条:本地路径这一档的**全部前提**就是
11294
- * 「网线另一头就是这台机器」,而 `lanExposed` 为真时那句前提是假的。
11295
- * ⚠️ 真按「不拉网就放行」切一刀的话,一个 LAN 上的人能指着**这台机器上任意
11296
- * 一个目录**说「装它」—— 而那个目录里的 `hooks.json` 是谁写的,他知道我们不知道;
11297
- * 4. **不能拿「反正他能让 agent 跑命令」开绿灯**,判据逐字同 `wire-agent-role.ts`
11298
- * 第三节:`plan` 档和只读会话下 agent 一个字节都落不了盘,而这条端点落得了。
11299
- *
11300
- * ⚠️ **界面那一侧还有一道,但它是给人的**:`GET /api/config` 上带着 `lanExposed`,
11301
- * 那一页据此在**按下去之前**把「这一档下装不了」画出来(决定 20 ①)。
11302
- * 两道各答一半 —— 别因为界面上画了就把服务端这道摘掉,那一格是客户端自己改得动
11303
- * 的布尔。
11304
- *
11305
- * ⚠️ **`GET /api/plugins` 刻意不挡**,而这和 `GET /api/mcp/config` 刻意挡**不矛盾**:
11306
- * 那份文件里的 `env` 是明文密钥,这一份里是插件名、版本、目录路径 —— 和
11307
- * `GET /api/sessions/:id/capabilities` 早就在发的那些(技能名、角色名、工作区根)
11308
- * 同一档。挡掉它的唯一后果是那一页在 LAN 那一档下变成一片空白,
11309
- * 而**用户最需要的恰恰是在那一档下也看得见「我装了什么、生效了没有」**。
11310
- *
11311
- * # 三、⚠️ `pendingRestart`:装完**不会生效**,而这一格是那句话的全部凭据
11312
- *
11313
- * 扩展物在启动时加载(`loadPlugins` 一程跑一次),所以一次成功的 install /
11314
- * update / uninstall 之后 {@link WirePluginsResponse.pendingRestart} 变 `true`
11315
- * 并且**此后不再变回去**。判据、以及「为什么重建一次就够(加载器一个字节 JS
11316
- * 都不执行)」,全文在 `runtime/src/plugin-control.ts` 文件头第二节。
11317
- *
11318
- * **界面上必须能看出这个中间态**,而它需要**两格一起看**才成立:
11319
- *
11320
- * | 那一格 | 答的是 |
11321
- * | ----------------------------------------- | ---------------------------------- |
11322
- * | {@link WirePluginsResponse.pendingRestart} | **这一程**动过插件、还没生效 |
11323
- * | {@link WirePluginEntry.active} | **这一个**此刻真的在生效吗 |
11324
- *
11325
- * 少了前者,用户点完那一下之后没有任何东西提示他还差一步;少了后者,一个刚装完
11326
- * 的插件在列表里和一个正在生效的**长得一模一样**(那正是「点了半个反应」的形态)。
11327
- * ⚠️ 而 `active: false` 有两种成因,界面要分开说:**这一程刚装上**(要重启),
11328
- * 或者**它被停用 / 版本不符 / 目录没了**(那时启动诊断里有一条指名道姓的)——
11329
- * 前者的判据就是 `pendingRestart`,所以那两格必须一起下发。
11330
- *
11331
- * # 四、这一整片可以整个不存在(503 `no-plugin-control`)
11332
- *
11333
- * `EpochRuntime.plugins` 在宿主没给 `hostMarketplaces` 时是 `null`,而那不是
11334
- * 「底下那层起不来了」,是**「宿主没打算给用户这条路」**(判据在 `build.ts` 那一格
11335
- * 的 JSDoc 上:它是一个真的新攻击面,所以是选进来的,不是白送的)。
11336
- *
11337
- * 六条端点那时一律 **503 `no-plugin-control`**,判据同 `no-goal-store`:
11338
- * 那一档是一句关于**这个部署**的真话,不是一份「装了 0 个插件」的空列表 ——
11339
- * 两者在界面上是两句完全不同的话(后者会让用户去找那个不存在的「安装」按钮)。
11212
+ * 往 `window.parent` 发一条 {@link PluginMenuMessage},`targetOrigin: '*'`,**不跳页、
11213
+ * 不发请求、不等回音**。三条理由全文在 sidebar-menu.ts 文件头「点下去发生什么」那一节,
11214
+ * 这儿只记它们落到这一格上的样子:
11215
+ *
11216
+ * 1. **确认归宿主。** 一个「删除」要不要先问一句、怎么问(原生对话框 / 它自己页面上的
11217
+ * 一张卡)是宿主的产品决定 —— 我们在这张页上画一个确认框的话,宿主那侧想弹原生框
11218
+ * 就得先绕过我们那一个;
11219
+ * 2. **成败归宿主。** 我们这一侧不知道那一下成没成,所以**不说**成了 / 没成:
11220
+ * 说错一次(宿主那边其实失败了)比什么都不说坏得多;
11221
+ * 3. **`targetOrigin: '*'` 不是漏了一道校验。** 这条消息里只有宿主自己在 `pluginMenu`
11222
+ * 里交出来的 `id`,和一条市场目录里本来就在网线上发着的 `ref` —— 没有 token、
11223
+ * 没有会话 id。
11224
+ *
11225
+ * ## ⚠️ 删完之后屏幕上那张卡怎么没的
11226
+ *
11227
+ * 宿主在自己那一侧删完,调一句 `runtime.plugins.refresh()` 把目录重读一遍。那一下会
11228
+ * 让服务端往全局事件流里发一帧 `plugins-changed`(判据在 wire.ts 那一帧上),开着的
11229
+ * 那一页收到后自己重读一次列表。**这一条消息本身不参与**:我们照旧**不监听
11230
+ * `message`**(同 sidebar-menu.ts 那条「反过来的方向照旧守着」),宿主发什么进来
11231
+ * 都改不动这张页。
11232
+ *
11233
+ * ## ⚠️ 局域网那一档下这张菜单**不画**
11234
+ *
11235
+ * `lanExposed` 为真时网线另一头不是这台机器,那个浏览器也就不在宿主的窗口里 ——
11236
+ * `window.parent` 是它自己,一条发出去没有人收的消息就是「点了没反应」。
11237
+ * 判据同那一页上别的动作按钮在那一档下为什么整个不画(决定 20 ①)。
11238
+ *
11239
+ * ## 宿主那一侧怎么接
11240
+ *
11241
+ * ```js
11242
+ * window.addEventListener('message', (e) => {
11243
+ * if (e.data?.type !== 'epoch:plugin-menu') return;
11244
+ * // e.data.id —— 你在 pluginMenu 里给的那个;e.data.ref —— `<市场>/<插件>`
11245
+ * if (e.data.id === 'delete' && confirm('确定从市场里删掉它?')) {
11246
+ * myBackend.delete(e.data.ref).then(() => runtime.plugins.refresh());
11247
+ * }
11248
+ * });
11249
+ * ```
11250
+ *
11251
+ * ⚠️ **判 `type` 那一句不能省**,理由同 sidebar-menu.ts:同一个 window 上还跑着别人的
11252
+ * `message`。那个字面量的真源是 {@link PLUGIN_MENU_MESSAGE_TYPE}。
11253
+ * ⚠️ `runtime.plugins.refresh()` 那一句在**主进程**里(它是 runtime 的方法),
11254
+ * 一个把监听装在 preload / 渲染进程里的 Electron 宿主要自己把这一下递回主进程。
11340
11255
  */
11256
+ /**
11257
+ * 菜单里的一项 —— 网线上那一份(`WirePluginHit.menu` 里装的就是它)。
11258
+ *
11259
+ * ⚠️ `id` / `label` 都是**宿主的话,不过 i18n catalog**,口径逐字同
11260
+ * `SidebarMenuItem`。runtime 那一层已经收过一遍(丢掉空的、同一张菜单里 `id` 重了
11261
+ * 只留第一个,判据在 runtime 的 `PluginMenuFn` 上),界面照画就行。
11262
+ */
11263
+ interface WirePluginMenuItem {
11264
+ /** 宿主自己认的码,点下去原样回给它({@link PluginMenuMessage.id}) */
11265
+ id: string;
11266
+ /** 屏幕上那几个字 */
11267
+ label: string;
11268
+ /**
11269
+ * 画成红字吗。**恒是布尔**(宿主没给就是 `false`)—— 界面要的是结论。
11270
+ *
11271
+ * ⚠️ 它**只是一种样子**,不带确认:确认归宿主,判据在文件头第一条。
11272
+ */
11273
+ danger: boolean;
11274
+ }
11275
+ /** 那条 `postMessage` 的 `type`。**宿主和我们共用这一个字面量**,两边都别手抄 */
11276
+ declare const PLUGIN_MENU_MESSAGE_TYPE = "epoch:plugin-menu";
11277
+ /**
11278
+ * 点了某一项之后发出去的那条消息。
11279
+ *
11280
+ * ⚠️ **比侧栏那一条多一格 `ref`**,而那是这一格和它唯一的差别:侧栏那几项整页一份,
11281
+ * `id` 就说全了;这一张菜单每张卡各一份,同一个 `id`(「删除」)在二十张卡上都有,
11282
+ * 宿主得知道用户按的是哪一张。⚠️ **不带 `label`**,理由同 `SidebarMenuMessage`。
11283
+ */
11284
+ interface PluginMenuMessage {
11285
+ type: typeof PLUGIN_MENU_MESSAGE_TYPE;
11286
+ id: string;
11287
+ /** `<市场>/<插件>`,同 `WirePluginHit.ref` */
11288
+ ref: string;
11289
+ }
11290
+
11341
11291
  /**
11342
11292
  * 一个插件是从哪儿装来的。**照抄 core 的 `PluginSourceType`,不是第二套枚举** ——
11343
11293
  * 界面据此说「这是一条软链 / 这是 clone 下来的」。
@@ -11579,6 +11529,16 @@ interface WirePluginEntry {
11579
11529
  * 写成必填之后「服务端忘了转这一格」当场编译不过。
11580
11530
  */
11581
11531
  counts: WirePluginCounts | null;
11532
+ /**
11533
+ * 宿主给不给「更新」/「卸载」这两枚(2026-09-24,`HostMarketplaces.pluginActions`)。
11534
+ * **`false` = 那一枚不画**(不是画成灰的,判据在 runtime 的 `PluginActions` 上)。
11535
+ *
11536
+ * ⚠️ 「更新」这一格**只是宿主那一半**:软链 / 市场有没有新版本那几条照旧在
11537
+ * web 的 `canUpdate` 里,这一格是再与上去的。服务端那道 `action-disabled`
11538
+ * 照旧在 —— 这一格是给界面少画一枚按钮的,不是闸门本身。
11539
+ */
11540
+ updateAllowed: boolean;
11541
+ uninstallAllowed: boolean;
11582
11542
  }
11583
11543
  /** 市场里的一条 */
11584
11544
  interface WirePluginHit {
@@ -11723,6 +11683,27 @@ interface WirePluginHit {
11723
11683
  * 而**算它的地方只有服务端**(口径同 `installable`)。
11724
11684
  */
11725
11685
  updateAvailable: boolean;
11686
+ /**
11687
+ * **宿主给不给「安装」这一枚**(2026-09-24)。`false` = 那一枚**不画**。
11688
+ *
11689
+ * ⚠️ **和 {@link installable} 是两格、两种画法**:那一格 `false` 画成灰的 + 一句原因
11690
+ * (装不上),这一格 `false` 是整枚不画(这个部署不给这个动作)。
11691
+ * 判据全文在 runtime 的 `PluginSearchHit.installAllowed` 上。
11692
+ */
11693
+ installAllowed: boolean;
11694
+ /**
11695
+ * 「有新版本」时那枚更新按钮宿主给不给 —— **装着那一条**的 `updateAllowed`,
11696
+ * 这一层拿名字 join 过来的(口径同 {@link installed})。没装的恒是 `false`。
11697
+ *
11698
+ * ⚠️ 为 `false` 而 {@link updateAvailable} 为真时,那一格画「已装上」,
11699
+ * 不画更新按钮 —— 「有新版本」那句话照样说(那是一句市场说的事实)。
11700
+ */
11701
+ updateAllowed: boolean;
11702
+ /**
11703
+ * 这张卡右上角那张「⋯」菜单(2026-09-24)。**恒有,空数组 = 不画。**
11704
+ * 点下去是一条 `postMessage`,判据全文在 [plugin-menu.ts](./plugin-menu.ts) 文件头。
11705
+ */
11706
+ menu: readonly WirePluginMenuItem[];
11726
11707
  }
11727
11708
  /**
11728
11709
  * 分类树里的一个节点(2026-09-21)—— 市场自己声明的编目层级。
@@ -11866,6 +11847,14 @@ interface WirePluginsResponse {
11866
11847
  * 那一格答「网线另一头是不是这台机器」。
11867
11848
  */
11868
11849
  refreshEnabled: boolean;
11850
+ /**
11851
+ * 「装本机一条目录」这条路开着吗(2026-09-24)—— **「添加」那一枚画不画就看这一格。**
11852
+ *
11853
+ * ⚠️ 只有宿主写了字面 `pluginActions.install: false` 才是 `false`,判据在 runtime 的
11854
+ * `PluginControl.localInstallEnabled` 上(函数那一档在用户选完目录之后才答得出)。
11855
+ * ⚠️ 同 {@link uploadEnabled},它和 `lanExposed` 各答一半。
11856
+ */
11857
+ localInstallEnabled: boolean;
11869
11858
  }
11870
11859
  declare const WIRE_PLUGINS_FIELDS: WireFields<WirePluginsResponse>;
11871
11860
  /**
@@ -12091,7 +12080,13 @@ type WirePluginRefuseReason = 'unknown-ref' | 'not-local'
12091
12080
  * ⚠️ 界面上正常走不到这一档(那枚按钮在必填格空着时是禁用的)—— 它拦的是
12092
12081
  * **改了请求体那一发**,判据同 `editable: false` 为什么在服务端兑现。
12093
12082
  */
12094
- | 'missing-field' | 'failed';
12083
+ | 'missing-field'
12084
+ /**
12085
+ * 宿主关掉了这个动作(2026-09-24,`HostMarketplaces.pluginActions`)。
12086
+ * 下一步:没有 —— 界面上那枚按钮本来就不画,收到它说明请求体被改过。
12087
+ * 判据同 `upload-unavailable` 为什么不并进 `failed`。
12088
+ */
12089
+ | 'action-disabled' | 'failed';
12095
12090
  /** 一次 hook 盘点:这个事件上有几条 */
12096
12091
  interface WirePluginHookTally {
12097
12092
  type: string;
@@ -15812,4 +15807,4 @@ declare const SECRET_SERVICE = "epoch-agent";
15812
15807
  */
15813
15808
  declare const MCP_DATA_KEY_NAME = "mcp-auth-data-key";
15814
15809
 
15815
- export { ACTION_CONTEXTS, AGENT_ROLE_NAME_PATTERN, API_KEY_ENV_VARS, APPROVAL_OUTCOMES, type ActiveAgentRole, type AgentEvent, type AgentEventOf, type AgentEventType, type AgentRole, type AgentRoleScope, type AgentRoleSource, type ApprovalAnswer, type ApprovalOutcome, type ApprovalReply, type ApprovalRequest, type ArtifactKind, type AttributeValue, type Attributes, type BackgroundTaskInfo, type BackgroundTaskKind, type BackgroundTaskStatus, type BlankCard, type BlankGreeting, type BoundKey, type BudgetBreach, COMMAND_NAME_PATTERN, COMPLIANCE_ACTIONS, COMPLIANCE_CATEGORIES, CURRENCIES, type Catalogs, type ComplianceAction, type ComplianceCategory, type ContextBreakdown, type ContextSegment, type Currency, type CurrencyDisplay, type CustomCommandDef, type CustomCommandSource, DEFAULT_AGENT_ROLE, DEFAULT_LANG, type DecidedTrustLevel, type Diagnostic, DiagnosticSink, type DiagnosticStatus, type EpochConfig, type EpochContentPart, 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 EpochUserContent, type ExpandedCommand, 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 JsonSchema, KEY_ACTIONS, type KeyAction, type KeyChord, type KeyContext, type KeySequence, type KeybindingReport, type KeybindingSource, type KeybindingTable, LANGS, type Lang, type LocalizedDetail, type LogFn, MAX_ATTACH_BYTES, MAX_ATTACH_FILES, MAX_ATTACH_TOTAL_BYTES, MAX_HEADER_CHARS, MAX_OPTIONS, MAX_QUESTIONS, MAX_SESSION_ATTACH_BYTES, MAX_SESSION_REFS, MCP_DATA_KEY_NAME, METRIC, MIN_OPTIONS, type MentionSet, type ModelRef, type ModelSelection, type ModelSelectionOrigin, type MoneyDigits, NOOP_TELEMETRY, type NoticeCode, OPERATION_TYPES, OVERSIZE_RATIO, type Operation, type OperationType, PERMISSION_LEVELS, PLAN_OUTCOMES, PROVIDER_INFOS, PROVIDER_TYPES, type PermissionDecision, type PermissionLevel, type PermissionManager, type PermissionRuleLists, type PlanApprovalOutcome, type PlanProposal, type PluginContext, type ProviderInfo, type ProviderType, type QuestionAnswer, type QuestionItem, type QuestionOption, type QuestionRequest, RESERVED_CHORDS, RESERVED_COMMAND_NAMES, type RejectReason, type RejectedKey, type RuleValue, SCHEDULE_DRAFT_TOOL, SCHEDULE_INTERVAL_MINUTES, SCHEDULE_RUN_STATUSES, SCHEDULE_TEMPLATES, 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 ScheduleAllowlist, type ScheduleBackendKind, 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 ScheduleTemplate, type ScheduleTemplateId, 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 SpanLike, type SubToolCall, type SubToolCallResult, type Telemetry, type TokenUsage, type ToolAnnotations, type ToolArtifact, type ToolArtifactInput, type ToolContext, type ToolDefinition, ToolExposure, type ToolProvider, type ToolResult, type Translate, type TranslateVars, type TrustExecGrant, type TrustGrant, type TrustLevel, type TrustManager, type TrustRecord, type TrustScope, type TrustTier, UNLIMITED_TURNS, type VerifyResult, WIRE_ABORT_FIELDS, WIRE_ABOUT_FIELDS, WIRE_AGENT_ROLE_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_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_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_FIELDS, WIRE_MODEL_SELECTION_FIELDS, WIRE_MODEL_SET_FIELDS, WIRE_MODEL_SUGGESTIONS_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_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_POLICY_DIR_FIELDS, WIRE_POLICY_STATUS_FIELDS, WIRE_PROJECT_INVENTORY_FIELDS, WIRE_PROVIDERS_FIELDS, WIRE_PROVIDER_KEY_FIELDS, WIRE_PROVIDER_MODELS_FIELDS, WIRE_PROVIDER_OPTION_FIELDS, 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_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_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_TOOLS_FIELDS, WIRE_TOOL_GATE_FIELDS, WIRE_TOOL_ROW_FIELDS, WIRE_TRUST_REQUEST_FIELDS, WIRE_TRUST_REQUEST_RESPONSE_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 WireApprovalCacheRevokeRequest, type WireApprovalCacheRevokeResponse, type WireApprovalListResponse, type WireApprovalRequest, type WireArtifactsResponse, 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 WireDiffNote, type WireDiffOmitReason, type WireDiffSource, type WireDiffStatus, 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 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 WireModelProbeStatus, type WireModelRejection, type WireModelResponse, type WireModelSelection, type WireModelSetRequest, type WireModelSetResponse, type WireModelSource, type WireModelSuggestions, 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 WirePluginEntry, type WirePluginHit, type WirePluginHookTally, type WirePluginInstallRequest, type WirePluginLocalInstallRequest, type WirePluginLocalRequest, type WirePluginMarketplace, type WirePluginMarketplaceRequest, type WirePluginMarketplaceResponse, type WirePluginNameRequest, type WirePluginPreview, type WirePluginPreviewRequest, type WirePluginPreviewResponse, type WirePluginRefreshResponse, type WirePluginRefuseReason, type WirePluginSourceType, type WirePluginStageRequest, type WirePluginStageResponse, type WirePluginStatus, 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 WirePluginVisibility, type WirePluginsResponse, type WirePolicyDir, type WirePolicyStatus, type WireProjectInventory, type WireProviderKeyRequest, type WireProviderKeyResponse, type WireProviderModelsRequest, type WireProviderModelsResponse, type WireProviderOption, type WireProviderSummary, type WireProvidersResponse, type WireQuestionListResponse, type WireQuestionRequest, type WireReplayMessage, type WireResetReason, type WireRespondApprovalRequest, type WireRespondApprovalResponse, type WireRespondQuestionRequest, type WireRespondQuestionResponse, 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 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 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 WireToolGate, type WireToolGateAxis, type WireToolRow, type WireToolSummary, type WireToolVerdict, type WireToolsResponse, type WireTrustRequestRequest, type WireTrustRequestResponse, type WireTurnState, type WireWorkspaceBinding, type WireWorkspaceDiffResponse, type WireWorkspaceDirEntry, type WireWorkspaceDirsResponse, type WireWorkspaceRef, apiKeyEnvVar, assertNeverPart, assistantTurnText, attachSessionSurface, chordId, collectPendingApprovals, compressionThresholdTokens, conformsToWire, contentToText, diagnosticToLine, extractAllMentions, extractMentions, extractSessionMentions, filePartSummary, flattenCatalog, formatMoney, getProviderInfo, hasFailure, imagePartOmittedSummary, isApprovalOutcome, isContextNearlyFull, isCurrency, isHeadlessInputFormat, isHeadlessLifecycleEvent, isHeadlessOutputFormat, isKeyAction, isLang, isMentionableFilePath, isOperationType, isPermissionLevel, isPlanOutcome, isPromptOversize, isProviderType, isQuestionAnswerMap, isSearchProviderType, isSettingsPaneId, isValidAgentRoleName, isValidCommandName, isWireGoalPhase, isWireHubEvent, isWirePlanAction, isWirePluginArchiveName, isWireRewindScope, isWireSettingWriteLayer, isWireSkillDropName, makeTranslate, mcpConnectorState, normalizeApproval, packSessionSurface, parseChord, parseModelRef, parseSequence, perAction, placeholdersOf, promptTokens, resolveHostText, sequenceId, sessionPartSummary, stripSystemNote, systemNote, tableOf, totalUsageTokens, translatorFor, truncateToBudget, turnDigest, unfixedRules, utf8ByteLength, wireFields };
15810
+ export { ACTION_CONTEXTS, AGENT_ROLE_NAME_PATTERN, API_KEY_ENV_VARS, APPROVAL_OUTCOMES, type ActiveAgentRole, type AgentEvent, type AgentEventOf, type AgentEventType, type AgentRole, type AgentRoleScope, type AgentRoleSource, type ApprovalAnswer, type ApprovalOutcome, type ApprovalReply, type ApprovalRequest, type ArtifactKind, type AttributeValue, type Attributes, type BackgroundTaskInfo, type BackgroundTaskKind, type BackgroundTaskStatus, type BlankCard, type BlankGreeting, type BoundKey, type BudgetBreach, COMMAND_NAME_PATTERN, COMPLIANCE_ACTIONS, COMPLIANCE_CATEGORIES, CURRENCIES, type Catalogs, type ComplianceAction, type ComplianceCategory, type ContextBreakdown, type ContextSegment, type Currency, type CurrencyDisplay, type CustomCommandDef, type CustomCommandSource, DEFAULT_AGENT_ROLE, DEFAULT_LANG, type DecidedTrustLevel, type Diagnostic, DiagnosticSink, type DiagnosticStatus, type EpochConfig, type EpochContentPart, 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 EpochUserContent, type ExpandedCommand, 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 JsonSchema, KEY_ACTIONS, type KeyAction, type KeyChord, type KeyContext, type KeySequence, type KeybindingReport, type KeybindingSource, type KeybindingTable, LANGS, type Lang, type LocalizedDetail, type LogFn, MAX_ATTACH_BYTES, MAX_ATTACH_FILES, MAX_ATTACH_TOTAL_BYTES, MAX_HEADER_CHARS, MAX_OPTIONS, MAX_QUESTIONS, MAX_SESSION_ATTACH_BYTES, MAX_SESSION_REFS, MCP_DATA_KEY_NAME, METRIC, MIN_OPTIONS, type MentionSet, type ModelRef, type ModelSelection, type ModelSelectionOrigin, type MoneyDigits, NOOP_TELEMETRY, type NoticeCode, OPERATION_TYPES, OVERSIZE_RATIO, type Operation, type OperationType, PERMISSION_LEVELS, PLAN_OUTCOMES, PLUGIN_MENU_MESSAGE_TYPE, 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 QuestionRequest, RESERVED_CHORDS, RESERVED_COMMAND_NAMES, type RejectReason, type RejectedKey, type RuleValue, SCHEDULE_DRAFT_TOOL, SCHEDULE_INTERVAL_MINUTES, SCHEDULE_RUN_STATUSES, SCHEDULE_TEMPLATES, 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 ScheduleAllowlist, type ScheduleBackendKind, 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 ScheduleTemplate, type ScheduleTemplateId, 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 SpanLike, type SubToolCall, type SubToolCallResult, type Telemetry, type TokenUsage, type ToolAnnotations, type ToolArtifact, type ToolArtifactInput, type ToolContext, type ToolDefinition, ToolExposure, type ToolProvider, type ToolResult, type Translate, type TranslateVars, type TrustExecGrant, type TrustGrant, type TrustLevel, type TrustManager, type TrustRecord, type TrustScope, type TrustTier, UNLIMITED_TURNS, type VerifyResult, WIRE_ABORT_FIELDS, WIRE_ABOUT_FIELDS, WIRE_AGENT_ROLE_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_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_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_FIELDS, WIRE_MODEL_SELECTION_FIELDS, WIRE_MODEL_SET_FIELDS, WIRE_MODEL_SUGGESTIONS_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_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_POLICY_DIR_FIELDS, WIRE_POLICY_STATUS_FIELDS, WIRE_PROJECT_INVENTORY_FIELDS, WIRE_PROVIDERS_FIELDS, WIRE_PROVIDER_KEY_FIELDS, WIRE_PROVIDER_MODELS_FIELDS, WIRE_PROVIDER_OPTION_FIELDS, 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_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_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_TOOLS_FIELDS, WIRE_TOOL_GATE_FIELDS, WIRE_TOOL_ROW_FIELDS, WIRE_TRUST_REQUEST_FIELDS, WIRE_TRUST_REQUEST_RESPONSE_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 WireApprovalCacheRevokeRequest, type WireApprovalCacheRevokeResponse, type WireApprovalListResponse, type WireApprovalRequest, type WireArtifactsResponse, 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 WireDiffNote, type WireDiffOmitReason, type WireDiffSource, type WireDiffStatus, 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 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 WireModelProbeStatus, type WireModelRejection, type WireModelResponse, type WireModelSelection, type WireModelSetRequest, type WireModelSetResponse, type WireModelSource, type WireModelSuggestions, 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 WirePluginEntry, type WirePluginHit, type WirePluginHookTally, type WirePluginInstallRequest, type WirePluginLocalInstallRequest, type WirePluginLocalRequest, type WirePluginMarketplace, type WirePluginMarketplaceRequest, type WirePluginMarketplaceResponse, type WirePluginMenuItem, type WirePluginNameRequest, type WirePluginPreview, type WirePluginPreviewRequest, type WirePluginPreviewResponse, type WirePluginRefreshResponse, type WirePluginRefuseReason, type WirePluginSourceType, type WirePluginStageRequest, type WirePluginStageResponse, type WirePluginStatus, 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 WirePluginVisibility, type WirePluginsResponse, type WirePolicyDir, type WirePolicyStatus, type WireProjectInventory, type WireProviderKeyRequest, type WireProviderKeyResponse, type WireProviderModelsRequest, type WireProviderModelsResponse, type WireProviderOption, type WireProviderSummary, type WireProvidersResponse, type WireQuestionListResponse, type WireQuestionRequest, type WireReplayMessage, type WireResetReason, type WireRespondApprovalRequest, type WireRespondApprovalResponse, type WireRespondQuestionRequest, type WireRespondQuestionResponse, 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 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 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 WireToolGate, type WireToolGateAxis, type WireToolRow, type WireToolSummary, type WireToolVerdict, type WireToolsResponse, type WireTrustRequestRequest, type WireTrustRequestResponse, type WireTurnState, type WireWorkspaceBinding, type WireWorkspaceDiffResponse, type WireWorkspaceDirEntry, type WireWorkspaceDirsResponse, type WireWorkspaceRef, apiKeyEnvVar, assertNeverPart, assistantTurnText, attachSessionSurface, chordId, collectPendingApprovals, compressionThresholdTokens, conformsToWire, contentToText, diagnosticToLine, extractAllMentions, extractMentions, extractSessionMentions, filePartSummary, flattenCatalog, formatMoney, getProviderInfo, hasFailure, imagePartOmittedSummary, isApprovalOutcome, isContextNearlyFull, isCurrency, isHeadlessInputFormat, isHeadlessLifecycleEvent, isHeadlessOutputFormat, isKeyAction, isLang, isMentionableFilePath, isOperationType, isPermissionLevel, isPlanOutcome, isPromptOversize, isProviderType, isQuestionAnswerMap, isSearchProviderType, isSettingsPaneId, isValidAgentRoleName, isValidCommandName, isWireGoalPhase, isWireHubEvent, isWirePlanAction, isWirePluginArchiveName, isWireRewindScope, isWireSettingWriteLayer, isWireSkillDropName, makeTranslate, mcpConnectorState, normalizeApproval, packSessionSurface, parseChord, parseModelRef, parseSequence, perAction, placeholdersOf, promptTokens, resolveHostText, sequenceId, sessionPartSummary, stripSystemNote, systemNote, tableOf, totalUsageTokens, translatorFor, truncateToBudget, turnDigest, unfixedRules, utf8ByteLength, wireFields };
package/dist/index.js CHANGED
@@ -832,7 +832,8 @@ var HUB_EVENT_TYPES = /* @__PURE__ */ new Set([
832
832
  "stream-reset",
833
833
  "session-cooled",
834
834
  "tasks-changed",
835
- "sessions-changed"
835
+ "sessions-changed",
836
+ "plugins-changed"
836
837
  ]);
837
838
  function isWireHubEvent(event) {
838
839
  return HUB_EVENT_TYPES.has(event.type);
@@ -1314,7 +1315,8 @@ var WIRE_PLUGINS_FIELDS = wireFields()({
1314
1315
  pendingRestart: true,
1315
1316
  uploadEnabled: true,
1316
1317
  uploadOptions: true,
1317
- refreshEnabled: true
1318
+ refreshEnabled: true,
1319
+ localInstallEnabled: true
1318
1320
  });
1319
1321
  var WIRE_PLUGIN_PREVIEW_FIELDS = wireFields()({ ref: true });
1320
1322
  var WIRE_PLUGIN_INSTALL_FIELDS = wireFields()({
@@ -1863,6 +1865,8 @@ var WIRE_FILE_CANDIDATES_FIELDS = wireFields()({
1863
1865
  });
1864
1866
  // src/sidebar-menu.ts
1865
1867
  var SIDEBAR_MENU_MESSAGE_TYPE = "epoch:sidebar-menu";
1868
+ // src/plugin-menu.ts
1869
+ var PLUGIN_MENU_MESSAGE_TYPE = "epoch:plugin-menu";
1866
1870
  // src/i18n.ts
1867
1871
  var LANGS = ["zh", "en"];
1868
1872
  var DEFAULT_LANG = "zh";
@@ -1942,4 +1946,4 @@ var COMPLIANCE_ACTIONS = ["block", "mask", "warn", "off"];
1942
1946
  var SECRET_SERVICE = "epoch-agent";
1943
1947
  var MCP_DATA_KEY_NAME = "mcp-auth-data-key";
1944
1948
 
1945
- export { ACTION_CONTEXTS, AGENT_ROLE_NAME_PATTERN, API_KEY_ENV_VARS, APPROVAL_OUTCOMES, COMMAND_NAME_PATTERN, COMPLIANCE_ACTIONS, COMPLIANCE_CATEGORIES, CURRENCIES, DEFAULT_AGENT_ROLE, DEFAULT_LANG, DiagnosticSink, GEN_AI, HEADLESS_INPUT_EVENT_TYPES, HEADLESS_INPUT_FORMATS, HEADLESS_OUTPUT_FORMATS, HEADLESS_PROTOCOL_VERSION, KEY_ACTIONS, LANGS, MAX_ATTACH_BYTES, MAX_ATTACH_FILES, MAX_ATTACH_TOTAL_BYTES, MAX_HEADER_CHARS, MAX_OPTIONS, MAX_QUESTIONS, MAX_SESSION_ATTACH_BYTES, MAX_SESSION_REFS, MCP_DATA_KEY_NAME, METRIC, MIN_OPTIONS, NOOP_TELEMETRY, OPERATION_TYPES, OVERSIZE_RATIO, PERMISSION_LEVELS, PLAN_OUTCOMES, PROVIDER_INFOS, PROVIDER_TYPES, RESERVED_CHORDS, RESERVED_COMMAND_NAMES, SCHEDULE_DRAFT_TOOL, SCHEDULE_INTERVAL_MINUTES, SCHEDULE_RUN_STATUSES, SCHEDULE_TEMPLATES, 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, ToolExposure, UNLIMITED_TURNS, WIRE_ABORT_FIELDS, WIRE_ABOUT_FIELDS, WIRE_AGENT_ROLE_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_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_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_FIELDS, WIRE_MODEL_SELECTION_FIELDS, WIRE_MODEL_SET_FIELDS, WIRE_MODEL_SUGGESTIONS_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_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_POLICY_DIR_FIELDS, WIRE_POLICY_STATUS_FIELDS, WIRE_PROJECT_INVENTORY_FIELDS, WIRE_PROVIDERS_FIELDS, WIRE_PROVIDER_KEY_FIELDS, WIRE_PROVIDER_MODELS_FIELDS, WIRE_PROVIDER_OPTION_FIELDS, 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_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_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_TOOLS_FIELDS, WIRE_TOOL_GATE_FIELDS, WIRE_TOOL_ROW_FIELDS, WIRE_TRUST_REQUEST_FIELDS, WIRE_TRUST_REQUEST_RESPONSE_FIELDS, WIRE_WORKSPACE_DIFF_FIELDS, WIRE_WORKSPACE_DIRS_FIELDS, WIRE_WORKSPACE_DIR_ENTRY_FIELDS, WIRE_WORKSPACE_REF_FIELDS, apiKeyEnvVar, assertNeverPart, assistantTurnText, attachSessionSurface, chordId, collectPendingApprovals, compressionThresholdTokens, conformsToWire, contentToText, diagnosticToLine, extractAllMentions, extractMentions, extractSessionMentions, filePartSummary, flattenCatalog, formatMoney, getProviderInfo, hasFailure, imagePartOmittedSummary, isApprovalOutcome, isContextNearlyFull, isCurrency, isHeadlessInputFormat, isHeadlessLifecycleEvent, isHeadlessOutputFormat, isKeyAction, isLang, isMentionableFilePath, isOperationType, isPermissionLevel, isPlanOutcome, isPromptOversize, isProviderType, isQuestionAnswerMap, isSearchProviderType, isSettingsPaneId, isValidAgentRoleName, isValidCommandName, isWireGoalPhase, isWireHubEvent, isWirePlanAction, isWirePluginArchiveName, isWireRewindScope, isWireSettingWriteLayer, isWireSkillDropName, makeTranslate, mcpConnectorState, normalizeApproval, packSessionSurface, parseChord, parseModelRef, parseSequence, perAction, placeholdersOf, promptTokens, resolveHostText, sequenceId, sessionPartSummary, stripSystemNote, systemNote, tableOf, totalUsageTokens, translatorFor, truncateToBudget, turnDigest, unfixedRules, utf8ByteLength, wireFields };
1949
+ export { ACTION_CONTEXTS, AGENT_ROLE_NAME_PATTERN, API_KEY_ENV_VARS, APPROVAL_OUTCOMES, COMMAND_NAME_PATTERN, COMPLIANCE_ACTIONS, COMPLIANCE_CATEGORIES, CURRENCIES, DEFAULT_AGENT_ROLE, DEFAULT_LANG, DiagnosticSink, GEN_AI, HEADLESS_INPUT_EVENT_TYPES, HEADLESS_INPUT_FORMATS, HEADLESS_OUTPUT_FORMATS, HEADLESS_PROTOCOL_VERSION, KEY_ACTIONS, LANGS, MAX_ATTACH_BYTES, MAX_ATTACH_FILES, MAX_ATTACH_TOTAL_BYTES, MAX_HEADER_CHARS, MAX_OPTIONS, MAX_QUESTIONS, MAX_SESSION_ATTACH_BYTES, MAX_SESSION_REFS, MCP_DATA_KEY_NAME, METRIC, MIN_OPTIONS, NOOP_TELEMETRY, OPERATION_TYPES, OVERSIZE_RATIO, PERMISSION_LEVELS, PLAN_OUTCOMES, PLUGIN_MENU_MESSAGE_TYPE, PROVIDER_INFOS, PROVIDER_TYPES, RESERVED_CHORDS, RESERVED_COMMAND_NAMES, SCHEDULE_DRAFT_TOOL, SCHEDULE_INTERVAL_MINUTES, SCHEDULE_RUN_STATUSES, SCHEDULE_TEMPLATES, 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, ToolExposure, UNLIMITED_TURNS, WIRE_ABORT_FIELDS, WIRE_ABOUT_FIELDS, WIRE_AGENT_ROLE_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_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_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_FIELDS, WIRE_MODEL_SELECTION_FIELDS, WIRE_MODEL_SET_FIELDS, WIRE_MODEL_SUGGESTIONS_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_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_POLICY_DIR_FIELDS, WIRE_POLICY_STATUS_FIELDS, WIRE_PROJECT_INVENTORY_FIELDS, WIRE_PROVIDERS_FIELDS, WIRE_PROVIDER_KEY_FIELDS, WIRE_PROVIDER_MODELS_FIELDS, WIRE_PROVIDER_OPTION_FIELDS, 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_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_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_TOOLS_FIELDS, WIRE_TOOL_GATE_FIELDS, WIRE_TOOL_ROW_FIELDS, WIRE_TRUST_REQUEST_FIELDS, WIRE_TRUST_REQUEST_RESPONSE_FIELDS, WIRE_WORKSPACE_DIFF_FIELDS, WIRE_WORKSPACE_DIRS_FIELDS, WIRE_WORKSPACE_DIR_ENTRY_FIELDS, WIRE_WORKSPACE_REF_FIELDS, apiKeyEnvVar, assertNeverPart, assistantTurnText, attachSessionSurface, chordId, collectPendingApprovals, compressionThresholdTokens, conformsToWire, contentToText, diagnosticToLine, extractAllMentions, extractMentions, extractSessionMentions, filePartSummary, flattenCatalog, formatMoney, getProviderInfo, hasFailure, imagePartOmittedSummary, isApprovalOutcome, isContextNearlyFull, isCurrency, isHeadlessInputFormat, isHeadlessLifecycleEvent, isHeadlessOutputFormat, isKeyAction, isLang, isMentionableFilePath, isOperationType, isPermissionLevel, isPlanOutcome, isPromptOversize, isProviderType, isQuestionAnswerMap, isSearchProviderType, isSettingsPaneId, isValidAgentRoleName, isValidCommandName, isWireGoalPhase, isWireHubEvent, isWirePlanAction, isWirePluginArchiveName, isWireRewindScope, isWireSettingWriteLayer, isWireSkillDropName, makeTranslate, mcpConnectorState, normalizeApproval, packSessionSurface, parseChord, parseModelRef, parseSequence, perAction, placeholdersOf, promptTokens, resolveHostText, sequenceId, sessionPartSummary, stripSystemNote, systemNote, tableOf, totalUsageTokens, translatorFor, truncateToBudget, turnDigest, unfixedRules, utf8ByteLength, wireFields };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epoch-agent/protocol",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "private": false,
5
5
  "description": "epoch-agent 契约层:工具 / 事件 / 权限 / 插件的类型定义,零运行时依赖",
6
6
  "repository": {