@sema-agent/client-core 0.79.0 → 0.80.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/CHANGELOG.md +40 -0
- package/README.md +12 -9
- package/dist/adapter/downstream/eventToSdkMessage.js +2 -4
- package/dist/adapter/downstream/terminalToSdkResult.js +5 -4
- package/dist/adapter/runStream.js +25 -8
- package/dist/gateOutcome.d.ts +4 -0
- package/dist/gateOutcome.js +36 -0
- package/dist/gateVocabulary.d.ts +1 -0
- package/dist/gateVocabulary.js +7 -0
- package/dist/hitl/frameRouter.js +2 -5
- package/dist/hitl/hitlBridge.d.ts +6 -4
- package/dist/hitl/hitlBridge.js +1 -0
- package/dist/hitl/toolApprovalWire.d.ts +6 -0
- package/dist/hitl/toolApprovalWire.js +116 -38
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/mcpEngineLeg.d.ts +23 -0
- package/dist/mcpEngineLeg.js +135 -0
- package/dist/mcpLiveness.d.ts +1 -0
- package/dist/mcpLiveness.js +2 -1
- package/dist/request/taskRequest.js +1 -1
- package/dist/ruleRemovalConsequence.d.ts +3 -0
- package/dist/ruleRemovalConsequence.js +15 -0
- package/dist/sdkRegistryTransit.d.ts +6 -0
- package/dist/sdkRegistryTransit.js +5 -0
- package/dist/wireRefusalCopy.d.ts +9 -0
- package/dist/wireRefusalCopy.js +68 -0
- package/docs/INTEGRATION-CLIENTS.md +162 -9
- package/package.json +8 -4
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
|
|
20
20
|
| 项 | 值 | 真源 |
|
|
21
21
|
|---|---|---|
|
|
22
|
-
| 本包 | `@sema-agent/client-core` **0.
|
|
22
|
+
| 本包 | `@sema-agent/client-core` **0.80.0**(本批发布版 = **minor**:🔴 peer sdk 地板 >=11.2.1 → >=11.3.0 + 策略拒的归因上 wire(CC-133:发送面 deny+policy 带 settledBy / 读侧 policy_refused 十三词入 CC 规则桶 / 三错误码读口 / 直连门去键重发恰一次)+ 删除规则后果句归包(CC-132)+ /mcp 详情卡两腿分说归包(CC-134:六档读口 + 九句铸点,同批改口八处说满的话)+ 🔴 终帧旧拼法 `structuredOutput` 按 0.79.1 的宣告删除(只剩 CC 形 `structured_output`);根公面 1195;§87。上一版 0.79.1 = **patch**:终帧结构化产出同帧铸 CC 形 `structured_output`(旧拼法 `structuredOutput` 过渡一版,0.80.0 删;CC-130)+ 写审批 `argsOmitted` 退化卡在无受护写入部署形上重新解得出路径(CC-129)+ 云控制面十值二型经本包第二个入口 `@sema-agent/client-core/registry` 原样转口(根入口零变;CC-128 ①);根公面 1184;§86。上一版 0.79.0 = **minor**:server 7.93.0 过境批 —— peer sdk 地板 >=11.2.1 + 写口回执第六臂 unverified 与 503 体 committed 分臂(CC-124)+ 无 run 可读的 MCP 状态面(CC-74)+ 审批卡 mandated 位(CC-110)+ 请求装配第三车道 utility 与 approverPosture / maxTokens / outputRetries 三键 + print 车道 model 座(CC-116 / 118 / 123)+ 拒因两面分铸与四个机读位(CC-125)+ 模型轮边界划消息界(CC-126)+ 委派结果人类面读口按来源声明体内定位(CC-127)+ sdk 转口三件(CC-128)+ 通告码 memory.project_scope_absent(CC-122);公面 1184;§85。上一版 0.78.2 = **patch**:门的棘轮登记数字单真源 —— 五只门十一格棘轮 + 218 条沿革账搬进 scripts/registry.json、门只读不抄、负控改篡改登记物、下调通道 RATCHET-SLACK、新门 run-registry-test(CC-79 第一期)+ 两格存量松量收掉 + submit-wiring-manifest 门补 count===1 边界格;src 零改动,dist 逐字节同 0.78.1;公面 1154;§84。上一版 0.78.1 = **patch**:两辆并行车收货 + 三张跟进票 —— displayBody 人类面读口 + 围栏解析头尾配对收紧(CC-113)/ MCP 两处「没报」措辞分句(CC-115)/ 记忆治理面五动词调用口(CC-97 b)/ 非流式提交回执接线回执读口 readSubmitWiringManifest(CC-121)/ 三份失败判官抛出物读取收口(CC-119);公面 1154;§83。上一版 0.78.0 = **minor**:peer sdk 地板 >=9.8.1 → >=11.0.1(CC-106)+ 单步写口 200 体按 stillLive 判别联合改读、第五臂 revoked、三型取自 sdk、RulesFacade.write 必填、PersistedRuleLiveness 转口(CC-103)+ DeniedBy 第十词 read_boundary 专句(CC-106 ④)+ excludeAllTools 车道行;型面 BREAKING 三处、行为面同 0.77.2;公面 1143;§82。上一版 0.77.2 = **patch**:出包面结构卫生 —— 构建期 removeComments,dist js / d.ts 零注释(新门 run-dist-comments-test.mjs + 卫生门词表 32 条 + 文档向前执法;CC-100)+ gateDeniedByDetail 表外词兜底句改「本版不认识这个层名」(CC-111 ①);行为 / 型面逐字节同 0.77.1;公面 1143;§81。上一版 0.77.1 = **patch**:外部验收三件回填 —— 读器族边界残留 projectMcpReconnectCapability 只认自有键(CC-107)/ rewind 四子键恰读一次(CC-108)/ 子代输出合并按回体 output.type · retrieval_status 定处置(CC-109,server ≥7.92.0 cursorSemantics 缺席面);型面 additive 一处;公面 1143;§80。上一版 0.77.0 = **minor**:请求装配逐键去向回执 + print 车道补座 + 表外键响亮拒(CC-101,四条行为 BREAKING)/ 会话策略写端口(CC-105)/ 持久规则单步写面(CC-103)/ workflow 子代面板行代际三向恢复(CC-104,零改码)/ 能力位读器族口径整族改齐 + 外部验收 F-A / F-B 处置 + 合并树异源复审两轮处置;公面 1143;§79。上一版 0.76.2 = **patch**:制品卫生 —— 清 dist 重 build 去掉两只已撤出源码的编译产物 + dist ⇄ src 对账门;零源码 / 零型面 / 零行为改动;公面 1122;§78。上一版 0.76.1 = **patch**:能力位读器工厂(CC-75)/ MCP 活性观察读口(CC-36)/ `capabilities.peerLane` · `permissionRulesWrite` 四态读口(CC-102)/ 记忆治理面两只读口 + 三只条目面回体读口(CC-97 a)/ 主车道证明逐次新建(CC-99)+ 修 0.76.0 的 F1 / F2(身份四键一次性快照只修了投影口一侧);公面 1122;§77。上一版 0.76.0 = **minor**:六票一批 —— `prompt_assembled` 投影臂 / 审批 feed 三态(**型面 BREAKING**)/ `ApprovalResolution` 单源联合 / 记忆 spec 读口 / 终态词表上游钉 / `tasks_expand` 退役(**型面 BREAKING**),外加身份四键一次性快照(跨全部内部臂);公面 1081;§76。上一版 0.75.1 = **patch**:面板短命子代反序缓行放不出的残洞(外部复验 D1)+ 同代 running 帧三向定形(B4)+ #969 提货 `spawnName` 透传与 `agentType` 改读诚实来源(CC-95);§75。上一版 0.75.0 = **minor**:压缩的非 compacted 结局上 chrome 面 `compaction_outcome`(新内部臂 —— 自建 print 出口的端先表态)+ peer sdk 地板 `>=9.8.1`;型面 additive(ChromeEvent +1 臂)、公面 1065、零 wire 新键;§74。上一版 0.74.5 = **patch**:core 7.24.0 提货 `_sema_freed_tokens?` + 首见即终态的行零事件(幽灵完成行)+ `isNewEngineAgentPanelCycle` / `approvalOutcomeNoteOf` 上公面;型面 additive、公面 1065、peer 不动;§73。上一版 0.74.4 = **patch**:面板键「先发布的键为准」(tick 归不了一的三序不再两行)+ 前代 UUID 迟到 tick 丢弃 + `readRunCancelContext` 下钻收紧;型面 additive、公面 1061、peer 不动;§72。上一版 0.74.3 = **patch**:面板子代身份归一(tick / end 的 UUID 归到 fleet 尾段,宿主零改)+ run 记录 `cancelContext` 读口与成因四词 + workflow 行 `errorCode` + reopen 第二臂两件;型面纯 additive、公面 1061、peer 不动;§71。上一版 0.74.2 = **patch**:`capabilities.deviceExecutor.management` 四态读口(缺席 ≠ false;`deviceExecutor: false` = 车道缺席;管理动词可用性三态归包);公面 1052;§70。上一版 0.74.1 = **patch**:审批卡无决断收口 + 结局回交;§69。上一版 0.74.0 = **minor**:peer sdk 地板 >=9.7.1 + covers 过境 + 面板周期身份 + 离场读口;§68。上一版 0.73.5 = **patch**:workflow 规模告警判定上收进包(`evaluateWorkflowSize` 三态:未知的规模不当作规模正常;分母口径与帽优先级单源;env 读口纯函数);型面纯 additive、公面 1044、peer 不动;§67。上一版 0.73.4 = **patch**:终帧 `permission_denials` 第三键 ⇐ 同一条流 `tool_start` 入参按 `toolCallId` join(三道闸;join 不上留 sema 载体;🔴 更正 0.73.2「自动升级收口」一句)+ 审批 feed push 侧取件失败的欠账退避重试;型面纯 additive、公面 1033、peer 不动;§66。上一版 0.73.3 = **patch**:CC-61 sdk 9.7.1 提货 + `capabilities.approvalsStreamLive` 四态读口(缺席 = 判不出;`livePendingNeedsReconcile` 只在引擎明说会推时才让对账节拍降兜底)+ CC-60 五条模型面文案锚包侧半场(cursorSemantics 机读位 / result 行注记 / bash 首行两变体与良性槽 / 通知 seed 并集 / parked 臂);型面纯 additive、公面 1032、peer 不动;§65。上一版 0.73.2 = **patch**:CC-59 悬挂 ask 全卡 —— `livePending[].frame`(server ≥7.87.0)两道闸窄读进视图,在场即走流内帧腿同一条路(入参可见、改写可转发),缺席保持盲卡;CC-34 收口(引擎半场随 7.87.0 到货,判据交黑盒);型面纯 additive、公面 1026、peer 不动;§64。上一版 0.73.1 = **patch**:CC-57 `decidePlanReview` outcome 尾句按「决断有没有生效」四态选(单铸点 `planReviewOutcomeTail`;此前本地拒发仍让模型汇报已拒绝)+ CC-56 cancel 的 409 按机器码分家(`cancelConflictFromError` 三形 / 新安全码 `cancel_run_not_running`)与提交面 429 用量窗读口 + 人话;型面纯 additive、公面 1026、peer 不动;§63。上一版 0.73.0 = **minor,型面 BREAKING**:fleet 视图八个数值键改可选 —— CC-52 `FleetTaskView.elapsedMs` / `tokens` / `queuedCount` 与 `FleetWorkflowView.doneCount` / `totalCount` / `failedCount` / `tokens` / `elapsedMs` 不再 `?? 0`(有键 = 真值含真 0,缺键 = 不知道;逐键缺席语义见 §62b)+ 台账补偿链无基数不铸;公面导出名零增减 1019、零 wire 变化、peer 不动;§62。上一版 0.72.14 = **patch**:悬挂的流内 ask 拉半场 —— CC-55 `startApprovalsFeed` 快照加 `livePending` 段并进变化摘要(键缺席 = 未报,不铸空)+ 视图 / 去重账 / 与流内帧腿同链的决断口(入参不可见上卡明说、改写不转发)+ 宿主闸对账节拍 + 待决计数读口(不知道 = null);型面纯 additive、公面 1019、peer 不动;§61。上一版 0.72.13 = **patch**:server 7.86.0 提货 —— CC-46 plan_review `permissionModeAfter` 发口(三选卡双闸:宿主声明只读起步 ∧ 引擎 ≥7.86.0;400 field_conflict 两种处置)+ CC-54 `capabilities.executionLane` 四态读面(键缺席 ≠ 不是本机车道;`toolsRunHere` 判据归包)+ CC-53 detach 版本闸三态;型面 additive(另撤回 0.72.12 的主通道 `absent` 臂,改独立缺席订阅口)、公面 1011、peer 不动;§60;**预告 0.73.0 BREAKING**:fleet 视图数值键改可选。上一版 0.72.12 = **patch**:「缺席被折成正向终态」按类清剿 —— CC-50 M1 头条(fleet 行缺席改发 `absent` 不再铸 `end{isError:false}`)+ 六站一次改齐(缺席 ⇒ `unknown`)+ 结果边界 fail-closed 取舍 + `_sema_outcome` + `Outcome unknown:` 行 + CC-51 M6(default 臂不再谎报 running)+ 普查门 + DS-06;型面 additive、公面 993、peer 不动;行为面三处真变化见 CHANGELOG 取舍段;§59。上一版 0.72.11 = **patch**:core 7.23.0 提货 —— CC-49 通告码 66 → 67 `config.write_protection_unresolved`(operator;兄弟码 `target_view_absent` = 没有视图,这枚 = 有视图解析不出)+ `permission_denials` 自动升级腿通电(`gates[].toolCallId` ⇒ `tool_use_id`;CC-34 引擎半场);型面零变化、公面 989、peer 不动、devDep core ~7.23.0;§58。上一版 0.72.10 = **patch**:CC-41 leader run 终局 `needs_human` + `result.conflict` 三形读面(none 缺席不可分 / unreadable 在场读不懂 / conflict;`salvaged[]` 原样给落盘口;措辞单源不提重试);型面纯 additive、公面 989、peer 不动;§57。上一版 0.72.9 = **patch**:server 7.85.0 提货 —— CC-30 会话内 MCP re-dial 消费口(`reconnectMcpServer` 三态 / unsupported 恒五键 / 交易文案单源)+ CC-39② memory-status `autoConsolidationArmed` 三态 + CC-45 resume 补充句渲保留秒数;型面纯 additive、公面 985、peer 不动;§56。上一版 0.72.8 = **patch**:清账三票 —— `memory:"off"` 请求键(CC-39③,server 7.84.0 S-405)+ `runStream` 第二条中性臂 `Model output error:`(CC-43)+ 注入件撞活 run 自动 steer 零卡(CC-44);型面纯 additive、公面 977、peer 不动;§55。上一版 0.72.7 = **patch**:core 7.22.0 提货 —— 通告码 66 `mcp.server_redialed` + 读器 `readMcpServerRedialed` + `wiring_manifest.readDeny` 第九段 `_sema_readDeny`(缺席 = 没有内置行判这条腿);型面纯 additive、公面 971、peer 不动、devDep core ~7.22.0;§54。上一版 0.72.6 = **patch**:cli L-379 包侧半场 —— `steerFollowIntent` steer 后续听意图三态(tail / after-decision / after-wake)+ `activeRunSelfHealRow` 续听声明第五参;型面纯 additive、公面 969、peer 不动;§53。上一版 0.72.5 = **patch**:server 7.82.1 提货 —— `capabilities.webSearch.backend` 部署默认 WebSearch 后端四态读面(键缺席 = 老引擎判不了 ≠ `none`);型面纯 additive、公面 968、peer 不动;§52。上一版 0.72.4 = **patch**:core 7.21.x 三件经 server 7.82.0 提货 —— `wiring_manifest.autoConsolidation` 第八段 `_sema_autoConsolidation`(缺席 = indeterminate 不折 false);型面纯 additive、公面 962、peer 不动;§51。上一版 0.72.3 = **patch**:core #863 记忆单系统半场 ① —— `projectAgentsForWire` 投影 `agents[].memory`(user|project|local 三词同映射引擎平面 agent:<type>);型面纯 additive、公面 962、零 wire 新键、peer 不动;§50。上一版 0.72.2 = **patch**:workflow 视图两票 —— `LiveWorkflowController.resolution()` 六态(snapshot() 的 null 三义拆开)+ `noteOwnWorkflowRun` own 台账同拍登记;型面纯 additive、公面 961、零 wire 键、peer 不动;§49。上一版 0.72.1 = **patch**:server 7.80.1 提货 —— 409 `conflict.resume_context_unavailable` 结构读数(`staleAfterSec` / `runId`;sdk 9.6.0 尚未带键,经 sdk 今天恒缺席)+ `SkillSpec.baseDir`(只在本机车道带);型面纯 additive、公面 960、peer 不动;§48。上一版 0.72.0 = **minor**:型面 BREAKING —— 39 个零消费导出退出公面(CC-32 退役批,[7419] §45 预告 / cli [7422] 同意 / web-client·desktop 过节拍沉默 = 同意;名单见 §47a S-1);运行期零 BREAKING、公面 956、peer 不动、devDep core ~7.20.1;随批:已退役名账 `removed` + export-liveness 门 G 段 + 冻结账门 ⑧c;§47。上一版 0.71.4 = **patch**:core 7.20.1 提货 —— `ENGINE_NOTICE_CODES` 65 + `wiring_manifest.writeProtection` 第七段 `_sema_writeProtection`;型面纯 additive、公面 995、peer 不动、devDep core `~7.20.1`;§46。上一版 0.71.3 = **patch**:门体系清账批 —— CC-24 export-liveness 门 + 39 个导出退役预告(0.72.0 删,表态制)/ CC-26 `as unknown as` 铸链棘轮 / CC-25 冻结账门 ⑧ 段 / CC-06 B-081 包侧半场(终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` + resume reopen 族 + `routePairingVerdict`);型面纯 additive、公面 986 → 995、peer 不动;§45。上一版 0.71.2 = **patch**:接入方验收两票归包 —— CC-28 B-132 decide 拒体三句去内部车道词 / CC-29 B-133 committedUuids 唯一性(重复 ⇒ 形 f);零型面变化、公面 986、peer 不动;§44。上一版 0.71.1 = **patch**:接入档打回修正 —— CC-27 `ApprovalCardRequest.readRootCandidate?` 帧→卡透传位 + 新导出型 `ReadRootCandidateView`;型面纯 additive、公面 986 不变、peer 不动;§43。上一版 0.71.0 = **minor**:型面 BREAKING 六件 —— peer sdk 地板 >=9.6.0 + agent-types >=0.3.0 / `SkillsListingTruncatedFactsView` 删 `requestedBudgetBytes?`·`laneClamped?` / `WiringManifestMcpEntry` → `WiringManifestMcpEntryView` / `MAX_AGENT_SKILLS` 删 / `decide.workflow_host_not_parked` 退役;运行期零 BREAKING。内容:core 7.20.0 提货(闭集 +5 六十四码)/ 🔴 CC-16 `text_segment_end.committedUuids[]` / CC-08 全五件(tool_disclosure / tool_progress 两 chrome 臂、wiring_manifest tools·hooks·lsp 进切片、tool_roster_delta 接上、context_usage 进切片、`readRootCandidate` 镜像)/ CC-19 `mcpEngineLegPresence` 归包 / CC-20 not_parked clean-cut;公面 986;§42 / 42y 八条)|
|
|
23
23
|
| peer:wire 契约 | `@sema-agent/sdk` **>=11.2.1**(value-level,非 type-only;**0.79.0 抬版**:11.2.x 声明 `capabilities.mcpProbe`、`mcpCapabilities` / `probeMcp` + `McpProbeFace`、写回执第三支 `stillLive: "unknown"`,11.2.1 再补 `TaskRequest.approverPosture` 与审批帧键 `mandated`(型面 + 运行期键锚),本包按 11.2.1 编译,11.0.1 失去物料见证;**0.78.0 曾抬到 >=11.0.1**:11.x 声明 `DeniedBy` 第十词 `read_boundary`、`rules.write` 200 体按 `stillLive` 判别联合、`RemovalLiveness` / `RuleWriteRequest` / `RuleWriteResult` / `RuleWriteBehavior` 包根导出、`TaskRequest.excludeAllTools`,本包按 11.0.1 编译,9.8.1 失去物料见证;**0.75.0 曾抬到 >=9.8.1**:9.8.x 声明 `Capabilities.deviceExecutor.management?`,9.7.1 失去物料见证;**0.74.0 曾抬到 >=9.7.1**:9.7.x 追平的六处型面是本包 0.73.3 起的编译基线,且 9.6.0 失去物料见证;**0.71.0 曾抬到 >=9.6.0**:`tool_disclosure` / `tool_progress` 两帧型与 `ToolApprovalFrame.readRootCandidate` 自 9.6.0 起;0.69.0 曾抬到 >=9.4.0(`reasoning_end` / `lastLegMcp`),0.60.0 抬到 >=8.4.0;地板由 `scripts/run-sdk-floor-test.mjs` 的 `FLOOR` 与 public-surface 门 C-CC-3「不低于见证到的最低实装版」双钉)| `package.json` `peerDependencies` |
|
|
24
24
|
| peer:会话词汇表 | `@sema-agent/agent-types` **>=0.3.0**(type-only,零运行时;0.71.0 抬版:devDep 与 peer 同步,type-superset 门 ④ 撞名预警对着 0.3.0 的 .d.ts 求值) | 同上 |
|
|
25
25
|
| runtime dep | `diff` ^9.0.0(**唯一**一条;portability 门按**等值**钉死) | `package.json` `dependencies` |
|
|
26
|
-
| 公开导出面 | **1184** 个运行期符号(+ **57 个测试钩,两种拼法**:33 个 `__*ForTests` + 24 个 `_*ForTest` —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1081 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1184 + 57 = **1241**;只剔双下划线那 33 个会多数出 24 个来,那不是棘轮盲区;= 下一版(未发布)的值:相对 0.75.1 **+16**,两票合计 —— **CC-77 ①** 审批决断结局单源判别联合 6 件:`approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` + 两张 cause 词表 `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(域 3);**CC-96** 记忆 spec 读面 10 件:`readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS` / `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH` + 判别形型(域 6 / 16)。CC-89 / CC-91 / CC-92 / CC-98 四票**零值导出增减**(新臂走 `ChromeEvent` 联合与内部臂表,`tasks_expand` 退役删的是联合成员不是导出名);1065 = 0.74.5 / 0.75.0 / 0.75.1 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1065 = 0.74.5 / 0.75.0 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1061 = 0.74.3 / 0.74.4 的值:相对 0.74.2 +9 —— CC-70 / CC-71 / CC-72 / CC-73 八件 + CC-80 `lastFlagValue`,见 §2b 域 3 / 4 / 10 / 15;1052 = 0.74.2 的值:相对 0.74.1 +6 —— CC-69 六件,见 §2b 域 9;1046 = 0.74.1 的值:相对 0.74.0 +1 —— `RETRACTED_CARD_DECISION_KIND`,见 §2b 域 3;1045 = 0.74.0 的值:相对 0.73.5 +1 —— `isStaleEngineAgentPanelEnd`,见 §2b 域 4;1044 = 0.73.5 的值:相对 0.73.4 +11 —— CC-58 规模告警十一件,名单见 §2b 域 12;1033 = 0.73.4 的值:相对 0.73.3 +1 —— `TOOL_INPUT_JOIN_MAX_CALLS`,见 §2b 域 1;1032 = 0.73.3 的值:相对 0.73.2 +6 —— CC-61 六件,名单见 §2b 域 9;1026 = 0.73.2 的值(导出名零增减);= 0.73.1 的值:相对 0.73.0 +7 —— CC-56 六件 / CC-57 一件,名单见 §2b 域 3 / 15;1019 = 0.73.0 的值(导出名零增减,BREAKING 在类型面);= 0.72.14 的值:相对 0.72.13 +8 —— CC-55 八件,名单见 §2b 域 3;1011 = 0.72.13 的值:相对 0.72.12 +18 —— CC-46 八件 / CC-54 六件 / CC-53 两件 / CC-50 缺席口两件,名单见 §2b 域 3 / 4 / 9 / 10;993 = 0.72.12 的值(测试钩 45):相对 0.72.11 +4 —— CC-50 `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText` / `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`;989 = 0.72.10 的值:相对 0.72.9 +4 —— CC-41 `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX` / `projectLeaderConflict` / `leaderConflictDetail`;985 = 0.72.9 的值:相对 0.72.8 +8 —— CC-30 `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `reconnectMcpServer` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail`、CC-39② `readAutoConsolidationArmed`;977 = 0.72.8 的值:相对 0.72.7 +6 —— CC-39③ `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`、CC-43 `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`;971 = 0.72.7 的值:相对 0.72.6 +2 —— CC-42 core 7.22.0 提货 `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`;969 = 0.72.6 的值:相对 0.72.5 +1 —— CC-40 `steerFollowIntent`;968 = 0.72.5 的值:相对 0.72.4 +6 —— CC-31 server 7.82.1 提货 `capabilities.webSearch.backend` 四态读面:`WEB_SEARCH_BACKEND_NONE` / `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading` / `webSearchBackendDoctorDetail`;962 = 0.72.3 的值:相对 0.72.2 +1 —— CC-39① `AGENT_MEMORY_WORDS`;0.72.2 相对 0.72.1 +1 —— CC-37 `noteOwnWorkflowRun`;0.72.1 相对 0.72.0 +4 —— CC-33 server 7.80.1 提货:`RESUME_CONTEXT_UNAVAILABLE` / `resumeContextUnavailableFromError` / `resumeContextUnavailableContent` / `skillBaseDirOf`;0.72.0 相对 0.71.4 −39 —— CC-32 退役批删 export-liveness 登记 retire 的 39 个零消费导出(23 常量 + 16 函数,名单见 §47);995 = 0.71.3 的值:相对 0.71.2 +9 —— CC-06 `readEffectiveReasoning` / `readEffectiveMemoryScopes` / `resumeReopenFromError` / `resumeReopenContent` / `routePairingVerdict` 五函数 + `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` 四常量;986 = 0.71.0 的值:相对 0.70.2 −`MAX_AGENT_SKILLS` −`DECIDE_WORKFLOW_HOST_NOT_PARKED` +`projectToolRosterDelta` +`mcpEngineLegPresence`;986 = 0.70.0 的值:相对 0.69.2 **一件 additive(`readSkillsListingTruncated`,§39)、零删除**;985 = 0.69.2 的值:相对 0.69.1 **三件 additive、零删除**(CC-13 `isSubFlowSegmentEnd` / `SEGMENT_END_IDENTITY_KEYS` / `droppedWhySentence`,§38);982 = 0.69.0 未发布版的值(原排 0.68.3,因 peer 地板抬升改 minor)= 相对 0.68.2 **十七件 additive、零删除**:`fetchMcpPanel`(CC-03 补件,§36e)+ `readWorkflowResumeAdmissionIncomplete`(CC-05 core 7.18.0 #755)+ `installCoreValuePorts`/`hasCoreValuePorts`/`hasCoreValuePort`/`coreValuePortMisses`/`CORE_VALUE_PORT_NAMES` + 十读口(CC-07 core 值级端口,§36d);0.68.2 相对 0.68.1 十三件 additive:`SEMA_SEGMENT_ID_KEY`(CC-01 段身份键,§35f)/ `projectMcpPanel`+`mcpPanelLastLegDetail`+`projectMcpSection`(CC-03 `/mcp` 面板读视图,§35g)/ `resolveTextSegmentAuthority`/`createTextSegmentLedger`(L-318 `text_end` 权威段替换的判决单源 + print 形段账,详见 §35b/§35c)/ `memoryCaptureDeclarationField`/`MEMORY_CAPTURE_OFF`(L-316 会话级隐私声明的字面唯一铸点,§35d)/ `engineUrl`/`probeHealth`(L-61 件④ SDK 纯工具面原样转口,§35d)/ `AgentClient`/`isApprovalRequestFrameV1`/`isApprovalRevokeFrameV1`(L-61 存量清零:SDK **wire 面**原样转口,§35e)。`0.68.1`/`0.68.0` 是 **952**,那批是相对 0.67.2 **二十件 additive、🔴 两件删除(BREAKING)**:additive = `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`RUN_TERMINAL_STATUSES`(L-247 终态词两表分源,详见 §33b)/ `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(L-244 子代下界位自有名,§33g)/ `ASK_UNRESOLVABLE_CAUSES`/`readAskUnresolvable`/`DURABLE_MANDATE_SOURCES`/`readDurableGateUnavailable`(core 7.17.0 #709 ①② 两只通告事实窄读器,§33c)/ `WORKFLOW_PARK_TRUTH_UNREADABLE`/`WORKFLOW_PARK_NOT_PENDING`/`WORKFLOW_PARK_BINDING_BROKEN`/`WORKFLOW_PARK_REQUIRES_RUN_STORE`(四个单码常量 🔧 0.72.0 退役)/`WORKFLOW_PARK_REFUSAL_CODES`/`isWorkflowParkRefusalCode`/`readWorkflowParks`(core 7.17.0 #652 park 真相四码 + parks 三键读器,§33d)/ `ENGINE_STOP_REASONS`/`engineStopReasonToCc`(L-246 A13 停止原词映射下沉,§33g)/ `readCancelRequested`(L-230 读面,§33f);🔴 **删除两件** `TERMINAL_NOT_SUCCESS_STATUSES`/`TERMINAL_STATUSES`(随 L-247 两表分源更名成 `RUN_TERMINAL_*`,clean-cut **不留别名** —— 留一个别名等于让端可以继续按合起来的那张表读,分源就白做了,详见 §33b)。`0.67.0` 是 **934**,那批是相对 0.66.0 **七件 additive、🔴 两件删除**:additive = `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`(core 7.14.0 退役 `classifierUnavailable` 之后的**拒绝面**继任读器与措辞,详见 §32b)/ `RULE_STORE_UNREADABLE_KINDS`/`isRuleStoreUnreadableKind`/`ruleStoreUnreadableDetail`(core 7.14.0 #688 C3 的规则店机制位三件,详见 §32d);🔴 **删除两件** `classifierUnavailableOf`/`classifierUnavailableDetail`(随 core 7.14.0 的 Retired keys 表整族退役,clean-cut 不留别名,详见 §32b;同批删的还有**型** `ClassifierUnavailableView`、卡位与帧位 `classifierUnavailable`、以及一条恒真的型面钉 `_askOriginWordsPin`)。`0.66.0` 是 **929**,那批是一件 additive、零删除:`readRunCostFacts`(终局成本事实的唯一读器:`costBreakdown` / `nested` 窄读 + 对账三段与两个判别位,终帧超集键与 chrome 对账臂共用它;详见 §31c);已发的 **0.65.x 十一件 additive、两件删除**:additive = `DECIDE_WORKFLOW_HOST_UNKNOWN`/`DECIDE_WORKFLOW_HOST_NOT_PARKED`/`DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED`/`DECIDE_WORKFLOW_LANE_CODES`/`readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070 `/decide` 回执读面与三码人话,详见 §30h)/ `TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`TERMINAL_STATUSES`/`isTerminalStatus`(L-215② 终局词汇单铸谓词,详见 §30j);🔴 **删除两件** `AUTO_MODE_BREAKER_CAUSES`/`classifierBreakerOf`(熔断族随 core 7.12.0 的 Removed(BREAKING) 整只退役,clean-cut 不留别名,详见 §30k②;同批删的还有**型** `ClassifierBreakerView` 与 `ClassifierStatusView.breaker` 一位)。`0.64.2` 是 **919**,那批是一件 additive、零删除:`readDenialLimitFallback`(限额回落卡的窄读器上公面,壳侧同判据副本退役,详见 §29③);`0.64.0` 是 **918**,那批是件①+件② 十三件 additive、零删除:`CLASSIFIER_STATUS_STATES`/`classifierBreakerOf`/`classifierStatusOf`/`classifierStatusDetail`(分类器状态面,详见 §28②)/ `THINKING_FORMATS`/`THINKING_FORMAT_WIRE_TWINS`/`THINKING_DISABLE_PROBE_ORDER`/`MODEL_PROBE_VERDICTS`/`PROBE_PROMPT`/`PROBE_MAX_TOKENS`(两个探针常量 🔧 0.72.0 退役)/`probeRequestBody`/`probeModelCapability`/`applyProbeToEntry`(模型思考能力探测,详见 §28①);`0.63.0` 是 **905**,那批是八件 additive、零删除:`projectServerGateKnobs`/`postureKnobSourceOf`/`postureSourceIsOperatorPinned`/`postureKnobDetail`/`POSTURE_SOURCE_WORDS`(S-178 三根 posture 旋钮读数,详见 §27b)/ `PERSISTED_RULE_BEHAVIORS`/`PERSISTED_RULE_BEHAVIOR_UNKNOWN`/`persistedRuleBehaviorOf`/`persistedRuleBehaviorLabel`/`revokeTargetFromPersistedRule`(三态规则身份,§27c)/ `engineIdentityOf`/`engineIdentityVerdict`/`engineIdentityChanged`/`engineIdentityChangedBy`/`ENGINE_IDENTITY_ANCHORS`(S-179 代际锚,§27d)/ `GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`(门词汇 +2,§27e)/ `PERMISSION_RULE_ISSUE_CODES`/`RETIRED_PERMISSION_RULE_ISSUE_CODES`/`permissionRuleIssueDetail`(规则 lint 码表,§27f)/ `projectToolRoster`/`toolRosterNames`/`toolShimFromRoster`/`applyToolRosterDelta`(L-161 工具名册,§27g)/ `ENGINE_NOTICE_CODES`/`ENGINE_NOTICE_AUDIENCE`/`noticeAudienceOf`/`engineNoticeInCatalog`/`MCP_INJECTION_DROP_REASONS`/`readMcpInjectionDrop`(L-167 通告码册,§27h)/ `AUTO_MODE_UNAVAILABLE_CAUSES`/`AUTO_MODE_BREAKER_CAUSES`/`classifierUnavailableOf`/`classifierUnavailableDetail`(件⑧ 分类器不可用事实,§27h2);`0.62.0` 是 **869**,那批是五件 additive、**零删除**:`capForDisplay`(呈前消毒 + 封长的共用铸点,详见 §26⑦)/ `SEAT_SEND_MESSAGE_KEY_ORIGINS`(座位载荷逐键出身表,详见 §26③)/ `configureSubagentContentStore`+`subagentContentStoreConfig`+`SUBAGENT_CONTENT_STORE_DEFAULTS`(子代内容账本字节预算,测试钩 `__resetSubagentContentStoreConfigForTests` +1,详见 §26②);`0.61.0` 是 **864**,那批是三件 additive、**零删除**:`projectReadFacePosture`/`readFacePostureDetail`/`readFaceDisagreement`(S-167 READ 容纳面 operator 读器,详见 §25);`0.60.0` 是 **861**,那批是二十五件 additive、**零删除**:`readRunTerminal`/`runTerminalCode`/`runTerminalGateKind`/`runTerminalGateToolName`/`isReviewPark`/`REVIEW_PARK_GATE_KINDS` 六件终局因由读器 + `gateOutcomeOf`/`isDeniedGate`/`gateDeniedBy`/`gateApprover`/`isApprovalWindowExpiredGate`/`isDenialLimitAutoDeniedGate`/`isParkSlaExpiredGate`/`isHumanSettledGate` 八件门记录读器 + `projectWriteProtectionCapability`/`noteEngineCapsForWriteProtection`/`observedWriteProtection`/`forgetWriteProtectionReading`/`writeProtectionDoctorDetail`/`projectWriteProtectionPosture`/`writeProtectionPostureDetail` 七件写保护读面(测试钩 `__resetWriteProtectionReadingsForTests` +1)+ `readWireErrorCode` + 真机边界①的两件 `isGateParkedToolEnd`/`GATE_PARKED_ERROR_CODE` + 异源复审逼出的 `engineCapsGeneration`;`0.59.0` 是 **836**,那批是八件 additive:`RULE_OFFERS_ABSENCE_REASONS`/`DENIAL_LIMIT_KINDS` 两张闭词表再导出 + `engineCapValue` 能力位四态通用读口 + `projectSqlEngineCapability`/`observedSqlEngine`/`noteEngineCapsForSqlEngine`/`forgetSqlEngineReading`/`sqlEngineDoctorDetail` 五件 SQL 姿态读面(测试钩 `__resetSqlEngineReadingsForTests` +1);`0.58.0` 是 **828**,那批是三件 additive:`RULE_OFFER_MATCHES`/`RULE_OFFER_BATCH_MEMBER_KINDS`/`RULE_OFFER_UNCOVERED_REASONS` 三张闭词表再导出 + `RESUME_REFUSAL_CODES`/`RESUME_PLACEMENT_MISMATCH`/`resumeRefusalFromError`/`resumeRefusalContent` 四件文案铸点;`0.57.0` 是 **821**;`0.56.0`/`0.55.0` 是 **815**;已发 `0.54.0`(design/385 十件 additive 含 `AUTHORITY_ENVELOPE_TAGS` 🔧 0.72.0 退役);`0.52.0` 是 **805**(L-69⑨ 两件);`0.51.0` 是 **803**;`0.50.0` 是 **800**(S-81 五件);`0.49.0` 是 **795**;`0.48.0` 是 **794**;npm `0.47.0` 是 **790**,`0.46.0` 是 **787**,`0.44.0` 是 **783**,`0.43.1`/`0.43.0` 是 **776**,`0.42.0` 是 **771**,`0.41.0` 是 **767**,`0.39.0` 是 **766**,`0.38.0` 是 **764**;`0.37.0` 是 **753**,见 `CHANGELOG.md`) | `scripts/public-export-baseline.json` 的 `count` / `testHookCount` —— **别手抄进别处,以该文件为准** |
|
|
26
|
+
| 公开导出面 | **1195** 个运行期符号(+ **57 个测试钩,两种拼法**:33 个 `__*ForTests` + 24 个 `_*ForTest` —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1081 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1195 + 57 = **1252**;只剔双下划线那 33 个会多数出 24 个来,那不是棘轮盲区;= 下一版(未发布)的值:相对 0.75.1 **+16**,两票合计 —— **CC-77 ①** 审批决断结局单源判别联合 6 件:`approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` + 两张 cause 词表 `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(域 3);**CC-96** 记忆 spec 读面 10 件:`readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS` / `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH` + 判别形型(域 6 / 16)。CC-89 / CC-91 / CC-92 / CC-98 四票**零值导出增减**(新臂走 `ChromeEvent` 联合与内部臂表,`tasks_expand` 退役删的是联合成员不是导出名);1065 = 0.74.5 / 0.75.0 / 0.75.1 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1065 = 0.74.5 / 0.75.0 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1061 = 0.74.3 / 0.74.4 的值:相对 0.74.2 +9 —— CC-70 / CC-71 / CC-72 / CC-73 八件 + CC-80 `lastFlagValue`,见 §2b 域 3 / 4 / 10 / 15;1052 = 0.74.2 的值:相对 0.74.1 +6 —— CC-69 六件,见 §2b 域 9;1046 = 0.74.1 的值:相对 0.74.0 +1 —— `RETRACTED_CARD_DECISION_KIND`,见 §2b 域 3;1045 = 0.74.0 的值:相对 0.73.5 +1 —— `isStaleEngineAgentPanelEnd`,见 §2b 域 4;1044 = 0.73.5 的值:相对 0.73.4 +11 —— CC-58 规模告警十一件,名单见 §2b 域 12;1033 = 0.73.4 的值:相对 0.73.3 +1 —— `TOOL_INPUT_JOIN_MAX_CALLS`,见 §2b 域 1;1032 = 0.73.3 的值:相对 0.73.2 +6 —— CC-61 六件,名单见 §2b 域 9;1026 = 0.73.2 的值(导出名零增减);= 0.73.1 的值:相对 0.73.0 +7 —— CC-56 六件 / CC-57 一件,名单见 §2b 域 3 / 15;1019 = 0.73.0 的值(导出名零增减,BREAKING 在类型面);= 0.72.14 的值:相对 0.72.13 +8 —— CC-55 八件,名单见 §2b 域 3;1011 = 0.72.13 的值:相对 0.72.12 +18 —— CC-46 八件 / CC-54 六件 / CC-53 两件 / CC-50 缺席口两件,名单见 §2b 域 3 / 4 / 9 / 10;993 = 0.72.12 的值(测试钩 45):相对 0.72.11 +4 —— CC-50 `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText` / `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`;989 = 0.72.10 的值:相对 0.72.9 +4 —— CC-41 `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX` / `projectLeaderConflict` / `leaderConflictDetail`;985 = 0.72.9 的值:相对 0.72.8 +8 —— CC-30 `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `reconnectMcpServer` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail`、CC-39② `readAutoConsolidationArmed`;977 = 0.72.8 的值:相对 0.72.7 +6 —— CC-39③ `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`、CC-43 `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`;971 = 0.72.7 的值:相对 0.72.6 +2 —— CC-42 core 7.22.0 提货 `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`;969 = 0.72.6 的值:相对 0.72.5 +1 —— CC-40 `steerFollowIntent`;968 = 0.72.5 的值:相对 0.72.4 +6 —— CC-31 server 7.82.1 提货 `capabilities.webSearch.backend` 四态读面:`WEB_SEARCH_BACKEND_NONE` / `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading` / `webSearchBackendDoctorDetail`;962 = 0.72.3 的值:相对 0.72.2 +1 —— CC-39① `AGENT_MEMORY_WORDS`;0.72.2 相对 0.72.1 +1 —— CC-37 `noteOwnWorkflowRun`;0.72.1 相对 0.72.0 +4 —— CC-33 server 7.80.1 提货:`RESUME_CONTEXT_UNAVAILABLE` / `resumeContextUnavailableFromError` / `resumeContextUnavailableContent` / `skillBaseDirOf`;0.72.0 相对 0.71.4 −39 —— CC-32 退役批删 export-liveness 登记 retire 的 39 个零消费导出(23 常量 + 16 函数,名单见 §47);995 = 0.71.3 的值:相对 0.71.2 +9 —— CC-06 `readEffectiveReasoning` / `readEffectiveMemoryScopes` / `resumeReopenFromError` / `resumeReopenContent` / `routePairingVerdict` 五函数 + `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` 四常量;986 = 0.71.0 的值:相对 0.70.2 −`MAX_AGENT_SKILLS` −`DECIDE_WORKFLOW_HOST_NOT_PARKED` +`projectToolRosterDelta` +`mcpEngineLegPresence`;986 = 0.70.0 的值:相对 0.69.2 **一件 additive(`readSkillsListingTruncated`,§39)、零删除**;985 = 0.69.2 的值:相对 0.69.1 **三件 additive、零删除**(CC-13 `isSubFlowSegmentEnd` / `SEGMENT_END_IDENTITY_KEYS` / `droppedWhySentence`,§38);982 = 0.69.0 未发布版的值(原排 0.68.3,因 peer 地板抬升改 minor)= 相对 0.68.2 **十七件 additive、零删除**:`fetchMcpPanel`(CC-03 补件,§36e)+ `readWorkflowResumeAdmissionIncomplete`(CC-05 core 7.18.0 #755)+ `installCoreValuePorts`/`hasCoreValuePorts`/`hasCoreValuePort`/`coreValuePortMisses`/`CORE_VALUE_PORT_NAMES` + 十读口(CC-07 core 值级端口,§36d);0.68.2 相对 0.68.1 十三件 additive:`SEMA_SEGMENT_ID_KEY`(CC-01 段身份键,§35f)/ `projectMcpPanel`+`mcpPanelLastLegDetail`+`projectMcpSection`(CC-03 `/mcp` 面板读视图,§35g)/ `resolveTextSegmentAuthority`/`createTextSegmentLedger`(L-318 `text_end` 权威段替换的判决单源 + print 形段账,详见 §35b/§35c)/ `memoryCaptureDeclarationField`/`MEMORY_CAPTURE_OFF`(L-316 会话级隐私声明的字面唯一铸点,§35d)/ `engineUrl`/`probeHealth`(L-61 件④ SDK 纯工具面原样转口,§35d)/ `AgentClient`/`isApprovalRequestFrameV1`/`isApprovalRevokeFrameV1`(L-61 存量清零:SDK **wire 面**原样转口,§35e)。`0.68.1`/`0.68.0` 是 **952**,那批是相对 0.67.2 **二十件 additive、🔴 两件删除(BREAKING)**:additive = `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`RUN_TERMINAL_STATUSES`(L-247 终态词两表分源,详见 §33b)/ `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(L-244 子代下界位自有名,§33g)/ `ASK_UNRESOLVABLE_CAUSES`/`readAskUnresolvable`/`DURABLE_MANDATE_SOURCES`/`readDurableGateUnavailable`(core 7.17.0 #709 ①② 两只通告事实窄读器,§33c)/ `WORKFLOW_PARK_TRUTH_UNREADABLE`/`WORKFLOW_PARK_NOT_PENDING`/`WORKFLOW_PARK_BINDING_BROKEN`/`WORKFLOW_PARK_REQUIRES_RUN_STORE`(四个单码常量 🔧 0.72.0 退役)/`WORKFLOW_PARK_REFUSAL_CODES`/`isWorkflowParkRefusalCode`/`readWorkflowParks`(core 7.17.0 #652 park 真相四码 + parks 三键读器,§33d)/ `ENGINE_STOP_REASONS`/`engineStopReasonToCc`(L-246 A13 停止原词映射下沉,§33g)/ `readCancelRequested`(L-230 读面,§33f);🔴 **删除两件** `TERMINAL_NOT_SUCCESS_STATUSES`/`TERMINAL_STATUSES`(随 L-247 两表分源更名成 `RUN_TERMINAL_*`,clean-cut **不留别名** —— 留一个别名等于让端可以继续按合起来的那张表读,分源就白做了,详见 §33b)。`0.67.0` 是 **934**,那批是相对 0.66.0 **七件 additive、🔴 两件删除**:additive = `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`(core 7.14.0 退役 `classifierUnavailable` 之后的**拒绝面**继任读器与措辞,详见 §32b)/ `RULE_STORE_UNREADABLE_KINDS`/`isRuleStoreUnreadableKind`/`ruleStoreUnreadableDetail`(core 7.14.0 #688 C3 的规则店机制位三件,详见 §32d);🔴 **删除两件** `classifierUnavailableOf`/`classifierUnavailableDetail`(随 core 7.14.0 的 Retired keys 表整族退役,clean-cut 不留别名,详见 §32b;同批删的还有**型** `ClassifierUnavailableView`、卡位与帧位 `classifierUnavailable`、以及一条恒真的型面钉 `_askOriginWordsPin`)。`0.66.0` 是 **929**,那批是一件 additive、零删除:`readRunCostFacts`(终局成本事实的唯一读器:`costBreakdown` / `nested` 窄读 + 对账三段与两个判别位,终帧超集键与 chrome 对账臂共用它;详见 §31c);已发的 **0.65.x 十一件 additive、两件删除**:additive = `DECIDE_WORKFLOW_HOST_UNKNOWN`/`DECIDE_WORKFLOW_HOST_NOT_PARKED`/`DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED`/`DECIDE_WORKFLOW_LANE_CODES`/`readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070 `/decide` 回执读面与三码人话,详见 §30h)/ `TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`TERMINAL_STATUSES`/`isTerminalStatus`(L-215② 终局词汇单铸谓词,详见 §30j);🔴 **删除两件** `AUTO_MODE_BREAKER_CAUSES`/`classifierBreakerOf`(熔断族随 core 7.12.0 的 Removed(BREAKING) 整只退役,clean-cut 不留别名,详见 §30k②;同批删的还有**型** `ClassifierBreakerView` 与 `ClassifierStatusView.breaker` 一位)。`0.64.2` 是 **919**,那批是一件 additive、零删除:`readDenialLimitFallback`(限额回落卡的窄读器上公面,壳侧同判据副本退役,详见 §29③);`0.64.0` 是 **918**,那批是件①+件② 十三件 additive、零删除:`CLASSIFIER_STATUS_STATES`/`classifierBreakerOf`/`classifierStatusOf`/`classifierStatusDetail`(分类器状态面,详见 §28②)/ `THINKING_FORMATS`/`THINKING_FORMAT_WIRE_TWINS`/`THINKING_DISABLE_PROBE_ORDER`/`MODEL_PROBE_VERDICTS`/`PROBE_PROMPT`/`PROBE_MAX_TOKENS`(两个探针常量 🔧 0.72.0 退役)/`probeRequestBody`/`probeModelCapability`/`applyProbeToEntry`(模型思考能力探测,详见 §28①);`0.63.0` 是 **905**,那批是八件 additive、零删除:`projectServerGateKnobs`/`postureKnobSourceOf`/`postureSourceIsOperatorPinned`/`postureKnobDetail`/`POSTURE_SOURCE_WORDS`(S-178 三根 posture 旋钮读数,详见 §27b)/ `PERSISTED_RULE_BEHAVIORS`/`PERSISTED_RULE_BEHAVIOR_UNKNOWN`/`persistedRuleBehaviorOf`/`persistedRuleBehaviorLabel`/`revokeTargetFromPersistedRule`(三态规则身份,§27c)/ `engineIdentityOf`/`engineIdentityVerdict`/`engineIdentityChanged`/`engineIdentityChangedBy`/`ENGINE_IDENTITY_ANCHORS`(S-179 代际锚,§27d)/ `GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`(门词汇 +2,§27e)/ `PERMISSION_RULE_ISSUE_CODES`/`RETIRED_PERMISSION_RULE_ISSUE_CODES`/`permissionRuleIssueDetail`(规则 lint 码表,§27f)/ `projectToolRoster`/`toolRosterNames`/`toolShimFromRoster`/`applyToolRosterDelta`(L-161 工具名册,§27g)/ `ENGINE_NOTICE_CODES`/`ENGINE_NOTICE_AUDIENCE`/`noticeAudienceOf`/`engineNoticeInCatalog`/`MCP_INJECTION_DROP_REASONS`/`readMcpInjectionDrop`(L-167 通告码册,§27h)/ `AUTO_MODE_UNAVAILABLE_CAUSES`/`AUTO_MODE_BREAKER_CAUSES`/`classifierUnavailableOf`/`classifierUnavailableDetail`(件⑧ 分类器不可用事实,§27h2);`0.62.0` 是 **869**,那批是五件 additive、**零删除**:`capForDisplay`(呈前消毒 + 封长的共用铸点,详见 §26⑦)/ `SEAT_SEND_MESSAGE_KEY_ORIGINS`(座位载荷逐键出身表,详见 §26③)/ `configureSubagentContentStore`+`subagentContentStoreConfig`+`SUBAGENT_CONTENT_STORE_DEFAULTS`(子代内容账本字节预算,测试钩 `__resetSubagentContentStoreConfigForTests` +1,详见 §26②);`0.61.0` 是 **864**,那批是三件 additive、**零删除**:`projectReadFacePosture`/`readFacePostureDetail`/`readFaceDisagreement`(S-167 READ 容纳面 operator 读器,详见 §25);`0.60.0` 是 **861**,那批是二十五件 additive、**零删除**:`readRunTerminal`/`runTerminalCode`/`runTerminalGateKind`/`runTerminalGateToolName`/`isReviewPark`/`REVIEW_PARK_GATE_KINDS` 六件终局因由读器 + `gateOutcomeOf`/`isDeniedGate`/`gateDeniedBy`/`gateApprover`/`isApprovalWindowExpiredGate`/`isDenialLimitAutoDeniedGate`/`isParkSlaExpiredGate`/`isHumanSettledGate` 八件门记录读器 + `projectWriteProtectionCapability`/`noteEngineCapsForWriteProtection`/`observedWriteProtection`/`forgetWriteProtectionReading`/`writeProtectionDoctorDetail`/`projectWriteProtectionPosture`/`writeProtectionPostureDetail` 七件写保护读面(测试钩 `__resetWriteProtectionReadingsForTests` +1)+ `readWireErrorCode` + 真机边界①的两件 `isGateParkedToolEnd`/`GATE_PARKED_ERROR_CODE` + 异源复审逼出的 `engineCapsGeneration`;`0.59.0` 是 **836**,那批是八件 additive:`RULE_OFFERS_ABSENCE_REASONS`/`DENIAL_LIMIT_KINDS` 两张闭词表再导出 + `engineCapValue` 能力位四态通用读口 + `projectSqlEngineCapability`/`observedSqlEngine`/`noteEngineCapsForSqlEngine`/`forgetSqlEngineReading`/`sqlEngineDoctorDetail` 五件 SQL 姿态读面(测试钩 `__resetSqlEngineReadingsForTests` +1);`0.58.0` 是 **828**,那批是三件 additive:`RULE_OFFER_MATCHES`/`RULE_OFFER_BATCH_MEMBER_KINDS`/`RULE_OFFER_UNCOVERED_REASONS` 三张闭词表再导出 + `RESUME_REFUSAL_CODES`/`RESUME_PLACEMENT_MISMATCH`/`resumeRefusalFromError`/`resumeRefusalContent` 四件文案铸点;`0.57.0` 是 **821**;`0.56.0`/`0.55.0` 是 **815**;已发 `0.54.0`(design/385 十件 additive 含 `AUTHORITY_ENVELOPE_TAGS` 🔧 0.72.0 退役);`0.52.0` 是 **805**(L-69⑨ 两件);`0.51.0` 是 **803**;`0.50.0` 是 **800**(S-81 五件);`0.49.0` 是 **795**;`0.48.0` 是 **794**;npm `0.47.0` 是 **790**,`0.46.0` 是 **787**,`0.44.0` 是 **783**,`0.43.1`/`0.43.0` 是 **776**,`0.42.0` 是 **771**,`0.41.0` 是 **767**,`0.39.0` 是 **766**,`0.38.0` 是 **764**;`0.37.0` 是 **753**,见 `CHANGELOG.md`) | `scripts/public-export-baseline.json` 的 `count` / `testHookCount` —— **别手抄进别处,以该文件为准** |
|
|
27
27
|
| 常驻门 | 以 `scripts/gates-manifest.json` 的 `suites` 长度为准(**本档不抄这个数**) | `scripts/gates-manifest.json`;`npm test` 的名单等值门与它逐名对账 |
|
|
28
28
|
| 沿革档 | 0.29.0 起建 `CHANGELOG.md`;更早批次记账在 `src/index.ts` 文件头 + `docs/REFACTOR-LEDGER.md` | — |
|
|
29
29
|
|
|
@@ -125,10 +125,10 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
125
125
|
|
|
126
126
|
> 📦 **随包 / 不随包**:npm 包只带 `dist` / `README` / `CHANGELOG` / 本档 / `LICENSE`。本档各处提到的 `docs/type-superset.json`、`scripts/*.json`、`scripts/run-*-test.mjs` 都是**仓内登记物与门,不随包发出** —— 装包的消费者找不到它们是预期;`_sema_` 超集键的**随包契约**就是本档各 §NNz 逐键处置表(键名 / 值域 / 缺席语义逐条在表里)。
|
|
127
127
|
>
|
|
128
|
-
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**
|
|
128
|
+
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**1195** 项;该基线只覆盖**根**入口,子路径入口 `./registry` 的名单在 §86 与 `scripts/run-sdk-registry-transit-test.mjs` A / C 段)。
|
|
129
129
|
> 本节**不逐名抄**,只给「域 → 承重导出 → 用途 → 实现锚」。承重导出 = 一个端为了让这个域干活
|
|
130
130
|
> **必须**直接调到的那几个符号;其余是它们的类型、变体与辅助位。
|
|
131
|
-
>
|
|
131
|
+
> 两个入口:根 `import { … } from '@sema-agent/client-core'`(会话运行时;`exports` 的 `.`)+ `import { … } from '@sema-agent/client-core/registry'`(云控制面原样转口,0.79.1 起;`exports` 的 `./registry`,§86);
|
|
132
132
|
> 内部路径**不是**公面,`src/abortableSleep.ts` / `src/envFlag.ts` / `createSessionSlot` 是刻意不出 barrel 的包内叶)。
|
|
133
133
|
|
|
134
134
|
### 2a. 🔴 基线是**运行期**契约,不是全部公面(端最容易误读的一格)
|
|
@@ -149,31 +149,31 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
149
149
|
`WorkflowsGateUnknownDenial` 四形**不在**基线里,`src/selfOrchestrationDenial.ts` 对基线贡献
|
|
150
150
|
**4** 项运行期导出(三个函数 + `SELF_ORCHESTRATION_RETRY_WITHOUT`)。
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
1195 项的内部构成(帮助端估读表大小;0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS` + `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**339** 项是 `SCREAMING_SNAKE` 常量数据表/词汇表
|
|
153
153
|
(矩阵、键集、env 名、锚串)而非可调用物;**7** 项是 PascalCase 运行期值
|
|
154
154
|
(`ControlRouter` / `ControlSafetyError` / `HitlBridge` / `HitlSafetyError` / `DecideTransportRetryExhaustedError` / `APIError`);
|
|
155
155
|
**37** 项是 `*For(sessionKey, …)` 的 per-session 变体(0.72.0 −4:`clearArmedGateFor` / `onGateArmedFor` / `registerArmedGateFromQuestionIdFor` / `notePlanReviewAnsweredIfDecisiveFor` 退出公面)(§6;其中 `engineNamespaceKeyFor` 是命名巧合 —— 参数是 baseUrl 不是 sessionKey,见域 14)。
|
|
156
156
|
|
|
157
|
-
### 2b. 域图(16 域,逐域计数之和 =
|
|
157
|
+
### 2b. 域图(16 域,逐域计数之和 = 1195)
|
|
158
158
|
|
|
159
159
|
| # | 域 | 名数 | 承重导出 | 用途 | 实现锚 |
|
|
160
160
|
|---|---|---|---|---|---|
|
|
161
161
|
| 1 | **适配内核(下行主链)** | 64 | `readSubmitWiringManifest`(0.78.1 CC-121:非流式提交 200 体 `TaskResult.wiringManifest` 的三态读口,view 与流式腿 chrome 臂同一张;§83)· `TOOL_INPUT_JOIN_MAX_CALLS`(0.73.4 CC-34:终帧拒绝清单第三键的本流快照上限;§66)· `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText`(0.72.12 CC-50:第三条中性终局行「结局不知道」,读结果帧 `_sema_outcome`;§59)· `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`(0.72.8 CC-43:runStream 第二条中性臂 —— core malformed tool-call 一族的行身份;§55)· `readEffectiveReasoning` · `readEffectiveMemoryScopes`(0.71.3 CC-06:终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` 的窄读器,§45)· `isSubFlowSegmentEnd` · `SEGMENT_END_IDENTITY_KEYS` · `droppedWhySentence`(0.69.2 CC-13:三件出公面,§38)· `adapt` · `createWireToCcAdapter` · `runStream` · `eventToSdkMessage` · `terminalToSdkResult` · `SEMA_SEGMENT_ID_KEY`(0.68.2 CC-01:committed assistant 文本行顶层段身份键的唯一字面量出处,壳只读)· `projectMcpSection`(0.68.2 CC-03:`wiring_manifest.mcp[]` 与 `/mcp` 面板 `lastLegMcp.mcp[]` 共用的同一只条目读器)· `readRunCostFacts`(0.66.0:终局成本事实的**唯一读器** —— `TaskStats.costBreakdown` / `nested` 逐键窄读 + 对账三段(own/nested/compaction)与两个「没定价」判别位;终帧的两个超集键与 chrome 臂 `run_cost_reconciled` **共用它**,两面不会各算各的,详见 §31c)· `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`(0.68.0 / L-247:**core 终局因由**闭集,四词 `completed|failed|blocked|paused`)· `RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`RUN_TERMINAL_STATUSES`/`isTerminalStatus`(L-215② 终局词汇的**单铸谓词**,0.68.0 随 L-247 **两表分源**更名 —— `killed` 属 server run 行状态面、`paused` 属 core 因由面,合成一张会让两边加词时都读不出该改哪儿;`blocked` 是 agent 自报终态,`suspended`/`needs_review` 刻意不在表里,详见 §33b / §30j)· `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(0.68.0 / L-244:子代用量下界位的**自有名**与唯一判据,与终帧 `_sema_usage_lower_bound` 分名,详见 §33g) · `turnUsageToModelUsage` · `isRunStreamActive` · `ADAPTER_DIVERGENCES` · `readRunTerminal` / `runTerminalCode` / `runTerminalGateKind` / `runTerminalGateToolName` / `isReviewPark` / `REVIEW_PARK_GATE_KINDS`(0.60.0 / engine ≥7.64.0:一次 run **怎么结束的**唯一读器 —— 终局从八个平面键换成一条带标因由 `terminal`,四臂 + `unknown` 防御臂 + `plane` 两代字节标;🔴 不认识的终态词绝不折成成功、本包不提供「因由→五词 status」的兼容投影,详见 §24b)| 引擎 SSE `AgentEvent` → 端要渲的**双面输出**:transcript(`SDKMessage`)+ chrome(瞬态 `ChromeEvent`)。**本包存在的理由** | `src/adapt.ts`、`src/adapt/{arms,wireShapes,panelTasks}.ts`(经 `adapt.ts` 再导出)、`src/adapter/runStream.ts`、`src/adapter/downstream/*`、`src/adapter/types.ts`、`src/runTerminal.ts` |
|
|
162
162
|
| 2 | **seam 公共契约** | 4(其余为 type-only) | `CHROME_ARMS` · `deriveTranscriptId` · `snapshotSegmentIdentity` / `snapshotIsSubFlow`(0.76.1:身份四键一次性快照助手,投影口与 adapt 侧全部臂的唯一身份读点;§77)| 公共词汇 + **id 确定性不变量**(同一条流重放 ⇒ 同一串 id)。`CHROME_ARMS` = 端「我要消费哪些 chrome 臂」的对照清单 | `src/seam.ts` |
|
|
163
|
-
| 3 | **HITL 决断卡链**(§4/§5 主战场) |
|
|
163
|
+
| 3 | **HITL 决断卡链**(§4/§5 主战场) | 211 | `isPolicyRefusedGate` / `denyAttributionRefusalFromError` / `denyAttributionRefusalContent` / `removalConsequenceLineForBehavior` / `ruleRemovalBehaviorOf`(0.80.0 CC-133 · CC-132:策略拒谓词 + 归因键三码读口与人话 + 删除规则后果句铸点与闭集读口;§87)· `HITL_POLICY_DENY_MESSAGE` / `APPROVAL_DENY_SETTLED_BY_WORDS` / `readApprovalDenySettledBy` / `SEMA_DENIAL_KIND_KEY`(0.79.0 CC-125:deny 收口帧按 `settledBy` 分两串的冻结句、决断对象归因位的两词可达子集与只认自有数据属性的读器、分类词信封键名;§85)· `approvalIsMandated`(0.79.0 CC-110:审批卡「清不掉」判据口,帧位 ∨ 寄存行缺席词两条腿一个真源;§85)· `readSessionPolicy` / `tightenSessionPolicy` / `tightenedSessionRules` / `classifySessionPolicyFailure` / `sessionPolicyTightenNotice` / `SESSION_POLICY_RULE_FIELDS` / `SESSION_POLICY_TIGHTEN_UNKNOWN_WHY`(0.77.0 CC-105:会话策略窄读 + 收紧编排五臂判别联合)· `writePersistedRule` / `PERSISTED_RULE_WRITE_BEHAVIORS` / `PERSISTED_RULE_WRITE_REFUSAL_CAUSES` / `PERSISTED_RULE_WRITE_UNKNOWN_REASONS`(0.77.0 CC-103:持久规则单步写面,词表派生不手抄;§79)· `persistedRulesWriteAvailable`(0.76.1 CC-102:单步写入口便利口,只派生自写键自己的四态,不与撤销面那只合取;§77)· `approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` / `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(CC-77 ①:「一次审批决断最后怎么了」的单源判别联合 `decided` / `not_sent` / `unsettled`,两条腿的结局对象一次判别;既有结局型面一字不动)· `approvalOutcomeNoteOf` / `APPROVAL_NOTE_RETRACTED_DETAIL` / `APPROVAL_NOTE_EDIT_REFUSED_DETAIL`(0.74.5 CC-88:审批结局便签单源;§73)· `decideReceiptReopen` / `suspendedReopenOf`(0.74.3 CC-73:reopen 族第二臂;§71)· `RETRACTED_CARD_DECISION_KIND`(0.74.1 CC-67:卡口无决断收口;§69)· `planReviewOutcomeTail`(0.73.1 CC-57:outcome 尾句六态单铸点;投递口闩;§63)· `readLivePendingRows` / `suspendedSubagentAsks` / `countApprovalsAwaitingDecision` / `createSuspendedAskTracker` / `livePendingRowToApprovalFrame` / `surfaceSuspendedAskAndRespond` / `surfaceEditRefusedOnBlindAsk` + `EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT`(0.72.14 CC-55:悬挂的流内 ask 读面 / 视图 / 去重账 / 决断口;§61)· `planReviewCardOptions` / `planReviewChoiceFromAnswer` / `versionSupportsPlanReviewModeAfter` / `isPlanReviewModeAfter` + `PLAN_REVIEW_APPROVE_AUTO_LABEL` / `PLAN_REVIEW_APPROVE_MANUAL_LABEL` / `PLAN_REVIEW_MODE_AFTER_WORDS` / `PLAN_REVIEW_MODE_AFTER_MIN_ENGINE`(0.72.13 CC-46:plan_review 批准后模式 `permissionModeAfter` 发口与三选卡双闸;§60)· `makeHitlCanUseTool` · `HitlBridge` · `findPendingForTask` · `readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070:`/decide` 200 = **投递受理**不是「门已解决」;`executionOutcome` 缺席 = 未知,详见 §30h) · `HitlSafetyError` · `bridgeAskUserQuestionGates` · `surfaceToolApprovalFrameAndRespond` / `surfaceFsApprovalAndDecide` · `readToolApprovalRespondAck` · `installApprovalCardPort(For)` · `installHitlHostSurface(For)` · `armPlanReviewApproval` · `reopenPlanReviewCard` · `decidePlanReview` · `startApprovalsFeed` · `pendingRowIsOwnedByThisSession` · `approvalCallKey`/`liveFrameCallKey`/`planReviewQuestionId` · `registerArmedGateFor`/`wasGateArmedFor` · `waitForGateArmed(For)`/`onGateArmed`/`gateArmedWaitMs`(#244 F1 呈现回执事件源) · `planReviewArmedKey(For)`/`notePlanReviewAnswered(For)`/`notePlanReviewAnsweredIfDecisive`(A-024.4 plan 呈现分代) · `toolEndOutputText` · `isAskTool` · `waitForParkRowBirth` · `classifyAskParkRows` / `askParkRowArm` / `classifyAskParkChainFailure` · `readDecisionNoteAudit` / `decisionNoteAuditLine` · `resumeRunningOptions` / `resumeChoiceFromLabels` · `persistedRulesLaneAvailable`/`persistedRulesGovernanceAvailable` · `classifyRulesFailure` · `listAllPersistedRules` · `classifySkippedReason` · `readRulePersistOutcome`(#244 F2:persist-ack 读口与 `readToolApprovalRespondAck` 合成一处) · `parseLocalAllowRule`(durable 腿本地落规则窄化骨架,谓词经 `LocalAllowRuleDeps` 注入) · `readToolApprovalRespondRefusal`(#225 件5,0.42.0:respond 抛错的结构化原文读口 —— 三位各自防御读、各自缺席不铸、**三位皆缺席时整只返 `undefined`**;原样交还零加工,UNTRUSTED-for-display)· `installEditedRuleTextPrechecker` / `hasEditedRuleTextPrechecker` / `precheckEditedRuleText`([5076] 转出口,0.42.0:core 5.57.0 `precheckEditedRuleText` 的**端口注入形** —— 类型面 + 注入口 + 诚实缺席读口。🔴 **不是** value 级 re-export,理由见 §7 缺口 **P-34**;未装 ⇒ 返 `undefined`,绝不编一个 `{ok:true}`)· `surfaceRuleArmNotSent` / `RULE_NOT_SENT_WARN_TEXT` + `surfaceRuleArmRejected` / `RULE_NOT_SENT_REJECTED_WARN_TEXT`(#334,0.43.0:人在卡上按下的「不再询问」被整条丢弃时的诚实告知——**两条刻意分开**:前者=**引擎能力位未确认**(换台引擎/等探测就好),后者=**这次选择没过包内表核/互斥核**(表外文本/坏下标/两臂同场,换引擎也不会变) —— 编辑臂 `respondFreeFormRules` 与批臂 `respondBatchRuleOffers` 两条同形存量共用一条,与 `surfaceRememberNotApplied` 同族纪律:决断照送、只是规则没存,静默丢掉用户明确意图 = 让人以为功能坏了)· `projectCrashConverged`(L-38,0.49.0:`/v1/approvals` additive 键 `crashConverged` 的分桶投影 —— 崩溃收敛的孤儿审批读面,**缺席 ≠ 空数组**、分桶恰一个合取、坏行丢弃并计数,详见 §12;同批把 `ApprovalsResourceLike.list()` 的返回位 additive 放宽成 `ApprovalsListEnvelope`,老形 `{pending}` 仍可赋值)· `readRuleOffers` / `readRuleOfferSupply`(L-103/[C228],0.57.0 additive 导出:「不再询问」候选两代 wire 键的窄读器**公面化** —— 此前只经卡端口出包,不走卡端口架构的宿主只能自己重铸一把,而它承载的是兑付安全判据(原始下标不前移/逐条丢坏/闭集 kind/两代取舍序),详见 §20)· `RULE_OFFERS_ABSENCE_REASONS` / `DENIAL_LIMIT_KINDS`(0.59.0 / sdk 8.3.0 提货:`ruleOffersAbsence` 三词与 `denialLimitFallback.limit` 二词的**运行期**闭词表再导出 —— 与 0.58.0 那三张同一条纪律:端拿它做判定别再手抄字面量。⚠️ **本包自己不拿这两张表做窄读判定**(两处都按开集透传,词表属主是 core、server 已按闭集拒过),再导出只是给端的 `switch` 一份可数的表,端仍必须带 `default` 臂,详见 §23a)· `DecideTransportRetryExhaustedError`(Inkglow-1085 P0a:decide 出站瞬断重试耗尽的 typed 判别 —— HitlBridge 内建单次退避重试,耗尽走重呈臂不判死 turn;端一般只消费行为,不需要 instanceof) · `gateOutcomeOf` / `isDeniedGate` / `gateDeniedBy` / `gateApprover` / `isApprovalWindowExpiredGate` / `isDenialLimitAutoDeniedGate` / `isParkSlaExpiredGate` / `isHumanSettledGate`(0.60.0 / engine ≥7.64.0:`tool_end.gate` 整条门记录的窄读器 + 判定谓词 —— 取代退役的四个正交词 `settledBy`/`resolution`/`autoDenied`/`approver`。🔴 **判定归包**:「是不是审批窗自己走完的拒绝」旧形上是端各自拼的两键合取,而三条窗词现在分得开、合并读回去等于把刚修好的判别力扔掉;⚠️ 公面型一律带 `View` 后缀 —— 本文件的 `GateOutcome`(决断腿结局)与 sdk 的 `GateOutcome`(引擎门记录)**同名不同义**,详见 §24c)· `isGateParkedToolEnd`(「这次调用没在这里结算」的**第二形**谓词:gate 缺席 + `errorCode:"gate.parked"`;端判这件事必须与 `isApprovalWindowExpiredGate` **两形合读**) · `readWireErrorCode`(B-037 候包件②:decide/取件失败上引擎 wire 机器码的单源读口,结构视图读不 `instanceof`;与本包铸的 `code` 是两个命名空间,详见 §24g)| suspended→decide→resume 环。🔴 **D-1 两元组 verbatim 回显**是字节级断言的安全不变量,端**不许重实现它的任何一段**。🔴 键空间边界(web [C1] d3 拦截):`gateIdentity` 四常量两函数只覆盖 HITL questionId/callKey 空间;seat 的 `TOOL_PERMISSION_REQUEST_ID_DOMAINS`(`plan:` 等)是另一键空间,**两者绝不合并**(合并=座位校验器静默拒全部 plan-review 卡) | `src/hitl/hitlBridge.ts`、`toolApprovalWire.ts`、`askGateWire.ts`、`planReviewWire.ts`、`hitlHostSurface.ts`、`gateIdentity.ts`、`armedGateRegistry.ts`、`parkOwnership.ts`、`parkResolver.ts`、`approvalsFeed.ts`、`frameRouter.ts`(**只挑名导出** `toolEndOutputText`/`ENGINE_ABORT_TOOL_RESULT`/`isAskTool`/`HITL_REJECT_MESSAGE`/`HITL_INTERRUPT_MESSAGE_FOR_TOOL_USE`)、`parkRowBirthWait.ts`、`approvalDecisionNoteAudit.ts`、`askParkRowRouting.ts`、`resumeRunningCard.ts`(#265 上收的判定层)、`persistedRulesWire.ts`、`localAllowRule.ts`(#244 F2 规则侧)、`crashConverged.ts`(L-38 崩溃收敛读面)、`src/gateOutcome.ts` |
|
|
164
164
|
| 4 | **子代 wire + 面板侧信道台账** | 93 | `isNewEngineAgentPanelCycle`(0.74.5 CC-87:新周期单源判据;§73)· `resolveEnginePanelTaskId` / `MAX_HELD_WIRE_TICK_BEATS` / `clearEnginePanelTaskResidentByWire`(0.74.3 CC-70:子代身份归一读口、缓一拍节拍上限、按 wire id 清常驻标(前代终态不清当代);§71)· `isStaleEngineAgentPanelEnd`(0.74.0 CC-66:面板 end 的周期身份判据;§68)· `subscribeEngineAgentPanelAbsence` / `publishEngineAgentPanelAbsence`(0.72.13:fleet 行缺席上报的**独立订阅口** —— 不上主通道,老消费者结构上收不到;§60 S-5)· `tailEngineSubagent` · `installSubagentActivitySink` · `installSubagentTailMetaSink`(#280 件2:tail meta 帧发布口,`contentFrames` 判别位载体)· `stopEngineTask` + `classifyTaskStopConflict` · `fetchEngineSubagentReport` · `steerEngineSubagent`(0.32.0 未发布 #280 件A:additive 第三参 `childTaskId` —— 端有行上下文时**应当**传,传了就走「台账优先 / 缺席即诚实缺席 + `noteBgOwnerAbsence` 留痕」的 Q3 口径,与 tail·taskOutput·subagentOutput 三腿同姿势、与孪生 resume 腿共用同一个 `resolveOwnerRunId` 判据;**不传**则逐字维持旧行为=回落在飞 run)· `resumeSettledSubagent` + `resolveSubagentResumeContext` + `resolveOwnerRunId` + `classifySubagentResumeFailure` + `subagentResumeAvailable`(#242 批 2 A-028.7:resume 判定半场上收,与 steer 孪生同居;取址三态 = 台账有行用行值 / 指名了行但台账缺席则**诚实缺席绝不回落在飞 run** / 没指名行才回落。出路文案归端)· `recordSubagentOwnerFromProgress` + `getBgParentRunOwner`(A-028.6:「子代 → 宿主 run」**单表**,宿主 run 必须由持 stream-local 值的调用方显式传入,包内绝不从 `activeEngineRunId()` 推断)· `noteBgOwnerAbsence`(#242 批 3 [4000] Q3=B:tail/taskOutput·taskStop/subagentOutput 三腿台账缺席即诚实缺席**绝不回落在飞 run**,缺席 warn 留痕每 (腿,taskId) 一条)· `clearBgTerminalFacts`(#242 批 3 扫码修:复活=新周期,旧周期终态事实作废——fleetLedger 复活两腿按尾段清账,factsAccepted 方向核不再拿上周期终态当先例)· `auditRetainWithoutWake`([4000] Q5:引擎宣示 `subagentResume` + 本端在付 `retainSubagentSessions` + 端未实现 `wakeSubagent` ⇒ 响亮一条;`CLIENT_VERBS.wakeSubagent` 维持 fail-soft)· `subscribeSubagentContent` · `subscribeEngineAgentPanel` · `publishQuestionFrame` / `respondToQuestion` · `configureSubagentContentStore` / `subagentContentStoreConfig` / `SUBAGENT_CONTENT_STORE_DEFAULTS`(0.62.0:子代内容账本的**字节预算** —— 此前只有条数帽而单条无上限,一条 base64 工具结果就能让一个子代槽吃到十几 MB;越限从最早的内容开始丢并留一条可渲染的 `truncated` 记录,总帽淘汰整条最久未用的账本。配置面 fail-loud,详见 §26②)| 驱动与观测委派子代;经 module 级台账喂活体 agent/task 面板。全部**能力位 gate**(§5b) | `src/subagent/*.ts`、`src/subagentContentStore.ts`、`src/engineAgentPanelStore.ts`、`src/engineInlineTaskStats.ts`、`src/engineToolLabelStore.ts`、`src/liveQuestionStore.ts` |
|
|
165
165
|
| 5 | **fleet 投影** | 38 | `createFleetLedger` · `projectTasks` · `projectWorkflows` · `projectFleetAgentRows` · `readEngineActiveBgTasks` · `FLEET_TASK_VIEW_KEYS` · `escapeDisplayControlChars`(不可见字符可见化,行标签/描述消毒的共享底座)· `capForDisplay`(0.62.0:呈前**消毒 + 封长**的共用铸点 —— 先转义、后按转义结果封长,截点避开半截转义 token 与合法代理对;本包该族四处此前各写一份、其中三份顺序是反的,详见 §26⑦)· `wireCycleSeq`(0.38.0 提货补投的 #261 §2 两位之一,另一位 `wireRetiredBy` 🔧 0.72.0 退出公面:代际号 = SendMessage 复活即 +1,**缺席 ≠ 第一代**;`retiredBy` 在场 = 这条终态是对账腿从 durable run 行投影出来的、**不是**发布方亲报 —— 幽灵行与正常收尾唯一的 wire 判据。两位都只在场才落键) | 老 `fleetClient` 那一刀的成品:**帧体归库、连接归端** —— 端持 SSE 连接,库做行投影 + 保留台账 | `src/fleet/fleetProjection.ts`、`src/fleet/fleetLedger.ts`、`src/fleetAgentPanelProjection.ts`、`src/fleetTaskDesc.ts` |
|
|
166
166
|
| 6 | **请求装配(上行唯一构造口)** | 30 | `REQUEST_LANES` / `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` / `taskRequestOmissionCauseDetail` / `parseMaxCostUsd`(0.79.0 CC-116 · 118 · 123:第三条车道清单、审批姿态声明的唯一铸点与意图位片段、回执成因人话、花费上限文本解析;§85)· `assembleTaskRequest` / `taskRequestSeatOf` / `TASK_REQUEST_OMISSION_CAUSES` / `UPSTREAM_ABSENT_REQUEST_INTENTS`(0.77.0 CC-101:逐键去向回执 + 座位读数 + 成因词表 + 上游无对位表;§79)· `readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `RETIRED_MEMORY_SPEC_SINGULAR_KEY` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS`(CC-96:`agents[].memory` 记忆 spec 的三态读口与闭白名单判官 —— 未列键拒掉的是**整只 agent 定义**)· `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`(0.72.8 CC-39③:`memory:"off"` 请求级整面关的意图位片段;§55)· `buildTaskRequest` · `REQUEST_FIELD_MATRIX` · `unregisteredRequestKeys` · `applyLiveRequestDefaults` · `taskNotificationToPrintFrame` | 两条车道(`interactive`/`print`)出站请求的**唯一**构造器;`unregisteredRequestKeys` 是可执行门 —— 端偷带一个未登记键上 wire 就红 | `src/request/taskRequest.ts`、`src/request/printNotification.ts` |
|
|
167
167
|
| 7 | **通知与 outstanding 台账** | 52 | `noteOwnWorkflowRun`(0.72.2 CC-37:own 台账显式登记口,adapter workflow lane 门在 own-run 正向证明下同拍调;§49)· `installNotificationQueuePort` · `normalizeTaskNotification` · `taskNotificationDedupKeyFromWire` · `registerOutstandingBgTask` / `registerOutstandingWorkflowRun` · `notificationQueuePortMisses` · `subscribeOutstandingWorkflows` · `outstandingDeliverableWorkflowCount` | `task_notification` 归一 + 去重 + 投递进宿主命令队列的**一把闸**;`outstandingDeliverableWorkflowCount()` 是 headless `-p` 的**退出门** · `classifyPeerNotification` / `renderPeerFrameTranscriptText` / `parsePeerFrameText` / `peerFrameDisplayName` + 三张闭集表(design/385,0.54.0:同一条 `task_notification` 车道上三条**引擎注入帧**的类型化投影 —— 判别位=载体在场而非 summary 文本,详见 §17) | `src/notifications.ts`(11 个 module 台账) |
|
|
168
168
|
| 8 | **工具结果卡** | 25 | `displayBody`(0.78.1 CC-113:工具结果正文的人类面读口,剥本包铸的不可信围栏,三形互不折叠;§83)· `structuredToToolUseResult` · `readAsyncLaunchedAgentReceipt` · `wireOutputToBody` · `parseModelFacingBash` · `getPatchFromContents` · `toolEndResultToUserFrame` · `flattenToolOutput` | 铸端要渲的 `tool_result` 卡体,含客户端 diff hunk(唯一 runtime dep 的用处) | `src/toolResult.ts`、`src/printToolResultFrame.ts`、`src/diff/patch.ts` |
|
|
169
|
-
| 9 | **能力/旋钮 wire 门族** |
|
|
169
|
+
| 9 | **能力/旋钮 wire 门族** | 154 | `mcpEngineLegLivenessOf` / `mcpDetailLegNote` / `isMcpLivenessState`(0.80.0 CC-134:引擎腿活性六档读口 + 九句范围说明铸点 + 活性三词判据上公面;§87)· `projectMcpProbeCapability` / `noteEngineCapsForMcpProbe` / `observedMcpProbe` / `forgetMcpProbeReading` / `mcpProbeAvailable` / `mcpProbeDoctorDetail`(0.79.0 CC-74:`capabilities.mcpProbe` 四态读口 + 「这次调用要不要上 wire」三态 + doctor 句;§85)· `projectSessionPolicyCapability` / `observedSessionPolicy` / `sessionPolicyFaceAvailable`(0.77.0 CC-105:`capabilities.sessionPolicy` 四态读口 + 渲不渲写入口三态;§79)· `projectMemoryComplianceCapability` / `memoryComplianceVerbsAvailable` · `projectMemoryOriginCapability` / `memoryOriginVerbsAvailable`(0.76.1 CC-97a:`capabilities.memoryCompliance` / `memoryOrigin` 两只四态读口,同判据不同位、各持一张表;§77)· `projectPeerLaneCapability` / `observedPeerLane` / `peerLaneAvailable`(0.76.1 CC-102:`capabilities.peerLane` 四态读口 + 露不露跨会话入口的三态判据;非 HTTP 面)· `projectPermissionRulesWriteCapability` / `observedPermissionRulesWrite` / `permissionRulesWriteAvailable`(0.76.1 CC-102:`capabilities.permissionRulesWrite` 四态读口 —— 键缺席 = 二进制比单步写口老、藏入口;在场按本键的值判这次够不够得着;§77)· `projectDeviceExecutorManagementCapability` / `noteEngineCapsForDeviceExecutorManagement` / `observedDeviceExecutorManagement` / `forgetDeviceExecutorManagementReading` / `deviceExecutorManagementDoctorDetail` / `deviceManagementVerbsAvailable`(0.74.2 CC-69;§70)· `projectApprovalsStreamLiveCapability` / `noteEngineCapsForApprovalsStreamLive` / `observedApprovalsStreamLive` / `forgetApprovalsStreamLiveReading` / `approvalsStreamLiveDoctorDetail` / `livePendingNeedsReconcile`(0.73.3 CC-61;§65)· `projectExecutionLaneCapability` / `noteEngineCapsForExecutionLane` / `observedExecutionLane` / `forgetExecutionLaneReading` / `executionLaneDoctorDetail` / `toolsRunHereFromExecutionLane`(0.72.13 CC-54:`capabilities.executionLane` 四态读面,键缺席 ≠ 不是本机车道;§60)· `AGENT_MEMORY_WORDS`(0.72.3 CC-39①:`memory: user|project|local` 三词;`projectAgentsForWire` 把它们同映射为 `agents[].memory = { scopes:[agent:<type>], writeScope }`;§50)· `skillBaseDirOf`(0.72.1 CC-33:`SkillSpec.baseDir` 窄读 = server 顶层门同一只结构判据;`skillCommandsToSpecs` 第三参 `{ toolsRunHere }` 只在本机车道带;§48)· `projectAgentsForWire` / `awaitTaskAgentsWire` · `hooksForWire` · `mcpConfigsToSpecs` · `ultracodeForRequest` · `resolveWebSearch` + `buildWebSearchEnv` · `attachmentsForRequest` · `projectEffectiveBody` · `classifySelfOrchestrationRefusal` / `stripSelfOrchestrationIntent` / `projectWorkflowsGate` / `SELF_ORCHESTRATION_RETRY_WITHOUT`(S-81,server 7.57.0:上面两条 stamp 腿的**背面** —— 半配置多租户形态下 server 把带 `selfOrchestration` / `settings.ultracode` 的提交 501 拒掉,判型/去键/caps 闸三处都是判定不是文案,详见 §13) · `engineCapsGeneration`(0.60.0,异源对抗复审 [medium] 逼出:caps 探测的**当代号**读口 —— 代际闸在 probe **返回之后**才跑,而宿主的读面 tee 是在 probe **内部**落地的 ⇒ 一次慢的旧探测能把上一台引擎的读数写回来。宿主在**起探测那一刻**抓号、tee 时交回 `{generation}`,陈旧那一发整只丢掉;不传 = 逐字节同行为,详见 §24e)| 逐功能的「引擎有没有这个能力 + 这个字段怎么上 wire」投影器,由 `buildTaskRequest` 组装。🔴 `hooksForWire()` 是 **fail-closed**:无 `SettingsPort` ⇒ 返回 `undefined`(信任门,不是取值) | 17 个 `src/*WireCaps.ts` + `src/scratchpadWireCaps.ts`、`src/hooksWireCaps.ts`、`src/goalStopHook.ts`、`src/websearch/searchProviderPresets.ts`、`src/selfOrchestrationDenial.ts`(S-81 拒绝判定层) |
|
|
170
170
|
| 10 | **headless / 部署旋钮 wire** | 61 | `lastFlagValue`(0.74.3 CC-80:argv 末次旗值扫描原语上公面;§71)· `probeEngineDetachSupport` / `detachSupportDisclosure`(0.72.13 CC-53:detach 版本闸三态读口 + 披露句;§60)· `parseSandboxArgv` / `sandboxRequestFields` · `parseLimitsArgv` / `limitsForPrint` · `resolveHeadlessFinalVerify` · `resolveHeadlessPermissionMode` · `resolveHeadlessInteractiveTools` · `armDetachCancel` + `detachCancelArm` + `isDetachArmed` · `withHeadlessR1Reconnect` | `-p`/headless 车道的 env+argv 旋钮。🔴 `detachWire` 是**拆**的补偿:判定与 cancel-arm 台账在库,信号路径的裸 fetch 留宿主(`detachCancelArm()` 是取件口) | `src/sandboxWire.ts`、`scenarioWire.ts`、`finalVerifyWire.ts`、`limitsWire.ts`、`interactiveToolsWire.ts`、`headlessPermissionModeWire.ts`、`headlessReconnectWire.ts`、`detachWire.ts` |
|
|
171
171
|
| 11 | **模型目录与预算** | 67 | `routePairingVerdict`(0.71.3 CC-06:`ModelInfo.routePairing` ok / broken / unknown 三态读口,§45)· `resolveModelCatalog` · `loadCatalogWithSources` · `PROVIDER_PRESETS` / `MODEL_FAMILIES` · `defaultMaxTokensFor` · `getLiveModelCatalog` / `setLiveModelCatalogRefresher` · `providerAuthMethods` / `beginDeviceCodeAuth` · `providerCatalogRows` / `providerCatalogRowDetail` / `providerPresetById`(#244 F4 族D A-028.17:46 家表的规范折表层 —— 全表不重排、诚实缺席「model id typed in」,cli 目录/web 向导同一份折表)· `TIER_ORDER` / `CC_TIER_ALIASES` / `isTier` / `resolveTierBinding`(A-028.18:档位词表+校验+fail-open 降档派生单源;settings 存储归宿主)· `resolveEntryVision` / `computeDeleteBlockers` / `computeDeleteWarnings`(0.38.0 #318 件③ 上收:Model Hub 供给面的三端公共判定 —— vision 生效值+来源三态、删除断链核(拒删+指路)、删除降级后果(照删但必说)。**零 IO**,读盘那半场留各端;`doc === null` 的两义在调用方分流) | 三层 provider 目录解析(线上 URL → 包内预设 → 用户覆盖)+ per-model `maxTokens` 封顶。线上腿需注入 `CatalogFetchJson`,缺席 ⇒ 整条不启用(`online.reason='no-fetch-port'`);缓存落盘经 `CatalogCachePort` | `src/model/{catalog,catalogLoader,providerAuth,providerPresets,providerCatalog,tierVocabulary}.ts`、`src/liveModelCatalog.ts`、`src/modelBudgetRule.ts`、`src/sessionModelLatch.ts`、`src/effortWire.ts` |
|
|
172
172
|
| 12 | **workflow 与后台工作视图** | 36 | `evaluateWorkflowSize` / `readWorkflowSizeWarningEnvCaps` / `workflowSizeWarningTextForWidth` + `WORKFLOW_SIZE_WARNING_AGENT_CAP` / `_TOKEN_CAP` / `_TOKENS_PER_AGENT` / `_ENV_NAMES` / `_TEXT_LONG` / `_TEXT_SHORT` / `_TEXT_MIN` / `WORKFLOW_SIZE_GUIDELINE_AGENT_CAPS`(0.73.5 CC-58:规模告警判定三态;§67)· `projectLeaderConflict` / `leaderConflictDetail` + `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX`(0.72.10 CC-41:leader run 终局 `needs_human` + `result.conflict` 三形读面 none / unreadable / conflict,缺席不可分、filesTruncated 只认 true、salvaged 原样给落盘口;§57)· `projectWorkflowRun` · `readWorkflowResumeAdmissionIncomplete`(0.68.3 CC-05:core 7.18.0 `resumeAdmissionIncomplete` 在场 = 不是 resume 基,与 `readWorkflowParks` 同一条投影义务)· `createLiveWorkflowSource` · `ensureWorkflowActivityLedger` · `readWorkflowActivityLedger` · `stopWorkflowActivityLedger` · `resetWorkflowActivityLedgers` · `createBackgroundView` · `projectBackgroundView` · `recordWorkflowAgentTaskId` · `agentDisplayStatus` | 活过一个 turn 的长任务读面:workflow run + 跨 session 后台任务归一表(`assistant.tasks` 与 fleet SSE **两源独立降级**) | `src/workflow.ts`、`src/workflowClient.ts`、`src/workflowMonitor.ts`、`src/agentSession/backgroundView.ts`(+ 纯类型 `src/agentSession/contract.ts`) |
|
|
173
173
|
| 13 | **座位 IPC 契约** | 34 | `LOCAL_SESSIONS_SPEC` · `SEAT_METHOD_NAMES` · `SEAT_EVENT_TYPES` · `isLocalSessionEvent` · `isToolPermissionRequest` · `toolPermissionRequestId` · `SEAT_VALIDATOR_KEY_COVERAGE` · `SEAT_SEND_MESSAGE_KEY_ORIGINS`(0.62.0:座位载荷**逐键出身**登记 —— 每个位要么写明转投哪个引擎请求位、要么写明为什么不上 wire;常驻门对**装在盘上的** sdk 型面逐名核,详见 §26③)| desktop↔web 座位 IPC 契约的**单一真源**(此前两边各一份、名字零重合 ⇒ 编译器永远不会告诉你它们漂了)。🔴 加 verb 忘了加 `LOCAL_SESSIONS_SPEC` **不报错**:preload 不注册 channel、渲染端读到 `undefined` | `src/seatContract.ts`(**零 import**,纯类型 + 常量 + 纯谓词)。🔴 **证据等级标注(0.42.0,test [5087] 的「语料**种类**缺口」/ cli [5088] 认领件)**:该文件里所有以「CC 如何如何」为形的断言(`212 methods` / `854-channel census` / 方法名逐字保留 / `fQe` 逐字段对照 / 一切 `.vite/build/index.chunk-*.js` 坐标)**证据等级 = 桌面 unpack,本地语料库不可复验** —— 本仓手边可复验的参照语料**只覆盖终端 CLI 形态**的静态产物,拿它去 grep 桌面壳里的符号只会零命中,而零命中在这里**既不证真也不证伪**。复核这些断言**不得**拿本仓语料当反证 |
|
|
174
174
|
| 14 | **宿主端口与会话槽** | 41 | `installHost` · `installHostFor` · `installCoreValuePorts` + 十读口 + 三存在性口(0.69.0 CC-07:core 值级面端口注入,Node 宿主装配根装、浏览器 lane 恒缺席)· `hostPortMisses(For)` · `DEFAULT_SESSION_KEY` · `hostEnv` · `unrefTimer` · `parseLocaleTag` / `pickUiLanguage`(#244 F4 族D A-028.20:locale tag 手术单源 + UI 语言判定;与 `resolveRegionHint` 双出口成文 —— 语言偏好域 en/zh ≠ 地址可达域 cn/intl/unknown,`zh-Hant` 前者 zh 后者 intl 是设计)· `engineNamespaceKeyFor` / `mergeSessionMapRecord` / `mergeEngineEntry`(A-028.12:会话 id 映射单一键形 + merge 判定;存储经 `SessionMapStorePort` 归端 —— cli 文件锁/原子写,web localStorage)| 进程/端级装配层(settings/fs/queue/timers/session/log/probe),与 per-turn 的 `AdapterContext` **分层**。头注的判定规则:**这个能力每 turn 都会变吗?** 会 ⇒ `ctx`;不会 ⇒ `installHost` | `src/host.ts`、`src/hostEnv.ts`、`src/sessionSlot.ts`、`src/unrefTimer.ts`、`src/env/{localeGeo,localeTag,uiLanguage}.ts`、`src/sessionMap.ts` |
|
|
175
175
|
| 15 | **控制面与传输** | 180 | `pushSessionBundle` / `pullSessionBundle` / `importSessionBundle` / `APIError`(0.79.0 CC-128:会话 bundle 面四名原样转口,与 `AgentClient` 同一张存量转口表;§85)· `readMcpCapabilities` / `probeMcpServers` / `classifyMcpProbeFailure` / `MCP_PROBE_REFUSAL_CAUSES` / `MCP_PROBE_UNKNOWN_WHYS`(0.79.0 CC-74:无 run 可读的 MCP 状态面两只调用口 + 单一失败判官 + 两张闭集词表;§85)· `readEntryProvenance` / `eraseMemoryEntries` / `listExternalOriginEntries` / `listOriginClearances` / `clearEntryOrigin` / `classifyMemoryFailure` / `externalOriginCoverage` / `MEMORY_VERB_REFUSAL_CAUSES` / `MEMORY_VERB_UNKNOWN_WHYS`(0.78.1 CC-97 b:记忆治理面五动词调用口 + 单一失败判官 + 两张闭集 + 覆盖面判词;§83)· `readMemoryExportRows` / `scopeExternalOriginVerdict` / `readMemoryEraseReceipt` / `memoryEraseCounts` / `memoryEraseErasedNothing` / `eraseNotFoundHistoryVerdict` / `memoryEraseReplayPosture` / `readMemoryOriginClearanceReceipt` / `MEMORY_ENGINE_REQUIRED_CODE`(0.76.1 CC-97a:记忆条目面三个回体的窄读口 + 判词口;「空答绝不读作本店干净」的代码落点;§77)· `readMcpLiveness` / `mcpLivenessRollupOf` / `mcpEngineLegHealthOf` / `mcpEngineLegHealthDetail` / `MCP_LIVENESS_STATES`(0.76.1 CC-36:`wiring_manifest.mcp[].liveness` 活性观察的行级三向读口 + 腿级四读数判词 + 措辞铸点;§77)· `readRunCancelContext` / `classifyRunAbortCause` / `RUN_CANCELLED_CODE`(0.74.3 CC-71:run 取消现场与成因;§71)· `cancelConflictFromError` / `cancelConflictContent` / `usageWindowExhaustedFromError` / `usageWindowExhaustedContent` + `CONFLICT_APPROVAL_SETTLED` / `CONFLICT_RUN_NOT_RUNNING`(0.73.1 CC-56:cancel 409 按码分家 + 提交面 429 用量窗;§63)· `reconnectMcpServer` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail` + `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE`(0.72.9 CC-30:会话内 MCP re-dial 消费口,outcome 三态 / unsupported 恒五键 / 名册按 toolNames 在场性;§56)· `readAutoConsolidationArmed`(0.72.9 CC-39②:memory-status `autoConsolidationArmed` 三态,缺席 = 老 server 判不了;§56)· `steerFollowIntent`(0.72.6 CC-40:steer 后续听意图三态 tail / after-decision / after-wake,按 `SteerReceipt.delivery` 判;§53)· `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading` / `webSearchBackendDoctorDetail` + `WEB_SEARCH_BACKEND_NONE`(0.72.5 CC-31:`capabilities.webSearch.backend` 四态读面 —— 键缺席 = 老引擎判不了 ≠ `none` = 引擎明说没有默认后端;与 `sqlEngineCapability` / `writeProtectionCapability` 同构;§52)· `resumeContextUnavailableFromError` / `resumeContextUnavailableContent`(0.72.1 CC-33:409 `conflict.resume_context_unavailable` 读数 `{ code, staleAfterSec?, runId? }` + 三句人话;§48)· `mcpEngineLegPresence`(0.71.0 CC-19:引擎侧 MCP 在场三值,只从面板视图求;§42)· `ControlRouter`(+ `ControlSafetyError`)· `fetchMcpPanel`(0.69.0:经 sdk `sessions.mcp` 取体 + 投视图,不裸 fetch)· `projectMcpPanel` + `mcpPanelLastLegDetail`(0.68.2 CC-03:`GET /v1/sessions/:id/mcp` 面板体防御读视图 + `lastLegMcp` 一行措辞铸点;缺席 = 键不铸、读不懂 = `lastLegMcpUnreadable`、禁与 `servers[]` 对账)· `makeEngineWireClient` + `resolveWireAuth` · `installEngineWireTarget` · `diagnoseSseIdleTear` / `isSseIdleError` · `attemptActiveRunSelfHeal` + `activeRunBusySignal` + `activeRunSelfHealRow` / `activeRunBusyHeadlessRow` · `kickEngineCapsProbe` / `engineCapTrue` / `invalidateEngineCaps(baseUrl, probe?)`(#307 S25:引擎温切后的 caps 生产失效口 —— kick 自带幂等闸,同 baseUrl 重启后不显式失效就永远读到旧引擎那一版能力位;调用方 = 壳的 respawn/restartEngine。🔴 **推荐两参形**:第二参给替代探测则「推进代际 + 注册新探测」在同一同步块内完成,失效与下一次 kick 之间那个「等待者读到未判」的窗按构造不存在;单参形保留给「只丢缓存、这一刻没有替代探测」的调用方,那种情形下读到未判是诚实结局) · `engineCapValue`(S-131,0.59.0:能力位的**四态**通用读口 `unobserved`/`not_reported`/`null`/`value` —— 既有三口把四种「读不出」全折成 fail-closed 一档,对**放行**问题是对的、对**读面/诊断**问题是错的:`null`(引擎明确说没有,正面事实)会与「老引擎不报」「还没探到」在屏上同形。`value` 位刻意不做形校验,形归各能力位自己的窄读器,详见 §23b)· `projectSqlEngineCapability` / `observedSqlEngine` / `noteEngineCapsForSqlEngine` / `forgetSqlEngineReading` / `sqlEngineDoctorDetail`(S-131,0.59.0:`Capabilities.sql`(server ≥7.60.0)的四态读面**从壳侧上收** —— 归层债,0.58.0 时它长在壳里正是因为包侧没有嵌套对象读口。🔴 **导出名与壳侧那份逐字同名 = drift-lock**;`txnMode: null` 是铸点域内的合法值不是畸形;换代失效口清成未观测而不是留旧值,详见 §23b)· `mapBrainStatusToRetry` · `waitForClaimRelease` + `CLAIM_RELEASED_STATES` / `CLAIM_HELD_STATES` · `atMostOnceFailureClass` / `readSteerDelivery` · `clearRunningChoiceOffer`(Inkglow-1085 P0b①:「Do nothing」登记的清口 —— 端的「重新打开操作菜单」入口;登记在场时 attemptActiveRunSelfHeal 不整卡重弹,not-parked 结局带 `alreadyOffered: true` 判别位,端据此降级渲一行)· `INTERACTIVE_WAY_OUT`(默认出路串单源)· `engineSessionParamFor`(design/285 批 0:`?session=` 派生的 **per-key** 形 —— `hostSessionFor(sessionKey)?.currentSessionId()` + [1501] 空串归一;零参 `engineSessionParam()` = 默认槽兼容层,取值链逐字等价)· `normalizeWirePrincipal`(A-028.10:principal 在场性 trim 原语 —— 全空白=缺席不发头,engineWireTarget 两臂/makeEngineWireClient/壳 livePrincipal 同尺)· `readSessionMemoryStatus` / `classifyMemoryStatusFailure` / `readCaptureOptOut` / `readLastCapture`(S-53 会话记忆姿态读面,0.48.0:失败分诊**码优先**——两个 404 分道 `not_found.session` / `not_found.route`,无码 404 不猜落 failed;五键逐键缺席语义两个合读器,`lastCapture` 三态的判别材料是 `committedCount` 不是本键;IO 归宿主注入 `MemoryStatusClientLike`,详见 §11) · `classifyTurnWireError` / `isWireTransportError` / `isPreStreamDrainingReject` / `isResumeAtRejection` / `drainingRetryDelayMs` / `scenarioDenyFromError` + `WIRE_NETWORK_ERROR_PATTERN`(A-028.11/.13:turn 错误分型判定半场,人话文案与渲染归端)· `resumeRetryLaterFromError`(L-102,0.57.0:resume 族**时间性拒绝**二码的判型半场 —— 这一族里唯一**带得出「等多久」**(`retryAfterSec`)的两个码。🔴 闭集**不是**「哪些码可以等」的名单:同族 `resume.row_recycling` 同样可等(窗口自清)只是没有秒数 ⇒ 本读口返回 `null` 只意味着没命中这两码,详见 §21) · `projectWriteProtectionCapability` / `observedWriteProtection` / `noteEngineCapsForWriteProtection` / `forgetWriteProtectionReading` / `writeProtectionDoctorDetail` / `projectWriteProtectionPosture` / `writeProtectionPostureDetail`(S-138,0.60.0:`Capabilities.writeProtection` (engine ≥7.63.0)的**四态**读面 + operator 面行表 —— 与上面 S-131 那一格**同构同纪律**。🔴 三位刻意不合成一个布尔;`not_reported` **不是**「这台部署没有写保护表」(座位缺席恰是缺省表在岗);逐行 name/kind 走**最小披露**只上 operator 面,详见 §24e)· `projectReadFacePosture` / `readFacePostureDetail` / `readFaceDisagreement`(S-167,0.61.0:operator 面 `diagnostics.wiring.readFace`(engine ≥7.65.0)的窄读器 —— 与上面S-138 那一格**同构同纪律**。🔴 三句「答不出来」逐字互异且没有一句等于「没有 READ 档」;`source` 按开集读;与租户面 `capabilities.readFace` 刻意不合流,只带一个纯比较函数,详见 §25)| 上行通道的**监管**半场(submit / steer / kill / 队列命令定序)+ 传输构造、caps 探测、SSE 断流分诊、**409 active-run 自愈** | `src/controlRouter.ts`、`steering.ts`、`sseIdleTriage.ts`、`retryStatus.ts`、`diagnostics.ts`、`engineWireSdk.ts`、`engineWireTarget.ts`、`src/principalWire.ts`、`src/wireErrorTriage.ts`、`engineSessionParam.ts`、`engineCapsCache.ts`、`liveInitToolFace.ts`、`adapter/activeRunSelfHeal.ts`、`src/sessionMemoryStatus.ts`、`src/writeProtectionCapability.ts`、`src/webSearchBackendCapability.ts`、`src/mcpReconnect.ts`、`src/readFacePosture.ts` |
|
|
176
|
-
| 16 | **引擎词汇表与包自检** |
|
|
176
|
+
| 16 | **引擎词汇表与包自检** | 105 | `SETTLEMENT_KIND_WORDS` / `ccToolDenialKindForSettledBy` / `ccToolDenialKindForToolEnd`(0.80.0 CC-133:结算词十三词镜像 + 「谁结算的」→ CC 分类词单铸映射 + `tool_end` 帧合流读口;§87)· `CC_TOOL_DENIAL_KINDS` / `isCcToolDenialKind` / `isCcToolDenialKindADenial` / `isGateDeniedByWord`(0.79.0 CC-125:上游转录记录键 `toolDenialKind` 七词镜像 + 两只谓词 + `DeniedBy` 十词成员谓词;§85)· `mandatedApprovalDetail`(0.79.0 CC-110:「这张卡清不掉」那一句的唯一铸点;§85)· `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH`(CC-96:记忆面两个**构造期**拒码,进既有 `config.` 族识别表;400 拼写 / 409 冲突,分诊归引擎)· `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`(0.72.12 CC-50:通知自己的四终态词,含 `cancelled`;与 run 级终态表两张表;§59)· `ENGINE_NOTICE_CODES` 67(0.72.11 CC-49:core 7.23.0 +1 `config.write_protection_unresolved`,operator,兄弟码 `target_view_absent` 之后;§58)· `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`(0.72.7 CC-42:通告 `mcp.server_redialed` 事实读器,outcome 三词闭集、added/removed 计数;§54)· `RESUME_CONTEXT_UNAVAILABLE`(0.72.1 CC-33;不进两个 resume 闭集:不可等、也不是换参数)· `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` · `resumeReopenFromError` / `resumeReopenContent`(0.71.3 CC-06:resume reopen 族三码闭集 + 读口 + 三句,§45)· `readSkillsListingTruncated`(0.70.0 CC-04:`skills.listing_truncated` 事实读器,§39)· `CONFIG_REFUSAL_CODES` / `isConfigRefusalCode` · `DECIDE_WORKFLOW_LANE_CODES`(+ 三个具名码;`/decide` workflow 车道,三条出路刻意不合并,详见 §30h)· `STOP_CONFLICT_CODES` · `isInterruptedToolEndCode` · `isRewindFamilyCode` · `CLIENT_VERBS` · `compensationSplitViolations` · `DELEGATION_CAP_CODES` / `isDelegationCapCode` / `DELEGATION_CONCURRENCY_CAP` / `DELEGATION_SESSION_CAP`(0.38.0 #318 件④:core 5.48.0 design/323 委派席位到限**两码,处置不对称禁合并** —— 并发帽=**可等**(兄弟结束即有位)/ 会话累计帽=**等也没用**(这条会话的配额用尽))· `CONFIG_DELEGATION_ENTRY_CAPS`(同批入 `CONFIG_REFUSAL_CODES` 识别表)· `delegationCapDispositionOf` / `MCP_SERVER_REVOKED`(0.39.0 载体到货消费件:core 5.50.0 补 `{ error: code, code }` 孪生拼法后两码真上 `tool_end.errorCode`,0.38.0「先立词不落消费分支」的已知局限自此解除;处置轴 `wait-for-slot` / `reuse-existing-or-await-reap` 机器可读(累计帽=retained-window 帐,行回收配额即回,处置=SendMessage 复用,**非**「换会话/永久耗尽」——0.38.0 段该句系勘误),未知 `delegation.*` 码 ⇒ `undefined`;`mcp.server_revoked` = 操作员 mid-session 吊销 server 后的工具面本地闸(被吊销的 server **名**今天不过 wire 境:detail.server 是进程内位,抬升腿只 lift code——归因渲染候 core 补 typed detail,已点名);载体门 = engine-vocab G3 腿锚 core dist 铸点)· `CAPABILITY_SELF_ORCHESTRATION_REQUIRED`(S-81,server 7.57.0:提交面的 selfOrchestration 准入拒绝码。🔴 **复用码** —— 与其它 `capability.*` 501 同体形而处置不同,消费点必须按**恰等**判、绝不放宽成前缀判;判型与「去键重发一次」归 `src/selfOrchestrationDenial.ts`,详见 §13) · `GATE_PARKED_ERROR_CODE`(0.60.0:「门把这次调用 park 了」的机读码单源 —— `frameRouter` 的连坐/中断判据与 `gateOutcome.isGateParkedToolEnd` 读同一个常量;真机黑盒直证 park 短路帧上**没有 `gate`**,这个码是那一形唯一的信号,详见 §24c)| 三端分臂共用的**去字面化** `errorCode` 词表(病根正是三端各抄一份字面);编译期 verb 闭合门;搬迁补偿登记表 | `src/engineErrorCodes.ts`(计数以 `scripts/public-export-baseline.json` 为准,别手抄;A-028.11/.13 补 `DRAINING_ERROR_CODE`/`SCENARIO_NOT_ALLOWED_ERROR_CODE`/`RESUME_AT_ERROR_CODE_PREFIX`;#318 件④ 补 `delegation.*` 族四位 + `config.delegation_entry_caps`;0.39.0 补三新码消费件三位);S-81 补 `capability.self_orchestration_required` 一位;L-102 补 `resume.*` 时间性拒绝二码 + 闭集 `RESUME_RETRY_LATER_CODES` 三位)、`src/classifierVerdictWire.ts`、`src/compensations.ts`、`src/clientSlice.ts`;**0.67.0 补锚**(这三件的导出一直计在本域,而本表此前没有它们的锚行 —— 如实补上,不是搬家):`src/gateVocabulary.ts`(`GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail` + 🆕 `RULE_STORE_UNREADABLE_KINDS`/`isRuleStoreUnreadableKind`/`ruleStoreUnreadableDetail`,详见 §32d)、`src/autoModeUnavailable.ts`(`AUTO_MODE_UNAVAILABLE_CAUSES` + 🆕 `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`;🔴 同批**删**`classifierUnavailableOf`/`classifierUnavailableDetail`,详见 §32b)、`src/classifierStatus.ts`(`CLASSIFIER_STATUS_STATES`/`classifierStatusOf`/`classifierStatusDetail`)|
|
|
177
177
|
|
|
178
178
|
🔴 **`engineErrorCodes` 的开集纪律**(该文件头注逐字):这些 `ReadonlySet` / 前缀谓词一律是**识别表**,
|
|
179
179
|
回答的是「我认不认得这个码」,**绝不是**「合法码只有这些」。消费点 `switch` **必须留 `default`**,
|
|
@@ -9599,6 +9599,159 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
|
|
|
9599
9599
|
|
|
9600
9600
|
**包侧缺口:** ① 出包面注释存量(别仓名 / 票号 / 帖号 / 过程词)与卫生门判据太窄(CC-100)—— 方案候拍板(dist 去注释 vs 手清),0.77.2 · ② `DeniedBy` 第十词 `read_boundary` / `teamName` / `stillLive` 三词随 sdk 10 型面在 0.78.0 吸收(CC-106)· ③ `capabilities.mcpProbe` 候 core 7.26.0 #951 → server 7.93.0(CC-74)。
|
|
9601
9601
|
|
|
9602
|
+
## §87 🆕 0.80.0 策略拒的归因上 wire + 删除规则后果句归包 + `/mcp` 详情卡两腿分说归包(🔴 minor:peer sdk 地板 `>=11.2.1` → `>=11.3.0`;根公面 1184 → 1195;型面 additive)
|
|
9603
|
+
|
|
9604
|
+
> **minor**:peer `@sema-agent/sdk` 地板 `>=11.2.1` → **`>=11.3.0`**(四处同批;11.3.0 在两条回决口体上声明 `settledBy?: "policy"`、`Settlement.kind` 第十三词 `policy_refused` 与三错误码);根公面运行期导出 1184 → **1195**(+11:CC-133 六名 / CC-134 三名 / CC-132 两名);型面 additive,无 BREAKING 删改。三件:
|
|
9605
|
+
> ① **deny 的归因上 wire**(CC-133;sdk 11.3.0 / server ≥7.93.3 / core 7.26.2 #1016):一次**策略自动拒**从此在 wire 上说得出自己是机器拒的 —— 发送面两条回决口在 deny ∧ 本地归因恰 `policy` 时带 `settledBy: "policy"`;读侧结算词表十三词,`policy_refused` 归进 CC 的 `permission-rule` 桶;三错误码有了读口与人话;直连门部署上包自己去键重发恰一次。**行为面一处真变化**,其余 additive。
|
|
9606
|
+
> ② **删除规则的后果句归包**(CC-132):三端「删除这条规则」确认卡的「这会怎样」四句收进唯一铸点,读口按运行时闭集收。零 wire 键。
|
|
9607
|
+
> ③ **`/mcp` 详情卡两腿分说归包**(CC-134):一台 server 的引擎腿活性**六档**读口 + Status 底下那一句范围说明的**九句**唯一铸点;同批改掉壳侧带过来的八处说满的话。零 wire 键、零投影臂。
|
|
9608
|
+
> 按表态制点名三端(48h 三选一)。
|
|
9609
|
+
|
|
9610
|
+
### 87a. 处置表
|
|
9611
|
+
|
|
9612
|
+
| # | 面 | 本包做了什么 | 端要做什么 |
|
|
9613
|
+
|---|---|---|---|
|
|
9614
|
+
| S-0 🔴 | peer sdk 地板 `>=11.2.1` → `>=11.3.0`(CC-133) | package.json / README 地板句 / sdk-floor 门常量 / 负控锚四处同批;11.3.0 起两条回决口体上 `settledBy?: "policy"` 在型 | 换钉 `^0.80.0` 之前 sdk 钉抬 `^11.3.0` |
|
|
9615
|
+
| S-1 | `ApprovalDecision.settledBy?: "policy"`(耐久 `/decide`;CC-133) | **consumed**:只在 `decision:"deny"` ∧ 本地归因恰是 `policy` 时上体;`human` / 缺席 / 表外词一律**不铸键** | 自动拒三路把 `settledBy: 'policy'` 放进交给本包的决断对象(`ApprovalCardDenyDecision.settledBy`,CC-125 起就在);**端零 wire 装配** |
|
|
9616
|
+
| S-2 | respond 体 `settledBy?: "policy"`(活卡腿;CC-133) | **consumed**:同上,判据是三条合取(decision 是 deny ∧ 卡是 deny 卡 ∧ 归因词恰是 policy) | 同上;别往 respond / decide 的体上自己加这一键 |
|
|
9617
|
+
| S-3 | `Settlement.kind` 第十三词 `policy_refused`(CC-133) | **consumed**:新谓词 `isPolicyRefusedGate(g)`;镜像表 `SETTLEMENT_KIND_WORDS`(十三词,编译期双向钉);经 `ccToolDenialKindForToolEnd` 把这次拒绝归进 CC 的 `permission-rule` 桶(`human_refused` ⇒ `user-rejected`;其余十一词 ⇒ 整键缺席) | 读侧零改动即受益:`_sema_permission_denials[].toolDenialKind` 与转录卡 `_sema_denial_kind` 在引擎侧策略拒那一路**开始有值** |
|
|
9618
|
+
| S-4 | `Settlement` 那一臂的 `who.party:"none"`(CC-133) | **consumed(只读不铸)**:读口原样透传;门按上游声明对账。本臂**没有 `note` 席** | 别据 `note` 缺席去推断这是不是策略拒 |
|
|
9619
|
+
| S-5 | `400 settled_by_not_in_proof`(CC-133) | **consumed(去键重发恰一次)**:四条合取 —— 本次真带过这一键 ∧ 恰是这个码 ∧ 调用方没中止 ∧ 恰一次;重发体 = 同一只体**只少那一键**;成功 ⇒ 结局仍 `decided` / `deny`、归因照交回、另带 present-iff 的 `denyAttributionDropped: true`;重发也失败 ⇒ 按既有失败分类交回,**不做第二次去键重发**(🔴 「恰一次」计的是 decide **投递**;每次投递内部的瞬态传输重试 —— 网络断恰一次 / 超时按预算,CAS 安全 —— 是本包 decide 投递自 0.28.x 起的既有法则,首发与去键重发一视同仁,**不在这个计数里**,判据按体计见 G-C5);`denyAttributionRefusalFromError` 的 `not_in_proof` 臂 + 一句人话 | 直连门部署零动作;想在屏上说明「这次的归因没送到引擎」就读结局上的 `denyAttributionDropped` |
|
|
9620
|
+
| S-6 | `400 request.field_conflict`(settledBy × approve;CC-133) | **consumed(只读不发)**:本包结构上发不出这一形(approve 臂没有这一位);读侧认得,但**要调用方声明发过这一键**才认领,与计划复核腿既有的同码臂分开 | 零动作 |
|
|
9621
|
+
| S-7 | `409 resume_outcome_invalid` + `field ∈ {hostDecision, approver}`(CC-133) | **consumed**:`attribution_rejected` 臂;`field` 缺席 / 绑定席**不归本族**。这一臂只说「引擎不收这次决定里的结算事实,并点名了哪一格」,**不**断言「那个词拼错了」 | 渲人话即可;`field` 住在 `APIError.extra`,别在顶层读 |
|
|
9622
|
+
| S-8 | 活卡腿 allow 族的 `400 request.body_shape` | **declined**:那个码太泛,本包永不发出 allow+归因键,这一形到不了 | 零动作 |
|
|
9623
|
+
| S-9 | 活卡腿词表外词 ⇒ 200 过境、引擎判 `approver_contract` | **declined(结构上不可达)**:本包窄读在边界做完,表外词根本不会上体 | 零动作 |
|
|
9624
|
+
| S-10 | `remember` 与 `settledBy` 互斥 | **n-a**:两者分居 approve / deny 两臂 | — |
|
|
9625
|
+
| S-11 🔴 | `result.structuredOutput`(终帧旧拼法;§86 S-2) | **removed**:0.79.1 宣告的过渡窗只有那一版,0.80.0 起成功终帧只铸 CC 形 `structured_output`(值 / 引用 / 缺席语义与 §86 S-1 逐字不变) | 若还按旧键读,**先改读 `structured_output`**:旧键读到 `undefined` 在这条语义上表示「引擎没产出」,不改就把「有产出」静默读成「没产出」 |
|
|
9626
|
+
| R-1 | `RuleRemovalBehavior` / `removalConsequenceLineForBehavior` / `ruleRemovalBehaviorOf`(CC-132) | **added**:三态(allow / deny / ask)各一句冻结文案 + 缺席一句中性句(不回落 allow);deny 句点名 widens(方向纪律);读口按运行时闭集收,只认严格相等,零属性访问;四句与端侧现文逐字节相同 | **consumed**:两张删除确认卡(已保存规则页 / 通用权限规则删除卡)改 import 本包三个符号,退役各自壳侧铸点 |
|
|
9627
|
+
| N-1 | `mcpEngineLegLivenessOf(serverName, rows)`(CC-134) | **added**:一台 server 在引擎腿上的活性**六档**读口(`unobserved` / `not-listed` / `ambiguous{rows}` / `unreadable` / `absent` / `observed{state}`);入参行型 = 本包 `WiringManifestMcpEntryView`;只认自有键、每格恰读一次、永不抛、谎报长度不扫 | **consumed**:详情卡改读本口;壳里那份同名判据同批退役;`switch` 必须带 `default` |
|
|
9628
|
+
| N-2 | `mcpDetailLegNote(input)`(CC-134) | **added**:详情卡 Status 底下那一句范围说明的唯一措辞铸点(**九句**:活性五句 + 名册四句);活性观测优先于名册;不渲活性开集原词 | **consumed**:改读本口;壳这一侧零措辞、零第二份判据 |
|
|
9629
|
+
| N-3 | `McpEngineLegLiveness` / `McpDetailLegNoteInput`(`export type`;CC-134) | **added**:六臂判别联合(`observed.state` 是开集串);入参三键**都必需** | `switch` 带 `default`;别靠省略键表达「不知道」 |
|
|
9630
|
+
| N-4 | `isMcpLivenessState`(新公面值;CC-134) | **added**:活性三词闭集的**唯一**判据,自 `mcpLiveness.ts` 上公面 | 端要按这张表分支时拿走这一只,别自己写 `includes` |
|
|
9631
|
+
| N-5 | 壳腿失没失败的布尔 / `engineHostedToolCount` 的来源 | **n-a**:本包不判、不产 | 端继续自己算 |
|
|
9632
|
+
|
|
9633
|
+
### 87b. 缺席语义(逐键)
|
|
9634
|
+
|
|
9635
|
+
- **请求体上 `settledBy` 缺席** = 「不知道是人拒的还是规则拒的」**或**「是人拒的」。wire 上没有第二个词来说「人拒的」—— 人拒的表达方式**就是**这一键缺席。端不许把缺席读成「归因丢了」。
|
|
9636
|
+
- **`tool_end.gate.settlement` 整只缺席** = 这次通过**没有结算任何 ask**(普通放行、直接策略拒都不带结算),不是「结算信息丢了」。
|
|
9637
|
+
- **`settlement.kind` 是别的十一词** = 这次拒绝(或放行)**不属于**「人拒 / 策略拒」两类 ⇒ `toolDenialKind` **整键缺席**,不是 unknown、更不是某个默认桶。
|
|
9638
|
+
- **`toolDenialKind` / `_sema_denial_kind` 缺席** = 算不出属于哪一类(本流没见过那只 `tool_end` / 无自铸位且结算词不在那两个之内 / 词表对不上),**不是**「这次没被拒」。
|
|
9639
|
+
- **`deniedBy` 与 `toolDenialKind` 答的是两个问题**:前者是 wire 上引擎写的**层名**(经审批通道结算的拒绝写 `ask_resolution`),后者是这次拒绝在 CC 转录上算哪一类。本包**不**按结算词改写 `deniedBy`。
|
|
9640
|
+
- **`denyAttributionRefusal` 缺席** = 这次失败不属归因键那一族 / 本次请求体根本没带这一键 / 抛出物上读不出状态与码;**不是**「归因键送到了」。**`denyAttributionDropped` 缺席** = 没发生过去键重发(首发就落定,或首发失败不是那一个码);present-iff,绝不铸 `false`。
|
|
9641
|
+
- **重放形(server ≤7.93.3 的已知限,7.93.4 起消失)**:策略拒不随持久决议保存 ⇒ 重放与兄弟等待者拿到的那一帧上同一次策略拒可能写成 `human_refused`。本包**只如实读 wire 给的词,绝不反推**;端也不要自己补一句「这条部署是无人值守的,所以应该是策略拒」。
|
|
9642
|
+
- **终帧 `structuredOutput` 缺席**(0.80.0 起恒缺席)= 旧拼法已删,**不是**「引擎没产出」;产出有没有只看 `structured_output`(缺席语义见 §86 S-1:缺席与值 `undefined` 同缺席、falsy 与非记录形照带)。
|
|
9643
|
+
射程只有**成功终帧**这一个键位:子代完成卡 `CompletedAgentCard.structuredOutput`(`readCompletedAgentCard` 读口,本包自有 camelCase 形,不是 CC 同名键)**原样不动**,端按键名全库替换时别误伤。
|
|
9644
|
+
- **`ruleRemovalBehaviorOf` 读不出态**(表外值 / 整键缺席 / 大小写误拼 / 数字 / `null` / 对象 / 原型链上顶着合法值的对象)一律 `undefined`;`removalConsequenceLineForBehavior(undefined)` 落中性句 —— **绝不回落 `allow` 那一句**,中性句对三态皆真。
|
|
9645
|
+
- **MCP 引擎腿六档**:名册整体缺席(`null` / `undefined` / 非数组 / 长度不是非负整数 / 超扫描封顶 / **有行或名字读不出**)⇒ `unobserved` = 「本端手上没有一张读得完的名册」,与 `[]`(引擎申报零台 ⇒ `not-listed`)**不是一句话**;名册读完而同名两行及以上 ⇒ `ambiguous{rows}`,**不挑**;`absent` **只**表示「这一行没有 `liveness` 自有键」;活性格在场而读不懂(整格不是对象 / 词不是非空串含空串 / 取值抛出)一律 `unreadable`;`observed.state` 是开集原词。
|
|
9646
|
+
- **那一句**:`localClientFailed` 不**恰等** `true` ⇒ 不铸(返 `undefined`);活性 `observed` 五形各一句(够得着 / 够不着 / `unknown` 说不清 / 表外词认不得 / 词读不出)+ `unreadable` 自成一句;活性说不出(`absent` / `ambiguous` / `unobserved` / `not-listed`)才轮到名册四档:列了工具 / 本端两者皆无 / 明说零 / **读不出**(非有限 / 负 / 非整数 / 非数 / 取值失败 —— 与 `undefined` 和 `0` 三件事三句话)。九句逐字互异,没有一句渲活性原词。**九句原文**(端与验收方逐字对拍;句序 = 活性五句 + 名册四句):
|
|
9647
|
+
1. `This client's own connection is down; the engine still reaches it.`
|
|
9648
|
+
2. `This client's own connection is down, and the engine could not reach it when it last looked.`
|
|
9649
|
+
3. `This client's own connection is down; the engine could not tell whether it reaches this server.`
|
|
9650
|
+
4. `This client's own connection is down; the engine reported a liveness state this client does not recognise.`
|
|
9651
|
+
5. `This client's own connection is down; the engine sent a liveness record for this server that this client could not read.`
|
|
9652
|
+
6. `This client's own connection is down; the engine listed this server's tools for the last run.`
|
|
9653
|
+
7. `This status is this client's own connection. This client has neither a liveness reading nor a tool count from the engine for this server.`
|
|
9654
|
+
8. `This status is this client's own connection. The engine reported no tools from this server either.`
|
|
9655
|
+
9. `This status is this client's own connection. The engine's tool roster for this server could not be read.`
|
|
9656
|
+
|
|
9657
|
+
### 87c. 黑盒判据骨架
|
|
9658
|
+
|
|
9659
|
+
> 🔴 标「本版证明」的格在 **0.79.1** 产物上必须 FAIL、在 0.80.0 上必须 PASS;标「回归约束」的格两版都 PASS。请记下两次跑的产物标识(版本 + tarball shasum)。
|
|
9660
|
+
|
|
9661
|
+
- **G-S1**(本版证明,耐久腿):装一张 `{ kind:'deny', reason:'…', settledBy:'policy' }` 的卡 → `approvals.decide` 收到的体上 `settledBy === 'policy'` ∧ `decision === 'deny'` ∧ 绑定两键照旧回显。0.79.1:体上没有 `settledBy`。
|
|
9662
|
+
- **G-S2**(本版证明,活卡腿):同一张卡 → `toolApprovals.respond` 的 opts 上 `settledBy === 'policy'`。
|
|
9663
|
+
- **G-S3**(回归约束):卡报 `settledBy:'human'` / 不报 / 报 `'rule'` / `'Policy'` / `''` / 非串 / 只挂原型 / 取值器 —— 两条口的体上**整键不铸**(八形各一格)。
|
|
9664
|
+
- **G-S4**(回归约束):`allow` / `allow_session` / `allow`+`updatedInput` / `allow`+`persistRule` / 坏卡口把归因键塞进 allow 卡 —— 体上零 `settledBy`。
|
|
9665
|
+
- **G-S5**(回归约束):卡口失败(fail-closed deny)/ 用户放弃 / 中断 —— deny 照发、零 `settledBy`。
|
|
9666
|
+
- **G-R1**(本版证明):流内 `tool_end.gate.settlement.kind === 'policy_refused'` 且无自铸位 ⇒ 终帧 `_sema_permission_denials[].toolDenialKind === 'permission-rule'`,同一行的 `deniedBy` 仍是 wire 给的层名(`ask_resolution`),没有被改写成 `policy`。0.79.1:`toolDenialKind` 整键缺席。
|
|
9667
|
+
- **G-R2**(本版证明):同一夹具换成 `human_refused` ⇒ `user-rejected`;其余十一词 ⇒ **整键缺席**(逐词一格)。
|
|
9668
|
+
- **G-R3**(回归约束):自铸位与结算词冲突 ⇒ 读自铸位(两向各一格)。**G-R4**:三键齐全时 CC 数组那一行与 sema 载体同值。
|
|
9669
|
+
- **G-R5**(本版证明,跨帧):同一 `toolCallId` 先到带 `_sema_denial_kind:'permission-rule'` 的 `tool_end`,再到一只无自铸位、`settlement.kind:'human_refused'` 的重放帧(两帧 `deniedBy` 同为 `ask_resolution`)⇒ 终帧仍 `permission-rule` + `deniedBy:'ask_resolution'`;倒序同;溢出闩落下之后本地自铸位后到同样就地替换。**同权威**异值(两只本地异值 / 两只 wire 异值)仍是矛盾 ⇒ 两格一起缺席。🔴 修前(本版发前实撞):后到的 wire 词被当成对本地事实的反证,两格永久出表 —— 而这条重放形 §87 自己写明是旧 server 上可达的。
|
|
9670
|
+
- **G-C1**(本版证明):`400 settled_by_not_in_proof` ⇒ `not_in_proof`;`400 request.field_conflict`(∧ 调用方声明发过这一键)⇒ `decision_conflict`;`409 resume_outcome_invalid` + `field:'hostDecision'`/`'approver'` ⇒ `attribution_rejected`(句子逐字带出席位名)。三句人话逐字互异、都明说「没落定、卡还在等」、零机器码,没有一句说「原样再发一次」。`field` 在真 SDK 上住在 `APIError.extra`。
|
|
9671
|
+
- **G-C2**(回归约束,🔴 分家反钉):计划复核腿的 `400 request.field_conflict`(未声明发过这一键)⇒ `null`;`409 resume_outcome_invalid` 无 `field` 或 `field` 是绑定席 ⇒ `null`。
|
|
9672
|
+
- **G-C3**(本版证明):两条决断腿撞上这三条时,`failed` / `unresolved` 结局带 `denyAttributionRefusal`;allow 族撞同一条 400 ⇒ 整键不铸。
|
|
9673
|
+
- **G-C4**(本版证明,去键重发三维):**时序** —— 首发 `400 settled_by_not_in_proof` → 重发 200:恰两次投递(网络平稳时恰两条 POST),首发带键、重发不带,重发体与首发逐字节相同只少那一键,结局仍 `decided` / `deny`,`denySettledBy` 照交回,`denyAttributionDropped === true`;首发 400 → 重发也失败:恰两次投递,机器码来自重发那一次,失败结局上不铸 `denyAttributionDropped`。**并发** —— 两次之间调用方 abort ⇒ 不发第二次。**失败分类** —— 另外七种码(含 `request.field_conflict` / `resume_outcome_invalid` / `request.body_shape` / `remember_not_in_proof` / `approval_binding_mismatch` / 无码 400 / 同码但 409)各一格零重发;本次没带过这一键的三形撞同一个码也零重发。**判别力** —— 首发就成功 ⇒ 恰一次、带键、不铸丢键位。0.79.1:两条腿都只发一次。
|
|
9674
|
+
- **G-C5**(本版证明,判据按**体**计):首发 `400 settled_by_not_in_proof` → 去键重发遇网络断(`fetch failed`)→ 再投递 200 ⇒ 三条 POST、**两种体**:带键的体恰一次(首发),去键之后的每一条逐字节相同;结局 `decided` + `denyAttributionDropped === true`。去键重发网络断两次 ⇒ 三条 POST 后 `failed`(bridge 网络重试恰一次),不铸 `denyAttributionDropped`、不认领归因拒绝分类。🔴 在真部署上按 POST 条数计「恰两次」是说满了的:判据计**体**,不计连接。
|
|
9675
|
+
- **G-C6**(本版证明,回交快照):活卡腿 `{kind:'deny',reason,settledBy:'policy'}`,`respond` 期间宿主把同一只卡对象改成 `kind:'allow'`:首发 400 → 去键重发 200 ⇒ 送出的两次都是 deny,交回 `decision:'deny'` + `denySettledBy:'policy'` + `denyReason` + `denyAttributionDropped:true` 四位齐;首发就 200 ⇒ 归因两位照交回、不铸丢键位;反向(allow 卡在 await 期间改成 deny)⇒ 交回仍 allow、归因两位不铸。帧身份同律:`respond` 期间宿主把 `frame.approvalId` 从 A 改成 B ⇒ 去键重发仍发给 A、回执按 A 核对(身份在第一个 await 前快照)。🔴 修前(本版发前实撞):回交面在 await 之后活读 `card.kind`,归因三位整段丢失、连「归因没上 wire」也隐瞒。
|
|
9676
|
+
- **O-G7**(本版证明):`done` 帧 `result.structuredOutput = {verdict:'ok'}`(成功臂)⇒ 终帧 `Object.hasOwn(msg,'structuredOutput') === false` ∧ `msg.structured_output === 喂进去的对象`。0.79.1 上旧键在场 ⇒ FAIL。§86 的 O-G2 / O-G4 / O-G6 里「两键同值」那一半作废(见改口 ⑰),`structured_output` 那一半照旧。
|
|
9677
|
+
- **G-D1**(本版证明):`removalConsequenceLineForBehavior('deny')` 逐字节等于冻结文案,含 `widens`、不含 `asked about again`;**G-D2**:`removalConsequenceLineForBehavior(undefined)` 与三态各句两两不同,且不含 `asked` / `refused` / `held` 任一方向词;**G-D3**(回归约束):`ruleRemovalBehaviorOf('Allow')` / `1` / `null` / `{}` / `Object.create({ruleBehavior:'allow'})` 五形皆 `undefined`;**G-D4**:三态原样读得出。
|
|
9678
|
+
- **L-G1**(本版证明):`mcpEngineLegLivenessOf('a', null).kind === 'unobserved'` 且 `('a', []).kind === 'not-listed'`,两者不等。**L-G2**:`projectMcpSection([{ errorCode: 'http_503' }])` ⇒ `undefined`,喂进本口 ⇒ `unobserved`。**L-G3**:行 `{name:'a', livenessUnreadable:true}` ⇒ `unreadable`;`'true'` / `1` / `false` 三形都不是。**L-G4**:`{name:'a', liveness:{state:'reachable', observedAt:t}}` ⇒ `{kind:'observed', state:'reachable'}` 且只有两键。**L-G5**:`state` 取未知词 ⇒ 原词逐字出现在 `observed.state`;`state:''` ⇒ **`unreadable`**(不是 absent)。
|
|
9679
|
+
- **L-G6**(本版证明):`localClientFailed:false` 对六档 × 四档名册全返 `undefined`。**L-G7**:`localClientFailed:true`,名册取 `undefined` / `0` / `5` × 活性 `observed{'reachable'}` / `observed{'unreachable'}` ⇒ 六格只出两句(活性优先于名册)。**L-G8**:活性取 `absent` / `unobserved` / `not-listed` / `ambiguous` 四档 × 名册四值 ⇒ 名册四档各一句;四档之间同名册值下同答。
|
|
9680
|
+
- **L-G11**(回归约束,永不抛):两只口对 `rows` 取 `''` / `42` / `{}` / `true`、名册里混 `null` / 串 / 数组、`liveness` 取 `null` / 串 / 数、整只入参取 `undefined` / `null` / `7`、抛出的 getter(`name` / `state` / `localClientFailed` / `liveness` / `engineHostedToolCount`)、被 revoke 的 Proxy(整只名册 / 单行 / 整只入参)、数组自有 `find` 被遮蔽 —— 都不抛。**L-G12**(本版证明,有界):名册长度谎报 `Number.MAX_VALUE` ⇒ 毫秒级内答 `unobserved`;负数 / 小数 / 超大 ⇒ 同答。**L-G13**:行只自有 `name` 而 `liveness` 来自原型 ⇒ `absent`;`name` 只在原型上 ⇒ `not-listed`;原型上的 `livenessUnreadable:true` 不压掉自有的真观察。**L-G14**(回归约束):`wiring_manifest.mcp[]` 过境字节、`projectMcpSection` 每一条判据、活性三词闭集与腿级判词一个字节未动。
|
|
9681
|
+
- **L-G15**(本版证明):同名两行 ⇒ `ambiguous` 且 `rows === 2`,三行 ⇒ `3`,单行不误伤。**L-G16**:一行干净命中 + 一行名字 getter 抛 ⇒ `unobserved`(不是 observed、也不是 ambiguous)。**L-G17**:`observed{'unknown'}` 与 `observed{未知词}` 在名册四值上各自恒同句,共两句。**L-G18**:`unreadable` 与 `observed{state:''}` 在名册四值上恒同一句,且与 `absent` 那一句不等。**L-G19**:名册取 `NaN` / `Infinity` / `-1` / `0.5` / `'5'` / `null` ⇒ 同一句「读不出」,与 `0`、`undefined` 三句互异。**L-G20**:九句去重恰九句,每句含 `engine`,没有一句含 `reachable` / `unreachable` / `unknown` / `indeterminate` / `ambiguous`,也没有一句含 `Nothing has been seen`。
|
|
9682
|
+
|
|
9683
|
+
### 87y. 🔴 三端升级必读(固定段式,[C295])+ 成文改口
|
|
9684
|
+
|
|
9685
|
+
1. **换钉 `^0.80.0` 之前**:sdk 钉抬到 `^11.3.0`(peer 地板 `>=11.3.0`);server ≥7.93.3 才会真读归因键 —— 老 server 静默忽略并照回 200,那台机器上行为与 0.79.x 逐字相同;**没有能力位可探**。直连门部署零动作(包自己去键重发恰一次)。仍钉 ≤0.77.x 的端别停在中间版:server ≥7.92.2 + client-core ≤0.77.x 的混装期会把已被并发撤销的收紧报成站着的(0.78.0 起改判 `revoked` / `malformed_result`),直接到 ≥0.78.0。逐面:
|
|
9686
|
+
- **终帧结构化产出**:🔴 旧拼法 `structuredOutput` 本版删除(0.79.1 宣告);端侧按旧键的读法 / 类型声明 / 快照夹具 / JSON 断言必须同批改读 `structured_output`。
|
|
9687
|
+
- **策略拒归因**:自动拒的三条路(权限规则 deny / `dontAsk` 姿态 / 这条车道根本没有审批口)把 `settledBy: 'policy'` 放进交给本包的决断对象;**端零 wire 装配**,绝不自己往 respond / decide 的体上加这一键。读侧零改动即受益;按旧眼断言「`toolDenialKind` 恒缺席」的验收格作废。
|
|
9688
|
+
- **删除规则确认卡**:改从本包取 `RuleRemovalBehavior` / `removalConsequenceLineForBehavior` / `ruleRemovalBehaviorOf`,两张卡的措辞与读口改 import 本包,退役壳侧铸点;四句文案未改一个字符,唯一要核的是端侧旧实现有没有在某个分支上悄悄回落过 `allow` 那句(本包读口从不这样做)。
|
|
9689
|
+
- **`/mcp` 详情卡**:Status 底下那一句改读 `mcpDetailLegNote`,活性读数改读 `mcpEngineLegLivenessOf`,壳侧两份同名铸点同批退役;壳侧仍要自己算的只有两件(本地 client 失没失败的布尔 / 工具名册数);传 `undefined` 是合法的(与 `null` 同答 `unobserved`);行必须是本包窄化器产的行(只认自有键);端若自己按活性词分支,改用 `isMcpLivenessState`。🔴 **屏上的话会变**:壳侧现文的「Nothing has been seen from the engine about this server in this session」句在本版**改口**为本端自述,`unknown` / 表外词 / 读不出各自成句 —— 按旧字面断言的验收格作废(见改口 ⑨–⑯)。
|
|
9690
|
+
2. **零改的面**:§79–§86 除本段点名的面外原样适用;审批帧既有每一个键、请求装配、转录切行、活性三词闭集与腿级判词、子路径入口 `./registry` 一个字节未动;`decision` 位一个字节不动(归因绝不参与裁决)。
|
|
9691
|
+
3. **成文改口(旧判据眼作废 → 新判据眼)**:① 「发送面零 `settledBy`」作废 → deny+policy 带键 / `human` 与缺席不带键 / allow 族恒不带键;② 「`settledBy` 不上 wire,只决定转录那一戳」作废 → 同时上 wire 与决定那一戳,同一只读数;③ 「结算词是闭十二词」作废 → 十三词(`SETTLEMENT_KIND_WORDS`);④ 「`toolDenialKind` 只在本包自己决断那一路上有值」作废 → 引擎自己结算的那一路也有值;⑤ 「`deniedBy` 与 `toolDenialKind` 可以互相推」从来不成立,本版写成明文:`policy_refused` 旁的 `deniedBy` 是 `ask_resolution`;⑥ 「`decide` / `respond` 的 400 / 409 只能拿 `errorCode` 分辨」放宽 → `resume_outcome_invalid` 必须合读 `field`(住在 `APIError.extra`);⑦ 「`field:"hostDecision"` = 归因词拼错了」从来不成立;⑧ 「`request.field_conflict` 在本包只有计划复核腿一个住户」作废 → 两个住户各判各的;⑨ 「活性说不出(缺席 / 读不出 / 未观测 / 不在名册)才轮到名册」里的「说不出」不再包含「看过但说 `unknown`」与「表外词」—— 各自成句;⑩ 名册数非有限 / 负 / 非整数 ⇒ 「读不出」一句,不再落「明说零」;⑪ 同名多行 ⇒ `ambiguous` 不挑,不再按第一行;⑫ `absent` 只表示无 `liveness` 自有键,空串与畸形格 ⇒ `unreadable`;⑬ 名册有行身份读不出 ⇒ `unobserved`,不再答 `not-listed`;⑭ 名册没读完 ⇒ 对该名字不作任何断言(不再拿干净那一行答);⑮ 活性 `unreadable` 自成一句,不再落名册支;⑯ 「Nothing has been seen from the engine about this server in this session」改口为「This status is this client's own connection. This client has neither a liveness reading nor a tool count from the engine for this server.」(对 `absent` / `ambiguous` 两档旧句是假话);⑰ §86「`structured_output` 与 `structuredOutput` 两键同值同引用并存」作废 → 只剩 CC 形一键,旧键整键缺席(O-G2 / O-G4 / O-G6 里「两键同值」那一半作废,O-G7 是新眼)。
|
|
9692
|
+
|
|
9693
|
+
**包侧缺口:** ① 上游两条腿对 allow+归因键的码自相矛盾(耐久腿头注说活卡腿是 `request.field_conflict`,活卡腿头注说耐久腿是 `request.body_shape`);本包发不出这一形,只影响读侧完备性,候上游订正 · ② 没有能力位可探「这台 server 认不认这一键」,本包不做反推;候上游给能力位(有了就可以连第一次都不发)· ③ `409 resume_outcome_invalid` + `field` 这一族上游今天给不出「是哪一种」的机读位(同一个 `field:"hostDecision"` 至少四种因由),本包这一句只说「不收、点名了哪一格」,候上游成因判别位 · ④ 重放形的桶可能与活体流不同(server ≤7.93.3),7.93.4 起消失 · ⑤ 同形存量 `resumeRefusalCopy` 顶层读 `staleAfterSec` 而真载体在 `APIError.extra`(CC-137)· ⑥ MCP 名册扫描封顶 4096(超过答 `unobserved`;挡的是谎报长度的宿主对象,真名册个位数到几十)· ⑦ 结算词表对账基准已换 core 真字节(7.26.3),sdk 为第二见证;上游加第十四词那天编译期钉与门同批红 · ⑧ §86 缺口原样。
|
|
9694
|
+
|
|
9695
|
+
## §86 🆕 0.79.1 终帧结构化产出改用 CC 拼法 + 写审批退化卡拿回路径 + 云控制面进子路径入口 `@sema-agent/client-core/registry`(patch;根公面 1184 不变、peer 地板不动)
|
|
9696
|
+
|
|
9697
|
+
> **patch**:peer `@sema-agent/sdk` 地板不动(`>=11.2.1`);🔴 **根公面运行期导出 1184 一个不变**(§0a 计数零变)。三件:
|
|
9698
|
+
> ① **终帧结构化产出改用 CC 拼法**(CC-130):`outputSchema` 任务的产出此前只以 camelCase `structuredOutput` 铸在成功终帧上,而 CC 形 `SDKResultSuccess` 的那一位叫 **`structured_output`**(snake_case;同族 subtype `error_max_structured_output_retries` 亦 snake_case)—— 按 CC 形读 `result.structured_output` 的消费方一律读空。本版起同一帧**同时**铸两个名字、同值同引用;旧拼法 deprecated,**0.80.0 删**。**销 §79 ① 的 pending**:那一行处置表写的「`outputSchema` 下行 `structured_output` **pending** 另票」(0.77.0 登)就是本票,下行位本版落地。
|
|
9699
|
+
> ② **写审批退化卡拿回路径**(CC-129):`tool_approval` 帧带 `argsOmitted`(或流上没有 `tool_start.args`)时,审批卡的路径回落**开始能解出来了** —— 此前在「引擎环境不提供受护写入」的部署形上它恒缺席,卡上的 diff 恒退化成空写。**行为面只改这一处**,零型面、零导出变化。
|
|
9700
|
+
> ③ **云控制面十个值 + 两个型走新的第二个入口** `@sema-agent/client-core/registry`(CC-128 ①;`package.json` exports 的 `./registry`),与上游 `@sema-agent/sdk/registry` **同一引用**;零 wire 键、零投影臂、零缺席语义变化。**不用云控制面的端:零升级动作。**
|
|
9701
|
+
|
|
9702
|
+
### 86a. 处置表
|
|
9703
|
+
|
|
9704
|
+
| # | 面 | 本包做了什么 | 端要做什么 |
|
|
9705
|
+
|---|---|---|---|
|
|
9706
|
+
| S-1 | `result.structured_output`(成功臂;CC-130) | **added**:CC 形权威位,值 = wire `TaskResult.structuredOutput` 原样过境(同一引用,不窄化不深拷) | **consumed**:读这一位 |
|
|
9707
|
+
| S-2 | `result.structuredOutput`(成功臂;CC-130) | **deprecated**:与 S-1 同值同引用并存一版;**0.80.0 删** | 改读 S-1;0.80.0 之前不要新增按此键的读法 |
|
|
9708
|
+
| S-3 | 错误信封(`SDKResultError` 形;CC-130) | **n-a**:两个拼法**都不铸** —— CC 错误臂没有这一位 | 零改;别在失败终帧上等这一位 |
|
|
9709
|
+
| S-4 | 写审批卡的路径回落 `args.file_path`(退化腿;CC-129) | **fixed**:判据从「整串两端锚死」改成「问句本体在**句首** + 路径收口在句体里**唯一**」的体内定位;引擎在那句问话之后恒追加的说明句(以及可选的写入域说明句)**原样忽略**。解不出 / 判不出仍是**诚实缺席**(空写),不猜 | **零换装**。若端自己从 ask 文案里兜过路径(壳侧热修),现在可以撤掉并改读卡上的 `args.file_path`;撤之前先核对两边对「解不出」的处置是否一致 |
|
|
9710
|
+
| R-0 🔴 **入口** | 本包新开第二个入口 `./registry`(CC-128 ①) | 云控制面**不进根 barrel**:根链对上游那条声明面缺口与将来的 Node-only 漂移保持干净;根公面 / §0a / 根闭包全零变;两个入口的图**不相交**(子路径入口文件零相对 import、零本包自引用,由门按 dist 产物实扫) | 只用会话运行时的端:**零动作**;要云控制面的端:改从 `@sema-agent/client-core/registry` 取 |
|
|
9711
|
+
| R-1 | 云控制面十个值 | **added(原样转口)**:`RegistryClient` / `getMeConfig` / `getScopeConfigDraft` / `getEffective` / `probeRegistryHealth` / `postFeedback` / `REGISTRY_AUTH_PATHS` / `skillContentAddress` / `RegistryApiError` / `OAuthFlowError` —— 与 `@sema-agent/sdk/registry` **同一引用**(门按 `===` 钉),零包装零默认值 | 把这十名的 import 落点从 SDK 子路径改到 `@sema-agent/client-core/registry`;`instanceof` 判据零改(是同一个类对象)。🔴 **新码不许走转口口**:新的云控制面逻辑写进本包 |
|
|
9712
|
+
| R-2 | 令牌契约两个型 | **added(`export type`)**:`RegistryTokens` / `TokenProvider` | 同上;`TokenProvider` 仍是**宿主要实现**的接口,本包不提供实现(刻意不转 `InMemoryTokenProvider`) |
|
|
9713
|
+
| R-3 | 未转的五名 | **declined / pending** —— `requestDeviceCode` / `pollUntilApproved` / `refreshTokens` / `listScopes` / `switchScope` 今天转不干净(签名型来自上游只在 devDependencies 里的声明包) | 端的登录 / 令牌刷新 / scope 切换那条腿**继续直连**;退役条件本批到 **六 / 七**(内容寻址那条腿已可退役) |
|
|
9714
|
+
| R-4 | `@sema-agent/sdk/device` | **declined** —— Node-only 面(零 import、靠 Node 全局 `Buffer`),转它等于把只在 Node 里成立的面放进本包的浏览器打包面 | 需要设备面的端自行直连,别期待本包转口 |
|
|
9715
|
+
|
|
9716
|
+
### 86b. 缺席语义(逐键)
|
|
9717
|
+
|
|
9718
|
+
- **结构化产出两键同出同缺**(CC-130):引擎 `TaskResult` 上这一位缺席 ⇒ **两键都不铸**(不是铸一个值为 `null` / `{}` 的键)。**键在场而值 `undefined` 同缺席**:也是两键都不铸 —— 铸一个值为 `undefined` 的键,会让按 `in` / `hasOwnProperty` 判在场的消费方把「引擎没产出」读成「产出是空的」。**falsy 不等于缺席**:`null` / `0` / `""` / `false` 是真产出,两键照铸;端的在场判据请写 `Object.hasOwn(r, 'structured_output')` 或 `!== undefined`,**不要写 truthy**。**非记录形也照带**:数组(含空数组)、串、数字、布尔 —— 形状由调用方自己的 `outputSchema` 决定,本包不解释、不筛形、不深拷,原样过境且**引用相同**。严格形校验的取舍:把整条 `result` 按 CC 形做封闭校验(`.strict()` / `additionalProperties: false`)的消费方会因 `structuredOutput` 这个 CC 没有的键拒收整帧;该面在 0.79.0 及以前已因十余个既有 additive 位(`errorCode` / `model` / `_sema_*` 族)同样不可用 —— 本版不是新风险源,0.80.0 删旧拼法后此条销。
|
|
9719
|
+
- **卡入参 `args.file_path`(退化腿;CC-129)**:**缺席 = 这次没解出可信的路径**,不是「路径是空的」。四种形归同一格:① 帧上根本没有那句问话(耐久盲卡形);② 是**另一句** ask(引擎那条策略还会说「这次调用没有可约束的路径目标」和「真实目标解不出来」两句,后者其实带着路径,本包**刻意不读**);③ 问句本体**不在句首**(整段协议文本被嵌进了别人的话里);④ 🔴 **歧义**:路径收口形在句体里出现两次以上 —— 路径是引擎原样插进去的自由文本,它自己就能带上收口形,判不出哪一只是真收口,**答缺席,绝不挑第一只**;⑤ 空路径(收口紧贴前缀)同答缺席。尾巴**不参与判定**:引擎在问句之后追加的说明句怎么改措辞都不影响解出来的路径;反过来,问句本体那一段**逐字**改口会让本读口当天全缺席。路径里**自带一只引号**时逐字解得出(修前那条判据在这一形上也解不出)。
|
|
9720
|
+
- **云控制面(CC-128 ①)**:本批**零新键、零新读口**,转出去的是上游那一个函数 / 类对象本身,缺席语义一律以上游为准,本包不加一层判读、不补默认值、不替宿主选 `fetch`、不替宿主存令牌。
|
|
9721
|
+
|
|
9722
|
+
### 86c. 黑盒判据骨架
|
|
9723
|
+
|
|
9724
|
+
> 🔴 判据分两类,别混用:**标「本版证明」的格**在 0.79.0 产物上必须 FAIL、在 0.79.1 上必须 PASS;**标「回归约束」的格**两版都 PASS,证不了本次修复,只保证没被改坏。验收方请记下两次跑的**产物标识**(版本 + tarball shasum),只跑一版证不出方向。本包发布前已在 0.79.0 的 npm tarball(shasum `dce5cea3…`)上实跑 O-G1 / O-G2 / O-G4 / O-G6 与 A-G1:全 FAIL;候选产物全 PASS。
|
|
9725
|
+
|
|
9726
|
+
- **O-G1**(本版证明):`done` 帧 `result.structuredOutput = {verdict:'ok'}`(**成功臂**,`status: 'completed'`)⇒ 终帧 **`Object.hasOwn(msg, 'structured_output') === true`**。喂到错误信封上两版都不铸,整组判据当场失去判别力。
|
|
9727
|
+
- **O-G2**(本版证明):同一帧 `msg.structured_output === msg.structuredOutput`,且**两者 === 喂进去的那个对象**(引用相等,不是深等)。
|
|
9728
|
+
- **O-G3**(回归约束):`done.result` 不带该位 ⇒ 两个键都不在(`hasOwn` 与 `in` 两向);带该键但值 `undefined` ⇒ 同答。
|
|
9729
|
+
- **O-G4**(本版证明):值取 `null` / `0` / `""` / `false` 四形,以及 `[]` / `[{…}]` / 非空串 / 数字 / `true` 五形 ⇒ **两键**在场且 `===` 该值。
|
|
9730
|
+
- **O-G5**(回归约束):`done.result.terminal.kind = 'failed'` 且带该位 ⇒ 终帧 `is_error === true` 且**两个键都不在**。
|
|
9731
|
+
- **O-G6**(本版证明,给自建管线的端):`TaskResult` 上把该位定义成每次返新对象的取值器 ⇒ 两键仍 `===` 相等(本包对 wire 位恰读一次)。
|
|
9732
|
+
- **A-G1**(本版证明):用装着的引擎包构造一只**没有**受护写入能力的写门策略,让它对一次受护写发问,拿它**自己拼出来的那句话**当 `tool_approval` 帧的文案(帧带 `argsOmitted`、流上不给 `tool_start.args`)。断言:卡入参 `args.file_path` **逐字等于**喂给策略的那个路径。🔴 红基线:同一输入在 0.79.0 上 ⇒ `args` 是**空对象**。
|
|
9733
|
+
- **A-G2**(回归约束 + 本版证明各半):同一条策略换成**有**受护写入能力(那句话后面什么都不追加)⇒ 照解(两版皆 PASS);再让它同时带上写入域说明句(两截尾巴)⇒ 照解(0.79.0 FAIL)。三形同一个路径值。
|
|
9734
|
+
- **A-G3**(回归约束):让路径本身带上收口形(引擎原样插值,真造得出)⇒ `args` 空对象、`file_path` 缺席。
|
|
9735
|
+
- **A-G4**(回归约束):同一条策略的另两句 ask(没有可约束的路径目标 / 真实目标解不出)⇒ 两句都不读,`args` 空对象 —— 第二句带着路径也不读。
|
|
9736
|
+
- **A-G5**(回归约束):把那句问话**嵌进**一段别的话里(前面加一句引子)⇒ 不读。
|
|
9737
|
+
- **R-G1**(本版证明):`import * as reg from '@sema-agent/client-core/registry'` 与 `import * as up from '@sema-agent/sdk/registry'`,十名逐个 `reg[n] === up[n]` 为真(不是「结构相同」,是同一个对象);`new reg.RegistryApiError(404,'x') instanceof up.RegistryApiError` 为真。0.79.0 上子路径根本解析不到。
|
|
9738
|
+
- **R-G2**(回归约束):`import * as root from '@sema-agent/client-core'` 上这十二名 `Object.hasOwn(root, n)` 全 false(根入口零漏出)。
|
|
9739
|
+
- **R-G3**(本版证明):`package.json` exports 恰 `.` + `./registry` 两个入口,`./registry` 的 `types` / `default` 两指向都落在盘上真文件;`npm pack` 清单含 `dist/sdkRegistryTransit.js` 与 `.d.ts`。0.79.0 上 exports 只有 `.`。
|
|
9740
|
+
- **R-G4**(上游树:回归约束;本包入口:本版专属):`@sema-agent/sdk/registry` 递归全树零 `node:` 说明符 ∧ 零 Node 全局(两版皆 PASS,验的是装着的上游);`--platform=browser` 打**本包**子路径入口零 error、产物零 `require(` / 零 `node:`(0.79.0 上该入口不存在,只在 0.79.1 上验)。
|
|
9741
|
+
- **R-G5**(本版专属,新入口检查):子路径入口产物零相对 import、零本包自引用、外向边恰 `{@sema-agent/sdk/registry}`(两个入口的图不相交)。0.79.0 上没有这份产物,不在旧版上跑。
|
|
9742
|
+
- **R-G6**(三格分开读):在一棵**不继承祖先 `node_modules`** 的隔离树上 `skipLibCheck: false` —— ① 只 import 根入口 ⇒ **0 条** TS2307(**两版皆 PASS**,回归约束);② 0.79.0 上 import `@sema-agent/client-core/registry` ⇒ **解析不到该子路径**(旧版没有这个入口;这是预期,不是「两条 registry-core 错误」);③ 0.79.1 上 import 该子路径 ⇒ **恰 2 条** TS2307,逐条指着 `@sema-agent/registry-core`(登记值;上游补齐那天变 0 并同批销账)。
|
|
9743
|
+
|
|
9744
|
+
### 86y. 🔴 三端升级必读(固定段式,[C295])+ 成文改口
|
|
9745
|
+
|
|
9746
|
+
1. **换钉 `^0.79.1` 之后**:sdk 钉不用动(peer 地板 `>=11.2.1` 不变)。逐面:
|
|
9747
|
+
- **结构化产出**:把 `result.structuredOutput` 的读法改成 `result.structured_output`(CC 形)。两个键在本版同值同引用,改读法是**零风险**的一步,可以先改再验。🔴 **0.80.0 会删 `structuredOutput`**,本版是唯一的过渡窗:端侧若有按旧键名的类型声明 / 快照夹具 / JSON 断言,请同批改;0.80.0 之后按旧键读到的是 `undefined`,而 `undefined` 在这条语义上表示「引擎没产出」—— 不改就会把「有产出」静默读成「没产出」。⚠️ 构建期去注释让 `@deprecated` 进不了声明文件,退役通告只在 CHANGELOG 与本段。
|
|
9748
|
+
- **写审批卡**:**零换装**。要做的只有一件事:搜端侧有没有自己从审批卡的问话文本里兜路径的代码(在包侧回落恒缺席的那段日子里,壳很可能自己兜过);有就撤掉、改读卡上的 `args.file_path`;🔴 撤之前确认端侧那一份对「解不出」的处置也是**缺席**而不是猜一个。
|
|
9749
|
+
- **云控制面**:十个值 + 两个型改从 `@sema-agent/client-core/registry` 取;`instanceof` / 错误分支 / 调用签名**逐字节零改**(是同一份实现)。🔴 **子路径 `types` 要 `moduleResolution: bundler` 或 `node16` / `nodenext`**(`node10` 解析不到 `exports` 子路径的 `types` 条件)。🔴 **不用云控制面的端零动作**:根入口导出一个不多,也不会多出那两条 TS2307。🔴 **新码不许走本转口口**:它只给存量搬落点用。🔴 **本批不覆盖登录那条腿**:设备码申请 / 轮询 / 令牌轮换 / scope 列举 / scope 切换五名**没转**,那条腿本批**仍需**直连,豁免不许在本批销掉。🔴 **`skipLibCheck: false` 且 import 子路径的端注意**:会多出**恰两条** `Cannot find module '@sema-agent/registry-core'`;三档取舍:① 留在 `skipLibCheck: true`(三端现状);② 自己装一份那个声明包;③ 等上游把那两处 `import type` 的型改成自带(根治,本包零改动跟批)。
|
|
9750
|
+
2. **零改的面**:§79–§85 全部原样适用;wire 面、投影臂、审批帧既有每一个键的过境字节与缺席语义、请求装配、转录切行一个字节未动;写审批卡除 S-4 那一处外的每一个键不变;根公面导出、peer 地板、`tool_approval` 帧键镜像、卡入参键集都不变。
|
|
9751
|
+
3. **成文改口(旧判据眼作废 → 新判据眼)**:① 「本包终帧 DROP CC `structured_output`」(投影器头注与旧段)**作废** → 它现在是铸出来的位;② §34 处置表第 6 行「本包不碰 `structuredOutput` 的字节,`src/` 全树 0 命中」在**字节**那一半仍成立(原样过境、同一引用),在**命中数**那一半自 TaskResult 五键批起已过期;③ 旧判据「终帧上有 `structuredOutput`」不再能区分修前修后 → 新判据眼只认 `structured_output`,并对错误臂断言两键都无;④ §79 ① 「`structured_output` pending 另票」**销**;⑤ 「引擎那句写审批问话后面跟了别的字节 ⇒ 本包一律不解析」**作废** → 尾巴原样忽略,问句本体在句首且收口唯一就解;按旧口径断言「带后缀的文案必然解不出路径」的验收格会把正确行为判成红;⑥ 「卡上没有路径 = 引擎没给」**作废** → 0.79.0 及更早版本上那多半是本包的判据没能说话,0.79.1 起缺席才真的是「这次没解出可信的路径」;⑦ §0a「单一入口,`exports` 只有 `.` 一个」**作废** → 两个入口(根 + `./registry`),内部路径仍不是公面。
|
|
9752
|
+
|
|
9753
|
+
**包侧缺口:** ① 同形族第二处(CC-131):`type:'user'` 转录记录上本包铸 `toolUseResult`,而 CC `SDKUserMessage` 声明 `tool_use_result`(CC 自己的转录记录面用 camelCase、SDK 消息面用 snake_case)—— 先钉「本包交的 user 记录对标哪一面」再决定改名 / 双键 / 不动 · ② 引擎那条写门策略的**第二句** ask(真实目标解不出)其实带着路径,本包**不读**(那一句说的是「这个路径解析不了」,当成卡上的路径展示会让用户以为门确认过这个目标);升级判据 = 有端报出「那一形的卡也需要路径」的现场 · ③ 退化卡上方那句降级说明在**解不出**时照样声称「从问话重建了」,以及编辑闸没覆盖退化腿、耐久 park 腿入参不披露 —— 三条挂 CC-135 · ④ 上游 registry 子路径的声明面传递引用一个它只列在 devDependencies 里的声明包 ⇒ import 子路径且 `skipLibCheck: false` 的下游多两条 TS2307(门里按登记值钉住;上游补齐那天销账)· ⑤ 云控制面退役条件本批到 **六 / 七**:登录 / 令牌刷新 / scope 切换那条腿仍需直连(五名转不干净,与 ④ 同一条缺口)· ⑥ `./device` 子路径 Node-only,本包不转 · ⑦ 本包不转 `InMemoryTokenProvider`(上游给测试用的存储实现)· ⑧ 转口口是**原样**的:上游的重试节奏 / 401 单飞 refresh / 错误分类一个字节不加工,本包不背书也不加判读 · ⑨ 子路径入口的公面名单**没有** `public-export-baseline.json` 那样的登记物(基线只收根入口的运行期导出),它的等值登记在 `scripts/run-sdk-registry-transit-test.mjs` 的 A / C 段(门名单 ⇄ 源码双向);要不要给子路径也开一本基线,下一版定 · ⑩ §85 缺口原样。
|
|
9754
|
+
|
|
9602
9755
|
## §85 🆕 0.79.0 server 7.93.0 过境批:写口回执第六臂 + 无 run 可读的 MCP 状态面 + 审批卡「清不掉」那一位 + 请求装配第三车道与四个 wire 键;minor(型面 / 行为面 BREAKING + 地板)
|
|
9603
9756
|
|
|
9604
9757
|
> **minor**:peer `@sema-agent/sdk` 地板 `>=11.0.1` → **`>=11.2.1`**(四处同批);公面运行期导出 1154 → **1184**(策展清单口径,不含测试钩;运行期 `Object.keys` 全量 = 该数 + 57 个测试钩);请求装配新键三枚进车道表(`approverPosture` / `maxTokens` / `outputRetries`)+ 第三条车道 `utility`;审批帧新键 `mandated`;型面 BREAKING —— `writePersistedRule` 结局联合 +1 臂 `unverified`、`RulesFailure` +2 kind、拒因表 +1 词、`RequestLane` +1 词、`RequestFieldSpec.whyUtilityLane` 必填;行为面 BREAKING —— 无人值守车道从此带 `model`;deny 收口帧按归因分两串(策略拒不再冠成「用户不想继续」);模型轮结束划 assistant 消息界(轮末段粘连 + 假阳性披露修复)。🔴 **不可发组合**:server 7.93.0 + client-core < 0.79.0(`stillLive: "unknown"` 第六臂 / `mcpProbe` 读口)。按表态制点名三端(48h 三选一)。
|