@sema-agent/client-core 0.103.0 → 0.104.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +18 -14
  3. package/dist/adapter/downstream/eventToSdkMessage.js +2 -0
  4. package/dist/adapter/downstream/terminalToSdkResult.d.ts +0 -1
  5. package/dist/adapter/downstream/terminalToSdkResult.js +3 -1
  6. package/dist/agentSession/engineAgentRegistryRead.js +3 -0
  7. package/dist/coreValuePorts.d.ts +3 -1
  8. package/dist/coreValuePorts.js +5 -0
  9. package/dist/deviceRebind.d.ts +17 -4
  10. package/dist/deviceRebind.js +43 -14
  11. package/dist/engineAgentAbsence.d.ts +1 -0
  12. package/dist/executionPlacementWords.d.ts +3 -0
  13. package/dist/executionPlacementWords.js +2 -0
  14. package/dist/generated/engineFactTables.d.ts +3 -2
  15. package/dist/generated/engineFactTables.js +17 -1
  16. package/dist/generated/engineNoticeTables.js +12 -0
  17. package/dist/hitl/automaticAnswerVerdict.js +47 -11
  18. package/dist/hitl/livePendingAsk.d.ts +2 -1
  19. package/dist/hitl/livePendingAsk.js +7 -1
  20. package/dist/hitl/sessionPolicyDeliverable.js +31 -5
  21. package/dist/hitl/toolApprovalWire.d.ts +5 -4
  22. package/dist/hitl/toolApprovalWire.js +215 -47
  23. package/dist/host.d.ts +0 -3
  24. package/dist/hostTurnSettings.js +3 -1
  25. package/dist/humanTurn.js +2 -2
  26. package/dist/index.d.ts +5 -2
  27. package/dist/index.js +1 -0
  28. package/dist/jsonFaithful.js +5 -3
  29. package/dist/mcpLiveness.d.ts +1 -1
  30. package/dist/mcpWireCaps.js +1 -1
  31. package/dist/printModelStatus.d.ts +1 -0
  32. package/dist/printModelStatus.js +6 -2
  33. package/dist/retryStatus.d.ts +8 -1
  34. package/dist/retryStatus.js +13 -4
  35. package/dist/ruleCompileVerdict.d.ts +1 -0
  36. package/dist/ruleCompileVerdict.js +3 -1
  37. package/dist/seatContract.d.ts +7 -7
  38. package/dist/seatContract.js +39 -10
  39. package/dist/sessionRowTag.d.ts +24 -0
  40. package/dist/sessionRowTag.js +77 -0
  41. package/dist/steering.d.ts +1 -0
  42. package/dist/steering.js +34 -26
  43. package/dist/systemReminderTag.js +14 -4
  44. package/docs/INTEGRATION-CLIENTS.md +346 -11
  45. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -49,6 +49,91 @@
49
49
  > 挡住 ⇒ 本批把它机械化——④a0 对 `pending` 行**要求段头已是日期形**(`(未发布)` 直接红),阶段一
50
50
  > commit 漏转在发布前就红,不再靠人记。
51
51
 
52
+ ## 0.104.1(2026-10-30)
53
+
54
+ > 主题:悬挂审批在说呈卡协议的服务端上恢复全卡(接入文档 **§133 AR-1 – AR-4**)· 压缩后后台任务表里带读句尾巴的行照认(**§133 BT-1 – BT-4**)。
55
+
56
+ ### Fixed
57
+
58
+ - **🔴 行为变:悬挂审批(`GET /v1/approvals` 的 `livePending` 行)在说呈卡协议的服务端上不再一律出盲卡**(CC-1127;**§133 AR-1 – AR-4**):*修前*:服务端 7.133.0 起一只 ask 一个帧族,声明了呈卡族(`approval_request`)的运行上,行上 `frame` 是呈卡族开卡帧(卡内事实在 `card`、卡外事实在帧顶层);本包读器只认旧族 `tool_approval` 形 ⇒ 每一只悬挂 ask 都按坏形丢掉 `frame`,`surfaceSuspendedAskAndRespond` 出盲卡 —— 卡上说看不到工具入参、「编辑后批准」被拒,强制位 / 出身词等卡外事实也不上卡。*修后*:读器收开卡帧两形之一(旧族照旧;呈卡族按类型包的 v1 判别器 `isApprovalRequestFrameV1`),两形都要 `frame.approvalId` 与行的 `approvalId` 相等;呈卡族形与旧族形走同一个活卡入口(同一张卡口、同一张持有表、`POST /v1/tool-approvals/:id/respond`、身份键 = 行的 `approvalId`),卡面读 `card`(与 `approvalCardFactsOfV1` 同核:规则候选落只读位、不给会话放行位),强制位 / 强制词 / 出身词 / 探测原因 / 读根候选 / 授予清单 / 分类器未裁读帧顶层。两形之外(版本认不出 / `type` 不对 / id 对不上)照旧盲卡;旧族形的卡逐字节同前。*型面*:🔴 `LivePendingAskView.frame` 由 `ToolApprovalFrame` 放宽为 `ToolApprovalFrame | ApprovalRequestFrame`(与类型包 `LivePendingRow.frame` 同一个联合)—— 直读 `row.frame.args` / `row.frame.toolName` 的端先判 `frame.type` 才编译得过;`surfaceToolApprovalFrameAndRespond` 第一参同样收这一联合(只放宽,调用方零改动)。*同一入口另收紧两处*:v1 卡面**顶层**的真人位(`requiresRealApproval`;卡契约里它在 `risk` 下,真人位读器两处都读)在场却不是 `true` ⇒ 键名记进 `unreadableEvidence`、自动作答判定答 `unknown`(修前被当缺席,规则车道可放;宿主经 `approvalCardFactsOfV1` 拼的卡同收紧)· 活卡入口直收版本认不出的呈卡族帧时,持有身份的一问签名不再读卡面上的出身词 / 强制词(与这张通用卡的投影一致)⇒ 同一只审批经停驻行腿进来时认得上,不再出第二张卡、发第二次决断。呈卡口读 `card` 只读一次(类型包判别器与卡面载荷用同一份读数;`card` 是访问器的宿主帧不再在身份装配时抛、零呈卡)。*谁受影响*:用 `surfaceSuspendedAskAndRespond` 出悬挂卡的端在呈卡族服务端上拿到全卡(入参可见、可编辑后批准、强制卡在自动作答判定上答必问);零接线改动。
59
+ - **压缩后后台任务表里带读句尾巴的行不再被整条丢掉**(CC-1129;**§133 BT-1 – BT-4**):*修前*:引擎在任务表一行的末尾可以再带一句读法 ` — <读句>`(例:`output: Read <路径>`),本包的行解析器要求「行尾恰是状态短语」,带尾巴的行整条被丢;一张表里全带尾巴时整段退成通用的 `steering_injected` 行(普通视图不渲这一行,模型照样收到全表),带尾巴的 `parked` 行同样不认。*修后*:行 = 前缀 `- [<id>] Task "<描述>" ` + 状态短语 + 可选恰一枚尾巴(` — ` 起、取到行尾、原样),尾巴投成 `EngineTaskStatusAttachment` 的可选位 `read`(缺席 = 引擎没带或行上无尾巴,不编空串);状态短语恒取自行内最后一枚「引号 + 空格」之后(描述里自带「引号 + 短语 + ` — `」而真状态是表外词的行不会被读成带尾巴的已知状态);描述带换行(某行的描述引号没合上、且不是最后一个非空行)⇒ 整段退通用行,换行之后仿出的行不长出任务身份;无尾巴的行与 0.104.0 逐字节同;未知短语、裸 `parked`、表尾 `(+N more background tasks, not listed here)` 行照旧不认。零 wire 新键、零新导出名。
60
+
61
+ ## 0.104.0(2026-10-30)
62
+
63
+ > 主题:换钉到引擎 7.60.0(开发依赖 `@sema-agent/core` / `@sema-agent/mods-kernel` 7.60.0;生成表按新上游重生成)接入文档 **§132 PK-1 – PK-6** —— MCP 失败类多一词 `host_refused`(🔴 型面 BREAKING:闭集变宽)· 状态帧座位位 `seat` 两层白名单都到 · 单张图片上限改读引擎准入表那一格 · 成本分项型面不再具名引擎已删的一行 · 通知码册 106 → 110 · 内核契约 6 的身份读数。peer 地板不动。 另:停驻终局的结果帧恒走错误臂、`-p` 停驻出路句只在 `errors[0]`(**§132 RA-1 / RA-2**,🔴 行为变)。再另:请求体权限三桶里跨层写过同一条规则的,在高信任组内的位置改按所属来源的写序(**§132 PO-1**,🔴 行为变,窄)。再另:接入文档补三处成文(**§132 HS-2a / HS-2b / XA-7a**,零代码改动、行为面零变)。再另:钩子车道的类依据改读引擎要求真批准的门类集(**§132 HK-2**,🔴 行为变,只放宽钩子车道)。再另:提货服务端 7.139.0 / 类型包 30.0.0(开发依赖 `@sema-agent/sdk` `^30.0.0` · `@sema-agent/settings-schema` `^15.1.0`;生成表重生成;peer 地板不动)**§132 SV-1 – SV-6** —— 换绑前态改读执行放置读面(🔴 型面 BREAKING)· 会话行条件写(行标签 / 写体标签 / 拒绝之后的下一步)· 换绑 409 子代形 · 后台行子会话 id · 三处随类型包到货退役(RL-310 / RL-311 / RL-313)。 再另:退役登记 RL-290 到期,孤儿型 `ManagedPolicyReading` 退出根入口(**§132 SV-11**,🔴 型面 BREAKING、运行期零变)。 再另:名册一步按引擎覆盖读法(PK-7)· 停驻卡 / 活卡工具入参 = 记录侧那一份并在改写时明说(**§132 AK-1 / AK-2**)· 被挡臂 hook 的话不画实体形标签(**§132 TG-1**),三处 🔴 行为变。
64
+
65
+ ### Changed
66
+
67
+ - **🔴 型面 BREAKING:MCP 失败类闭集 `MCP_FAILURE_KINDS` 多一词 `host_refused`**(CC-1076;**§132 PK-1**):*变了什么*:引擎 7.60.0 起 MCP 服务器可挂在宿主自供的管道上(声明 `transport: { kind: "host" }`),宿主座没把请求交出去时失败类记为 `host_refused`(`delivered: "no"`、无活性观测 —— 没发出去,原样重发是安全的);本包公面 `MCP_FAILURE_KINDS`(取自引擎生成表)随之 12 → 13 词,由它派生的成员型多一员;`unknown` 的含义放宽为「或宿主座说不清请求怎么收场」。*谁受影响*:对本包 `MCP_FAILURE_KINDS` 的成员型穷举 `switch` 的端编译红;按封闭表把失败词映到句子的端会把新词落进缺省臂。*怎么迁*:补一臂 `host_refused`(读作「宿主没发出,可安全重发」,不给活性结论);`unknown` 按放宽后的含义读。本包对失败类照旧按开集透传 `errorCode`,读口与视图零改动;本包不读 MCP 传输形 —— 引擎侧的 `host` 臂不经本包的请求面装配(请求面传输仍由配置契约判官判)。
68
+ - **单张图片上限改读引擎准入表那一格**(CC-1076;**§132 PK-3**;零可见变化):引擎 7.60.0 删了包根常量 `MCP_IMAGE_MAX_BASE64`,同值(5 MiB 字符)迁进准入表 `IMAGE_ADMISSION.hard.imageBase64Chars`;人类提交装配口的单张图片座位判定改读这一格(构建期生成,运行期零 import)。上限数值不变,入座 / 降级读数逐字节同前。
69
+ - **成本分项型面 `SemaCostBreakdown` 不再具名 `memoryConsolidationMicroUsd`**(CC-1076;**§132 PK-4**):引擎 7.60.0 删了这条恒为 0 的分项(型面与每一份装出来的账都不带);本包同批删这一具名位。读法不变:分项照旧开集逐键过境(老引擎仍发的这一行原样到、显式 0 仍是事实),读这一位的代码经索引签名照旧编译(型为 `number | undefined`)。
70
+ - **`-p` 车道缺省 stamp 的 `oneShot: true` 在引擎 7.60.0 上改变提交何时结束**(CC-1076;**§132**;本包投影不变,🔴 行为变在引擎侧):引擎 7.60.0 起,一次性提交在本该结束处等它自己发起的循环型后台任务(后台代理 / 续接的代理 / workflow 运行)的终局,交给一个回合再结束(取消、运行墙钟与 600 s 天花板兜住;后台命令与 Monitor 不等);≤7.59 只换给模型的指引句。发起了后台代理的 `-p` 提交因此返回得更晚。要按时返回的调用方给运行墙钟上限;要回到旧收尾的设 `SEMA_HEADLESS_ONE_SHOT=0`(不 stamp)。
71
+ - **分类器车道的状态帧不再冒用会话模型、不再冒充本轮的重试**(CC-1076;**§132 PK-2**;引擎 7.60.0 起才分得出):帧带座位位 `seat` ⇒ 重试句口(`retryStatusParts` / `retryStatusNotice`)句首不带会话模型名、不给「换模型」出路(换会话模型换不掉别的座:退避中读作等,已放弃则不给出路);`-p` 车道这类帧一律走超集帧 `system/_sema_model_status`、帧体带 `seat`、不带 `model`,不再取 CC 形 `system/api_retry`(集成方按 `api_retry` 帧数记本轮那次调用的失败)、`_sema_model` 不出现,错误终帧 `_sema_last_model_status` 同带 `seat`;它也不动本轮的重试身份(夹在本轮一次退避的两次重播之间,后一次照读作重播)。本轮自己的帧(无 `seat`)逐字节同前;7.59.x 引擎不发 `seat`,读数同前。
72
+ - **开发依赖内核包换钉 7.60.0(内核契约 5 → 6)**(CC-1076;**§132 PK-6**;本包转口不变):`./mods` 子路径照旧原样转出宿主解析到的那一份内核(本包不铸内核事实,转口名单零变化 —— 内核包 7.60.0 与 7.59.0 的导出名逐名同)。装 7.60.0 内核的宿主经 `./mods` 拿到的是契约 6:新站四行(`agent.offer` / `agent.spawn` / `turn.complete` / `session.end`)、`tool.call` 站失败列改 `refuse`,内核只收声明 `"contract": 6` 的 mod 包;身份读口 `modsKernelIdentity()` 如实报 6 与新的事件表摘要。peer 地板不动(`>=7.54.0`;装更老内核的宿主照转它自己的契约号)。
73
+ - **通知码册 106 → 110**(CC-1076;**§132 PK-5**):引擎 7.60.0 新增四只运维受众码 `config.read_deny_floor_unkept` / `classifier.seat_rate_limited` / `mcp.credential_echoed` / `config.image_processor_unavailable`,受众 / 铸方随生成表;走码册内通用行(本版不加事实读器)。对码数做精确断言的端改断言。
74
+ - **🔴 行为变:停驻终局的结果帧恒走错误臂,`-p` 停驻出路句只在 `errors[0]`**(CC-1093;**§132 RA-1**;已知限制 KL-1031 删行):*修前*:运行停在等审批 / 等人答(`paused` 终局)、且停之前本流最后一行是模型正文时,结果帧走成功臂(`success` + `is_error: true`,`result` = 那段正文),本包写的「怎么继续」那一句(在交互界面续接,或经审批接口裁决)不在帧上任何一键;最后一行是工具调用时则是错误臂、句在 `errors[0]` —— 同一种终局两种形。*修后*:判型 `printResultArmOf` 对 `paused` 不看末行出身,一律 `error_during_execution` + `is_error: true`,那一句恒在 `errors[0]`(与「末行是工具调用」那一形逐字同),帧上不带 `result`;`stop_reason` 照旧取末行。*射程*:0.104.0 起本包铸的结果帧;可见变化只在 `-p` 结果帧的这一形 —— 按 `subtype === 'success'` 或读 `result` 取正文的调用方改读 `is_error` 与 `errors[0]`(停驻之前那段正文照旧在转录行里);交互车道转录零变;其余终局(`completed` / 上限族 / 非上限失败 / 被拦下 / 结局不明)逐字节同前。公面与型面零变。
75
+ - **`_sema_error_code_in_text` 只随错误臂**(CC-1093;**§132 RA-2**):这一位说的是帧上 `errors[0]` 已含 `_sema_error_code` 那个码;成功臂(`success` + `is_error: true`,失败句在 `result`)没有 `errors`,自本版起不再带它(修前可能带,而 `result` 里未必有那个码 —— 例:引擎原句加 ` (<码>)` 后缀只进 `errors[0]`)。缺席照旧不是「正文里没有码」;读口 `resultErrorCodeInTextOf` 不变。
76
+ - **🔴 行为变(显示面):被挡臂里 hook 的话不再把引擎去势后的实体形信封标签画上屏**(CC-1094;**§132 TG-1**;test [12230] §1;型面零变、根入口零变):*修前*:引擎 ≥7.49.0 把 hook 的话里的信封标签写成实体形(`&lt;system-reminder>TAGGED-INSIDE&lt;/system-reminder> words-after-the-tag`),本包只认 `<` 打头的原形,终局行 / `-p` 错误输出原样画出实体形;`task-notification` 标签与被引擎截断的半截标签头(`<system-reminde…`)也照出。*修后*:hook 的话的显示副本先还原引擎去势铸的两个实体(`&lt;` → `<`、`&gt;` → `>`;只这两个 —— 已装引擎实际铸出的集合,`&amp;` / `&quot;` / 数字实体原样),再按一条规则剥 `system-reminder` / `task-notification` 标签记号,标签名前缀紧贴截断记号 `…` 的半截头同删(截断记号留着;没有紧贴记号的不算截断,正文里的 `Require elapsed < t` / `x <sys` 原样)⇒ 屏上是 `TAGGED-INSIDE words-after-the-tag`;非标签处的 `&lt;` / `&gt;` 显示为 `<` / `>`。出口后置检查只把仍起头的 `<` 换成空格(修前把整段每个 `<` 换成 `&lt;`)。只动给人看的那一份:wire 上的 `hookReason` / `reason` 字节、`readRunTerminal` 读数、严格信封识别口(`unwrapSystemReminder` / `stripSystemReminderBlocks` / `findSystemReminderOpenTag`)与分类器裁决识别都不还原 —— 实体形的假信封在那里仍是正文。判据成文改口(G-LN1 / LN-1)与 G-PA1 残句勘误见 §132f。
77
+ - **🔴 行为变(窄):同一条规则被多个来源写过时,它在请求体权限桶里的位置改按所属来源的写序**(CC-1106;**§132 PO-1**;§116 PM-2「同一来源内按来源表登记序」的登记序补成定义):*修前*(0.101.0 起):同一串先出现在较低信任的来源(例:项目层)、又被更受信的来源(会话 / 本地 / `--settings` / 命令行)写到时,来源表只把它的归属升级、位置仍留在较低信任那一步的首见处 —— 高信任组内这条规则排在该来源自己新写的串之前,而不是该来源写它的那个位置(例:项目层第 900 位与会话规则同写 `Bash(scp:*)`,会话规则按序写 `Glob`、`Bash(scp:*)`,请求体里会话那一组是 `Bash(scp:*)`、`Glob`)。*修后*:升级归属时规则落到更受信的来源认领它的那一步,组内按该来源的写序(上例会话组 `Glob`、`Bash(scp:*)`);同一来源内重复写同一串仍留首见位;较低信任来源再列一条更受信来源已认领的串不动位。*射程*:只换同一信任段(同一来源组)内谁先谁后 —— 各组之间的先后(托管 > 命令行 > `--settings` > 会话 > 用户 > 本地 > 项目)、deny / ask / allow 三桶之间、上 wire 的规则集合、每条规则的来源归属都不变;输入里没有任何规则被多个来源写过时,请求体与 0.103.0 逐字节同。可见处:接收端若按条数上限截断桶尾,只在同一信任段内换谁先;同一组内两种原串写法归一后是同一条线上规则时(例:`Bash` 与 `Bash(*)`),哪一种写法记作留下、哪一种记作重复,跟着组内序走 —— 只影响 `permissionsDeclarationReport` 的去向行与规则读数的去向行,上 wire 的那一串不变。自己建来源表、调 `permissionsDeclaration({ origins })` 的宿主:表的登记序按各来源认领规则的写序,升级归属的键要落到升级那一步(先删再设);经 `hostTurnSettings` 入口的宿主零改动。公面与型面零变。
78
+ - **🔴 行为变:会话规则可送判定的名册一步按引擎的匹配读法判 —— 7.60.0 起 MCP 精确名在限制单上的覆盖读法不再被名册一步扣下**(CC-1076;**§132 PK-7**):*变了什么*:引擎 7.60.0 起限制单(deny / ask)上的 MCP 名 `mcp__a__b` 有两种读法 —— 服务器 `a` 的工具 `b`,以及名字整体作服务器名的那一台(`a__b`,它的工具铸成 `mcp__a_b__…`)的每一只工具。`sessionPolicyDeliverable(…, { roster })` 的名册一步修前只认名册里恰同名的名 / 别名:名册里只挂着 `mcp__a_b__t` 时,deny `mcp__a__b` 被扣成 `not_in_roster`(说它在这里一只都拦不住 —— 不真,规则也就没送到引擎)。现在名册一步与引擎准备期的名字审计是同一个判据:名册里恰同名(名或别名)⇒ 在册;引擎条目读者把这一条读成覆盖形 ⇒ 再问引擎的覆盖判官(值级端口 `ruleNameCovers`),盖到名册里任何一个名 ⇒ 在册。`not_in_roster` 的定义随之改为「引擎的匹配读法在交来的名册里找不到这条会拦的工具」;成因闭集仍是八词(型面零变),这一词的理由句改写成对两种读法都成立(🔴 措辞变)。覆盖判官端口没装 / 抛 / 答的不是布尔 ⇒ 问到它的那一批整批读不懂(闭合失败,不退回「只认精确名」)。*谁受影响*:名册里挂着自身名字带 `__` 的服务器的部署(这类 deny 现在照送);对 `not_in_roster` 理由句做逐字断言的端。*怎么迁*:装配根补装第二十一件值级端口(见 Added);逐字断言改读新句。
79
+ - **🔴 行为变:停驻审批卡上的工具入参改取待决行上的那一份(批准后将执行的字节);与模型的原始调用不同时卡上明说**(CC-1115;**§132 AK-1**;卡入参型 `ApprovalCardRequest` +1 可选位 `argsRewritten`,根入口零增减):*修前*:耐久停驻审批腿(`surfaceFsApprovalAndDecide`)给卡的 `args` 优先取事件流上这只调用的 `tool_start.args`(模型的原始调用,引擎在 PreToolUse 钩子之前发),待决行上的 `input`(钩子之后、批准后真正执行的那一份)只在流上缺席时回落 —— 钩子改写过参数时,卡上显示改写前(例 `1 base`)、批准后执行改写后(例 `base [m]`),「编辑后批准」也以改写前那份为基准。*修后*:卡上 `args` = 待决行 `input`(普通对象且不是超限标记时);行上没有真实入参(缺席 / `null` / 超限标记 / 不是普通对象)才回落流上那份;两份都缺 ⇒ 照旧空对象 + `argsUnavailable` + 说明句,编辑闸判定不变。两份都是普通对象且按 JSON 值结构比得出不同(对象不论键序,数组按位;逐节点比、遇到第一处不同即停,有节点预算与层数上限)⇒ 卡入参带 `argsRewritten: true` 与一句 `wireNote` 说明(参数在模型调用之后被改过,例如钩子;显示的是这次审批记录下的改后那一份,与对话里那次调用不同);相同 / 比不出(非 JSON 值、超出预算)⇒ 缺席,卡与修前逐字节同。卡上显示的值照旧是服务端遮过凭据形值的那一份。活卡帧腿同版改为同一只读器(见下一条)。
80
+ - **🔴 行为变(只放宽):钩子车道的类依据改读引擎要求真批准的门类集 —— 命中 ask 规则的卡上 PermissionRequest 钩子照常被咨询**(CC-1116;**§132 HK-2**;公面与型面零变):*修前*(0.101.0 起):`automaticAnswerVerdict(card, 'permission_request_hook')` 与规则车道同读仲裁表 `ruleMayClear` 列,规则清不掉的 25 类一律 `must_ask` ⇒ `permissionRequestHookScope` 答 `skip`、钩子段不跑 —— 命中 ask 规则的提示(例:Bash 上的 ask 规则)钩子一次都不被问,而引擎照收钩子对这类问的允许。*修后*:类集只在含引擎会为之铸真批准位的类(13 类;构建期从引擎包根 `RRA_EXPLAINERS` 与 `classifyAsk` 派生的生成表,不上根入口)时拦;ask 规则卡 ⇒ `allow_or_deny`(钩子 allow ⇒ 放行,deny ⇒ 拒)。只带问类的卡上由跳过变可答的是 12 类(`ask_rule` / `content_question` / `hook` / `mode` / `operator_forced` 与标记族七类),引擎都不为它们铸真批准位;引擎铸的真卡上 `hook` / `mode` / 部署自铸 / 标记族的问另带强制位,强制族那一行照拦。**不变**:真批准位(顶层或 `risk` 子树)、治理位、强制族照拦;门类(`org_rule` / `rule_unreadable` / `denial_limit_fallback` / `classifier_no_ruling` / `cross_boundary` / `policy_rra` 等)照拦;规则车道与姿态车道逐字节同前;类集缺席 / 坏形 / 表外 ⇒ `unknown`(钩子只许拒)。
81
+ - **🔴 行为变:活卡审批卡上的工具入参改取帧上的那一份(批准后将执行的字节);与停驻卡同一只读器,两份不同时卡上明说**(CC-1118;**§132 AK-2**;纯投影出口的出参型 `ApprovalCardFacts` +1 可选位 `argsRewritten`,根入口零增减):*修前*:活卡投影核(`surfaceToolApprovalFrameAndRespond` 与 `approvalCardFactsOfFrame` 共用)给卡的 `args` 优先取宿主交的流上入参(`tool_start.args`,模型的原始调用,引擎在 PreToolUse 钩子之前发),帧上的 `args`(钩子之后、批准后真正执行的那一份)只在流上缺席时用;本包帧路由为写文件调用(Write / Edit / MultiEdit / NotebookEdit)交流上入参 ⇒ 钩子改写过参数时,写文件调用的活卡上显示改写前(例 `1 base`)、批准后执行改写后(例 `base [m]`),「编辑后批准」也以改写前那份为基准。*修后*:停驻卡与活卡共用一只卡入参读器 —— 记录侧那一份(停驻 = 待决行 `input`,活卡 = 帧上 `args`)是普通对象且不是超限标记 ⇒ 用它;否则流上那份在场才回落;两份证得出不同 ⇒ `argsRewritten: true` + 与停驻卡同一句 `wireNote` 说明;相同 / 比不出 ⇒ 缺席,卡与修前逐字节同。帧上入参被省略(超上限)/ 缺席 / 不是普通对象而流上那份是对象 ⇒ 卡上是流上那份,并多一句说明(这是模型的原始调用,若之后被改写,执行的会与所见不同);「编辑后批准」在这一形照旧放行。两样都缺 ⇒ 回落形(问句解出的 path 或空对象 + `argsUnavailable` + 省略说明)与编辑闸不变;悬挂 ask 照旧只标 `argsUnavailable`。端自己用 `approvalCardFactsOfFrame(帧, { streamArgs })` 拼卡的同答 —— 「交了 `streamArgs` 就用它」的旧读法作废。
82
+
83
+ - **🔴 型面 BREAKING:换绑前态读口 `readSessionBinding` 改读执行放置读面**(**§132 SV-2**;服务端 7.139.0 删了设备绑定读面 `GET /v1/devices/sessions/:id`、类型包 30.0.0 删了 `devices.sessionBinding`):*变了什么*:读口名字不变,切片从 `client.devices` 换成 `client.sessions`(读 `GET /v1/sessions/:id/execution-placement`,经类型包 `sessions.executionPlacement`;切片型 `DeviceSessionBindingVerb` → `SessionExecutionPlacementVerb`,结构形);前态只有一个来源 = 执行放置格 `writer` 臂在设备车道(`lane: "device"`)上的 `device`(`deviceId` + `rev`,`rev` 就是换绑的 `expectedRev`;与服务端换绑判官认的是同一台)。结局:`ok`(`boundDevice` 只剩 `deviceId` / `rev`,`boundAt` 随旧读面退役;`rootSessionId` = 所问的 id)· 新臂 `unbound { role }`(读面答了而这一格明说没有设备:`absent` / `mirror` / `forking`,或 `writer` 在设备车道之外;带角色原词,型 `ExecutionPlacementRole`)· 新臂 `unsupported { reason }`(读面不在:`route` = 404 `not_found.route`,服务端 < 7.139.0;`capability` = 501 `capability.session_store_required`,会话店不记放置)⇒ **fail-closed**,没有前态就不发换绑,不回落已删的旧读面 · `not-found` 改为 404 `not_found.session`(他人会话与不在的会话同答)· `lane-absent` 臂删(新读面不发车道缺席码)· 回体角色在四词之外 / `writer` 车道读不出 / 设备车道上 `device` 缺席或缺两位(升级前有 run、设备未知,不读成「没有绑定」)⇒ `unreadable` · 所问 id 不是非空串 ⇒ 本地拒、一发都不打。座位动词 `readSessionBinding` 的出站门同批换臂。*谁受影响*:把 `client.devices` 交给它的宿主编译红(类型包 ≥ 30.0.0),改交 `client.sessions`;对结局穷举的端补 `unbound` / `unsupported` 两臂、删 `lane-absent` 臂;读 `boundDevice.boundAt` 的端编译红(不再有这一位)。
84
+ - **🔴 型面 BREAKING:根入口不再转出 `DeviceBinding` / `DeviceSessionBinding`**(**§132 SV-2**):类型包 30.0.0 随旧读面删了这两只型;设备行型的根入口转出 11 → 9 名(零别名)。从本包引这两只型的宿主编译红;前态读数用本包的 `DeviceBindingReading`。
85
+ - **换绑 409 `device.rebind_active_run` 多读一形:根下有活的后台子代**(**§132 SV-3**;服务端 7.139.0):体是 `{ children, retirePath }`(没有 `activeTaskId`)时,`active-run` 臂带出 `children`(子代 id 串数组)与 `retirePath`(结清口路径)—— 两位同在同缺(严格串数组 ∧ 非空串,一位读不出则两位都不带);`activeTaskId` 在场时不读这一对(按键分支,与类型包成文同)。下一步(经类型包 `sessions.retireChildren` 结清后重发换绑)由宿主做,本包不出结清的发射口。
86
+ - **`delegation.ask_unresolvable` 的 `sessionId` 读法订正**(**§132 SV-5**;本包读口零改):服务端 7.139.0 起只按这一个键把通告投给该会话当前登记的腿,不转投父会话;同步委派子代上的这一条今天不上任何会话流。读到它 = 本流所属会话自己的拒绝。
87
+ - **断言头告知句射程改说 7.139.0**(**§132 SV-8**;措辞;射程 = 现役见证那一版):`mcpAssertionHeaderNotSentNotice` 的句子由「server versions up to 7.134.0 …」改「up to 7.139.0」—— 现役夹具服务端 7.139.0 的处置表仍把 `assertionHeader` 记为不发送(`withheld`),映射口不把它交给引擎;按原句字节匹配这句的读者要改,按 `assertionHeader` 词判的不受影响。
88
+ - **状态帧 `seat` 直读类型面的帧**(**§132 SV-6**;零可见变化;退役登记 RL-313):类型包 30.0.0 的 `status` 臂已声明这一位,结构视图删;逐键受保护读与非空串窄化照留。
89
+ ### Added
90
+
91
+ - **状态帧座位位 `seat`**(CC-1076;**§132 PK-2**;根入口运行期 +1〔`BRAIN_STATUS_SEATS`〕;型不出根入口 —— 类型包 30.0.0 起声明同名同值的 `BrainStatusSeat`,要型的端用它或 `(typeof BRAIN_STATUS_SEATS)[number]`,§132 SV-6):引擎 7.60.0 起,为自动模式分类器那条车道发出的模型调用(分类器座的模型,或顶在它后面的主模型)的每一帧 `status` 都带 `seat: "classifier"`;本轮自己的调用不带这一键。本包经 wire → 内部臂 → 重试状态两层白名单都透这一位:非空串原样(开集,上游一词 `classifier`,词表与引擎型面编译期两向钉);坏形只丢自己(只认自有数据位,取值器不执行、读抛只丢它);**缺席 = 主循环这一轮的调用,不是「不知道」**,两层都不铸。座位格同一条(非空串)。读者侧见 Changed 段「分类器车道的状态帧」一条。
92
+ - **值级端口第二十一件 `ruleNameCovers`**(CC-1076;**§132 PK-7**;根入口运行期 +1〔读口 `ruleNameCovers`〕;🔴 型面 BREAKING:`CoreValuePorts` 多一只必填成员):引擎包根的覆盖判官(一条覆盖形规则名盖不盖得到这只工具;引擎准备期名字审计问的同一只),入参 / 返回与引擎原件同形(两串 → 布尔)。宿主照其余二十件同法从引擎包根原样装;按完整型建端口袋的宿主编译红一次、点名它。运行期没装 ⇒ 读口 `undefined`(不编 `false`),会话规则可送判定问到它的批整批读不懂(见 Changed 段)。
93
+ - **会话行条件写**(CC-1091;**§132 SV-1**;服务端 7.139.0 / 类型包 30.0.0;根入口运行期 +2〔`sessionRowTagOf` / `sessionRowPatchRefusalOf`〕,型 +2〔`SessionRowCurrentReading` / `SessionRowPatchRefusal`〕):*规则*:条件写的一切判定只看三样 —— 行上的标签、写请求带回的 `expectedRowTag`、拒体里此刻的那一行;本包不解析、不比较标签本身,只比可写位的值。`sessionRowTagOf(row)`:行(列表行 / 改名置顶的 200 行 / 409 体的此刻的行)上 `rowTag` 是非空串自有数据位才交,其余一律缺席 —— **缺席 = 这一行不可条件写,不折空串**。座位记录行 `LocalSessionRecord.rowTag?`(宿主只经这只读口取)与座位入参 `SessionRowPatchRequest.expectedRowTag?`(只能取自同一行;闭集三键 → 四键;单带它而没有 `title` / `pinned` ⇒ 入站门拒)。`sessionRowPatchRefusalOf(error, sent)`:一次改名 / 置顶写被拒 ⇒ 下一步四臂 —— `already-applied`(409 `conflict.session_row_changed` 且此刻那一行的可写位已等于这次要写的值:上一次其实已落)/ `row-changed`(同码其余形:按此刻的行重新决定、再带它的标签发,**不原样重发**;此刻的行读不出 ⇒ 不带)/ `mirror`(409 `conflict.session_mirror`:只读镜像,要改先 fork,`forkPath` 非空串才带)/ `tag-unsupported`(400 `request.body_shape` 且这次带了标签:落到不认这把键的老副本,**不去掉标签重发**);其余 ⇒ `null`。码与状态码出自同一次读数;拒体位经类型包的 `extra` 袋或顶层自有数据位读;永不抛。
94
+ - **后台行子会话 id**(CC-1054;**§132 SV-4**;服务端 7.139.0 会话后台列表加性键,类型包 30.0.0 `SessionBackgroundRow.sessionId?`):登记读口的行视图 `EngineAgentRegistryRowView.sessionId?` —— 只在 `background_agent` 行上、非空串自有数据位才带(取值器不执行;坏形只丢这一位,整行照读);**缺席 = 没有 / 还没绑定**(含老服务端),不是「读不出」。
95
+ - **活卡帧键镜像 `TOOL_APPROVAL_FRAME_KEYS_MIRROR` 加 `requestedBy`(40 → 41)**(CC-1089;**§132 SV-7**;服务端 7.138.0 起 / 类型包 30.0.0 帧键锚已含):活卡帧顶层这一位 = 这一问的调用是一张扩展注册自己发起的(`{ kind: "extension", name }`,`name` 是注册方自报、展示不可信;缺席 = 模型发起的调用)。帧照旧原样过境;审批卡入参不带这一位,卡上不显示(本版只追平键镜像)。
96
+ - **型**:`ExecutionPlacementRole`(执行放置角色四词,与类型包 `ExecutionPlacement['role']` 两向编译钉)· `SessionExecutionPlacementVerb` · `DeviceFaceUnsupported`(**§132 SV-2**)。
97
+
98
+ ### Removed
99
+
100
+ - **🔴 型面 BREAKING:公面孤儿型 `ManagedPolicyReading` 退出根入口**(退役登记 RL-290 到期;**§132 SV-11**;运行期零字节变):与宿主设置源 `managedPolicyReading()` 的返回型 `HostManagedPolicyReading` 同形并存、包内 0.101.0 起零读点;终端 1.0.157 起已改引 `HostManagedPolicyReading`、网页端 / 桌面端本来不引 ⇒ 按「消费端删读点之后的下一个本包版本」删型。仍 `import type` 它的端改引 `HostManagedPolicyReading`(`{ readonly state: ManagedPolicyState }`,逐字同形)。
101
+
102
+ ### Docs
103
+
104
+ - **接入文档补三处成文,零代码改动**(CC-1107;**§132 HS-2a / HS-2b / XA-7a**;行为面零变):① 设置源 `readLayer(layer).doc` 的契约 =「宿主对本层的有效贡献」—— 宿主可在交出前做只收紧方向的预处理(往本层 deny / ask 里加规则、剥掉自己不收的键),包照层准入判、不问规则出身,收紧方向的规则落在折进去的那一层的信任段并照常上请求体;② `sources.memory.flag` = 宿主的关断声明词 —— 命令行旗原词,或宿主自判好的关断(自家开关 / 环境变量 / 运行模式)以同一字面 `'off'` 交即生效,无声明则请求体不带 `memory`,`'off'` 以外的值入口抛 `TypeError`;③ 包层有界传输重试只对经本包发送口发出的决断在场(`sendHitlDecision` 与活卡腿投递段),宿主直调裸 `decideAsk` / `elicit` / `respond` 的臂不享,要么改经发送口、要么自管重试且不叠在发送口之上。三处的成文改口进 §132e(已发段不动)。两格新钉:`scripts/run-host-settings-source-test.mjs` PL9(宿主视图带额外 deny / ask 的落位与归属)、`scripts/run-host-turn-settings-test.mjs` MF1 / MF2(仅 `{ flag: 'off' }` ⇒ 请求体 `memory: 'off'`;字面严格)。
105
+
106
+ ### Gates
107
+
108
+ - **`scripts/run-core-7600-pick-projection-test.mjs`**(CC-1076;**§132 PK-1 – PK-6**;包侧投影门):A MCP 失败类与已装引擎逐员同序含 `host_refused` · 四只新码在册、受众与引擎同 · 座位词表 · B `seat` 两层白名单(原值 / 开集 / 四种坏形 / 缺席两层都不铸 / 等首 token 相同到 / 映射口只读一次 / 读抛不抛穿 / 子代车道照旧)+ 读者(`-p` 车道分类器座的帧走超集帧带 `seat` 不带会话模型名 / 终帧最后状态带 `seat` / 之后本轮同计数的失败照出 CC `api_retry` / 本轮重播夹一帧分类器座仍读作重播 / 句口不带会话模型名、不给换模型出路)· C 单张图片上限 = 引擎准入表那一格、旧生成物名退役、装配口值级读新名、恰上限入座越上限不入座 · D 成本分项(引擎声明已删 / 本包型面不具名 / 新引擎三行原样不补 / 老引擎那一行照过境)· K 内核身份读数(交 7.60 内核读到 6;`./mods` 转出的事件表与引擎内核那一份上新站四行各有站定义、`tool.call` 失败列 `refuse`;已装内核包与引擎内核同契约号、同事件表摘要)· Z 引擎删掉 / 改名 / 新增而本包不读的 32 名零代码读点(按语法树扫,注释 / JSDoc 不算;植入自证含正则字面量与模板插值的失步对照)。
109
+ - **扩门**:上游生成表门 G13 / N13(单张图片上限改由第二十三批从准入表生成;换值随变、九种坏值与四种坏表 / 坏段拒生成点名路径、缺名只点准入表并说要引擎 ≥ 7.60.0、旧常量不回落)· 人类提交编码门 HT10e(生成表对引擎准入表那一格;引擎 7.60.0 准入口实物带处理器位 `"none"` 调,两只载荷另过引擎自己的尺寸读器自证读出 1×1,越上限的拒因须是 base64 越上限那一句)· 引擎通知码册门 G8b / G-NM1 / G8i(≥ 7.60.0 一百一十;四新码受众 / 铸方对引擎、无事实读器)· 内核转口门加 7.60.0 列(契约 6;事件表 142 行、站点行 53 → 57;摘要按装着的内核真字节钉;金丝雀三格与 7.59.0 列同答)· 内核安装矩阵门加 7.60.0 代(期望读数 = 上一代换版本串;离线段已跑,真安装器逐格对拍在联网机上跑)· 重试句口门 S2(叶子运行期导出十二只)· 纯度门 retry 键镜像十六键(+`seat`)· 成本对账投影门 E5 / E5b(引擎声明四行、本包型面不具名已删行)· 引擎词表门 G2-c(状态帧键镜像 +`seat`)。
110
+ - **扩门 `scripts/run-print-result-arm-test.mjs`**(CC-1093;**§132 RA-1 / RA-2**):PA14 —— 停驻四形(两种门 / 无门 / 扁平形)× 十七种末行恒错误臂、无上限词,`stop_reason` 照旧取末行;经 `runStream` 停驻 ∧ 主线程正文三形(流式增量 / 段末帧 / 聚合正文)× 两种门 ⇒ 错误臂、`errors[0]` 与不交末行那一只逐字同、帧上无 `result`、正文不骑帧;直调交末行同答;交互车道转录零变(那段正文恰一行、零 `result_text_diverged`、出路句不进转录);`_sema_error_code_in_text` 成功臂恒不带、错误臂与直调帧照带。PA3 末行出身规则改为七种终局(停驻出表);末行累加器各格(PA11h / PA12 / PA13)的载体由停驻换成「空句失败」事件帧(非上限、错误句为空 ⇒ 无合成终局行),PA13k 加停驻对照格。
111
+ - **改钉 `scripts/run-task-notification-parity-test.mjs` TN7**(CC-1093;**§132 RA-2**):`_sema_error_code_in_text` 的判据对象取同一事件的直调投影(错误臂);经 `runStream` 落成功臂的帧恒不带这一位。
112
+ - **扩门(CC-1094;§132 TG-1)**:`run-prompt-blocked-sentence-projection-test.mjs` 加 PB7 段 —— 引擎包根去势口铸的 hook 的话与原形上屏逐字同(终局行 / 结果帧 / 交互行)· 作者写的实体形三形 · 截断残片(紧贴截断记号的作者写三形 + 引擎真截断两刀:原形残片 / 去势后实体形残片 + 中段与文本尾各一枚)· 不带截断记号的半截头与正文尾比较式逐字保留(两个出句口)· `task-notification` 同族 · 回落臂 · 不误剥(非标签实体照还原、中段半截词与只差括号的残片不动、还原集之外的实体逐字节不动)· 后置检查只换起头 `<` · 模型面零还原四格(帧对象 / 读数 / 严格信封识别口 / 分类器裁决识别)· 还原的实体集 = 已装引擎实际铸出的实体集(对包根三只去势口实跑逐个比)· 引擎截断记号 · 生成池 3000 串按独立判官零标签 · 线性五形;PB2o 成文改口(后置检查不铸 `&lt;`)。
113
+ - **扩门 `scripts/run-host-settings-source-test.mjs`**(CC-1106;**§132 PO-1**):PL5 – PL8 —— 跨层同串 × flag / 会话 / 本地三层的组内写序(deny、ask 各一格,allow 一格含命令行组)· 请求体与投出的桶逐字节同 · 三桶互不相干(同一串同进 deny 与 ask 各按各桶的写序)· 同一来源内重复写留首见位 · 较低信任层倒序再列高信任层已认领的串不搬位 · 无跨层同串与「跨层同串但组内序不变」两份输入的三桶读数,与修前的包逐字节同(冻结读数)。
114
+ - **重钉 / 扩门(引擎 7.60.0 读数变,门期望引上游原句)**:规则工具名判官门 TN9 按桶分判 —— 会话记录 `toolDeny` 读法非 current ⟺ 准备期拒启照旧;`toolAllow` 上的退役名改为照常启动且恰一条 `config.toolpolicy.unmatched_names` 告警点名它的退役行(引擎 7.60.0 起 allow 单上的退役名不再拒启),另两词照旧拒启 · 会话规则可送判定门 Y5a 正控按新读法改例(两读法 MCP 名在 deny 单上算覆盖形、allow 单上不算;非 MCP 协议整工具名与普通名仍不算)、Y5 整池不缩(不交名册就扣下的覆盖形成因不换;两读法名带名册能送 ⟺ 引擎审计匹配到工具,两只独立判官互证)、Y5c 带名册能送 ⇒ 引擎审计确实匹配到、Y5d 覆盖判官端口五种坏形闭合失败、N16b 理由句对两种读法都成立 · 值级端口门 ⑭(第二十一件:缺席不编值、透传、三档编译装得进、二十件旧袋编译红点名它、真引擎逐对同答)。
115
+ - **登记物同批**:退役登记 RL-312(旧生成物名 `CORE_MCP_IMAGE_MAX_BASE64`,已退役栏,门钉不复活)· RL-313(`seat` 结构读,条件 = 类型包 `status` 臂声明 `seat`;同版随类型包 30.0.0 到货退役,见「登记物(SV)」)。
116
+ - **扩门 `scripts/run-approval-card-reading-projection-test.mjs`**(CC-1115;**§132 AK-1**):AK 段 —— 行 `input` 在场 ⇒ 卡上 `args` 逐字 = 行 `input`(流上那份不同 / 不是对象 / 读就抛都不用它,读就抛不抛穿、不出披露位)· 纯批准与「编辑后批准」照发 · 行 `input` 缺席 / `null` / 超限标记 / 数组 / 串 ⇒ 回落流上、不标入参不可得、无披露位 · 两份都缺 ⇒ 缺口两形的 `args` / `argsUnavailable` / 说明句与编辑闸逐字不变 · 两份不同(顶层 / 嵌套值 / 数组次序 / 多键 / 少键 / 值类型;流上那份是 5 MB 串而行上被改小)⇒ `argsRewritten` + 说明句逐字 · 比不出(超层数上限 / 键值为 `undefined` / 函数值)⇒ 不抛、无披露位 · 两份相同(另一只对象 / 键序不同 / 嵌套同值)⇒ 无披露位、卡与流上缺席那张逐字节同 · 活卡帧腿一格(同版 CC-1118 改口:活卡帧腿与本腿同一只读器)。同批:审批帧键门形腿② 卡入参「在场即真」名册 +`argsRewritten`;纯包层门 B7 改钉(行上有入参 ⇒ 卡上是行那份,流上只回落)。
117
+ - **扩门 `scripts/run-automatic-answer-verdict-test.mjs` HK 段**(CC-1116;**§132 HK-2**):期望改对引擎包根独立推导(`RRA_EXPLAINERS` ∪ `classifyAsk` 裸位类)—— HK1 / HK1a / HK1b / HK1d / HK2 / HK3 / HK4 / HK6 / HK7 / HK8 / FC4 改钉;新 HK11(ask 规则卡三形 + 引擎真链路铸的 ask 规则卡 ⇒ `allow_or_deny`,规则车道照旧)· HK12(六门类单类卡 / 三门类出身词 / 门类与 `ask_rule` 并列 ⇒ 仍 `skip`)· HK13(真批准位 × 全部问类 ⇒ `requires_real_approval`)· HK14(全部问类「引擎铸位 ⟺ skip」;引擎真链路 12 类以策略名义答允许,引擎拒 ⟺ 去位卡 skip;真卡上可答的恰是 `ordinary` 与 `ask_rule`)。上游生成表门加 G29 / N29(第二十四批:对引擎独立推导逐项同序、⊆ 规则清不掉的类、不上根入口、读者恰一只;加 / 减员与裸位类换词随变,坏形 / 缺名拒生成并点名)与 SA8h(钩子车道类列随假表而变)。
118
+ - **扩门 `scripts/run-approval-card-reading-projection-test.mjs`**(CC-1118;**§132 AK-2**):AL 段 —— 帧上 `args` 在场 ⇒ 卡上是帧上那份(流上那份不同 / 不是对象 / 读就抛都不用它,读就抛不抛穿、不出披露位)· 纯批准与「编辑后批准」照发 · 帧上省略 / 缺席 / 数组 / 超限标记形 ∧ 流上在场 ⇒ 回落流上 + 回落说明句、不标入参不可得、编辑闸不拦 · 两样都缺 ⇒ 回落形三句与编辑闸逐字不变 · 两份不同(顶层 / 嵌套 / 数组次序 / 多键 / 少键 / 值类型;流上 5 MB 而帧上被改小)⇒ `argsRewritten` + 与停驻卡同一句 · 比不出 ⇒ 无披露位 · 两份相同 ⇒ 卡与不交流上入参那张逐字节同 · 悬挂 ask 三形互斥 · 纯投影出口每格同答 · 语法树格:停驻腿与活卡投影核各恰调一次同一只读器、读器内件只在读器里被引用 · 两腿逐对同答(六对)。AK-R6 格改口(活卡帧腿同一只读器)、F5 格改口(回落形带说明句)。同批:重放审批判定门 RP2n3 / RP2n4 改口(卡上是帧上入参;拒绝记号的身份推断不变)+ RP2n3b(比对伙伴按身份取);诚实门 F18①d 改口(回落形带说明句,编辑照发)。
119
+
120
+ - **`scripts/run-session-row-tag-projection-test.mjs`**(CC-1091;**§132 SV-1**;包侧投影门):RT0 两只读口在根入口、座位键表含新键、构建产物 d.ts 两只新成员(语法树)· RT1 行标签 present-iff(十四形坏形 ⇒ 缺席、取值器不执行)· RT2 / RT3 座位出站 / 入站门 · RT4 拒绝之后的下一步(四臂 + 坏形不抛)· RT5 真 sdk 客户端端到端(写体逐字带标签;409 / 400 经真错误对象读出同样的下一步;列表行原样)。
121
+ - **`scripts/run-server-7139-pick-projection-test.mjs`**(**§132 SV-2 – SV-6**;包侧投影门):SV0 换钉 · SV1 已装类型包型面事实(语法树)· SV2 新码逐码(七只 409 / 503 新码 + 读面两码经真 sdk 客户端落通用判型 http 臂、码与原话原样、无专属位;续跑折叠点名原码)· SV3 后台行子会话 id · SV4 退役 / 删除的上游名零代码读点(植入自证;允许清单逐条有据)。
122
+ - **扩门 / 改钉**:`run-device-rebind-judgement-test.mjs` G-SA6 整段改读执行放置(四角色 / 十三种坏形 / 读面不在两形 / 旧码不再认领 / 本地拒零请求 / 只有旧读面动词的切片 ⇒ `unarmed`)· G-SA7e 子代形九格 · G-SA8e / G-SA8f 真 sdk 读面路径 · G-SA14 十一名 → 九名 + 两只旧型不在根入口;`run-seat-devices-test.mjs`(读面新臂 / `boundAt` 拒 / 旧臂拒 / 子代形 / 真发射口十形);`run-seat-session-patch-test.mjs`(三键 → 四键、覆盖表与逐键投毒含 `expectedRowTag`);`run-sdk-witness-compile-test.mjs` 新钉文件 `scripts/sdk-pins/30.0.0.ts`(八组:执行放置 / 行标签 / 子代形 / 后台行 / mod 行出处 / 状态帧座位 / 抹除证明 v2 / 活卡帧键 `requestedBy`〔去掉帧型的索引签名再取声明键:帧型带 `[k: string]: unknown`,裸 `keyof` 对任何键名都成立〕)配内存假钉;`run-upstream-type-shadow-test.mjs` 正控已知名换 `DeviceSummary`。
123
+ - **登记物(SV)**:退役登记 RL-310 / RL-311 / RL-313 随类型包 30.0.0 到货转已退役栏(条件机读成立);新登 RL-1139(派发前重判对支持底线内老服务端的 `rewindFiles` 一腿,条件 = 服务端支持底线越过 7.139.0);RL-251 / RL-983 到期复核前提未到、改窗 0.105.0 记历史;同名影子豁免 BrainStatusPhase 改窗 0.105.0 记历史;座位词的型不出根入口(不登影子豁免,见 §132 SV-6)。
124
+ - **夹具换代:现役服务端 7.134.0 → 7.139.0(门侧适配,产品零改动)**(**§132 SV-6**;各条按现役 7.139.0 夹具实读改,老一代夹具照旧走原分支):① 受理口直驱的门(`run-server-7114-fixture-test.mjs` / `run-server-7115-fixture-test.mjs` / `run-server-7119-fixture-test.mjs` / `run-disable-skills-wire-test.mjs` / `run-host-turn-settings-test.mjs` / `run-hook-matcher-verdict-test.mjs` / `run-human-turn-encoding-test.mjs` / `run-request-uplift-test.mjs`)改用一只共用的最小依赖 `scripts/_gate-lib.mjs` `admissionDeps`:入口必填的 `authorize` 给放行桩、再给一只空的对端租约 `peerDesk.lease`,各门自己的哨兵(`resolveSpec` 抛)照旧在全部受理校验之后才被碰到;② 起真服务端的门(`run-server-7122-pick-test.mjs` / `run-session-memory-erase-projection-test.mjs`)交一只拒绝提交的 `authorize` 桩(只有提交腿调),7122 子服务端另补必填的 `checkpointCtxSealing`;③ 会话店桩补 `headOf`(会话授权器与会话读三口只经它取头;`run-resume-refusal-copy-test.mjs` / `run-server-7115-fixture-test.mjs` / `run-server-7113-fixture-test.mjs` B 段);④ 清单投影门按 7.137.0 起的第二参形调服务端真函数(`run-wiring-manifest-projection-test.mjs` / `run-mods-face-projection-test.mjs`);抹除回执的降级腿按 7.138.0 起的回执 v2 判 `partial` / `human_decision`(X3b);⑤ 逐代表加档:`run-server-7115-fixture-test.mjs` `≥7.133.0`(能力位 `callerTrust`)· `run-server-7119-fixture-test.mjs` 设备协议修订号按代 1 / 2 / 3、`decideAsk` 桩取末参(四参形)· `run-server-7116-fixture-test.mjs` `≥7.139.0`(受理判官按桶判:deny / ask 照收对端段通配的三条,allow 照旧拒 ⇒ C8d 只问 deny 判官仍不收的那几条,照收的记读数 C8dT);⑥ 停驻决断桩给 `execution.resolve`(决断先解执行上下文;`run-session-integrity-refusal-test.mjs` X4 / `run-decide-row-unrevivable-projection-test.mjs`);无名停驻行 7.138.0 起可恢复 ⇒ `run-decide-row-unrevivable-projection-test.mjs` 无名形改走根缺席那一形(DR0c 铸点数、DR0d 新格);⑦ 拒绝体按 `refusalBody({ errorCode, message, facts })` 拆读(`run-parked-resume-startup-test.mjs` U8o);回显剥字符集改从契约包读(`run-submit-refusal-projection-test.mjs` K8f);引擎 7.60.0 的代理清单判官读 `selector`(层表 + 委派池那一路的 `admits`)⇒ `run-agents-wire-directory-test.mjs` 每只判官的选择器取同一只判官文件的真构建口 `readToolSelector`(老一代给空层表);hook 站读 `next.signal`(`run-hooks-merged-disable-projection-test.mjs`);MCP 台数上限拒句改说「at most 32」(`run-mcp-wire-caps-test.mjs` MR3f 两种说法都认);断言头 spec 改读 `toMcpDraft(…).spec`(`run-cloud-effective-projection-test.mjs` S7-E8);attachments 形说明由 `ATTACHMENT_KEYS` 派生(`run-server-7113-fixture-test.mjs` A0 认出派生形即读那只真常量;A2 两向相等外登记服务端多出的待收键 `mcpUnavailable`,SV-9 pending,其余任何差照红);⑧ 「记住」判据的合成卡补引擎会铸的授予绑定位(部署名单的问也读卡上那两位):`run-server-7116-fixture-test.mjs` C3L 装 `boundGrantAbsence`、`run-mandated-card-values-test.mjs` N1 用夹具引擎 `skillGrantBindingMembers` 真铸;`run-standing-rows-test.mjs` R9「服务端可能给的答案」= 现役一代(只读卡律)∪ 支持范围内仍带分流的那一代(老一代列表取),判据不变;会话规则匹配器改名 `ruleNameCovers`(`run-session-rules-namespace-forms-test.mjs` W4 两名都认);引擎 7.60.0 先判记录里已有的条目(`run-session-policy-grammar-test.mjs` G-GR13d 三位改与真拒体逐位比);项目层键 7.133.0 起带属主(`run-terminal-facts-projection-test.mjs` G-F4 铸口交属主、G-F4b 按代认 `userrepo:<属主段>/<档>.<24 hex>` 与 `repo:<24 hex>` 两形;本包读器把 `scope` 当不透明串,两代同读);⑨ `run-server-7125-pick-test.mjs` FX6 改问「现役服务端精确钉的引擎不低于底线 core(现役就是底线服务端时相等)」,Z1 会话行 `pinned` 登记读点加 `src/sessionRowTag.ts`(§132h);⑩ 裸句登记账 `scripts/bare-sentence-baseline.json`:SV-8 句改换摘要(数不变);`src/deviceRebind.ts` 27 → 29(SV-2:旧读面两句读不出说明退出、新读面三句 + 本地拒一句入列,与本文件既有结局诊断句同族、随 CC-586 分批同族迁目录)· `src/seatContract.ts` 151 → 153(SV-1:座位判官拒因两句新、「无可改」一句改说;开发者诊断,不进目录);每条在基线文件 `ledger` 记账。
125
+ - **发布前校正六格**(**§132 HK-2 / SV-1 / AK-1 / AK-2 / SV-3**):`run-automatic-answer-verdict-test.mjs` HK15(真人位顶层 / `risk` 子树、治理位、强制位在场而不是布尔,出身词 / 缺席词 / 强制词在场而不是非空串 × 类 `ask_rule` / `mode` × 三车道 ⇒ `unknown card_unreadable`;原型链上的坏形位同答;合法 `false` 与表外非空串不是坏形;正向证据先答;裸活卡帧与 `approvalCardFactsOfFrame` 投影出的卡同答;后读位的取值器删不掉先读到的真人位、姿态车道上访问器形的位取值器零执行)并改钉 A3 / A7c 与 `run-upstream-tables-test.mjs` SA3(非布尔真人位 / 强制位、空串 / 非串缺席词由可放改读不出)· `run-session-row-tag-projection-test.mjs` RT4h(请求上 `title` / `pinned` 是自有访问器 / 读描述符就抛 / 只在原型链上 ⇒ `row-changed` 带此刻的行、取值器零执行)· `run-approval-card-reading-projection-test.mjs` AK-R3c / AL-R2d(记录侧是日期 / 带原型的对象 / `Map` / 类实例 ⇒ 回落流上那份;无原型的普通记录照旧是真实入参)· AK-R5c / AL-R5c(流上那份带访问器、或它原型上的 `constructor` 是访问器 ⇒ 取值器零执行、卡上入参不被改、无披露位)· AL-R5d(数组带 `toJSON` 钩 ⇒ 比不出;流上同名位不可枚举 ⇒ 证得出不同)· AL-R3d(帧上超限标记形 / 数组 ∧ 流上也缺,或超限标记形 ∧ 流上是串 ⇒ 回落形 + `argsUnavailable` + 省略说明句、编辑闸拦)· AL-R6b 加日期一对 · `run-seat-devices-test.mjs`(`active-run` 只带 `children` / 只带 `retirePath` / 与 `activeTaskId` 同在 ⇒ 拒并点名;只带 `kind` 过门)。
126
+
127
+ ### Known limitations
128
+
129
+ - **状态帧 `seat` 不改重试句的主语**:帧带 `seat` 时句子只是不再冒用会话模型名、不给换模型出路,不说「分类器在等」(句表本版不加座位句);要把分类器的等待说成分类器的,端读 `seat` 自行标注。
130
+ - **钩子车道仍照读强制族**(§132 包侧缺口 ⑳):`hook` / `mode` / 部署自铸 / 标记族的问引擎照收钩子的允许,本包在带强制位的卡上仍跳过钩子段(比引擎严);内容问题卡不在门类集里,端若把它放进工具审批卡口,钩子的允许不带答案内容。
131
+ - **服务端 < 7.139.0 上换绑前态读不出**(**§132 SV-2**):老服务端没有执行放置读面,`readSessionBinding` 答 `unsupported/route`,换绑不可发(本包不再读已删的旧读面;那一代的换绑只能等服务端升级)。
132
+ - **子代结清 / 键控 fork 不出发射口**(**§132 SV-3 / SV-5**):换绑撞子代形 409 后的结清(`sessions.retireChildren`)与带键 fork(`{ forkId, forkNonce }` / `replayed`)本包本版不编排,宿主直调类型包;键控 fork 对老服务端是无声降级(返回的 `sessionId` 不等于所送 `forkId`),由调用方自核。
133
+ - **开流记录的环回信任假设续存**(KL-9831):服务端 7.139.0 仍没有 detach 受理回执,证据臂 `loopback-self-spawned` 照留(退役登记 RL-983 改窗 0.105.0)。
134
+ - **`SEMA_ATTACHMENTS=off` 在服务端 7.137.0 起不关「MCP 服务器挂不上」的附件帧**(**§132 SV-9**,pending):服务端 7.137.0 起认请求键 `attachments.mcpUnavailable`(缺省开),本包键表未收 —— 对支持范围内更老的服务端发这一键会整份 400,而 `SEMA_ATTACHMENTS` 这只读口不知道服务端版本;要关它的端对 ≥ 7.137.0 的服务端自拼 `attachments` 直发 `mcpUnavailable: false`。
135
+ - **停驻卡「没救」那一句在服务端 7.139.0 上说多了**(**§132h** DR-1 改口 · 包侧缺口 ㉘):`decideRowUnrevivableNotice` 仍说「批准和拒绝都不会生效、只能等服务端清理」;服务端 7.139.0 上这种卡点拒绝即作废(只有批准答 409),7.129.1 – 7.134.x 两键都 409。读口与 `unrecoverable` 位不变。
136
+
52
137
  ## 0.103.0(2026-10-29)
53
138
 
54
139
  > 主题:一次重锚到引擎 7.59.0(开发依赖 `@sema-agent/core` / `@sema-agent/mods-kernel` 7.59.0 · `@sema-agent/sdk` 28.0.0 · `@sema-agent/settings-schema` 14.8.0;生成表按新上游重生成)接入文档 **§131 PK-1 – PK-10** —— MCP 授权失败记录一只读口四处过境 · 两只新通知事实读器 · 状态帧等待两位 · 工具结果行改参记录 `_sema_rewrite` 与改参句 · 服务器名 `remote-` 前缀律 · 决断拒收「行完整性」只认正证据 · 请求键 `promptProfile` 换布尔 `promptLean`(🔴 型面 BREAKING)· 三处退役(RL-300 / RL-301 / RL-302)· 引擎 7.59.0 的抹除证明 v2 与整工具规则候选读得出 · 服务端 7.137.0 随附件 **§131 PK-10**(求助无门出路清单 · `invalid_session` 并进会话坏档判定 · 规则编辑文本修剪单铸点 · 计划审阅决断体带门身份 · 凭据平面读口 · 可收形 / 设备直达入口 / `inheritEnv` 拒因三位)· 结果帧成功臂不再带 `errors[]`(🔴 行为变,**§131 LG-1**)· 六只派生窄视图退出根入口(🔴 型面 BREAKING,**§131 LG-2**)。peer 地板不动。