@ai-workbench/remote-agent 0.8.21 → 0.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -156
- package/dist/acp.d.ts +20 -15
- package/dist/acp.js +197 -224
- package/dist/agents.d.ts +0 -1
- package/dist/agents.js +2 -2
- package/dist/broker-runtime.d.ts +3 -5
- package/dist/broker-runtime.js +45 -342
- package/dist/broker.d.ts +6 -31
- package/dist/broker.js +42 -113
- package/dist/catalog-ssh.d.ts +2 -31
- package/dist/catalog-ssh.js +9 -39
- package/dist/claude-local.d.ts +1 -1
- package/dist/claude-local.js +40 -105
- package/dist/client.js +34 -127
- package/dist/close-diagnostics.d.ts +6 -20
- package/dist/close-diagnostics.js +13 -57
- package/dist/connect-contract.d.ts +4 -8
- package/dist/conversation-details.d.ts +0 -29
- package/dist/conversation-details.js +8 -99
- package/dist/employee-endpoint.d.ts +1 -3
- package/dist/employee-endpoint.js +8 -39
- package/dist/employee-exec.d.ts +4 -3
- package/dist/employee-exec.js +25 -13
- package/dist/employee-info.d.ts +5 -1
- package/dist/employee-info.js +16 -5
- package/dist/employee-location.js +3 -4
- package/dist/employee-mcp.js +44 -69
- package/dist/employee-native.d.ts +1 -3
- package/dist/employee-native.js +6 -27
- package/dist/employee-presentation.d.ts +0 -5
- package/dist/employee-presentation.js +0 -15
- package/dist/employee-provider.d.ts +3 -11
- package/dist/employee-provider.js +69 -205
- package/dist/employee-reasons.js +1 -5
- package/dist/employee-shell.d.ts +2 -1
- package/dist/employee-shell.js +10 -13
- package/dist/employee-ssh.d.ts +1 -3
- package/dist/employee-ssh.js +13 -16
- package/dist/employee-tools.d.ts +5 -5
- package/dist/failure-evidence.d.ts +2 -10
- package/dist/failure-evidence.js +12 -61
- package/dist/host-workspace.d.ts +4 -2
- package/dist/host-workspace.js +1 -1
- package/dist/index.d.ts +13 -43
- package/dist/index.js +190 -489
- package/dist/input.js +2 -3
- package/dist/local-user-turn.js +5 -6
- package/dist/mapping.d.ts +0 -3
- package/dist/mapping.js +0 -34
- package/dist/model-catalog.d.ts +2 -41
- package/dist/model-catalog.js +24 -282
- package/dist/model-configuration.d.ts +0 -3
- package/dist/model-configuration.js +8 -47
- package/dist/model-presentation.d.ts +1 -0
- package/dist/model-presentation.js +2 -2
- package/dist/permissions.d.ts +15 -0
- package/dist/permissions.js +30 -0
- package/dist/preflight-diagnostic.js +11 -22
- package/dist/preflight-payload.d.ts +1 -1
- package/dist/preflight-payload.js +2 -2
- package/dist/presentation.js +21 -41
- package/dist/provider.d.ts +12 -34
- package/dist/provider.js +17 -92
- package/dist/readiness.js +1 -7
- package/dist/remote-details.d.ts +41 -17
- package/dist/remote-details.js +84 -381
- package/dist/workspace-source.d.ts +1 -25
- package/dist/workspace-source.js +1 -138
- package/package.json +11 -12
- package/dist/catalog-diagnostics.d.ts +0 -16
- package/dist/catalog-diagnostics.js +0 -108
- package/dist/host-layout.d.ts +0 -8
- package/dist/host-layout.js +0 -9
- package/dist/job.d.ts +0 -17
- package/dist/job.js +0 -57
- package/dist/model-defaults.d.ts +0 -29
- package/dist/model-defaults.js +0 -62
- package/dist/oneshot.d.ts +0 -13
- package/dist/oneshot.js +0 -78
- package/dist/protocol-boundary.d.ts +0 -13
- package/dist/protocol-boundary.js +0 -49
- package/dist/provider-locale.d.ts +0 -19
- package/dist/provider-locale.js +0 -73
- package/dist/recovery-checkpoint.d.ts +0 -6
- package/dist/recovery-checkpoint.js +0 -71
- package/dist/recovery.d.ts +0 -51
- package/dist/recovery.js +0 -61
- package/dist/sdk-ssh-wrapper.d.ts +0 -2
- package/dist/sdk-ssh-wrapper.js +0 -34
- package/dist/stage-timing.d.ts +0 -31
- package/dist/stage-timing.js +0 -61
- package/dist/workspace-notice.d.ts +0 -47
- package/dist/workspace-notice.js +0 -273
- package/dist/workspace-source-confirmation.d.ts +0 -4
- package/dist/workspace-source-confirmation.js +0 -12
package/README.md
CHANGED
|
@@ -1,174 +1,45 @@
|
|
|
1
|
-
|
|
1
|
+
# AI Workbench 远程助手 · @ai-workbench/remote-agent@0.8.23 · 插件 → 添加插件
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
通过官方 DSH 插件入口使用 Claude(远程主机)与 Codex(远程主机)。登录和工作区来源由“远程主机连接”组件提供;员工在原生工作区和模型菜单中选择文件夹与型号。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
文件和命令在所选的本机或主机目录执行,订阅凭据留在主机。插件不改写 DSH 的默认模型,不为员工创建同名主机目录,不自动迁移旧会话的来源。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 会话行为
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
每轮启动一个新助手进程,按原生会话编号恢复上下文;不接回旧进程或重放上一轮输入。改变文件来源后请新建会话。
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
断线会结束本轮;操作可能已部分执行,请先检查文件。恢复连接后可在原会话继续。旧进程清理和技术详情记录尽力而为,不阻止下一轮。原生本机会话恢复的兼容性及实际设备结果见本轮交付证据,未验证项不作为已通过。
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
DSH 启动和打开模型菜单时读取一次主机型号列表。发送时不再查询目录或预核所选型号;所选型号不可用时,请在模型菜单重新选择。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## 执行位置与权限
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
- 员工选本机文件夹,就在员工电脑上执行;通道失败不会改在主机运行。
|
|
18
|
+
- 订阅凭据留在主机,不放进命令参数、日志或技术详情。
|
|
19
|
+
- 跟随 DSH 当前权限:完全权限不问、工作区内修改先问、仅可查看只读。需要审批时使用官方卡片。
|
|
20
|
+
- 一条会话对应一个工作区来源;换来源请新建会话。
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
Codex 员工端只使用随包提供的原生组件,通道等待本次组件的启动标记后才完成开通,不逐通道执行摘要或版本校验。当前员工端支持范围以发布验证记录为准,不让员工手填执行器路径。
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
本机附加扩展本次不启用,不修改本机配置。能安全显示的扩展名称会用普通提示说明;协议细节只进技术详情,不能安全显示的名称不打印原文。
|
|
22
25
|
|
|
23
|
-
##
|
|
26
|
+
## 管理员参数
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
参数经官方 Config schema 编辑,显式值优先。只有会话运行方式,没有运行模式选项或单次执行路径。
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
| 参数 | 默认值 | 作用 |
|
|
31
|
+
| --- | ---: | --- |
|
|
32
|
+
| acpMaxMessageBytes | 4194304 | 会话消息容量 |
|
|
33
|
+
| brokerMaxFrameBytes | 2097152 | 主机回传单段容量 |
|
|
34
|
+
| brokerControlMaxBytes | 1048576 | 主机会话管理回复容量 |
|
|
35
|
+
| employeeShellKillGraceMs | 1000 | 本机命令连接取消后的清理宽限毫秒 |
|
|
28
36
|
|
|
29
|
-
|
|
37
|
+
容量超限明确失败,不截断成有效消息。参数范围、生效时机和调整后果由官方 schema 与参数页显示;以上四条执行不变量不可关闭。
|
|
30
38
|
|
|
31
|
-
|
|
39
|
+
## 技术详情与交付
|
|
32
40
|
|
|
33
|
-
|
|
41
|
+
技术详情只写官方 profile 下本地私有日志,并由既有技术详情界面展开显示。写入失败不覆盖原始错误、不等待远端投递回执。每个运行环境只记录首次关闭原因;首先观察到的原因不自动等同跨层根因。
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
工程验证、独立审查、固定包摘要及实际设备验收分别记录在 `docs/evidence/2026-10-24-X-executor-readiness/` 和项目 X 回执中。插件不修改 DSH 核心,不添加启动器或自定义 profile。
|
|
36
44
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
## 管理员配置
|
|
40
|
-
|
|
41
|
-
在官方 **设置 → 内置插件 → 远程助手参数** 查看和修改本插件全部八项参数。页面走官方ConfigForms与settings.plugins.tab,不新增连接设置节、不改DSH核心。每项列明默认值、范围、生效和调整后果;固定never及正确性约束明确列为不可关闭。当前profile不可写、服务未就绪或远程Web不支持持久写入时禁写并说明原因。保存携带编辑起点revision,冲突保留草稿、不自动重试;恢复继承值发unset,不写死默认。原生模型Edit卡未增加表单;“打开配置文件”仍可用,但不作为参数可见性的替代。
|
|
42
|
-
|
|
43
|
-
| 设置 | 默认 | 范围与用途 |
|
|
44
|
-
|---|---|---|
|
|
45
|
-
| mode | session | Codex可选session/one-shot,切换后新建会话;Claude固定session |
|
|
46
|
-
| acpMaxMessageBytes | 4194304 | 正整数,会话单条消息容量,默认4MiB;超限不截断 |
|
|
47
|
-
| brokerMaxFrameBytes | 2097152 | 正整数,主机回传单帧容量,默认2MiB |
|
|
48
|
-
| brokerControlMaxBytes | 1048576 | 正整数,主机会话管理回复容量,默认1MiB |
|
|
49
|
-
| oneShotSandbox | workspace-write | Codex单次可选read-only/workspace-write/danger-full-access |
|
|
50
|
-
| oneShotApproval | never | 当前单次通道无中途交互审批;不代表自动批准 |
|
|
51
|
-
| employeeShellKillGraceMs | 1000 | 0至2147483647的整数;取消后外层SSH清理宽限毫秒。取消结果仍未知,不将宽限作为员工端退出证明 |
|
|
52
|
-
| employeeHttpMcpPolicy | ignore | reject / ignore;新连接生效。默认ignore仅剔除原生会采用的本机HTTP扩展投影后继续;可选reject保留固定拒绝原因。不改员工配置。忽略的HTTP扩展按名称用员工用语提示,stdio名称及协议细节仅进技术详情 |
|
|
53
|
-
|
|
54
|
-
原六项默认保留;D20新增employeeShellKillGraceMs供管理员调节自己的SSH清理。非法值拒绝,删除覆盖遵循官方配置继承。SSH可执行程序从当前PATH发现,不写死某一系统路径。原始错误码保留在官方失败代码/技术详情,原始stderr、凭据和URL不展开。
|
|
55
|
-
|
|
56
|
-
提供方的中文文案保留已有英文名称及既有locale机制。提供方名称不附状态后缀,由原注册replace更新,不自造刷新或客户端品牌分支。
|
|
57
|
-
|
|
58
|
-
## 安装产物
|
|
59
|
-
|
|
60
|
-
包内已含`dist`中的JavaScript、类型和客户端产物及locale/官方patch,无TypeScript源码、测试、证据或主机诊断脚本。无需postinstall、prepare或下载/编译步骤;依赖使用已固定的公开npm版本并由官方安装器正常解析,不把第三方源码/测试夹入X包。`@deepseek-ai/*`均为已测精确peer,由客户端提供;连接插件L另装。原配置id/settingsNs与两个provider id保持,旧包升级需经官方管理先卸载再装新包,不并装两份X。
|
|
61
|
-
|
|
62
|
-
## 验证范围
|
|
63
|
-
|
|
64
|
-
早期npm准备结果与限制记入源码仓`docs/evidence/2026-10-21-X-npm-prep/`(不进npm包)。0.8.19组合工程结果见`docs/evidence/2026-10-24-X-aw4-0819/RESULT.md`。先前真实emp-a协议诊断及固定三件套GUI是不同轮次,不能代替本次新包安装门。L完整绑定/登录、真实模型、物理断网、HanaMesh及leo E以实际已执行证据为准。主机命令安装来自S,X不修改S仓/安装脚本或登录状态。
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
## 历史实现记录(0.8.1–0.8.16)
|
|
68
|
-
|
|
69
|
-
以下按版本保留当轮的设置数量、依赖、首红与验收状态;“本轮/当前”均指对应历史轮次。0.8.21当前配置以开头、管理员八项表及末节为准;这些历史工程记录不替代本版产品验收。
|
|
70
|
-
|
|
71
|
-
D19(0.8.1):相邻正文增量合成连续文本块,工作区首次说明合入真实回复,按官方持久记录核对后才回报“已记入可核对回复”。这不代表界面已经显示。
|
|
72
|
-
|
|
73
|
-
技术详情由 L 0.7.11 的唯一“远程主机连接”设置节展示,正文只放模型文本。命令目录保留完整描述;未知事件和工具输入输出保留字段、JSON类型及处理结果,未获准原文明确脱敏,数字用量可核对。没有 `remoteConversationDetails:1` 时明确提示“技术详情暂不可用”,本轮不发送模型请求。X 在官方当前 profile 的 `ai-workbench-remote-agent/diagnostics/` 保存私有诊断日志(目录700、文件600、落盘同步);写入/归属/顺序/容量失败中止本轮,不自动重发、换代重投、过期或淘汰。结果未知时只读核对原事件完整回执,未找到仍保持未知。X本轮无新增设置/阈值;L的单事件容量和分页设置在L设置节可见。
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
0.8.2 登录检查原交付需要 L `~0.7.11`(本统一版peer为`~0.7.20`),失败来源及固定分支保留到 L“登录前技术详情”(`loginDiagnostics:1`),员工正文保持原文。按 L 明确的本品牌 queued/checking/authorizing 状态订阅等待;不以全局checking猜测在途,不新增刷新、轮询、超时或重试。每轮ensureReady仍是合同规定的显式检查,L的新可信结果可以替代旧检查,较早返回不得覆盖它。
|
|
77
|
-
|
|
78
|
-
L安全规范的officialReason原串完整保留;旧/不支持格式明确记OFFICIAL_REASON_UNSUPPORTED与字节数/SHA,秘密原文不保存。L0.7.11的LOGIN_INSTANCE_MISMATCH记录通过observedLoginInstanceId与原始login.instanceId保存实际观测ID,事件及connection仍绑定当前可信ID/代次;L技术详情和X私有日志均保留真实双ID,不归一、不清空快照。复合未知官方原因以固定summary完整保存OFFICIAL_REASON_UNSUPPORTED及bytes/SHA,不交原文。X私有原快照先同步落盘,再追加L;ACK未知只读核实原事件,跨代不重写/重发。此版本的工程验证不替代leo员工路径复验,真实故障根因尚未证实。
|
|
79
|
-
|
|
80
|
-
0.8.3 会话恢复:正常关闭客户端保留原broker;重开仅在私有clean检查点、完整ACP消息边界、原broker UUID及官方最新持久回复一致时接续。否则记录原因、独占并确认结束旧会话后新建,正文说明一次;旧审批不代答,按官方当前步骤保留本批全部输入,不重发历史未确认输入。S0.4.10 的实际冻结controlMaxBytes用于分块,心跳/等待严格消费主机公开策略与remainingLeaseMs;没有新增X超时或重试设置。编排00:05决定:0.4.10以前的x/a仅为测试会话,X不接入、不代答也不结束它们,直接新建r会话并说明;旧进程由编排安装S0.4.10时一次性整理。重开续接只对S0.4.10新broker承诺。
|
|
81
|
-
|
|
82
|
-
D22阶段耗时进入技术详情;D23文件审批用中文动作,原工具名和会话ID进入技术详情。恢复记录沿官方profile的ai-workbench-remote-agent/recovery,目录700/文件600/fsync,无过期或淘汰。当时产品设置为六项,无新增默认/阈值。含真实S进程的工程测试按文件串行运行,避免多个持久化/编译测试同时争用磁盘;测试观察期限和所有断言不变,工程证据不等于leo验收。
|
|
83
|
-
|
|
84
|
-
D21(0.8.5):两个品牌的官方模型菜单从 L 的 `modelCatalogTarget:1` / `getModelCatalogTarget` 取得当前可信员工目标,再只读调用 S 的 `aw-model-catalog --provider codex|claude`。目录按 host-user 作用域展示完整模型与逐模型推理等级,保留远端标识原值;失败显示“无法获取模型列表:原因”,不登录、不创建项目、不返回替代模型。L 必须宣告该正式能力,S 必须安装保护入口;这两项未就绪时不能据组件测试声称菜单可用。
|
|
85
|
-
|
|
86
|
-
每轮先核对目录代次和所选模型,再经 ACP 逐项配置模型及推理等级,收到完整配置确认后才发送输入。Claude 别名每轮须有精确的模型配置成功回执,并由同一员工主机、同一连接代际的目录唯一映射到具体型号。具体型号注明来自主机目录,会话未单独回报;旧恢复记录不作本轮证据。目录缺项、映射不唯一、回执不符或身份/代际变化时不发送输入。所选值、远端确认值及型号来源仅在恢复标识与技术详情保留,插件不向真实回复追加技术参数,确认配置不等于验证推理效果。连接/身份/目录变化清除旧确认;远端清理待定或结果未知时阻止派发,不自动清理重试或另开替代会话。Codex 单次模式当前不能确认此选择,会在发送前明确拒绝。新增设置 0;本轮工程证据、真实只读链路与产品未验项见 `docs/evidence/2026-10-22-X2-D21/`。
|
|
87
|
-
|
|
88
|
-
0.8.5统一包原依赖L `~0.7.13`;0.8.16原对齐L `~0.7.19`;当前0.8.21对齐L `~0.7.20`。D8模型目录双事件长期监听保留;同epoch的recovery提示/失败消息变化不触发执行状态失效,真实实例/epoch/phase/可信目标/登录变化仍失效。完整D9两品牌正文/状态/就绪门呈现按编排00:50允许的范围记下一版,本版不宣称已消费完成;L的connectionMessages.administratorAfterMs仍只由L管理;employeeHttpMcpPolicy自0.8.19新增,见后文;0.8.20无新增设置。
|
|
89
|
-
|
|
90
|
-
D18(0.8.6):Codex 需要主机自有 adapter `2.2.2-aw.1` 的明确新建会话上下文政策,官方 CLI 仍为未改的0.160.1。系统/开发者要求仅在新建时生效;恢复时与初建摘要相同则正常恢复且省略新建专用字段,不声称恢复接口会更新指令。要求不同或清空时,在同一真实回复说明“会话要求已变化,已新建 Codex 会话继续处理,原会话仍保留。”,并新建远端承接公开对话,保留旧标识和查询记录;旧/非法初建摘要明确拒绝,不能猜测。
|
|
91
|
-
|
|
92
|
-
新会话承接公开用户/助手文本与核验图片,内部reasoning留在旧记录并记录排除数量,官方offload图片保持占位语义、不重读字节。工具角色、工具块、file和未知类型没有可靠公开投影时明确在新建/发送前拒绝;不序列化内部恢复或工具数据代替正文。新建后重新核对模型/等级并重置用量基线;技术详情只记原因、旧/新标识、摘要及承接范围,不保存系统上下文原文。该政策当前仅Codex,Claude保持上述原策略。新增设置0;证据及主机离线闭包见 `docs/evidence/2026-10-22-X2-D18/DELIVERY.md`。S安装和真实员工路径仍由编排安排。
|
|
93
|
-
|
|
94
|
-
0.8.6仅完成D18与既有恢复的集成,D9完整呈现仍待X后续交付;系统/开发者上下文只支持公开text,非text在任何远端生命周期前明确拒绝。
|
|
95
|
-
|
|
96
|
-
## D20 Claude范围与依赖
|
|
97
|
-
|
|
98
|
-
Read/Write/Edit/Glob/Grep由员工DSH同UID后端执行;Bash经L严格SSH到S同代桥再经N员工SSH端点执行,命令正文只走stdin。每次调用核官方会话唯一工作区、L实例/epoch/绑定/目录身份、N真实prepare及S实时target。取消、SSH255或退出证明缺失记录UNKNOWN,不重放。只关闭自己的绑定执行器,不撤其他工作区或设备服务。cwd不是权限根,绝对路径和上级访问遵循真实OS权限;不增加目录白名单。
|
|
99
|
-
|
|
100
|
-
本机执行在每个DSH会话首次用一句“文件和命令在你的电脑上执行”说明;既有0.8.14说明也计为已显示。完整限制每轮记录在技术详情,遇到不支持的操作再明确提示:子代理和harness内部直接工具调用尚未证明可在员工端执行,可能仍在主机;已识别的原生未改道工具/Agent审批拒绝。PDF等二进制读取及后台命令明确不支持,不静默主机代跑。六类组件/MCP/配置转交证明不等于真实Claude原生alias执行或真实员工链路通过。实际Git依赖员工环境中已有Git,缺失会返回实际命令失败,不在主机替代,也不自动安装。
|
|
101
|
-
|
|
102
|
-
本地目前仅支持macOS(arm64/x64);Grep固定携带微软@vscode/ripgrep-universal1.18.0的两架构原字节并核SHA,无员工PATH搜索或安装下载。主机需S0.4.11,N可选peer~0.4.4(缺失明确报能力缺项),L当时~0.7.18,本地接纳与D19工程路径已接,真实员工端门仍开放。无DSH/CLI修改、额外设置节或npm发布。
|
|
103
|
-
|
|
104
|
-
## 合并保留的 Codex D20 路线
|
|
105
|
-
|
|
106
|
-
D20(0.8.8开发记录):本地来源的Codex原生文件与命令通过固定官方CLI0.160.1的实验执行环境接口改到员工电脑,cwd来自员工已选择的原生工作区,Git使用本机现有仓库。模型、登录及全局CODEX_HOME助手配置仍由远程主机提供;工作区AGENTS与所测原生子代理跟随员工执行环境。员工执行组件随标准npm依赖安装后自动发现、核版本和SHA;当前只支持已验证的Apple芯片Mac,其他平台明确拒绝,没有PATH替代或让员工手填路径的步骤。
|
|
107
|
-
|
|
108
|
-
本地会话需要N0.4.4正式公共服务、S0.4.11员工SSH桥和自有主机适配器2.2.2-aw.2。S现有aw.1保护安装器不能直接消费aw.2,aw.2保护消费仍须提供方交付。已消费正式L0.7.17本地user-turn品牌接纳:仅实际本轮human输入可建立CAS预期,接纳先于ensureReady的主机状态命令及本轮模型目录;每轮详情sink固定自己的localAcceptanceId,append通过第二参数传递。换轮冲突立即停本轮,不重试或借历史/legacy接纳。本轮主机 aw.2 实装失败,原因是 UNSAFE_MODE_MISMATCH,S 正在修复;Codex 线待主机修复后另验。真实员工端链路仍为NOT_RUN,工程真包消费不代表真实路径或GUI通过。
|
|
109
|
-
|
|
110
|
-
当前明确不支持本地单次模式、断开后的冷恢复/load/fork、快捷命令、主机文件报告及附加MCP/hooks/plugins。主机同路径的启用项目配置、会话层项目发现/信任覆盖也会明确拒绝;配置检查不静默清空或改写原配置。普通原生shell/patch/fs使用所选员工环境,未覆盖的辅助入口保留具体原因到员工回复与技术详情。位置、身份或代次改变只撤回对应执行器,在途结果保持UNKNOWN,不自动重放。新增产品设置0,执行通道和桥队列沿已有`acpMaxMessageBytes`控制容量。当前工程进度、首红和开放门见`docs/evidence/2026-10-23-X2-D20-088/STATUS.md`。
|
|
111
|
-
|
|
112
|
-
0.8.10仅增加公开插件参数页,不改变上述七项执行语义。mode/ACP/frame/control/grace的修改不改变运行中当轮;保留会话下一轮配置签名不一致会停止,须新建会话。ACP容量还在下一次独立目录查询读取新值。sandbox与approval仅单次通道适用,当前单次仍明确拒绝执行。GUI与真实链路门仍NOT_RUN;本次由编排在 leo 验证 Claude 线、设置界面和 D24 重开,Codex 线另验。完整逐项盘点见 docs/evidence/2026-10-23-X-settings-0810/INVENTORY.md。
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
## 0.8.11 模型目录与选择
|
|
116
|
-
|
|
117
|
-
不提供推理档位的模型省略官方 reasoning 元数据;单项资料不合法时只剔除该项,在官方“设置 → 模型”页按模型名称显示中文原因和诊断代码。整组查询失败在菜单显示中文,可到同一设置页核对技术原因。没有会话的目录查询不写入其他会话的技术详情。
|
|
118
|
-
|
|
119
|
-
只修正属于本插件的旧版或失效全局默认:Claude 只取目录 value 为 default 的唯一别名,resolvedModel 原值包括 null 都保留;Codex 只取 source.isDefault 为 true 的唯一项。有效的员工明确选择保持不变。没有唯一默认时不选首项,发送前提示“请先选择模型”。官方默认设置只有字符串 model、没有 nullable 清除接口;此时写入空字符串,原生界面可能显示提供方加斜线,而无实际模型选中。通过官方 configEditor.entries/edit 找到唯一默认模型设置,在配置锁内重新核对员工选择后才更新;不使用缺少条件保护的 saveSelection。保存失败或选择已变化时在官方模型设置页明示。全局默认也会影响没有独立选择的旧空白会话,已有持久模型选择的老会话不改。
|
|
120
|
-
|
|
121
|
-
老会话存着 remote 时,请在该会话的模型菜单重新选择当前目录中的型号。插件不会替员工改写会话选择。
|
|
122
|
-
|
|
123
|
-
官方 loop 在 prepareCall 成功后才把原话追加到对话正文。插件不能更改此核心顺序;由实际 X 准备入口标记、同一错误对象及同一信号可核对的零发送准备失败,会在官方 agent 空闲后,把原话(原 ID、附件及顺序)恢复到官方持久待发送队列,核验落盘后在模型设置诊断中说明;员工可在原生输入区待发送队列查看。恢复本身不会唤醒、重试或再发模型请求;更换模型后由员工手动发送,新的外部输入仍可能触发官方队列消费。取消、卸载、未知错误、已进入模型派发、无法证明来自 X 的官方外围元数据/effort 校验错误,以及早于公开 pre-step 的附件准入/assembly 失败不盲目重排。没有承诺把这些失败直接补成正文气泡;这一能力位于官方 loop 的核心追加顺序,插件的最佳可用结果是持久待发送队列。恢复/持久化不能确认时显示明确诊断。
|
|
124
|
-
|
|
125
|
-
工程验证使用 emp-a 实际完整 Claude 13 项及 Codex 7 项只读目录,交官方 rc.2 校验;不代表本版 leo 菜单、输入显示或真实模型执行已经验收。新增设置、上限、阈值为 0;七项参数沿用 0.8.10。
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
0.8.11 同时包含 main f8cddc5 的旧来源一次确认:先确认唯一原生工作区、原始输入与连接代次,再按 L0.7.17 公开 CAS 选择本机来源,接纳后继续原本这一轮。不会自动保留主机作为替代,也不会重发旧任务。确认前后失败的私有耐久记录随本版提供;L 可见的前置诊断入口尚待 L0.7.18 后续交付,本版不宣称已显示该详情。
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
0.8.12目录诊断修复:入口为“设置 → 模型 → 模型目录诊断”,官方既有 settings.models.footer 公开扩展位直接显示;“内置插件 → 远程助手参数”也可只读查看,即使参数命名空间暂未提供也保留入口;参数编辑使用当前插件公开Loader entry id对应的官方ConfigForms。该页只读本机记录,刷新不查询主机、不登录、不发送待发送原话。模型页原错误行仍通过公开提供方目录发布,诊断数据不再调用directory.replace或发布适配器拓扑变化;changed只负责真实连接/目标代次变化,菜单提示指向上述实际入口。
|
|
132
|
-
|
|
133
|
-
每次目录SSH保独立事件ID、品牌、UTC起止、耗时、PID、L实例/epoch/phase、严格L argv/目标/known_hosts/ProxyCommand、退出码/信号、完整脱敏stderr与原字节数/SHA256、stdout字节数/SHA及主机typed错误;不记录凭据或整份模型目录。日志在官方profile的 `ai-workbench-remote-agent/catalog-diagnostics/<eventId>-started.json` 与 `-closed.json`,700目录/600文件、fsync;无自动过期,最新两品牌在界面可展开,旧调用保留不可变历史。容量沿现有`acpMaxMessageBytes`,超限停止并标记stderrComplete=false,UTF-8替换另显式标记,未返回部分模型;保存失败明确显示仅内存,不冒称耐久。旧0811丢失的stderr无法还原。同品牌、instanceId、epoch只合并仍在进行的查询;完成后不缓存,身份/代际/可信目标改变即作废。调用方各持独立lease/取消与错误身份,一个取消不会取消其他等待者;全员取消才撤销该次查询,取消中的旧进程结束前同作用域新调用等待清理。登录检查的显示变化不会取消无需登录的host-user目录。此次没有增加超时、重试、SSH连接复用或产品设置;不等于255、Claude主机错误及N层根因已修复,也未进行leo GUI验收。
|
|
134
|
-
|
|
135
|
-
0.8.14 不把空菜单、非穷举 picker、可选 UI category/label 或同值配置通知当作额外发送门槛;每轮仍要求可靠模型入口与 fresh exact setter ACK。本轮完成后的配置变化只记录 warning,保留真实回复与 finish,并明确未获单独的实际执行型号回报。同一身份、代际与可信目标的 needCode/诊断变化只记 info;真实身份、代际、目标或能力失效仍撤回。每次关闭/取消保留 caller、字段前后值和首次观测原因(不等于根因)。新增配置、阈值、超时、重试为 0。
|
|
136
|
-
|
|
137
|
-
0.8.16 不新增 Config、默认值、阈值、超时或重试。首因可见、旧代不重投、实际选择与绑定一致属于不可关闭的正确性不变量。目录完成结果不用于后续请求缓存;活跃租约仅保留更新观测的选择有效性证据,释放即撤登记。断连/错代仍保留原详情信封及未确认状态,仅按旧合同读 receipt 核验。`unconfirmed-<eventId>.json` 私有记录追加是否尝试及失败阶段/固定码,不能当作 L 的 ACK;员工可见原因沿官方错误消息,无新增面板。
|
|
138
|
-
|
|
139
|
-
## 本机执行的核验位置(继承0.8.18,不可关闭)
|
|
140
|
-
|
|
141
|
-
L接纳每轮真实输入时核对实际目录和N端点/代次。X只在该代执行通道open时向S核对一次target,并继续验证员工执行器固定SHA和官方版本;原生注册发生在open完成之后。之后broker输入及每个native RPC只核对既有内存连接、工作区绑定和接纳事实,撤销来自已订阅的L连接/位置、N网络事件和执行SSH关闭。N实例/代次改变会重新接纳并建立新通道,旧流不会跨代迁移。
|
|
142
|
-
|
|
143
|
-
这属于执行位置与已接纳输入的一致性不变量,没有关闭设置。已取得owned keyed live的会话失败先交还官方会话并显示“正在确认主机清理”,详情落盘及条件kill/list随后在原清理promise进行;preflight、resolve、未取得live、无key/单次模式及detach/shutdown保持原await语义;同一会话仍由原cleanupFailure/未知送达门阻止不安全重发。没有新增超时、重试、模型限制或中止检查。技术详情事件EMPLOYEE_EXECUTION_VALIDATION_POLICY列出同一核验位置。
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
## 0.8.19 / aw.4 本机 MCP 与失败原因
|
|
147
|
-
|
|
148
|
-
按 Codex 0.160.1 原生层合并和 HTTP/header 能力过滤处理员工 MCP。stdio(例如 node_repl)不拒绝;0.8.20起仅在技术详情显示“已忽略本机 stdio MCP: 名称”,不注入模型正文;不转发其 command、args、env 值,不修改员工文件。真正的 HTTP 条目使用具名设置 employeeHttpMcpPolicy:默认 reject 保留 AW_EMPLOYEE_EXECUTOR_MCP_UNSUPPORTED;ignore 只在会话投影剔除后继续。管理员可在现有远程助手参数页及官方配置文件入口编辑,范围、默认值、生效与后果均可见。此项在新连接冻结,修改不增加中止当前轮或旧会话的条件。stdio 的过滤来自固定原生协议,不是可调阈值。
|
|
149
|
-
|
|
150
|
-
aw.4 仅在客户端声明 closeReason:1 后发送白名单 close.reason;旧端形状保持兼容。新版 X 接到明确远端 close 后释放员工 carrier,保留在途主机 session/new 回应,再由原本收尾释放 broker;非预期 EOF 仍按既有路径关闭。技术详情分别显示运行原因、首次观察和远端固定关闭原因;它们不因详情保存或清理失败而被替代。成功 connection-confirm 按阶段汇总次数和耗时,失败仍即时记录;实际确认操作不减少,无新增超时、重试、慢阈值或中止检查。
|
|
151
|
-
|
|
152
|
-
03:44 现场的 stdio 首因仍属强推断,主机当时原码没有落盘;离线回放不能补造现场证据。aw.4 由编排审后交 S 安装,客户端固定包不由 X 发布;真实 leo Sol/Luna“你好”及写文件验收单独记录,不能用离线或包门代替。
|
|
153
|
-
|
|
154
|
-
## 0.8.20 员工正文与剩余产品门
|
|
155
|
-
|
|
156
|
-
本机扩展处理信息只进入既有技术详情,成功建会与失败关闭均不向员工正文注入stdio/MCP或扩展名;模型回复和固定失败原因保持原语义,不另加说明气泡。此项是界面呈现不变量,不新增设置、阈值、超时、重试或中止条件;主机aw.4字节不变。
|
|
157
|
-
|
|
158
|
-
实际L0.7.22组合负例另确认:目录替换时L先发布具体Need,X原有取消等待会盖成ABORTED。现只保留同一主机观察器已记录的具体Need及员工下一步动作;用户主动取消和非公开错误保持原分支,不新增目录核验、撤销条件、请求或等待。
|
|
159
|
-
|
|
160
|
-
编排10-24 06:16已确认L0.7.22/X0.8.19/N0.4.5/aw.4在leo本机目录Sol你好35秒完成,同会话自验-codex-1024h.md约30秒写入本机且内容正确。这是编排产品回证;本版仍须另验Luna本机你好及写文件、Sol默认工作区主机目录写文件。仅在N回执明确交还GUI后走SSH脚本,首红即停,系统弹窗不点。工程/包证据与各项实机结果见源码docs/evidence/2026-10-24-X-0820/RESULT.md。
|
|
161
|
-
|
|
162
|
-
## 0.8.21 Claude执行核验的位置(不可关闭)
|
|
163
|
-
|
|
164
|
-
主机目录在每轮接纳时由L核验登录、可信主机与物理目录;之后Claude/Codex每条消息、审批回复、检查点只核对内存中的连接、登录与工作区状态,沿原L连接/位置事件撤销。Claude本机每轮真实输入仍先由L接纳;租约打开时核验物理目录、L上下文、N prepare与S同代target,之后只核对内存里的连接、位置、网络和租约信号。旧租约被事件撤销后不能复活,不迁移跨代在途操作,不回退主机;实际本机工具入口保留原物理目录核验与永久撤销,命令执行前原dev/ino/UID核对不变。没有关闭开关、超时、重试或新增中止条件。管理页固定约束及每轮HOST_EXECUTION_VALIDATION_POLICY/CLAUDE_EMPLOYEE_VALIDATION_POLICY列明核验点与撤销来源。
|
|
165
|
-
|
|
166
|
-
Claude文本分片扩展按官方messageId汇总一条ACP_MODEL_METADATA,逐片脱敏快照及顺序保留;官方无messageId时按连续正文/思考段汇总,不捏造官方消息身份。响应、正常收尾及失败收尾都会提交未写扩展,正文/工具/审批转换原样。主机SSH偶发10–15秒受理卡顿、L单条写入耗时的底层根因仍未查明;去掉重复核验不代表这些问题已修复。leo两条路径的真实耗时与包交付证据另记,不以源码门冒充产品通过。
|
|
167
|
-
|
|
168
|
-
## 0.8.21 / aw.5 owner HTTP 扩展策略
|
|
169
|
-
|
|
170
|
-
owner 10-24决定:employeeHttpMcpPolicy 默认由 reject 改为 ignore,管理界面仍保留 reject。客户端schema、缺省请求与aw.5主机缺省统一;管理员已显式保存的 reject 不被覆盖。新连接冻结策略,修改设置不新增中止当前轮或旧会话的条件。ignore仅清空本次环境配置投影,不改员工文件、不启动扩展、不新增网络路径;显式reject保留AW_EMPLOYEE_EXECUTOR_MCP_UNSUPPORTED。原aw.4固定字节不变,aw.5四输入经编排审后交S受保护安装。
|
|
171
|
-
|
|
172
|
-
被忽略的HTTP扩展仅把安全名称转成员工提示,例如“你电脑上的『Jira』扩展本次不可用。”,不加入MCP/HTTP等协议词;原生能力过滤掉的HTTP扩展同样提示。同轮相同提示只出一次,名称用安全文本引用,控制字符名称不打印,使用员工通用说明。stdio始终只进技术详情;模型自身文本不滤词。完整协议原因和计数仍在技术详情,失败首因保持。此提示是执行事实不变量,没有另设开关、条数/长度阈值、超时、重试或新的中止检查。
|
|
173
|
-
|
|
174
|
-
客户端统一由X2在D22与本增量合并main后出唯一0.8.21;本分支不产另一份同版包。0.8.20固定包及其真机记录不因本次默认值变化而重写。aw.5安装与0.8.21真实HTTP提示验收另记,源码/离线测试不冒产品通过。
|
|
45
|
+
远程助手参数页只显示官方 ConfigForms 当前值,不提供保存、放弃或恢复继承值;修改请使用 DSH 官方 Config“打开配置文件”入口。
|
package/dist/acp.d.ts
CHANGED
|
@@ -3,18 +3,24 @@ import * as stable from '@agentclientprotocol/sdk';
|
|
|
3
3
|
import * as acp from '@agentclientprotocol/sdk/unstable';
|
|
4
4
|
import { NeedError, type Need } from './remote.ts';
|
|
5
5
|
import type { BrokerTransport } from './broker.ts';
|
|
6
|
-
import { StageTiming } from './stage-timing.ts';
|
|
7
|
-
import { type AcpRecovery } from './recovery.ts';
|
|
8
6
|
import { type SanitizedObservation } from './conversation-details.ts';
|
|
9
7
|
import { type ModelConfigurationSnapshot } from './model-configuration.ts';
|
|
10
8
|
import type { EmployeeRouting } from './employee-relay.ts';
|
|
11
9
|
export type ApprovalOutcome = 'allowed-once' | 'rejected' | 'cancelled' | 'unavailable';
|
|
12
10
|
export interface AcpHooks {
|
|
13
11
|
closeDiagnostics?: CloseDiagnostics;
|
|
14
|
-
timing?: StageTiming;
|
|
15
12
|
onUpdate?: (notification: acp.SessionNotification) => void;
|
|
16
13
|
onResponse?: (response: acp.PromptResponse) => void;
|
|
17
14
|
approve?: (request: acp.RequestPermissionRequest, signal?: AbortSignal) => Promise<ApprovalOutcome>;
|
|
15
|
+
/** A grant belongs to the exact official permission generation that asked it. */
|
|
16
|
+
approvalGuard?: () => {
|
|
17
|
+
signal: AbortSignal;
|
|
18
|
+
isCurrent(): boolean;
|
|
19
|
+
};
|
|
20
|
+
promptGuard?: () => {
|
|
21
|
+
signal: AbortSignal;
|
|
22
|
+
isCurrent(): boolean;
|
|
23
|
+
};
|
|
18
24
|
onNeed?: (need: Need) => void;
|
|
19
25
|
onEmployeeNotice?: (notice: string) => void;
|
|
20
26
|
onDetail?: (detail: Readonly<SanitizedObservation>) => void;
|
|
@@ -27,7 +33,6 @@ export interface EmployeeExecutionMeta {
|
|
|
27
33
|
workspaceId: string;
|
|
28
34
|
cwd: string;
|
|
29
35
|
acpMaxMessageBytes: number;
|
|
30
|
-
httpMcpPolicy?: 'reject' | 'ignore';
|
|
31
36
|
}
|
|
32
37
|
export interface AcpStartContext {
|
|
33
38
|
systemPrompt?: string;
|
|
@@ -56,6 +61,7 @@ export declare class AcpSession {
|
|
|
56
61
|
private codexNewSessionOnly;
|
|
57
62
|
private creatingReplacement;
|
|
58
63
|
private employeeMeta?;
|
|
64
|
+
private employeeRouting?;
|
|
59
65
|
private employeeNegotiated;
|
|
60
66
|
private configuration?;
|
|
61
67
|
private configRevision;
|
|
@@ -63,6 +69,12 @@ export declare class AcpSession {
|
|
|
63
69
|
private selecting;
|
|
64
70
|
private pendingConfigurations;
|
|
65
71
|
private dispatchedPrompts;
|
|
72
|
+
private readonly promptPermissions;
|
|
73
|
+
private nativeModeRevision;
|
|
74
|
+
private nativeModeId?;
|
|
75
|
+
private nativeModeSource?;
|
|
76
|
+
private selectedPermission?;
|
|
77
|
+
private validateNativePermission;
|
|
66
78
|
get promptDispatchCount(): number;
|
|
67
79
|
get modelConfiguration(): ModelConfigurationSnapshot | undefined;
|
|
68
80
|
get models(): readonly import("./model-configuration.ts").ModelCatalogValue[];
|
|
@@ -71,10 +83,11 @@ export declare class AcpSession {
|
|
|
71
83
|
private resetConfiguration;
|
|
72
84
|
private lifecycleConfiguration;
|
|
73
85
|
selectModel(model: string, effort?: string, signal?: AbortSignal): Promise<ModelConfigurationSnapshot>;
|
|
74
|
-
|
|
86
|
+
/** The permission selector controls real privilege, independently of model UX.
|
|
87
|
+
* Re-apply on every dispatch/restoration; a historical value is not an ACK.
|
|
88
|
+
* ACP permits a mode change while a prompt is active. */
|
|
89
|
+
selectPermissionMode(mode: string, signal: AbortSignal | undefined, brand: 'claude' | 'codex'): Promise<void>;
|
|
75
90
|
private reports;
|
|
76
|
-
private reportingFailure;
|
|
77
|
-
private readonly timing;
|
|
78
91
|
private stage;
|
|
79
92
|
get diagnostics(): readonly Readonly<SanitizedObservation>[];
|
|
80
93
|
private detail;
|
|
@@ -82,7 +95,6 @@ export declare class AcpSession {
|
|
|
82
95
|
private employeeNoticeUnshown;
|
|
83
96
|
private employeeInfo;
|
|
84
97
|
private need;
|
|
85
|
-
private checkReporting;
|
|
86
98
|
constructor(transport: acp.Stream | acp.AgentApp | stable.AgentApp, hooks: AcpHooks);
|
|
87
99
|
/** A rejected request on an already-closed SDK never reaches this write.
|
|
88
100
|
* Once a transport write starts, failure remains delivery-unknown. */
|
|
@@ -91,18 +103,11 @@ export declare class AcpSession {
|
|
|
91
103
|
get id(): string | undefined;
|
|
92
104
|
get capabilities(): Readonly<acp.AgentCapabilities>;
|
|
93
105
|
get startMethod(): AcpStartMethod | undefined;
|
|
94
|
-
get checkpoint(): AcpRecovery | undefined;
|
|
95
|
-
restore(cwd: string, saved: AcpRecovery, context: AcpStartContext, verifiedSameContext?: boolean): void;
|
|
96
106
|
validatePrompt(prompt: acp.ContentBlock[]): void;
|
|
97
|
-
validateContext(context: AcpStartContext): void;
|
|
98
|
-
validateNewSessionContext(context: AcpStartContext): void;
|
|
99
107
|
setHooks(hooks: AcpHooks): void;
|
|
100
108
|
get closed(): Promise<void>;
|
|
101
|
-
private validateNewContext;
|
|
102
109
|
start(cwd: string, resumeId?: string, signal?: AbortSignal, context?: AcpStartContext, prompt?: acp.ContentBlock[]): Promise<string>;
|
|
103
110
|
/** Codex context is immutable after creation; keep the old remote session intact. */
|
|
104
|
-
newContextSession(context: AcpStartContext, signal?: AbortSignal): Promise<string>;
|
|
105
|
-
updateContext(context: AcpStartContext, signal?: AbortSignal, force?: boolean): Promise<AcpStartMethod | undefined>;
|
|
106
111
|
prompt(input: string | acp.ContentBlock[], signal?: AbortSignal): Promise<acp.StopReason>;
|
|
107
112
|
close(cause?: CloseCause, error?: Error): void;
|
|
108
113
|
}
|