@sema-agent/client-core 0.82.7 → 0.83.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 +55 -0
- package/README.md +11 -6
- package/dist/adapt/arms.d.ts +3 -2
- package/dist/adapt/arms.js +16 -11
- package/dist/adapt/ids.js +12 -8
- package/dist/adapt/textStream.d.ts +3 -2
- package/dist/adapt/toolCards.d.ts +2 -3
- package/dist/adapt/toolCards.js +1 -1
- package/dist/adapt.d.ts +1 -1
- package/dist/adapt.js +13 -6
- package/dist/adapter/activeRunSelfHeal.js +34 -17
- package/dist/adapter/downstream/eventToSdkMessage.js +1 -1
- package/dist/adapter/downstream/terminalToSdkResult.d.ts +2 -4
- package/dist/adapter/downstream/terminalToSdkResult.js +43 -5
- package/dist/adapter/runStream.js +6 -6
- package/dist/clientSlice.d.ts +0 -5
- package/dist/engineNoticeCodes.js +4 -0
- package/dist/fleet/fleetRowAgentType.d.ts +0 -1
- package/dist/fleet/fleetRowAgentType.js +0 -3
- package/dist/hitl/approvalResolution.js +2 -0
- package/dist/hitl/frameRouter.d.ts +3 -2
- package/dist/hitl/toolApprovalWire.d.ts +1 -0
- package/dist/hitl/toolApprovalWire.js +56 -10
- package/dist/hooksWireCaps.js +27 -1
- package/dist/host.d.ts +1 -0
- package/dist/liveInitToolFace.d.ts +4 -2
- package/dist/liveInitToolFace.js +2 -2
- package/dist/model/catalogLoader.d.ts +1 -6
- package/dist/panelRunningHistory.d.ts +3 -2
- package/dist/peerFrames.d.ts +0 -1
- package/dist/printInitToolFace.js +1 -1
- package/dist/request/printNotification.js +26 -26
- package/dist/seam.d.ts +8 -2
- package/dist/seam.js +18 -7
- package/dist/systemReminderTag.d.ts +0 -1
- package/dist/systemReminderTag.js +0 -3
- package/dist/toolResult.js +1 -0
- package/dist/uuidV5.d.ts +3 -0
- package/dist/uuidV5.js +178 -0
- package/dist/webSearchWireCaps.d.ts +0 -3
- package/dist/webSearchWireCaps.js +21 -51
- package/dist/wireFailureShape.d.ts +2 -1
- package/docs/INTEGRATION-CLIENTS.md +421 -11
- package/package.json +2 -2
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
|
|
20
20
|
| 项 | 值 | 真源 |
|
|
21
21
|
|---|---|---|
|
|
22
|
-
| 本包 | `@sema-agent/client-core` **0.82.7**(本批发布版 = **patch**:只增不改 —— 每请求联网搜索配置的三态判决 `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict`(与 7.100.0 及以后 server 的受理判官同序同判,认不出的 provider 判形错、不再静默丢段;settings 段凭据注入回调 `apiKeyFor`)+ 措辞单源 `webSearchVerdictMessage`(不回显任何用户配的值)+ 调试日志用 `webSearchEndpointForDisplay`;旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 行为不变、标过渡期,0.83.0 删(CC-182);peer sdk 地板 `>=11.3.0` 不动;根公面 1240;§99)。上一版 0.82.6 = **patch**:只增不改 —— 停泊行上选「本会话允许」却没被记住时与活卡腿同句告知(回体 `rememberApplied: false`,或 server 以会话级放行专属拒绝码拒了 remember 后回退普通批准;其余失败一律未知不告知),回执 `DecideReceiptView` +1 可选位 `rememberApplied`(CC-181);决断落定后与桥重试臂的诊断留痕不再因宿主日志口抛错回流进决断;接入文档改口:server ≥7.100.0 上 park 行卡的 `requiresRealApproval` / `approvalIsMandated` 生效(CC-180,零代码改动);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§98)。上一版 0.82.5 = **patch**:只增不改 —— print 车道 init 帧工具面名册优先:流包装器 `withPrintInitFrame`(首选接法,init 恒为首行、其后按到达序)/ 判定闸 `createPrintInitGate` / 分类口 `printInitRosterSignal` / 判定口 `decidePrintInitToolFace` / 留痕措辞 `printInitToolFaceDebugLine` + 等待上界 `PRINT_INIT_ROSTER_WAIT_MS`(150 000);回落估计表补 `ListAgents`(7.30.0 及以后的引擎上与 `SendMessage` 同条件)(CC-169);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§97)。上一版 0.82.4 = **patch**:只增不改 —— park 行审批卡新增门类位 `irreversibleParkGate`(待决行门类恰为 irreversible_ask,今天即生效,门类事实不是保证);`requiresRealApproval` 在待决行顶层带时透传(就绪,待决列表带出后才生效,今天零行为变化)(CC-180);`ApprovalCardRequest` +1 可选位;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§96)。上一版 0.82.3 = **patch**:只增不改的公面 —— 自愈提示的「保住对话」出路槽 `keepSessionWayOut` 与交互面引擎决断入口开关 `engineDecidePath`(CC-177;两位都不给时措辞与 0.82.2 逐字节同);自愈结局两臂 +机读位 `pendingRowGone`(重开链证实待决项已不在);peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§95)。上一版 0.82.2 = **patch**:只增不改的公面 + 若干行为订正 —— 新增措辞单源 `cloudEffectiveNotices`:云控制面有效配置回体的降级告警 / 预算 / 能力上限三读数(CC-164,四态,不读成 0 或「没有预算」);本机引擎 models 文档在宿主注入本机条目判定 `entryAccepted` 时补 `default` / `tierGroups` / `activeTierGroup`,剔掉会让本机整份拒收的目录引用与判定口不收的条目,去掉 registry 注记键 `origin` / `overridesTeam`(CC-165;结果新增 `modelRefIssues`);计划复核结局机读位 `_sema_planReviewOutcome`(CC-160 ①);停泊审批决断操作起止回调 `onDecideOperation` 与操作句柄 `openDecideOperation`(CC-160 ③);新增超集键 `_sema_planReviewOutcome`;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§94)。上一版 0.82.1 = **patch**:只增不改的公面 + 若干行为订正 —— 新增读口 15 个(续跑折叠码读口与措辞 / 文件历史捕获读口六口 / 模型身份可解析判据五口 / 自定义代理载荷作废重投口 / 决断失败码「门还在」判定)+ 宿主车道声明 `EmitContext.lane`;新增超集键 `_sema_response_model`(终帧 / 每轮用量)与 chrome 用量两臂 `responseModel`、重开判决 `_sema_decisionInFlight`、自愈结局两臂 `decisionInFlight`、内部臂 `_sema_denial_unclassified`、通知码 +1;行为订正:计划复核决断在飞不重开卡且自愈提示不再教人再决一次(CC-160 ②)、决断出口补折叠句且停泊腿不再把折叠 / 坏档误判已决(CC-154)、执行车道 `in-process` 措辞(CC-153)、`-p` 车道 Bash 良性退出与交互同判(CC-168)、`-p` 工具结果帧补结构化结果(CC-149)、被拒分类词两车道同判(CC-172)、非交互车道子代工具帧(CC-158,宿主声明车道才生效)、终帧被拒清单对账流内拒绝(CC-159)、自定义代理载荷作废重投(CC-161);peer sdk 地板 `>=11.3.0` 不动;根公面 1228;§93)。上一版 0.82.0 = **minor**:只增不改 —— 新增只读读口 17 个 + 1 常量、工具名册行一格 `mountedBy`、turn 错误判决 `http` 臂一格 `storedRowWhere`:`/rewind` 代码档与对话档能不能用由引擎能力位回答(CC-146)、云控制面额度读数三分(CC-150)、装配期「这一条腿有没有手」(CC-152)、续跑拒收按原码判(CC-154);两处既有面行为订正:自动模式分类器拒的类别词由 `permission-rule` 改为 `automode-*` 三词(CC-155,订正 0.81.1)、续跑上下文读不出时引擎点名的那一行不再丢(CC-156);0.81.0 预告的 23 键 + 1 子型删改**改到 0.83.0**(§92y ㉙);零 wire 键、零投影臂;peer sdk 地板 `>=11.3.0` 不动;§92。上一版 0.81.1 = **patch**:被拒分类词读器加第③路(CC-148):引擎「没问过就拒」的工具调用(deny 规则 / 权限模式 / hook / 分类器 / 写保护 —— 无 `settlement` 只有 `gate.disposition.deniedBy`)在 user 工具结果记录与终帧 `permission_denials[]` 上此前恒缺 `_sema_denial_kind` / `toolDenialKind`,现按层名落 `permission-rule`(其中「分类器」一项已由 0.82.0 CC-155 订正)(`ask_resolution` 无结算 / 结算段不成形 / 层名表外仍缺席不猜);交互与 `--print` 两条车道同一只读器;另钉终帧两臂 `_sema_effective_*` 键集不变量 —— 成功臂展开单铸函数、错误信封显式重发,覆盖性钉在返回对象自己的类型上(漏键 / 多键编译期即红)+ 门格判两臂键集相等且值逐字节同,给单铸函数加键时错误臂不会再静默少键(本版无键增减);零 wire 键、零投影臂、根公面 1195;§91。上一版 0.81.0 = **minor**:CC 形消息一张脸(C-R85 / CC-131):user 工具结果记录加 SDK 面键 `tool_use_result`(与过渡键 `toolUseResult` 同引用,删驼峰原定 0.82.0、已改到 0.83.0)+ DS-19 普查门升硬门(键集按语法解析、按 type/subtype 分表;23 键 + 1 子型过渡表到期窗原为 0.82.0、已改到 0.83.0,零常驻豁免)+ CC-145 `/rewind` both 臂改发 `restoreFiles:true`、`projectRewind(pending)` 单参;零 wire 键、零投影臂、根公面 1195;§90。上一版 0.80.2 = **patch**:`conflict.resume_context_unavailable` 的 `staleAfterSec` / `runId` 在真 SDK 上读不到(CC-137:sdk 11.1.0 起 `APIError` 把体上非具名键收进 `extra`,这一码映射成 `ConflictError` 无具名位,读口只读顶层 ⇒ 真调用链恒缺席)⇒ 体源结构位改「顶层有效值优先、`extra` 兜底」三只类型化读口单铸,有具名子类位的三处(`retryAfterSec` × 2 / `allowlist`)行为不变只多兜底,头源 `retryAfterMs` 只读具名位;零 wire 键、零投影臂、根公面 1195;§89。上一版 0.80.1 = **patch**:去键重发判据句按「铸」计(CC-143;§87「带键的体恰一次」作废 → 被铸恰一次,POST 几次随传输层)+ 接入文档段落自带射程限定词自 §88 起向前执法 + 模型预设表 deepseek 项改闭集真名 deepseek-flash(CC-144,C-R82 ①)+ 门里 git 兜底自陈探针(CC-142);零 wire 键、零投影臂、根公面 1195;§88。上一版 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
|
-
| peer:wire 契约 | `@sema-agent/sdk` **>=11.
|
|
22
|
+
| 本包 | `@sema-agent/client-core` **0.83.0**(本批发布版 = **minor**:行为面与型面都有 BREAKING —— CC 形消息 24 项按裁定 C-R103 退役名:结果帧 `degraded` / `errorCode` / `model` 与错误信封 `result` → `_sema_model_degraded` / `_sema_error_code` / `_sema_selected_model` / `_sema_salvaged_result`,合成终局行 `isApiErrorMessage` → `_sema_api_error_message`,工具结果记录删过渡名 `toolUseResult`,system 行 `attachedFiles` → `_sema_attached_files`、到达时戳 `timestamp` 与 `isMeta` 删,print 完成通知帧十三键平铺 `_sema_*`,记忆写入改走 chrome 臂 `memory_saved`(新型 `MemorySavedChromeEvent`,`CHROME_ARMS` required);本包只铸新名、端两名并读一版 + 结果帧 CC 键 `terminal_reason` 与读口 `terminalReasonForResult`(CC-175),错误信封知道就铸 `_sema_selected_model` + 转录 id 改 UUID 形(CC-147)+ `SettingsPort` 可选合并读口 `mergedDisableAllHooks`、用户层 `disableAllHooks` 在引擎腿上生效(CC-162)+ 退化审批卡三形拒收改写、`FsApprovalOutcome` 的 `failed` 臂 +可选位 `editRefused`(CC-135)+ 注入件自愈句整族重写 + 联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 退出公面,`resolveLiveInitToolFace` 可选 `opts.webSearchStamped`(`LiveInitToolFaceOptions`),endpoint userinfo 律跟服务端 7.101.0(CC-184)+ 公面类型 −4(CC-171)+ 通告码册 69 → 71 与结构化卡白名单 +`read-inbox`(CC-186,开发依赖引擎 `~7.31.0`)+ 合成终局行 `uuid` 改 UUID 形;peer sdk 地板 `>=11.3.0` 不动;根公面 1238;§100)。上一版 0.82.7 = **patch**:只增不改 —— 每请求联网搜索配置的三态判决 `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict`(与 7.100.0 及以后 server 的受理判官同序同判,认不出的 provider 判形错、不再静默丢段;settings 段凭据注入回调 `apiKeyFor`)+ 措辞单源 `webSearchVerdictMessage`(不回显任何用户配的值)+ 调试日志用 `webSearchEndpointForDisplay`;旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 行为不变、标过渡期,0.83.0 删(CC-182);peer sdk 地板 `>=11.3.0` 不动;根公面 1240;§99)。上一版 0.82.6 = **patch**:只增不改 —— 停泊行上选「本会话允许」却没被记住时与活卡腿同句告知(回体 `rememberApplied: false`,或 server 以会话级放行专属拒绝码拒了 remember 后回退普通批准;其余失败一律未知不告知),回执 `DecideReceiptView` +1 可选位 `rememberApplied`(CC-181);决断落定后与桥重试臂的诊断留痕不再因宿主日志口抛错回流进决断;接入文档改口:server ≥7.100.0 上 park 行卡的 `requiresRealApproval` / `approvalIsMandated` 生效(CC-180,零代码改动);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§98)。上一版 0.82.5 = **patch**:只增不改 —— print 车道 init 帧工具面名册优先:流包装器 `withPrintInitFrame`(首选接法,init 恒为首行、其后按到达序)/ 判定闸 `createPrintInitGate` / 分类口 `printInitRosterSignal` / 判定口 `decidePrintInitToolFace` / 留痕措辞 `printInitToolFaceDebugLine` + 等待上界 `PRINT_INIT_ROSTER_WAIT_MS`(150 000);回落估计表补 `ListAgents`(7.30.0 及以后的引擎上与 `SendMessage` 同条件)(CC-169);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§97)。上一版 0.82.4 = **patch**:只增不改 —— park 行审批卡新增门类位 `irreversibleParkGate`(待决行门类恰为 irreversible_ask,今天即生效,门类事实不是保证);`requiresRealApproval` 在待决行顶层带时透传(就绪,待决列表带出后才生效,今天零行为变化)(CC-180);`ApprovalCardRequest` +1 可选位;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§96)。上一版 0.82.3 = **patch**:只增不改的公面 —— 自愈提示的「保住对话」出路槽 `keepSessionWayOut` 与交互面引擎决断入口开关 `engineDecidePath`(CC-177;两位都不给时措辞与 0.82.2 逐字节同);自愈结局两臂 +机读位 `pendingRowGone`(重开链证实待决项已不在);peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§95)。上一版 0.82.2 = **patch**:只增不改的公面 + 若干行为订正 —— 新增措辞单源 `cloudEffectiveNotices`:云控制面有效配置回体的降级告警 / 预算 / 能力上限三读数(CC-164,四态,不读成 0 或「没有预算」);本机引擎 models 文档在宿主注入本机条目判定 `entryAccepted` 时补 `default` / `tierGroups` / `activeTierGroup`,剔掉会让本机整份拒收的目录引用与判定口不收的条目,去掉 registry 注记键 `origin` / `overridesTeam`(CC-165;结果新增 `modelRefIssues`);计划复核结局机读位 `_sema_planReviewOutcome`(CC-160 ①);停泊审批决断操作起止回调 `onDecideOperation` 与操作句柄 `openDecideOperation`(CC-160 ③);新增超集键 `_sema_planReviewOutcome`;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§94)。上一版 0.82.1 = **patch**:只增不改的公面 + 若干行为订正 —— 新增读口 15 个(续跑折叠码读口与措辞 / 文件历史捕获读口六口 / 模型身份可解析判据五口 / 自定义代理载荷作废重投口 / 决断失败码「门还在」判定)+ 宿主车道声明 `EmitContext.lane`;新增超集键 `_sema_response_model`(终帧 / 每轮用量)与 chrome 用量两臂 `responseModel`、重开判决 `_sema_decisionInFlight`、自愈结局两臂 `decisionInFlight`、内部臂 `_sema_denial_unclassified`、通知码 +1;行为订正:计划复核决断在飞不重开卡且自愈提示不再教人再决一次(CC-160 ②)、决断出口补折叠句且停泊腿不再把折叠 / 坏档误判已决(CC-154)、执行车道 `in-process` 措辞(CC-153)、`-p` 车道 Bash 良性退出与交互同判(CC-168)、`-p` 工具结果帧补结构化结果(CC-149)、被拒分类词两车道同判(CC-172)、非交互车道子代工具帧(CC-158,宿主声明车道才生效)、终帧被拒清单对账流内拒绝(CC-159)、自定义代理载荷作废重投(CC-161);peer sdk 地板 `>=11.3.0` 不动;根公面 1228;§93)。上一版 0.82.0 = **minor**:只增不改 —— 新增只读读口 17 个 + 1 常量、工具名册行一格 `mountedBy`、turn 错误判决 `http` 臂一格 `storedRowWhere`:`/rewind` 代码档与对话档能不能用由引擎能力位回答(CC-146)、云控制面额度读数三分(CC-150)、装配期「这一条腿有没有手」(CC-152)、续跑拒收按原码判(CC-154);两处既有面行为订正:自动模式分类器拒的类别词由 `permission-rule` 改为 `automode-*` 三词(CC-155,订正 0.81.1)、续跑上下文读不出时引擎点名的那一行不再丢(CC-156);0.81.0 预告的 23 键 + 1 子型删改**改到 0.83.0**(§92y ㉙);零 wire 键、零投影臂;peer sdk 地板 `>=11.3.0` 不动;§92。上一版 0.81.1 = **patch**:被拒分类词读器加第③路(CC-148):引擎「没问过就拒」的工具调用(deny 规则 / 权限模式 / hook / 分类器 / 写保护 —— 无 `settlement` 只有 `gate.disposition.deniedBy`)在 user 工具结果记录与终帧 `permission_denials[]` 上此前恒缺 `_sema_denial_kind` / `toolDenialKind`,现按层名落 `permission-rule`(其中「分类器」一项已由 0.82.0 CC-155 订正)(`ask_resolution` 无结算 / 结算段不成形 / 层名表外仍缺席不猜);交互与 `--print` 两条车道同一只读器;另钉终帧两臂 `_sema_effective_*` 键集不变量 —— 成功臂展开单铸函数、错误信封显式重发,覆盖性钉在返回对象自己的类型上(漏键 / 多键编译期即红)+ 门格判两臂键集相等且值逐字节同,给单铸函数加键时错误臂不会再静默少键(本版无键增减);零 wire 键、零投影臂、根公面 1195;§91。上一版 0.81.0 = **minor**:CC 形消息一张脸(C-R85 / CC-131):user 工具结果记录加 SDK 面键 `tool_use_result`(与过渡键 `toolUseResult` 同引用,删驼峰原定 0.82.0、已改到 0.83.0)+ DS-19 普查门升硬门(键集按语法解析、按 type/subtype 分表;23 键 + 1 子型过渡表到期窗原为 0.82.0、已改到 0.83.0,零常驻豁免)+ CC-145 `/rewind` both 臂改发 `restoreFiles:true`、`projectRewind(pending)` 单参;零 wire 键、零投影臂、根公面 1195;§90。上一版 0.80.2 = **patch**:`conflict.resume_context_unavailable` 的 `staleAfterSec` / `runId` 在真 SDK 上读不到(CC-137:sdk 11.1.0 起 `APIError` 把体上非具名键收进 `extra`,这一码映射成 `ConflictError` 无具名位,读口只读顶层 ⇒ 真调用链恒缺席)⇒ 体源结构位改「顶层有效值优先、`extra` 兜底」三只类型化读口单铸,有具名子类位的三处(`retryAfterSec` × 2 / `allowlist`)行为不变只多兜底,头源 `retryAfterMs` 只读具名位;零 wire 键、零投影臂、根公面 1195;§89。上一版 0.80.1 = **patch**:去键重发判据句按「铸」计(CC-143;§87「带键的体恰一次」作废 → 被铸恰一次,POST 几次随传输层)+ 接入文档段落自带射程限定词自 §88 起向前执法 + 模型预设表 deepseek 项改闭集真名 deepseek-flash(CC-144,C-R82 ①)+ 门里 git 兜底自陈探针(CC-142);零 wire 键、零投影臂、根公面 1195;§88。上一版 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
|
+
| peer:wire 契约 | `@sema-agent/sdk` **>=11.3.0**(value-level,非 type-only;**0.80.0 抬版**:11.3.0 在两条回决口体上声明 `settledBy?: "policy"`、`Settlement.kind` 第十三词 `policy_refused` 与三错误码;0.83.0 不动。此前 **0.79.0 曾抬到 >=11.2.1**: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
|
-
| 公开导出面 | **1240** 个运行期符号(+ **59 个测试钩,两种拼法**:35 个 `__*ForTests` + 24 个 `_*ForTest` —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1240 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1240 + 59 = **1299**;只剔双下划线那 34 个会多数出 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
|
+
| 公开导出面 | **1238** 个运行期符号(+ **59 个测试钩,两种拼法**:35 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1238 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1238 + 59 = **1297**;只剔双下划线那 35 个会多数出 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,7 +125,7 @@ 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`(**1238** 项;该基线只覆盖**根**入口,子路径入口 `./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);
|
|
@@ -149,16 +149,16 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
149
149
|
`WorkflowsGateUnknownDenial` 四形**不在**基线里,`src/selfOrchestrationDenial.ts` 对基线贡献
|
|
150
150
|
**4** 项运行期导出(三个函数 + `SELF_ORCHESTRATION_RETRY_WITHOUT`)。
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
1238 项的内部构成(帮助端估读表大小;0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);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):**341** 项是 `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 域,逐域计数之和 = 1238)
|
|
158
158
|
|
|
159
159
|
| # | 域 | 名数 | 承重导出 | 用途 | 实现锚 |
|
|
160
160
|
|---|---|---|---|---|---|
|
|
161
|
-
| 1 | **适配内核(下行主链)** |
|
|
161
|
+
| 1 | **适配内核(下行主链)** | 67 | `terminalReasonForResult`(0.83.0 CC-175:结果帧 CC 键 `terminal_reason` 的读口,与铸点同一只判据,给端自拼的结果帧与旧转录;§100)· `handsMountedFromManifest` / `handsMountedDetail`(0.82.0 CC-152:装配期「这一 run 有没有手」三态判据 + 措辞单源,读 `wiring_manifest` 名册的 `mountedBy`;§92)· `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
163
|
| 3 | **HITL 决断卡链**(§4/§5 主战场) | 212 | `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` |
|
|
@@ -166,14 +166,14 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
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 门族** | 167 | `invalidateTaskAgentsWire`(0.82.1 CC-161:自定义代理载荷作废并重投,就绪门等最新一代,§93 S-14)· `projectFileHistoryCaptureCapability` / `noteEngineCapsForFileHistoryCapture` / `observedFileHistoryCapture` / `forgetFileHistoryCaptureReading` / `fileHistoryCaptureMode` / `fileHistoryCaptureDoctorDetail`(0.82.1 CC-163:`capabilities.fileHistoryCapture` 四态读口 + 判据 + 措辞单源;§93)· `observedRewindArchive` / `rewindCodeArchiveAvailability` / `rewindConversationAvailability` / `rewindArchiveDoctorDetail` / `rewindConversationDoctorDetail`(0.82.0 CC-146:`/rewind` 代码档与对话档可用性四位窄读口 + 端判据三态 + 措辞单源,替掉壳侧「本地备份表非空」那条判据;§92)· `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` · `buildWebSearchEnv`(`resolveWebSearch` 🔧 0.83.0 退出公面,换读域 15 的 `resolveWebSearchVerdict`) · `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 | **模型目录与预算** | 72 | `modelIdentityResolvability` / `modelIdentityDetail` / `modelSetupDecision` / `modelSetupNotice` / `observedEngineAnswer`(0.82.1 CC-151:「引擎启动时拿不拿得到模型名」三态判据 + 向导两位决策 + 措辞单源,§93 S-11)· `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 | **控制面与传输** | 195 | `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` / `webSearchVerdictMessage` / `webSearchEndpointForDisplay`(0.82.7 CC-182:每请求联网搜索配置三态判决,与 server ≥7.100.0 判官同判;§99)· `withPrintInitFrame` / `createPrintInitGate` / `printInitRosterSignal` / `decidePrintInitToolFace` / `printInitToolFaceDebugLine` / `PRINT_INIT_ROSTER_WAIT_MS`(0.82.5 CC-169:print 车道 init 帧工具面名册优先 —— 流包装器、判定闸、名册信号三态分类、判定口、留痕措辞单源、等待上界;§97)· `projectRegistryQuotaUsage` / `quotaAmountText` / `registryQuotaDoctorDetail`(0.82.0 CC-150:云控制面 quota/usage 回体的纯投影 —— 两种 null 的正面事实与「判不出」三分,措辞零 0;§92)· `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 | **引擎词汇表与包自检** | 111 | `resumePolicyBlockFromError` / `resumePolicyBlockContent`(0.82.1 CC-154:续跑折叠码 `resume_blocked_by_policy` 自己的读数与措辞,原码三态;§93)· `corruptStoredRowWhere` / `corruptStoredRowContent`(0.82.0 CC-156:续跑上下文坏档时引擎点名的那一行的读口与措辞单源;§92)· `effectiveWireErrorCode` / `RESUME_POLICY_FOLD_CODE`(0.82.0 CC-154:政策折叠码与「按原码判」的取码单源;§92)· `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`
|
|
176
|
+
| 16 | **引擎词汇表与包自检** | 111 | `resumePolicyBlockFromError` / `resumePolicyBlockContent`(0.82.1 CC-154:续跑折叠码 `resume_blocked_by_policy` 自己的读数与措辞,原码三态;§93)· `corruptStoredRowWhere` / `corruptStoredRowContent`(0.82.0 CC-156:续跑上下文坏档时引擎点名的那一行的读口与措辞单源;§92)· `effectiveWireErrorCode` / `RESUME_POLICY_FOLD_CODE`(0.82.0 CC-154:政策折叠码与「按原码判」的取码单源;§92)· `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` 71(0.83.0 CC-186:引擎 7.30.0 / 7.31.0 +2 `config.context_settings_swapped` / `config.secret_env_scrubbed`,均 operator;§100。历史:0.82.1 69、0.79.0 68、0.72.11 CC-49 67 —— 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`**,
|
|
@@ -1553,7 +1553,7 @@ CHANGELOG 0.29.0「已知局限」段与相应 JSDoc 都有成文。**别在读
|
|
|
1553
1553
|
|
|
1554
1554
|
| **P-42** | low @cli @web @desktop | 🆕 **Esc halt 只上收了判定,发射面仍在各端**(0.47.0 件③,刻意的分工不是半成品):`planInteractiveHalt` 给判据与升级码闭集,`POST /v1/runs/:id/interrupt` 的**发射**(以及 `?session=` 供给、超时窗、台账、留痕)仍归端。cli 侧那条「裸 fetch 直拨 interrupt」的网络面豁免,**退役条件就是端接上这个口子**(壳换装不在 0.47.0 批内) | `src/interactiveHalt.ts`;§10 | 按 §10b 的分支表接:判定用本包,发射用端自己的传输腿;🔴 halt 必须排在撕 SSE **之前**(§10c 第 1 条) |
|
|
1555
1555
|
|
|
1556
|
-
| **P-43** |
|
|
1556
|
+
| **P-43** | ✅ **已收(对实现了读口的宿主)**(0.83.0,CC-162) | 🔧 **`hooksForWire()` 第四条治理规则 0.83.0 已补**:非 managed 来源(user / project / local / flag)的 `disableAllHooks` 按**合并值**判 —— `SettingsPort.mergedDisableAllHooks?()` 为 `true` ⇒ 只发 managed 的 hooks(非 managed 设置关不掉组织下发的),会话目标的 Stop 钩子一并不发;宿主没实现这个可选读口 ⇒ 仍是旧行为(只认 managed 那一份),每个已装端口告警一次;读口抛错 ⇒ 按合并值为真处置(managed 的照发)。**合并顺序订正**:本行旧文「四源按 policy→user→project→local 后写覆盖前写」是错的 —— 真序 user → project → local → flag → policy,policy 最后写、优先级最高;policy → user → project → local 是本包发往引擎的 hooks 数组的**拼接**顺序,不是合并标量的顺序。不做逐源近似的理由不变(「任一来源为 true」在 user=`true` ∧ local=`false` 上判反)。余项:CC 云会话路径的逐来源语义本版不跟、宿主的安全模式本包没有读口(§100 包侧缺口 ⑤) | `src/hooksWireCaps.ts`(头注「第四条腿」段)· `src/host.ts` `SettingsPort.mergedDisableAllHooks`;§15b/§15d;§100a-5 | 装 `SettingsPort` 的宿主实现 `mergedDisableAllHooks()`,返回本机 hooks 执行器读的同一个合并值;**未实现**的宿主仍**不要**假定用户 settings 里的 `disableAllHooks` 会挡住引擎腿的 hooks |
|
|
1557
1557
|
|
|
1558
1558
|
| **P-44** | ✅ **已收**(0.58.0,sdk 8.2.0 提货)@cli @web @desktop | ✅ **上游已补齐,本条转已收** —— sdk **8.2.0**(S-134 五锚)把这一族型面缺口一次补完:①`respond` 体 `persistRule` 由单臂 `{rule}` 换成具名**两臂互斥**联合 `PersistRuleSelection`(`{rule, edited?}` ∣ `{batchOfferIndex}`,互斥用 `?: never` 钉在编译期 ⇒ server 那句 `PERSIST_RULE_BATCH_EXCLUSIVE_ERROR` 400 永远打不到线上);②`ToolApprovalFrame` / `ApprovalCard` / `PendingCheckpoint` 三腿同一个 `RuleOffer` 判别联合(含 `match` 四员闭词表、成员 `command`/`directoryRead` 两臂、additive `uncoveredDetail`);③`ToolApprovalRespondAck` 补 `persistedRule` / `persistedRules` / `persistedRuleAnchors` 三位。🔴 **本包侧本来就零 cast、也不需要 cast**(0.57.0 原文,逐字仍成立):本包**不铸 respond 的 wire 体** —— `RespondToolApprovalFn` 是**宿主注入**的函数型,包只把扁平兄弟位(`persistRule: string` / `persistRuleEdited?: true` / `persistRuleBatchOfferIndex?: number`)交给注入面。⇒ 吃这个缺口的一直是**三端的注入面**。本包 0.58.0 这一侧的动作是:归一形 `RuleOffer` 一族改由 sdk 派生、`ToolApprovalRespondAckView` 与 `PersistedRuleAnchor` 两个包内自铸形按各自写下的退役条款回收成 sdk 形的别名、`AHEAD_OF_ANCHOR` 里那条 `ruleOffers` 领先登记到期自红删除(详见 **§22a**)。🔴 **三端还要做的那一半(本条转已收之后的剩余动作)**:注入面那处宽 `cast`(或自铸的 respond 包装形)现在可以删掉,改直接用 sdk 8.2.0 的 `PersistRuleSelection` —— 两臂互斥由编译期钉,`{rule, batchOfferIndex}` 同场会**编译红**(这正是要的);`batchOfferIndex: 0` 逐字进 body(`0` 不被 falsy 吞)。同样别再在端侧自铸同名 `RuleOffer` 形:归一形与它的伴生类型自 0.57.0 起在本包公面上,三张闭词表自 0.58.0 起也在(§22b) | `src/hitl/toolApprovalWire.ts`(两处「候 sdk 补锚」头注已随本批锚到 8.2.0 / 回收)· `scripts/run-approval-frame-keys-test.mjs`(该条 `AHEAD_OF_ANCHOR` 登记已删)· `scripts/run-sdk-floor-test.mjs`(地板 8.2.0) | 端按上一栏「剩余动作」删自己的宽 cast;peer 地板随本包抬到 `>=8.2.0`,提货前先抬依赖 |
|
|
1559
1559
|
|
|
@@ -4637,7 +4637,7 @@ an argument」。audience 答另一问:这条事实**说给谁听**。
|
|
|
4637
4637
|
**签名**
|
|
4638
4638
|
|
|
4639
4639
|
```ts
|
|
4640
|
-
ENGINE_NOTICE_CODES: readonly string[] //
|
|
4640
|
+
ENGINE_NOTICE_CODES: readonly string[] // 71 码,顺序同源(core 7.31.0 +2:config.context_settings_swapped〔7.30.0〕/ config.secret_env_scrubbed;0.83.0。此前 core 7.29.0 +1 route.response_model_mismatch;0.82.1)
|
|
4641
4641
|
ENGINE_NOTICE_AUDIENCE: Readonly<Record<string, 'user' | 'operator'>>
|
|
4642
4642
|
noticeAudienceOf(code: unknown): 'user' | 'operator'
|
|
4643
4643
|
engineNoticeInCatalog(code: unknown): boolean
|
|
@@ -9599,6 +9599,416 @@ 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
|
+
## §100 🆕 0.83.0(2026-09-26)CC 形消息 24 项退役名 + 结果帧 `terminal_reason` + 转录 id 改 UUID 形 + 用户层 `disableAllHooks` 在引擎腿上生效 + 退化审批卡三形拒收改写 + 注入件自愈句整族重写 + 联网搜索旧三读口删除与 userinfo 律 + 公面类型收窄 + 通告码册 +2(🔴 minor:行为面 / 型面 BREAKING;根公面 1240 → 1238〔−3 旧读口 +1 `terminalReasonForResult`〕;公面类型 −4 +2〔`LiveInitToolFaceOptions` / `MemorySavedChromeEvent`〕;`SettingsPort` +1 可选成员;`FsApprovalOutcome` 的 `failed` 臂 +1 可选位;`ChromeEvent` +1 臂 `memory_saved`;peer sdk 地板 `>=11.3.0` 不动)
|
|
9603
|
+
|
|
9604
|
+
> **minor**,九件同发(本节按 0.83.0 的读法写;若与本版发布帖不一致,以发布帖为准):
|
|
9605
|
+
> ① **CC 形消息 24 项退役名**(裁定 C-R103;处置清单 [8200],裁定帖 [8232]):结果帧四键与合成终局行旗改 `_sema_` 名,工具结果记录删过渡名 `toolUseResult`,system 行附带文件键改名、到达时戳与 `isMeta` 删除,print 完成通知帧十三键平铺成 `_sema_` 蛇形名,记忆写入从转录面撤下改走 chrome 臂 `memory_saved`。本包自本版起**只铸新名**;端**两名并读一版**(新名优先);旧转录不迁移、不改写。
|
|
9606
|
+
> ② **结果帧 CC 键 `terminal_reason`** 与读口 `terminalReasonForResult`(CC-175);错误信封知道就铸 `_sema_selected_model`(C-R103 Q5)。
|
|
9607
|
+
> ③ **转录 id 改 UUID 形**(CC-147)。
|
|
9608
|
+
> ④ **用户层 `disableAllHooks` 在引擎腿上生效**(CC-162)。
|
|
9609
|
+
> ⑤ **退化审批卡三形拒收改写、说明句如实**(CC-135)。
|
|
9610
|
+
> ⑥ **注入件自愈句整族重写**(十二句)。
|
|
9611
|
+
> ⑦ **联网搜索**:0.82.7 标过渡的旧三读口到期退出公面;print 车道 init 帧回落面按新判决并认宿主明说;endpoint userinfo 律与原因句跟随服务端 7.101.0(CC-184)。
|
|
9612
|
+
> ⑧ **公面类型 −4**(CC-171)。
|
|
9613
|
+
> ⑨ **通告码册 +2**(CC-186,引擎 7.31.0 提货)。
|
|
9614
|
+
> **表态现势**:24 项处置清单见 [8200] —— 终端已认领([8213],按 [8200] 第二节迁移写法)、管理台已认领([8216])、验收方已认领([8204] / [8210]);网页端 / 桌面端截至 09-25 尚未表态(表态窗 09-26)。其余各件随本版发布帖点名。本版发布帖附「旧键 → 新键」机读对照(JSON,验收方 [8210] 所请),判据锚请按它改,不手抄。
|
|
9615
|
+
|
|
9616
|
+
### 100a. 处置表
|
|
9617
|
+
|
|
9618
|
+
各端列的词:`pending·认领` = 已表态认领、尚待改(附帖号);`pending` = 有读点待改、尚未表态;`n/a` = 该端零读点(按 [8200] 读点普查与本版各件的只读检索);`consumed` / `declined` 本版暂无。网页端 / 桌面端两列一律「待表态」,格内只写读点普查的结论。具体坐标见 100d。
|
|
9619
|
+
|
|
9620
|
+
| # | 面 | 旧 → 新 | 终端 | 网页端 | 桌面端 | 管理台 | 验收方 | 本节 |
|
|
9621
|
+
|---|---|---|---|---|---|---|---|---|
|
|
9622
|
+
| K-1 | user · 工具结果记录 | `toolUseResult` → **删**(读同引用的 SDK 面键 `tool_use_result`,值与缺席语义不变;交互记录与 `-p` 帧在结构化结果这一位上从此同形) | pending·认领 [8213] | n/a | n/a | n/a | pending·认领 [8204] | 100b · G-K4 · 100d |
|
|
9623
|
+
| K-2 | result · success 与全部 error_* | `degraded` → `_sema_model_degraded`(值形 `{from, to, reason, chain?, atTurn}` 原样;不叫 `_sema_degraded`:工具结果记录上那一位是「wire 没送正文」的字符串标记,同名不同义) | n/a | n/a | n/a | n/a | pending·认领 | 100b · G-K1 |
|
|
9624
|
+
| K-3 | result · 四个错误子型 | `errorCode` → `_sema_error_code` | pending·认领(5 处) | n/a | n/a | n/a | pending·认领 | 100b · G-K2 / G-K3 · 100d |
|
|
9625
|
+
| K-4 | result · success | `model` → `_sema_selected_model`(引擎选定的模型 id;与供应商自报名 `_sema_response_model` 是两位) | pending·认领 | n/a | n/a | n/a | pending·认领 | 100b · G-K1 |
|
|
9626
|
+
| K-4′ | result · 错误子型(新增位) | —(错误信封从未铸过 `model`)→ `_sema_selected_model`(知道就铸:done 帧结果记录带非空串 `model` 才铸) | pending·认领 [8235](错误帧读点改读、不删) | n/a | n/a | n/a | pending | 100b · G-K3 |
|
|
9627
|
+
| K-5 | result · `error_during_execution` 截断臂(token / 墙钟到限) | `result`(抢救回来的正文)→ `_sema_salvaged_result`;`result` 只留给成功臂 | pending·认领 | pending(死读) | n/a | pending·认领 [8216](删回落) | pending·认领 | 100b · G-K2 · 100d |
|
|
9628
|
+
| K-6 | system · `compact_boundary` | `attachedFiles` → `_sema_attached_files`(值原样:引擎给的 `{path, chars, truncated}[]`)。包内把它投成「Referenced file」附件行的读点**本版两名并读**(`_sema_attached_files` 优先,旧名 `attachedFiles` 照认),0.84.0 删旧名读法 | n/a | n/a | n/a | n/a | pending·认领 | 100b · G-S1 / G-S2 |
|
|
9629
|
+
| K-7 | system · `memory_saved` | `writtenPaths` → chrome 臂 `memory_saved` 的 `notes`(笔记原文,不是路径) | pending·认领 | n/a | n/a | n/a | pending·认领 | 见 K-24 |
|
|
9630
|
+
| K-8 | system · 全部子型 | `timestamp`(本包补的到达戳)→ **删**;`user` / `assistant` 行照旧恒带;入参自带的 `timestamp` 原样过境 | n/a(接收口自己补) | n/a | n/a(`??=` 只补缺席,不变) | n/a | pending·认领 | 100b · G-S1 |
|
|
9631
|
+
| K-9 | system · `memory_saved` | `isMeta`(恒 `false`)→ **删**;本包任何 CC 形消息上都不再铸 | n/a | n/a | n/a | n/a | pending·认领 | 100b · G-S1 |
|
|
9632
|
+
| K-10 | assistant · 合成终局行(终态错误行 / 结局不知道行) | `isApiErrorMessage` → `_sema_api_error_message`(只在合成行上在场,恒 `true`;包内 print 车道 init 判定闸同批改按新名判「run 已结束」)。🔴 端上凭旧旗认合成行做凭据洗消的读点不改读 ⇒ 洗消跳过、凭据原样上屏(见 100d 终端 K-10) | pending·认领(入口别名) | n/a | n/a | pending·认领 [8216] | pending·认领 | 100b · G-K2 · 100d |
|
|
9633
|
+
| K-11–K-23 | system · `task_notification`(print 出口帧,`taskNotificationToPrintFrame`) | `injected` / `seq` / `source` / `lines` / `result` / `diagnostics` / `exitCode` / `partial` / `resumable` / `stoppedBy` / `recentSteps` / `editedFiles` / `task_type` → `_sema_injected` / `_sema_seq` / `_sema_source` / `_sema_lines` / `_sema_result` / `_sema_diagnostics` / `_sema_exit_code` / `_sema_partial` / `_sema_resumable` / `_sema_stopped_by` / `_sema_recent_steps` / `_sema_edited_files` / `_sema_task_type`(同序一一对应;`PRINT_NOTIFICATION_FIELD_MATRIX` 的 `field` 列同批换名,`from` 列仍是 wire 原名) | pending·认领(自身零读点;`-p` stdout 上的键名随之变) | n/a | n/a | n/a | pending·认领 | 100b · G-N1 |
|
|
9634
|
+
| K-24 | system · `memory_saved` 整只子型 | 转录行 → chrome 臂 `memory_saved`(新型 `MemorySavedChromeEvent`;`CHROME_ARMS` 登记 `required: true`) | pending·认领(chrome 分支消费 + 内部工厂还原成行) | 待表态(臂账本对不认识的臂打 `unsupported_event` 警告,见 100d) | 待表态(桌面主进程只把四只渲染位臂转给渲染层,这一臂不在其中 ⇒ 不接就不显示,见 100d) | n/a | pending·认领 | 100a-2 · 100b · G-M1–G-M3 |
|
|
9635
|
+
| R-1 | result · success 与全部 error_* | —(新增 CC 键)→ `terminal_reason`(四词,其余键缺席)+ 读口 `terminalReasonForResult(msg)`(CC-175;根公面 +1) | pending·认领 [8213](本地映射退役) | n/a | n/a | n/a | pending | 100a-1 · 100b · G-T1–G-T3 |
|
|
9636
|
+
| U-1 | 转录 id 值形(CC-147):`deriveTranscriptId` 返回值 / 转录行 `uuid` / tool_use 卡 `message.id` 后半段 / `_sema_segment_id` 与 `text_segment_end.segmentId` / 段末事件 `committedUuid` · `committedUuids` · `committedRows[].uuid` / `attachment` 事件 `id` | `wid_<帧 id>` · `wseq_<seq>` · `wtc_<toolCallId>` 前缀串 → 同一稳定键确定性派生的 UUID 形(小写 8-4-4-4-12)。**不变**:工具结果行带 wire `eventId` 时原样用它当 `uuid`;全缺稳定键时原样交出 `ctx.uuid()` | pending(验收脚本必红) | n/a | n/a | n/a | pending | 100a-6 · 100b · G-U1–G-U4 · 100d |
|
|
9637
|
+
| U-2 | assistant · 合成终局行(终态错误行 / 结局不知道行)的 `uuid` | `err-<毫秒时间戳 36 进制>` → UUID 形(与结果帧同一铸法,不读墙钟);修前同一毫秒合成两行撞 id | n/a(按相等读即零改动) | n/a | n/a | n/a | n/a | 100c G-U5 |
|
|
9638
|
+
| H-1 | `SettingsPort.mergedDisableAllHooks?(): boolean \| undefined`(新增可选成员)· `hooksForWire()` 第四条治理规则(CC-162) | 只认 managed 的 `disableAllHooks` → 合并值 `=== true` ⇒ 只发 managed 的 hooks | pending(装 `SettingsPort` 的宿主实现读口) | n/a(不调 `hooksForWire()`) | n/a(同左) | n/a(同左) | pending | 100a-5 · 100b · G-H1–G-H6 |
|
|
9639
|
+
| A-1 | 入参不是工具真实入参的审批卡(CC-135):流内帧腿回落卡 / 回落卡 `wireNote` / 耐久 park 腿卡 / `approvalResolutionOf` | 编辑闸只管悬挂审批 → 三形都带 `argsUnavailable: true`、拒发改写;耐久腿拒发结局 `{ kind: 'failed', stage: 'card', editRefused: true }`(`FsApprovalOutcome` 的 `failed` 臂 +1 可选位),`approvalResolutionOf` 读成 `not_sent` / `edit_refused` | pending(通用确认卡渲 `wireNote`;耐久重跑链措辞) | pending(按 `argsUnavailable` 分支即零改动) | pending(同左) | n/a | pending | 100a-4 · 100b · G-A1–G-A4 · 100d |
|
|
9640
|
+
| A-2 | 耐久 park 卡的 `mandated`(CC-183) | 修前恒不铸(待决行上没有这一位,强制只以 `ruleOffersAbsence === "mandated"` 表达)→ 待决列表行**顶层** `mandated === true` 时卡请求严格透传 `mandated: true`(上游引擎 7.31.0 在 park 行铸这一位、服务端 7.101.0 起投到待决列表行顶层,与 `requiresRealApproval` 同层同形);其它值 / `riskDescriptor` 里的同名键不认,永不铸 `false` | n/a(判据口 `approvalIsMandated` 早已认这一位,读法不变) | n/a | n/a | n/a | pending(真部署 7.101.0 上复核) | 100b · G-A5 |
|
|
9641
|
+
| E-1 | `activeRunSelfHealRow(outcome, signal, copy, 'injected', follow?)` 的整行文案 | 注入件一族十二句整族重写(型面零变;处置分类 / 续跟意图 / 用户形逐字节不变;`copy.rowFor` 整行覆盖照旧优先) | pending(测试格 / 文案锚) | n/a | n/a | n/a(只调用户形) | pending(两处屏面探针) | 100a-3 · G-E1–G-E5 · 100d |
|
|
9642
|
+
| W-1 | 联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 退出公面(0.82.7 标过渡、本版到期) | 过渡 → 退出公面(根公面 −3);换读 §99a S-1 | pending(仍 import 处编译期即红;已换读则零改动) | n/a | n/a | n/a | n/a | G-X1 · 100d |
|
|
9643
|
+
| W-2 | `resolveLiveInitToolFace(argv, env, opts?)` 的 WebSearch 一名;选项形命名导出 `LiveInitToolFaceOptions` | 跟随旧读口(0.82.7 过渡安排)→ 按 `webSearchVerdictFromEnv(env).kind === 'honored'`;宿主经 `opts.webSearchStamped` 明说的一律优先 | pending(settings 段采纳时传 `webSearchStamped: true`) | n/a | n/a | n/a | n/a | 100b · G-W3 |
|
|
9644
|
+
| W-3 | `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` 的 endpoint 判据与原因句(CC-184) | 带 userinfo 的 endpoint 采纳 → 判形错(`field: 'endpoint'`);原因句逐字镜像服务端 7.101.0 的 wire 句 | pending(换读 §99 后自动生效) | n/a | n/a | n/a | pending | 100b · G-W1 / G-W2 |
|
|
9645
|
+
| X-1 | 公面类型(CC-171):`SemaNestedUsageByTask` / `ClientVerbSpec` / `CatalogCacheEnvelope` / `PeerFrameLane` | 前者删除;后三者不再从包根导出(形状不变);运行期导出零变化 | n/a(零取用) | n/a | n/a | n/a | n/a | G-X1 |
|
|
9646
|
+
| X-2 | `ADAPTER_DIVERGENCES` | 10 条 → 12 条(+DIVERGENCE-11 system 行到达时戳 / +DIVERGENCE-12 记忆写入改走 chrome 臂;DIVERGENCE-9 / -10 改写文案) | n/a | n/a | n/a | n/a | n/a | G-X1 |
|
|
9647
|
+
| C-1 | `ENGINE_NOTICE_CODES` / `ENGINE_NOTICE_AUDIENCE`(CC-186) | 69 码 → 71 码:+`config.context_settings_swapped`(引擎 7.30.0,紧跟 `config.models_swapped`)/ +`config.secret_env_scrubbed`(引擎 7.31.0,紧跟 `config.peer_lane_unmounted`),audience 都是 `operator`;开发依赖钉引擎 `~7.31.0`;引擎 7.31.0 的 BREAKING 项 `deprecatedLayers` 本包零读点;结构化卡白名单 `STRUCTURED_DETAIL_TYPES` 同批 +`read-inbox`(引擎 7.30.0 `ReadInbox` 工具卡) | n/a(按 `noticeAudienceOf` 分流即零改动) | n/a | n/a | n/a | n/a | 100b · G-C1 |
|
|
9648
|
+
|
|
9649
|
+
#### 100a-1 · `terminal_reason` 映射(R-1)
|
|
9650
|
+
|
|
9651
|
+
| 结果帧的情形 | `terminal_reason` |
|
|
9652
|
+
|---|---|
|
|
9653
|
+
| 成功臂(引擎终局 completed) | `completed` |
|
|
9654
|
+
| 引擎码 `limits.max_turns_exceeded`(subtype `error_max_turns`) | `max_turns` |
|
|
9655
|
+
| 引擎码 `limits.max_cost_exceeded`(subtype `error_max_budget_usd`) | `budget_exhausted` |
|
|
9656
|
+
| 引擎码 `output.invalid`(subtype `error_max_structured_output_retries`) | `structured_output_retry_exhausted` |
|
|
9657
|
+
| 其余一切 | **键缺席**(own property 不在) |
|
|
9658
|
+
|
|
9659
|
+
- **刻意不映**(键缺席,不是漏了):`limits.max_walltime_exceeded`(CC 的闭集里没有墙钟到限的词);`limits.max_tokens_exceeded`(run 级 token 预算;CC 的 `prompt_too_long` / `blocking_limit` 说的是单次请求的上下文窗口,不是一回事);`classifier.denial_limit`(CC 遇到同一件事直接抛错,那条路径不产出 `terminal_reason`);取消、冲突、供应商故障、一切未知码或未来码;以及写不出码的终局(被挡、停泊、结局不知道、409 拒绝信封)。真实语义仍由 `_sema_error_code` 原样承担,人话仍由 `errors[0]` 承担 —— `terminal_reason` 缺席时读这两位,不要自己补一个词。
|
|
9660
|
+
- 只按 `subtype` 判,不读码:一只自相矛盾的「成功帧却带到限码」(`subtype:'success'`、`is_error:false`、`_sema_error_code:'limits.max_turns_exceeded'`)答 `completed`;`subtype:'success'` 缺 `is_error` ⇒ `undefined`(只认严格 `false`)。码 → subtype 的映射在铸点那一侧(`subtypeForErrorCode`),本包铸的帧两者恒一致。
|
|
9661
|
+
- **读口** `terminalReasonForResult(msg: SDKMessage): TerminalReason | undefined`:与铸点同一只判据,所以对本包铸出的结果帧,读口的答案恒等于帧上的 `terminal_reason`;给端**自己拼**的结果帧与旧转录里没铸过这一位的结果帧用(松形帧在调用点断言成 `SDKMessage` 即可)。只认 `type:'result'`;按 CC 原生 `subtype` 判(与铸点同一只函数):`success` 且 `is_error` 不为 `true` ⇒ `completed`,`error_max_turns` ⇒ `max_turns`,`error_max_budget_usd` ⇒ `budget_exhausted`,`error_max_structured_output_retries` ⇒ `structured_output_retry_exhausted`,其余缺席;不读错误码(码 → subtype 的映射在铸点那一侧,端自拼的帧只要 subtype 按 CC 写对就同判)。🔴 铸点同样从已选定的 subtype 派生:扁平形回放行在停泊 / 被挡 / 认不出的状态臂上即使带着到限码,subtype 是 `error_during_execution`,`terminal_reason` 缺席,不会与 subtype 或 `_sema_outcome` 自相矛盾。非对象输入或读键抛错 ⇒ `undefined`,不抛。
|
|
9662
|
+
|
|
9663
|
+
```ts
|
|
9664
|
+
import { terminalReasonForResult } from '@sema-agent/client-core'
|
|
9665
|
+
const reason = frame.terminal_reason ?? terminalReasonForResult(frame) // 本包的帧两者恒等;自拼帧 / 旧转录走读口
|
|
9666
|
+
if (reason !== undefined) out.terminal_reason = reason // 缺席就不写,不补词
|
|
9667
|
+
```
|
|
9668
|
+
|
|
9669
|
+
#### 100a-2 · `memory_saved` chrome 臂的载荷与接法(K-7 / K-24)
|
|
9670
|
+
|
|
9671
|
+
| 位 | 形 | 语义 |
|
|
9672
|
+
|---|---|---|
|
|
9673
|
+
| `kind` | `'memory_saved'` | 判别位 |
|
|
9674
|
+
| `laneProof` | `LaneProof` | 与那张 `Remember` 工具卡结果行的 `parent_tool_use_id` 同一个值判:缺席 ⇒ `main`;非空 ⇒ `subagent`(子代写的,别渲成主会话的) |
|
|
9675
|
+
| `id` | `string` | 稳定身份:由这次写入的 wire 稳定键派生 —— 收卡帧的 `eventId`,缺则开卡帧的 `eventId`(空串当缺席;与同一张卡的工具结果行取 `uuid` 同序),两帧都没有则按调用 id —— 再带去撞后缀(调用 id 空间带后缀时另起 name 形,不会与字面恰为 `<id>#<后缀>` 的另一只调用撞),所以同一组 wire 事件无论重投几次都同值,且不与同一张卡的工具结果行撞 id。🔴 因转录 id 同版换形(U-1),它是 UUID 形,**不等于** 0.82.x 盘上那条行的前缀形 uuid —— 跨升级边界去重见 100a-6 |
|
|
9676
|
+
| `notes` | `string[]` | 这次写入的记忆**笔记原文**(不是文件路径;不 trim、不改写);恒至少一项、每项非空串;今天恒一项 |
|
|
9677
|
+
|
|
9678
|
+
要保留「Saved N memories」那一行的宿主,把本臂还原成一行:
|
|
9679
|
+
|
|
9680
|
+
1. 收到本臂 ⇒ 按 `id` 幂等(同一 `id` 只落一行;durable 重放会再送)。
|
|
9681
|
+
2. 行 uuid = `id`;N = `notes.length`;正文逐条 = `notes`;时戳在接收口取(本臂不带时钟)。
|
|
9682
|
+
3. 落成 CC 形 system 行时**不要**再造 `writtenPaths` / `isMeta` —— 那正是本版从 CC 形上撤掉的两位。宿主自己的内部渲染结构不在此限,但别把笔记当路径处理(拼链接、判文件存在、截文件名都是错的)。
|
|
9683
|
+
4. 同一轮多次写入 = 多条事件,本包不合并;要合并成一行的宿主按到达序合,合并后的行别拿任何一条的 `id` 冒充整行身份。
|
|
9684
|
+
5. 只做提示、不落转录也合法;但臂是 `required: true`,按 `CHROME_ARMS` 自检覆盖率的宿主会看到这一臂待接。
|
|
9685
|
+
6. 本臂不在 `CHROME_EVENT_KINDS`(渲染位臂词表)里:座位层把它当渲染端事件转发会被判「not a renderer-wired arm」,还原成行须在宿主侧做。
|
|
9686
|
+
|
|
9687
|
+
#### 100a-3 · 注入件十二句:旧句 → 新句(E-1)
|
|
9688
|
+
|
|
9689
|
+
句中 `<id>` = 结局里的 `taskId`(缺席时整个括号不出现),`<detail>` = 引擎给的失败原因(原样转述)。新句句首一律是 `A follow-up message sema sent on its own (not one you typed)`,下表以「…」代之。
|
|
9690
|
+
|
|
9691
|
+
| # | 结局(判定) | 旧句(0.82.7 及以前) | 新句(0.83.0) | 要不要用户动手 |
|
|
9692
|
+
|---|---|---|---|---|
|
|
9693
|
+
| 1 | `running-steered`,`delivery` 为 `applied` / 读不出 / 表外词,宿主传 `{ following: true }` | A system notification was handed to the run that is already working (run `<id>`) instead of starting a new turn — sema is following that run and will surface whatever it asks for next. | … was passed to the reply already in progress (id `<id>`) instead of starting a new one. sema is following that reply and will show whatever it asks for next; nothing for you to do now. | 不用 |
|
|
9694
|
+
| 2 | 同上,宿主未声明续跟 | A system notification was handed to the run that is already working (run `<id>`) instead of starting a new turn — watch that run for what it does with it. | … was passed to the reply already in progress (id `<id>`) instead of starting a new one — watch that reply for what it does with it. | 看着那一轮回复 |
|
|
9695
|
+
| 3 | `running-steered`,`delivery: 'queued'`,重开判决 = 卡已呈上 | 同 1 / 2(旧句不分 `delivery`) | … is queued on an earlier reply (id `<id>`) that is paused waiting for a decision; sema has shown that decision card, and the message is picked up once you answer it. | 答那张卡 |
|
|
9696
|
+
| 4 | 同上,重开判决 = 决断还在路上(`_sema_decisionInFlight: true`) | 同 1 / 2 | … is queued on an earlier reply (id `<id>`) that is paused waiting for a decision; your answer to it is still on its way, and the message is picked up once that answer is applied. | 不用再答(句中不说「不用你动手」:答案落地与否不由本层保证) |
|
|
9697
|
+
| 5 | 同上,其余(卡呈不出 / 判决缺席 / 表外停泊词) | 同 1 / 2 | … is queued on an earlier reply (id `<id>`) that is paused waiting for a decision sema could not show here; the message is picked up only once that decision is made. | 那道决断要有人做;句中不替用户承诺谁去做 |
|
|
9698
|
+
| 6 | `running-steered`,`delivery: 'parked_for_wake'` | 同 1 / 2 | … has not reached the model: the earlier reply (id `<id>`) had already finished, so the message was set aside on it instead of starting a new reply, and sema did not retry it. | 无重发(模型没看到) |
|
|
9699
|
+
| 7 | `running-steer-failed`,`delivery` 不是 `unknown`(含 `rejected`) | A system notification was NOT delivered: the engine refused it for the run that is already working (run `<id>`) (`<detail>`); sema did not retry. The model was not told about it. | … was not delivered: passing it to the reply already in progress (id `<id>`) was refused (`<detail>`). sema did not retry, so the model has not seen it. | 无重发(模型没看到) |
|
|
9700
|
+
| 8 | `running-steer-failed`,`delivery: 'unknown'` | A system notification was handed to the run that is already working (run `<id>`), but the engine did not confirm delivery (`<detail>`) — that run may or may not have received it; sema did not retry (a steer cannot be re-sent safely). Watch that run for what it does next. | … was passed to the reply already in progress (id `<id>`), but its delivery could not be confirmed (`<detail>`) — that reply may or may not have received it. sema did not retry, because sending it twice is not safe; watch that reply for what it does next. | 看着那一轮回复(可能已送到,别补发) |
|
|
9701
|
+
| 9 | `ask-reopen-failed` / `plan-review-reopen-failed` 且 `decisionInFlight: true` | A system notification was NOT delivered: this session is still held by an earlier run (run `<id>`) whose decision is still on its way to the engine, so sema did not retry. The model was not told about it. | … was not delivered: this session is still busy with an earlier reply (id `<id>`), and your answer to the decision it is waiting on is still on its way. sema did not retry, so the model has not seen it. | 无重发(模型没看到) |
|
|
9702
|
+
| 10 | 处置 `held-for-decision`(`decision-pending` / `ask-reopened` / `plan-review-reopened`) | A system notification could not be delivered while an earlier turn (run `<id>`) is waiting on a decision — sema kept it queued and will deliver it after you answer the open card. | … is on hold: this session is busy with an earlier reply (id `<id>`) that is waiting on a decision. sema kept the message queued and will send it after you answer the open card. | 答开着的那张卡(整族唯一承诺「会发」的一句) |
|
|
9703
|
+
| 11 | 处置 `resending`(`running-cancelled` / `stale-park-cancelled` / `ask-decided-without-card`) | A system notification was held while the earlier run (run `<id>`) was cancelled; sema is delivering it now. | … was held back because this session was busy with an earlier reply (id `<id>`); the session is free again, so sema is sending the message now — nothing for you to do. | 不用 |
|
|
9704
|
+
| 12 | 处置 `not-delivered` 的其余结局(`not-parked` / `running-not-found` / `running-settled` / `state-unknown` / 卡重开不了且决断不在路上 / `ask-decided-release-unknown` / 取消超时与失败 / 陈旧停泊几形) | A system notification was NOT delivered: this session is still held by an earlier run (run `<id>`) and sema could not put a decision for it on screen, so it did not retry. The model was not told about it. | … was not delivered: this session was still busy with an earlier reply (id `<id>`), and there was no open card you could answer to free it. sema did not retry, so the model has not seen it. | 无重发(模型没看到) |
|
|
9705
|
+
|
|
9706
|
+
#### 100a-4 · 退化审批卡:三形、四句说明与拒发原文(A-1)
|
|
9707
|
+
|
|
9708
|
+
- **流内帧腿**(`surfaceToolApprovalFrameAndRespond`,含经 `bridgeAskUserQuestionGates` 的流内帧路由与悬挂审批带帧的全卡形):帧上入参超上限被省略(`argsOmitted`)或根本没带、事件流上也没有这只调用的入参时,卡上的 `args` 是回落出来的(至多一个从问句解出的 `file_path`,否则空对象)⇒ 卡请求带 `argsUnavailable: true`;卡回「编辑后批准」(`kind: 'allow'` 带 `updatedInput`,含 `allowSession: true`)⇒ **一次 respond 都不发**,结局 `{ decision: 'unresolved', editRefused: true }`,上屏 `EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT` 一次;纯批准 / 会话级放行 / 拒绝照发。
|
|
9709
|
+
- **回落卡 `wireNote`**:只在 `argsOmitted` 时铸,按 path 解没解出来分两句(下面第 1 / 2 句),都不再说「重建 / diff」;悬挂审批那一句优先、逐字不变;帧上没有 `argsOmitted`、只是没带入参的形不铸说明句(没有「超上限」这一事实可说),只靠 `argsUnavailable`。
|
|
9710
|
+
- **耐久 park 腿**(`surfaceFsApprovalAndDecide`):事件流上没有这只调用的入参,且待决行的 `input` 缺席 / `null`,或恰是上游的超限标记(自有键恰好 `truncated`、`bytes` 两个,`truncated === true`,`bytes` 为非负有限数)⇒ 卡上 `args` 为空对象、带 `argsUnavailable: true` 与一句说明(第 3 / 4 句);卡回「编辑后批准」⇒ **一次 decide 都不发**(会话级放行那一发也不发),结局 `{ kind: 'failed', stage: 'card', gatedCallId, reason, editRefused: true }`,上屏同一句告知。近似形(多一键 / `truncated` 不是 `true` / `bytes` 不是非负数 / 缺 `bytes`)不认,照旧当入参渲。
|
|
9711
|
+
- **`approvalResolutionOf`**:耐久腿 `failed` 结局在 `stage === 'card'` 且 `editRefused === true`(严格)时读成 `not_sent` / `edit_refused`(此前同一对象读成 `card_unavailable`);词表 `APPROVAL_NOT_SENT_CAUSES` 不变。
|
|
9712
|
+
|
|
9713
|
+
说明句原文(卡上 `wireNote`;逐字):
|
|
9714
|
+
|
|
9715
|
+
1. 流内帧入参超上限被省略,path 解出:`tool arguments exceeded the wire cap and were omitted — only the target path was recovered (from the approval question); the rest of the arguments, such as the content to write, is not shown, so you are deciding without seeing it. Edits are not accepted on this card: there is no original input to edit`
|
|
9716
|
+
2. 流内帧入参超上限被省略,什么都没解出:`tool arguments exceeded the wire cap and were omitted, and nothing could be recovered from the approval question — you are deciding without seeing what this call will do; deny it if you are not sure. Edits are not accepted on this card: there is no original input to edit`
|
|
9717
|
+
3. 耐久待决行入参缺席:`this request's tool arguments are not available on this surface — neither the event stream nor the pending approval record carries them, so you are deciding without seeing them; deny it if you are not sure what it will do. Edits are not accepted on this card: there is no original input to edit`
|
|
9718
|
+
4. 耐久待决行入参是超限标记:`this request's tool arguments were too large to keep on the pending approval record and were replaced by a size marker, so you are deciding without seeing them; deny it if you are not sure what it will do. Edits are not accepted on this card: there is no original input to edit`
|
|
9719
|
+
|
|
9720
|
+
耐久腿拒发结局的 `reason`:`the card returned an edited approval, but this request's tool arguments are not available on this surface (missing, or replaced by a size marker on the pending approval record), so the edit cannot be applied — nothing was sent; approve or deny it as it is`(经集成驱动接卡、且这一轮没有同步终帧可原样交回时,它出现在 fail-soft 终帧的错误文字里)。说明句是展示文本:别按它分支,要分支读 `argsUnavailable` / `editRefused`;超限标记的 `bytes` 按上游铸点是 JSON 串的字符数,说明句刻意不引用这个数。
|
|
9721
|
+
|
|
9722
|
+
#### 100a-5 · `disableAllHooks` 合并值与四源判定表(H-1)
|
|
9723
|
+
|
|
9724
|
+
- **读口**:`SettingsPort.mergedDisableAllHooks?(): boolean | undefined` 返回宿主设置**合并之后**的 `disableAllHooks`,与宿主自己的设置界面、本机 hooks 执行器读的是同一个值。合并规则与宿主自己的设置合并同一套:插件提供的设置基底最先,再按 **user → project → local → flag(`--settings`)→ managed** 逐源合并,后写覆盖前写(managed 最后写、优先级最高;只算宿主启用了的来源)。合并结果里没有这一键 ⇒ 返回 `undefined`(或 `false`)。本包只认 `=== true`;`'true'`、`1` 这类不是布尔 `true` 的返回值一律当「没关」。按方法调用(`this` 绑在端口上,类实例形的端口可用)。🔴 不要拿逐来源的值自己再算一遍,尤其不要写成「任一来源为 `true`」—— 它在「user 写 `true`、local 写 `false`」这一格判反。
|
|
9725
|
+
- **`hooksForWire()` 的治理规则按序判**:① 工作区未受信 ⇒ 不发;② managed `disableAllHooks === true` ⇒ 不发(managed 的也不发);③ managed `allowManagedHooksOnly === true` 或 managed `strictPluginOnlyCustomization` 锁了 hooks 面 ⇒ 只发 managed 的;④ 🆕 合并值 `mergedDisableAllHooks() === true` ⇒ 只发 managed 的;⑤ 否则各来源都发。①–③ 已定结局时**不调用**合并读口(也就不会为它告警)。④ 命中时会话目标(`/goal`)的 Stop 钩子一并不发(它属于用户层);把同一次 `hooksForWire()` 的产出交给 `resolveHeadlessFinalVerifyDetail(argv, env, wireHooks)` 的宿主,被 ④ 挡掉的用户 Stop hook 不再构成终局校验的让位理由(managed 的 Stop hook 照发、照让位)—— 🔴 前提是交给它的就是**同一次**的结果,不要另读设置文件拼一份。
|
|
9726
|
+
- **读口缺席** ⇒ ④ 不生效(= 0.82.x 行为),每个已装的 settings 口经 `installHost({ log })` 的日志口告警**一次**(`warn`;重装同一个端口对象不再告警)。**读口抛错** ⇒ ④ 按命中处置(只发 managed 的 —— managed 的照发,不是一条都不发)+ 一条带异常原文的 `debug` 日志。
|
|
9727
|
+
- 射程:本版对齐的是**本机 hooks 执行器**的判法(合并值)。CC 在云会话路径上另有一条逐来源语义(项目 / 本地设置里的 `disableAllHooks` 不压用户层 hooks),本版不跟;宿主的「安全模式」(只跑 managed hooks 的那种启动方式)本包没有读口,仍不在引擎腿上生效。
|
|
9728
|
+
|
|
9729
|
+
| managed | user | project | local | 合并值 | 发往引擎的 hooks |
|
|
9730
|
+
|---|---|---|---|---|---|
|
|
9731
|
+
| `true` | 任意 | 任意 | 任意 | `true` | **一条都不发**(managed 的也不发) |
|
|
9732
|
+
| 缺 | `true` | 缺 | 缺 | `true` | 只发 managed 的 |
|
|
9733
|
+
| 缺 | 缺 | 缺 | `true` | `true` | 只发 managed 的 |
|
|
9734
|
+
| 缺 | `false` | 缺 | `true` | `true` | 只发 managed 的 |
|
|
9735
|
+
| 缺 | `true` | 缺 | `false` | **`false`** | **各来源都发**(「任一来源为真」的近似在这一格判反) |
|
|
9736
|
+
| 缺 | 缺 | `true` | `false` | `false` | 各来源都发 |
|
|
9737
|
+
| `false` | `true` | 缺 | 缺 | **`false`** | **各来源都发**(managed 最后写,显式 `false` 盖掉 user 的 `true`) |
|
|
9738
|
+
| 缺 | 缺 | 缺 | 缺 | 缺 | 各来源都发 |
|
|
9739
|
+
|
|
9740
|
+
表里只列四个来源,flag 来源同理参与合并。🔴 两件事别混:**合并标量**的顺序是 user → project → local → flag → managed(后写覆盖前写);本包**发往引擎的 hooks 数组**按 managed → user → project → local 的顺序**拼接**(拼接不是覆盖)。
|
|
9741
|
+
|
|
9742
|
+
#### 100a-6 · 转录 id 的承诺射程与升级边界(U-1)
|
|
9743
|
+
|
|
9744
|
+
- **承诺**:① UUID 形(小写 8-4-4-4-12);② **同一份适配器输入**(已投影好的帧序列)重放 ⇒ 同一串 id(逐个相等,与此前同一条不变量);③ 确定性 —— 同一稳定键 ⇒ 同一 id,不读时钟、不读随机源。稳定键优先序(帧 id > seq > toolCallId)与判空规则(空串帧 id / 空串 toolCallId 不算稳定键、`seq` 只认数)不变;不同稳定键得到不同 id(帧 id `"7"`、`seq` 7、toolCallId `"7"` 是三个不同的 id)。
|
|
9745
|
+
- 🔴 **跨重投射程**(承诺②的边界,0.82.x 同样如此、不是本版引入):同一组 wire 事件**经投影口重新投影**(`eventToSdkMessage` / `runStream` 各跑一遍)时,投影口给每一帧现铸一枚随机信封 `uuid`,由它派生的行 —— 文本行、工具卡(含 `msg_sema_…`)、压缩分割线、`attachment` 事件等 —— 每投一次换值;跨重投稳定的只有按 wire `eventId` 取键的行(带 `eventId` 的工具结果行、`memory_saved` 臂)。会重投同一段 wire 事件、又按 `uuid` 去重的宿主,请按 wire 的事件身份(`eventId` / 事件序号)去重。
|
|
9746
|
+
- **不承诺**:派生所用的具体参数与算法细节。请把这些 id 当不透明串用 —— 不解析、不自己推算、不从 id 反推 wire 键。派生参数若改,本包会像本版一样作为值形变更成文公布。
|
|
9747
|
+
- **唯一性射程**(与此前相同,换形不改变):派生输入里**没有会话身份** —— 两场会话里同一个 `seq`(或同一个 toolCallId)得到同一个 id。UUID 的外形容易让人以为它全局唯一,它不是;按 `uuid` 跨会话建表 / 去重的宿主,键里要自己带会话维度。
|
|
9748
|
+
- **兜底与原样沿用**:宿主喂进来的 system 行沿用输入帧自带的 `uuid`(不走派生);没有任何稳定键的帧,`uuid` 是宿主 `ctx.uuid()` 交的值(原样),它是不是 UUID 形由宿主决定;想让整份转录都是 UUID 形的宿主,`ctx.uuid` 请交 UUID。工具结果行在 wire 带了 `eventId` 时原样用它当 `uuid`,本包不验形。
|
|
9749
|
+
- **旧转录**:已落盘的前缀形 id(`wid_…` / `wseq_…` / `wtc_…`、`msg_sema_wid_…`、`…#segment<n>` 形段身份)不迁移、不改写,升级后同一份转录里新旧两形共存;父子链由宿主按**整串**把新行接到上一行的 `uuid` 上,混形的链照常可解。
|
|
9750
|
+
- **升级边界**(跨重投射程的一个特例):同一段 wire 事件分别被旧版本与新版本投影,得到的是两套 id —— 即使按 `eventId` 取键的行也一样(旧版本铸前缀形)。宿主在升级前落盘了某段事件、升级后又把同一段事件重新投影并按 `uuid` 与盘上的行去重(例如续跑时游标没推进、重放窗口跨过了升级)时,那一段会各有一行旧形、一行新形。需要跨升级边界去重的宿主按 wire 的事件身份(`eventId` / 事件序号)去重,或不重投已落盘的区间。`memory_saved` 臂的 `id`(100a-2)同理。
|
|
9751
|
+
- 本包没有任何按转录 id 做键的持久状态:`exportLedger` / `importLedger` 的键是任务 / 运行身份,`importLedgerFromTranscript` 读的是转录正文里的通知块;升级前导出的台账升级后照常导入。
|
|
9752
|
+
|
|
9753
|
+
### 100a′. 成文改口(旧判据眼作废 → 新判据眼)
|
|
9754
|
+
|
|
9755
|
+
已发段不回改,以本段为准。分三向:
|
|
9756
|
+
|
|
9757
|
+
**作废**(旧判据眼装 0.83.0 后判红是预期行为,不是回归):
|
|
9758
|
+
|
|
9759
|
+
1. 凡在结果帧上按 `errorCode` / `degraded` / `model` 断言在场、在错误信封上按 `result` 断言、在合成终局行上按 `isApiErrorMessage` 断言、在工具结果记录上按 `toolUseResult` 断言、在 `compact_boundary` 上按 `attachedFiles` 断言、在 print 完成通知帧上按十三个旧名断言、在任何本包产出的消息上按 `isMeta` 断言的判据 —— 一律作废,旧名自本版起断言**缺席**。
|
|
9760
|
+
2. §90b 第一条「`tool_use_result` 缺席 …(与 `toolUseResult` 缺席同义,两键同缺席)」的括号、§90c U-G1 与 §93c P-G10 里「`msg.tool_use_result === msg.toolUseResult`(同引用)」那一半作废 → 交互记录上 `toolUseResult` 恒缺席。§90 S-2(「0.82.0 删」)与 §92y ㉙(改到 0.83.0)本版兑现,形式是**删除**、不是改名。
|
|
9761
|
+
3. §93b 第一条「`toolUseResult` 在 `-p` 帧上恒缺(过渡名只在交互转录记录上)」的括号与 §93d 去向表「过渡名 `toolUseResult`」那一行作废 → 两出口都不带。
|
|
9762
|
+
4. 「本包交出的每条转录行都带 `timestamp`」(0.82.x 及以前的不变式)作废 → 只有 `user` / `assistant` 行恒带;system 行不带(除非入参自带)。
|
|
9763
|
+
5. 「记忆写入 = 转录面一条 `system/memory_saved` 行,`writtenPaths[0]` 等于笔记」作废 → chrome 面一条 `memory_saved`,`notes[0]` 等于笔记;转录面零 `memory_saved` 行。
|
|
9764
|
+
6. 「print 出口帧的归因位用 wire 原名(与 SDK `task_notification` 词汇同名)」作废 → CC 形出口帧上一律 `_sema_` 蛇形名,wire 读法不变。
|
|
9765
|
+
7. 凡断言转录 `uuid` 以 `wid_` / `wseq_` / `wtc_` 开头、`message.id` 形如 `msg_sema_wid_…`、段身份以 `#segment<n>` 结尾的判据 / 测试 / 验收脚本作废;按形认「是不是本包铸的」的判据随之失去判别力(UUID 形的 id 与宿主自铸的随机 UUID 外形相同)。
|
|
9766
|
+
8. 注入件自愈句:按 `system notification` 认「这是注入件的句子」、按 `(run <id>)` 取回复 id、「交接后叫用户 `watch that run`」「续跟挂上后说 `sema is following that run`」(用户形仍是这两句,未动)、「`delivery: 'queued'` / `'parked_for_wake'` 的交接与 `applied` 同句」、「候决断句 = `could not be delivered while … kept it queued`」、「`resending` 句说 `was cancelled`」、「`not-delivered` 句说 `could not put a decision … on screen`」—— 全部作废,新句见 100a-3。
|
|
9767
|
+
9. 退化审批卡:「流内帧卡永不带 `argsUnavailable`」「流内帧路由上不会出现 `editRefused`」「超上限卡上的改写会被转发」三条判据眼作废。
|
|
9768
|
+
10. §99a S-2「包内唯一的调用点(print 车道 init 帧回落面)过渡期刻意仍用旧读口」作废 → 按新判决 + 宿主明说优先(W-2)。§99c P-G2 后半「`SEMA_WEBSEARCH_ENDPOINT=https://user:pw@gw/search` ⇒ 照常发出」作废 → 本包判形错、不发(W-3)。§99 包侧缺口「带 userinfo 的 endpoint 两边判官都采纳」作废 → 本包拒;7.100.x 服务端仍采纳,7.101.0 起两边同判。
|
|
9769
|
+
11. 按原因句**文字**匹配联网搜索形错的判据(旧句的 `must be one of brave | tavily | searxng (got …)`、`got a value that is not one of them`、`got an array`、`(entry N …)`、`repeats an earlier name` 等)作废 → 按判决里的 `field` 判,不按句子判;句子本版起逐字镜像服务端 7.101.0 的 wire 句。
|
|
9770
|
+
12. 「码册 69 码」作废 → 71 码(C-1)。
|
|
9771
|
+
13. §96 包侧缺口「`approvalIsMandated(card)` 对 park 卡今天恒为假」与 §98 包侧缺口「待决行上的 `mandated` 孪生位上游尚未铸」:对服务端 **7.101.0 及以后**作废 —— 待决列表行顶层带 `mandated: true` 时卡请求透传这一位、判据口答 `true`(A-2);对更早的服务端两句仍成立。
|
|
9772
|
+
|
|
9773
|
+
**改读**(判据的意思保留,换读法):
|
|
9774
|
+
|
|
9775
|
+
1. 结果帧 / 合成行 / system 附带文件 / print 通知帧的在场断言按 100a 改用新名;读旧转录的端两名并读一版(新名优先)。
|
|
9776
|
+
2. §93c P-G9 末句「成功臂与错误信封都带 `_sema_response_model` 且 `model` 仍为 `pool-id-a`」不能读成「错误信封也带 `model`」—— 错误信封**从来没铸过** `model`。本版起的判据眼:成功臂与错误信封都带 `_sema_response_model:'provider-name-b'` 与 `_sema_selected_model:'pool-id-a'`,`model` 在两臂上都不在。
|
|
9777
|
+
3. 「错误信封没有 `model`」仍成立(旧名零铸),但同一只信封上可能出现 `_sema_selected_model`;写成「错误信封上没有任何模型位」的判据要改。
|
|
9778
|
+
4. 「截断臂零抢救 ⇒ 无 `result` 键」→ 改判 `_sema_salvaged_result` 缺席;原断言仍为真,但已失去判别力。
|
|
9779
|
+
5. §97a S-1 分类判据里「终态前合成的错误行 —— `assistant` 形、带 `isApiErrorMessage`」→ 改读 `_sema_api_error_message`(包内判定闸同批改)。
|
|
9780
|
+
6. 要证「这个转录 id 是本包铸的」:比相等(盘上行的段身份 === **同一段**的 `text_segment_end.segmentId`;盘上行 `uuid` ∈ 段末事件的 `committedUuids`),不比形。
|
|
9781
|
+
7. `ApprovalCardRequest.argsUnavailable` 的意思由「悬挂的流内审批(没有客户端连着时发起)」改为「卡上的 `args` 不是工具的真实入参」,悬挂审批只是其中一形 —— 别再据它推断「这只审批是在没有客户端连着时发起的」。`ToolApprovalFrameOutcome.editRefused` 由「只在悬挂审批的卡上」改为「任一回落卡上」。`approvalResolutionOf` 对耐久腿 `failed` / `card` 带 `editRefused` 的对象由 `card_unavailable` 改为 `edit_refused`。
|
|
9782
|
+
8. 注入件句的新判据眼:句首 `A follow-up message sema sent on its own (not one you typed)`;句柄 `(id <id>)`;`watch that reply` / `sema is following that reply`。不变的判据眼:注入形从不说 `your message` / `send it again`;`rowFor` 整行覆盖优先;处置分类与续跟意图逐字不变;用户形逐字节不变。
|
|
9783
|
+
9. §7 P-43「端不要假定用户 settings 里的 `disableAllHooks` 会挡住引擎腿的 hooks」对实现了 H-1 读口的宿主不再成立;未实现的宿主仍成立(并会看到一次告警)。
|
|
9784
|
+
|
|
9785
|
+
**新增**(新判据眼):
|
|
9786
|
+
|
|
9787
|
+
1. 结果帧 `terminal_reason`:四词按 100a-1 在场,其余键缺席(`Object.hasOwn` 为 false);`terminalReasonForResult` 对本包的帧恒等于帧上的值。
|
|
9788
|
+
2. 错误信封:done 帧结果记录带非空串 `model` ⇒ `_sema_selected_model` 在场;`failed` 事件帧 ⇒ 缺席。
|
|
9789
|
+
3. 记忆写入:chrome 面恰一条 `{kind, laneProof, id, notes}`,键集恰这四个;`id` 同一串帧重放同值。
|
|
9790
|
+
4. 转录 id 三向:① 形 —— 小写 8-4-4-4-12;② 确定性 —— 同一段帧喂两遍(宿主的 `ctx.uuid` 每次给不同值)得到同一串 id,且没有一枚等于 `ctx.uuid` 当次交出的值;③ 同源 —— 比相等(见改读 6)。
|
|
9791
|
+
5. `disableAllHooks`:按 100a-5 四源判定表判合并值与发往引擎的 hooks。
|
|
9792
|
+
6. 退化审批卡:三形都带 `argsUnavailable: true`,改写零发送;四句说明按 100a-4 逐字。
|
|
9793
|
+
7. 联网搜索:endpoint 带 userinfo(用户名或口令任一非空)⇒ `malformed` / `field: 'endpoint'`,句子含 `must not carry userinfo`、不回显用户名与口令;`https://@host/s`(空 userinfo)⇒ `honored`、值原样。
|
|
9794
|
+
8. **合并顺序订正**:§7 P-43 行「四源按 policy→user→project→local 后写覆盖前写」的顺序是错的,§15 与 0.52.0 段里「四源后写覆盖前写」没写顺序、也漏了 flag 来源。真序:**user → project → local → flag → managed(policy)**,managed 最后写、优先级最高;policy → user → project → local 是本包发往引擎的 hooks 数组的**拼接**顺序,不是合并标量的顺序。§15 / 0.52.0 段是已发段、不回改,§7 P-43 随版改。
|
|
9795
|
+
|
|
9796
|
+
### 100b. 缺席语义(逐键)
|
|
9797
|
+
|
|
9798
|
+
- **耐久 park 卡 `mandated`(A-2)**:待决列表行顶层严格 `true` 才在卡请求上带 `mandated: true`;缺席 / 其它值 ⇒ 键不在(不是「这一问不是强制的」,强制也可能只以缺席词 `ruleOffersAbsence === "mandated"` 表达 —— 端一律调 `approvalIsMandated`)。
|
|
9799
|
+
- **新名一律 present-iff**:`_sema_model_degraded` / `_sema_error_code` / `_sema_selected_model` / `_sema_salvaged_result` / `_sema_api_error_message` / `_sema_attached_files` / 十三个 `_sema_*` 通知位 / `terminal_reason` —— 没有值就不铸键,绝不铸值为 `undefined` 的键;请用 `Object.hasOwn` 或 `in` 判在场。旧名自本版起**恒缺席**:旧名缺席 ≠ 这件事没发生,读新名。
|
|
9800
|
+
- `_sema_model_degraded` 缺席 = 这条 run 没降过级,或引擎没报。
|
|
9801
|
+
- `_sema_error_code` 缺席 = 引擎没给码(被挡 / 停泊这两种终局写不出码;结局不知道;`failed` 事件没带码)—— **不是**「没出错」。
|
|
9802
|
+
- `_sema_selected_model` 缺席 = 结果记录没带非空串 `model`(`failed` 事件帧、409 拒绝信封、结果记录没带 / 空串 / 非串)。它与 `_sema_response_model`(供应商自报名,只在和请求 id 不同时在场)是两位:渲「这一轮是谁答的」时,`_sema_response_model` 在场用它,否则用 `_sema_selected_model`,两者都缺席时如实写「未知」,不要回落到请求参数里的模型名。
|
|
9803
|
+
- `_sema_salvaged_result` 缺席 = 没抢救到正文(同帧 `errors[0]` 带「no output survived the cutoff」尾注),或不是截断臂(其余失败从来不带)。
|
|
9804
|
+
- `_sema_api_error_message` 只在合成行上在场、恒 `true`;模型自己说的话从不带。
|
|
9805
|
+
- `terminal_reason` 缺席 = 不在 100a-1 的四形里,**不是**「run 没结束」;语义读 `_sema_error_code` 与 `errors[0]`。
|
|
9806
|
+
- `tool_use_result`:值与缺席语义同 §92 订正后的读法(两键恒在场的那一条换成这一键恒在场;看值与降级标记,不看键在不在)。
|
|
9807
|
+
- `_sema_attached_files` 缺席 = 引擎没带附带文件(缺席 / 空数组 / 非数组三形同答,**不铸空数组**);在场时原样,空路径的项留在数组里、但不产附件行。
|
|
9808
|
+
- system 行上 `timestamp` 缺席 = 本包不再补(**不是**「时刻未知」的断言);宿主喂进来的 system 帧自带的 `timestamp` 原样过境;`user` / `assistant` 行恒带。
|
|
9809
|
+
- `isMeta` 在本包产出的 CC 形消息上恒缺席;按它过滤的端,缺席按「不是 meta」读即与修前同义。
|
|
9810
|
+
- 十三个 `_sema_*` 通知位逐位:引擎没发 ⇒ 键不铸(不编空值);`_sema_recent_steps` / `_sema_edited_files` 只在非空数组时带;`_sema_seq` 只在数或串时带;`_sema_injected` 只在严格布尔时带;`_sema_partial` 只在 `true` 时带。
|
|
9811
|
+
- `memory_saved` 臂缺席**不等于**「这一轮没写记忆」:写入回执不成形(没有非空笔记 / `ok` 不是严格 `true` / 工具报错 / 回执缺席)时本包不发,那张 `Remember` 工具卡照常在转录面;工具卡的父调用 id 是空串时也不发(没有诚实的车道可挂,不落到主会话)。
|
|
9812
|
+
- 转录 `uuid`:全缺稳定键时是宿主 `ctx.uuid()` 的原值;工具结果行带 wire `eventId` 时是那个值(本包不验形)。
|
|
9813
|
+
- `mergedDisableAllHooks` 方法缺席 = 宿主没接第四条规则 ⇒ 维持 0.82.x 行为并告警一次,**不**拿逐来源读口近似;返回 `undefined` = 合并结果里没有这一键 = 没关(与 `false` 同判),不告警;抛错 ≠ 缺席:按合并值为真处置(managed 的照发),记 `debug` 日志,不出缺席告警。
|
|
9814
|
+
- `ApprovalCardRequest.argsUnavailable` 缺席 = 卡上的 `args` 就是工具的真实入参,**不是**「未知」;在场只有 `true`。`wireNote` 缺席 = 没有可说的降级事实(含「帧上没带入参但也没有 `argsOmitted`」一形:此时只有 `argsUnavailable`)。`ToolApprovalFrameOutcome.editRefused` 缺席 = 没发生拒发,在场只有 `true`,与 `decision: 'unresolved'` 同场。`FsApprovalOutcome` 的 `failed.editRefused` 缺席 = 没发生拒发(卡口本身失败、或别的段失败);在场只有 `true`,只出现在 `stage === 'card'` 上,绝不铸 `false`。
|
|
9815
|
+
- `opts.webSearchStamped` 缺席 = 宿主没明说 ⇒ 按 `webSearchVerdictFromEnv(env).kind === 'honored'` 推;从 settings 段采纳、env 缺席的宿主不传就会少报 WebSearch。
|
|
9816
|
+
- 注入件句里 `taskId` 缺席(`decision-pending` / `state-unknown` 可为 null)⇒ 整个 ` (id …)` 不出现,不铸占位;`<detail>` 原样转述,本包不改写(它来自引擎,可能含引擎自己的词)。
|
|
9817
|
+
- 通告码 `config.context_settings_swapped` 只带键、不带值;`config.secret_env_scrubbed` 的 `detail` 只列被剥掉的变量名、不带值;两码 audience 都是 `operator`,按 audience 分流的端不会把它们推给用户。
|
|
9818
|
+
|
|
9819
|
+
### 100c. 黑盒判据骨架
|
|
9820
|
+
|
|
9821
|
+
> 🔴 标「本版证明」的格在 **0.82.7** 产物上必须 FAIL、在 0.83.0 上必须 PASS;标「回归约束」的格两版都 PASS。请记下两次跑的产物标识(版本 + tarball shasum)。射程写在每格括号里;「纯包层」= 只装本包即可跑,不需要引擎。
|
|
9822
|
+
|
|
9823
|
+
**结果帧与合成行(K-1–K-5 / K-10)**
|
|
9824
|
+
|
|
9825
|
+
- **G-K1**(本版证明,纯包层):`runStream` 喂 `[{type:'done', result:{taskId:'t', sessionId:'s', terminal:{kind:'completed'}, result:'A', model:'pool-a', degraded:{from:'pool-a', to:'pool-b', reason:'rate_limit', atTurn:1}, stats:{turns:1}}}]` ⇒ 结果帧 `subtype:'success'`、`result:'A'`、`terminal_reason:'completed'`、`_sema_selected_model:'pool-a'`、`_sema_model_degraded.to:'pool-b'`;`Object.hasOwn(frame,'model')` 与 `Object.hasOwn(frame,'degraded')` 都为 false。判别点:0.82.7 上旧名在场、无 `terminal_reason`。
|
|
9826
|
+
- **G-K2**(本版证明,纯包层):`terminal:{kind:'failed', code:'limits.max_tokens_exceeded', message:'m'}`,结果记录另带 `result:'PARTIAL'` 与 `model:'pool-a'` ⇒ 结果帧 `subtype:'error_during_execution'`、`_sema_error_code:'limits.max_tokens_exceeded'`、`_sema_salvaged_result:'PARTIAL'`、`_sema_selected_model:'pool-a'`;`terminal_reason` 键缺席;`errorCode` / `result` / `model` / `degraded` 四个旧名都不在。同一条流里的合成 assistant 行 `_sema_api_error_message === true` 且没有 `isApiErrorMessage`。
|
|
9827
|
+
- **G-K3**(本版证明,纯包层):`[{type:'failed', errorCode:'cancelled', errorMessage:'x'}]` ⇒ 结果帧 `_sema_error_code:'cancelled'`,没有 `_sema_selected_model`、没有 `terminal_reason`;同码换成 done 帧(`terminal:{kind:'failed', code:'cancelled', message:'x'}`)、结果记录带 `model:'pool-a'` ⇒ `_sema_selected_model:'pool-a'`;结果记录带 `model:''` ⇒ 两臂都不铸。判别点:第二格在 0.82.7 上 FAIL(错误信封从不铸模型位)。
|
|
9828
|
+
- **G-K4**(本版证明,纯包层):臂 `{type:'tool_end_result', toolCallId:'c1', toolName:'Read', isError:false, output:'body'}` 喂 `toolEndResultToUserFrame` ⇒ 帧上 `tool_use_result === 'body'`、无 `toolUseResult`;同一只臂经交互适配器(`createWireToCcAdapter().adapt`,先喂同 id 的 `tool_use` 开卡)⇒ user 记录带 `tool_use_result`、**不带** `toolUseResult`,两出口都只带 `tool_use_result` 这一个结构化结果位。判别点:0.82.7 上交互记录带驼峰名。
|
|
9829
|
+
|
|
9830
|
+
**`terminal_reason`(R-1)**
|
|
9831
|
+
|
|
9832
|
+
- **G-T1**(本版证明,纯包层):码分别为 `limits.max_turns_exceeded` / `limits.max_cost_exceeded` / `output.invalid`,done 帧(`terminal:{kind:'failed', code, message:'m'}`)与 `{type:'failed', errorCode, errorMessage:'m'}` 事件各跑一遍 ⇒ `terminal_reason` 依次为 `max_turns` / `budget_exhausted` / `structured_output_retry_exhausted`,两条路径答案相同。
|
|
9833
|
+
- **G-T2**(回归约束,纯包层):码为 `limits.max_walltime_exceeded` / `limits.max_tokens_exceeded` / `classifier.denial_limit` / `cancelled` / `limits.max_bogus_exceeded`;再加 `terminal:{kind:'blocked'}`、`terminal:{kind:'paused', gate:{kind:'plan_review'}}`、没有终局记录(`result:{taskId:'t', stats:{turns:1}}`)⇒ `Object.hasOwn(frame,'terminal_reason') === false`(两版都 PASS:0.82.7 上这一键本来就不铸)。
|
|
9834
|
+
- **G-T3**(本版证明,纯包层):`terminalReasonForResult({type:'result', subtype:'error_max_turns', is_error:true})` ⇒ `'max_turns'`(按 subtype 判);`{type:'result', subtype:'error_during_execution', is_error:true, _sema_error_code:'limits.max_turns_exceeded'}` ⇒ `undefined`(读口不读码);扁平形回放行 `done{result:{status:'suspended', errorCode:'limits.max_turns_exceeded'}}` 投出的结果帧 ⇒ `subtype:'error_during_execution'` 且 `terminal_reason` 缺席;`{type:'result', subtype:'success', is_error:true}` ⇒ `undefined`;`null` / `'x'` / 读键即抛的 Proxy ⇒ `undefined` 且不抛。对 G-K1–G-T2 的每一只结果帧,读口答案 === 帧上的 `terminal_reason`(缺席对应 `undefined`)。判别点:0.82.7 上无此导出。
|
|
9835
|
+
|
|
9836
|
+
**system 行与 print 通知帧(K-6 / K-8 / K-9 / K-11–K-23)**
|
|
9837
|
+
|
|
9838
|
+
- **G-S1**(本版证明;射程:任何经本包 `adapt()` 的交互车道,读本包交出的行、宿主接收口之前):触发一次带附带文件的压缩(真引擎,或构造 wire `compacted` 帧带 `attachedFiles:[{path:'a.ts', chars:10, truncated:false}, {path:'', chars:0, truncated:false}]`)⇒ 本包交出的 `compact_boundary` 行带 `_sema_attached_files`(与引擎给的清单逐项同,空路径项保留)、**不带** `attachedFiles` / `timestamp`;恰一条 `a.ts` 的「Referenced file」附件行(与 0.82.7 逐字同),空路径不产;同一轮的 user / assistant 行恒带 ISO `timestamp`;任何一行都没有 `isMeta`。🔴 宿主自己补过戳的屏面不在射程内。
|
|
9839
|
+
- **G-S2**(本版证明;射程:纯包层,0.83.x;0.84.0 起第一格改判「不产出」):把 0.82.x 形的 `system/compact_boundary` 行(只带 `attachedFiles:[{path:'a.ts', chars:10, truncated:false}]`)直接喂 `adapt()` ⇒ 照旧产出 `a.ts` 的「Referenced file」附件行;同一行同时带 `_sema_attached_files:[{path:'b.ts',…}]` 与 `attachedFiles:[{path:'a.ts',…}]` ⇒ 只产出 `b.ts`(新名优先)。
|
|
9840
|
+
- **G-N1**(本版证明,纯包层):`taskNotificationToPrintFrame({task_id:'t1', status:'killed', summary:'s', stoppedBy:'user', resumable:true, exitCode:137, seq:3, injected:false, task_type:'background_agent'})` ⇒ 帧 `status:'stopped'`、`_sema_stopped_by:'user'`、`_sema_resumable:true`、`_sema_exit_code:137`、`_sema_seq:3`、`_sema_injected:false`、`_sema_task_type:'background_agent'`;帧上十三个旧名一个都不在;`unregisteredPrintNotificationKeys(frame)` ⇒ `[]`;`PRINT_NOTIFICATION_FIELD_MATRIX.map(r => r.field)` 含十三个新名、不含旧名。射程延伸(真部署,`-p --output-format stream-json`,宿主经本函数出帧):一个被用户停掉的后台子代 ⇒ stdout 上的 `system/task_notification` 帧同形。
|
|
9841
|
+
|
|
9842
|
+
**记忆写入(K-7 / K-24)**
|
|
9843
|
+
|
|
9844
|
+
- **G-M1**(本版证明,纯包层):交互适配器依次喂 `Remember` 的开卡 `tool_use` 与收口臂(结构化结果 `{type:'memory-saved', ok:true, note:'N1'}`,`isError:false`)⇒ 转录面零 `memory_saved` 行(与把 `ok` 改成 `false` 的同一串帧产出的转录逐字节同);chrome 面恰一条 `memory_saved`,键集恰 `kind` / `laneProof` / `id` / `notes`,`notes` 深等于 `['N1']`,`laneProof.lane === 'main'`;同一组 wire 事件独立投影两遍(两遍各经投影口)⇒ `id` 同值(按 wire `eventId` 取键,见 100a-2),且是小写 8-4-4-4-12 形。
|
|
9845
|
+
- **G-M2**(本版证明,纯包层):工具报错 / `ok` 不是 `true` / `note` 为空串或非串 / 收口臂没有结构化结果 ⇒ 零 `memory_saved` 事件、零转录行,工具卡照常;开卡带父调用 id `'p1'` ⇒ `laneProof` 为 `{lane:'subagent', parentToolCallId:'p1'}`;父调用 id 为空串 ⇒ 零事件。
|
|
9846
|
+
- **G-M3**(本版证明;射程:真部署、宿主已按 100a-2 接臂):让模型用 `Remember` 记一条笔记 ⇒ 屏上「Saved 1 memory」那一行照常出现、只出现一次(durable 重放后仍一次),落盘行上没有 `writtenPaths` / `isMeta`。🔴 未接臂的宿主上这一行消失 —— 那是 100y 第 1 条要先做的事,不是本包的缺陷。
|
|
9847
|
+
|
|
9848
|
+
**转录 id(U-1)**
|
|
9849
|
+
|
|
9850
|
+
- **G-U1**(本版证明,纯包层):同一份已投影好的帧序列(帧上带 `uuid`)喂两只新适配器 ⇒ 两遍的转录 `uuid` 序列逐个相等,每一枚都是小写 8-4-4-4-12,且不含 `wid_` / `wseq_` / `wtc_`;0.82.7 上两遍同样相等、但是前缀形(形那一半 FAIL)。🔴 把同一组 wire 事件**重新投影**两遍不在承诺内(100a-6 跨重投射程):那样只有带 `eventId` 的工具结果行与 `memory_saved` 的 `id` 两遍同值。
|
|
9851
|
+
- **G-U2**(本版证明;射程同上):一次流式回答被 `text_end` 收口 ⇒ 盘上那条文本行的段身份与**同一段**的 `text_segment_end.segmentId` 相等,且都是 UUID 形;盘上行的 `uuid` ∈ 段末事件的 `committedUuids`。
|
|
9852
|
+
- **G-U3**(回归约束;射程:宿主已换钉本版、盘上有旧版本写的会话):用新版本续跑一场旧版本留下的会话 ⇒ 续跑正常,旧行的前缀形 id 原样保留,新行接在旧行后面(父子链可解、会话列表列得出、消息计数不重复)。
|
|
9853
|
+
- **G-U4**(本版证明,纯包层):`deriveTranscriptId({id:'7'}, ctx)` / `deriveTranscriptId({seq:7}, ctx)` / `deriveTranscriptId({toolCallId:'7'}, ctx)` ⇒ 三个互不相同的 UUID 形串;`ctx.uuid` 每次返回不同值时,三次调用各跑两遍逐个相等,且没有一枚等于 `ctx.uuid` 交出的值;`deriveTranscriptId({}, ctx)` ⇒ 恰是 `ctx.uuid()` 当次的返回值。
|
|
9854
|
+
- **G-U5**(本版证明,纯包层):喂 `runStream` 两条各以「结局不知道」收尾的流,期间把 `Date.now` 钉在同一个值 ⇒ 两条合成终局行的 `uuid` 都是 UUID 形且互不相同,`session_id` 是开流时钉的会话;0.82.7 上两行同为 `err-<同一串>`(红基线)。
|
|
9855
|
+
|
|
9856
|
+
**hooks(H-1;射程:宿主已实现 `mergedDisableAllHooks`、工作区已受信、managed 设置里无 hooks 相关开关,除非格内另说)**
|
|
9857
|
+
|
|
9858
|
+
- **G-H0**(本版证明,纯包层):`installHost({ settings: port, log })`,`port.shouldSkipHookDueToTrust = () => false`,`port.getSettingsForSource` 对 `policySettings` / `userSettings` / `localSettings` 各回一条带 `PreToolUse` 的 `hooks`(命令 M / U / L),`port.mergedDisableAllHooks = () => true` ⇒ `hooksForWire().PreToolUse` 只含 M;改回 `() => false` ⇒ 含 M、U、L;删掉这个方法 ⇒ 含 M、U、L,且 `log` 恰收到一条点名 `mergedDisableAllHooks` 的 `warn`,再调多次不重复;方法抛错 ⇒ 只含 M,零 `warn`,`debug` 日志里有一条带异常原文的记录。
|
|
9859
|
+
- **G-H1**(回归约束;时间射程:0.82.7 上判别格同为「各来源都发」,本条两版都 PASS —— 它钉的是「不许用任一为真近似」):用户设置 `{"disableAllHooks": true, "hooks": {"PreToolUse": [ …命令 A… ]}}`,本地设置 `{"disableAllHooks": false, "hooks": {"PreToolUse": [ …命令 B… ]}}` ⇒ 发出的请求 `settings.hooks.PreToolUse` 含 A 与 B。
|
|
9860
|
+
- **G-H2**(本版证明):只在本地设置写 `"disableAllHooks": true`,managed 设置有 `PreToolUse` 条目 M,用户设置有条目 U ⇒ 请求里 `settings.hooks.PreToolUse` 只有 M、不含 U。
|
|
9861
|
+
- **G-H3**(回归约束):managed 设置写 `"disableAllHooks": true`(不论别的来源写什么)⇒ 请求里没有 `settings.hooks`。
|
|
9862
|
+
- **G-H4**(本版证明):用户设置写 `"disableAllHooks": true`,再设一个会话目标(`/goal …`)⇒ 请求里 `settings.hooks.Stop` 不含会话目标那一条。
|
|
9863
|
+
- **G-H5**(本版证明;射程:非交互车道、显式 `--final-verify`):用户设置写 `"disableAllHooks": true` 且有 Stop hook ⇒ 请求带 `finalVerification`、不出「让位」告知;把 `disableAllHooks` 去掉 ⇒ 不带、出让位告知。
|
|
9864
|
+
- **G-H6**(本版证明,告警那一半;行为那一半两版同;射程:宿主**未**实现读口):用户设置写 `"disableAllHooks": true` ⇒ 行为同 0.82.x(照发),宿主日志里恰出现一条点名 `mergedDisableAllHooks` 的 `warn`,连发多轮不重复。
|
|
9865
|
+
|
|
9866
|
+
**退化审批卡(A-1)**
|
|
9867
|
+
|
|
9868
|
+
- **G-A1**(本版证明;射程:真部署上 Write 的入参超过帧的字节上限、帧先于这只调用的 `tool_start` 到达或流上没有它的入参):卡口收到的请求带 `argsUnavailable: true`;卡口回「编辑后批准」⇒ 服务端观察不到 `POST /v1/tool-approvals/:id/respond`,这只审批仍在待决列表上;宿主拿到的结局 `{ decision: 'unresolved', editRefused: true }`,屏上出现告知句一次。纯批准 ⇒ 照常一次 respond `allow`、体里无 `updatedInput`。纯包层等价形:流内帧 `{ approvalId, toolName: 'Write', argsOmitted: true, message: 'approve write to "/tmp/big.ts"?' }`、事件流无这只调用的入参,卡回 `{ kind: 'allow', updatedInput: { file_path: '/tmp/big.ts', content: '…' } }` ⇒ respond 零次(0.82.7:respond `allow` 一次、体里带那份 `updatedInput`)。
|
|
9869
|
+
- **G-A2**(本版证明):同上一形的 Write 卡 `wireNote` 逐字等于 100a-4 第 1 句;超上限且问句解不出 path 的 Bash 卡逐字等于第 2 句;两者都不含 `reconstructed`。
|
|
9870
|
+
- **G-A3**(本版证明;射程:待决行 `input` 被上游换成超限标记 —— 耐久停泊的 Write 入参 JSON 超过待决行的存储上限 —— 且卡经耐久腿出、流上没有入参,例如重开已停泊的审批):卡口收到 `args` 为 `{}`、`argsUnavailable: true`、`wireNote` 逐字等于第 4 句;卡口回改写 ⇒ 服务端观察不到 `POST /v1/approvals/:sessionId/decide`,待决行仍在,结局 `failed` / `stage:'card'` / `editRefused: true`;纯批准 ⇒ 一次 decide `approve`、体里无 `updatedInput`。`input` 缺席或 `null` 同理,说明句换第 3 句;`input` 为 `{ truncated: true, bytes: 9001, extra: 1 }` 这类近似形 ⇒ 照旧当入参渲、不带 `argsUnavailable`。
|
|
9871
|
+
- **G-A4**(本版证明,纯包层):`approvalResolutionOf({ kind: 'failed', stage: 'card', reason: 'r', editRefused: true })` ⇒ `not_sent` / `edit_refused`(0.82.7:`not_sent` / `card_unavailable`);同一对象 `editRefused: 'true'` 或缺席 ⇒ 仍 `card_unavailable`。
|
|
9872
|
+
- **G-A5**(本版证明,纯包层 + 真部署复核):耐久腿以待决行 `{…, mandated: true}` 出卡 ⇒ 卡请求 `mandated === true` 且 `approvalIsMandated(req) === true`;行上 `mandated: false` / `'true'` / 只在 `riskDescriptor` 里 ⇒ 卡请求无这一位。真部署(服务端 ≥7.101.0):强制卡 park 后 `GET /v1/approvals` 行带 `mandated: true` ⇒ 端上 park 卡判为强制。0.82.7 上第一格 FAIL(卡请求无这一位)。
|
|
9873
|
+
|
|
9874
|
+
**注入件句(E-1)**
|
|
9875
|
+
|
|
9876
|
+
- **G-E1**(本版证明;射程:交互车道、宿主传 `origin: 'injected'` 且挂了续跟;计划批准后跟进消息撞上刚恢复的那一轮):屏上那一行以 `A follow-up message sema sent on its own (not one you typed)` 开头,含 `sema is following that reply` 与 `nothing for you to do now`,**不含** `system notification`,也不含独立的词 `run`。
|
|
9877
|
+
- **G-E2**(本版证明;射程同上,但那一轮随后停在一道决断上、宿主已把卡呈上):出现 100a-3 第 10 句;答卡后跟进消息被送出(宿主回灌),不再出现第 10 句。
|
|
9878
|
+
- **G-E3**(本版证明;射程:会话被一轮占着、屏上没有能答的卡,例如续跑上下文读不出 / 引擎不认得那一轮):出现第 12 句;之后**没有**任何「正在发 / 会发」的后续,也不出现 `send it again`。
|
|
9879
|
+
- **G-E4**(本版证明;射程:任何注入件自愈句,`<detail>` 段除外 —— 那是引擎原话):整行零 `system notification` / 独立词 `run` 或 `runs` / `engine` / `steer` / `park` / `turn` / `claim` / `checkpoint` / `wake` / `inject`。判别点:0.82.7 上旧句都带 `system notification` 与 `run`。
|
|
9880
|
+
- **G-E5**(本版证明,纯包层):对 100a-3 的十二种结局各构造一只 `SelfHealOutcome`(`taskId:'T1'`),`activeRunSelfHealRow(outcome, null, undefined, 'injected', follow)` ⇒ 整行逐字等于新句(`<id>` 代 `T1`);同一只结局不传 `origin` ⇒ 与 0.82.7 逐字节同(用户形不动);`copy.rowFor` 回一个串 ⇒ 原样用它。
|
|
9881
|
+
|
|
9882
|
+
**联网搜索(W-1–W-3)**
|
|
9883
|
+
|
|
9884
|
+
- **G-W1**(本版证明,纯包层):`webSearchVerdictFromEnv({SEMA_WEBSEARCH_PROVIDER:'brave', SEMA_WEBSEARCH_MAX_RESULTS:'0'})` ⇒ `malformed`、`source: 'env'`、`field: 'maxResults'`;同一 env 加 `SEMA_LIVE_BASEURL` 调 `resolveLiveInitToolFace([], env)` ⇒ 回落 init 名单不含 `WebSearch`(0.82.7:回落面跟随旧读口,旧读口丢掉这一键照发 ⇒ 含 `WebSearch`)。
|
|
9885
|
+
- **G-W2**(本版证明,纯包层):`judgeWebSearchSettings({provider:'searxng', endpoint:'https://alice:pw@gw/s'})` ⇒ `malformed`、`field: 'endpoint'`,`webSearchVerdictMessage(verdict)` 含 `must not carry userinfo`、不含 `alice` / `pw`;`https://u@gw/s` 与 `https:u:p@gw/s` 同拒;`https://@gw/s` ⇒ `honored`、`settings.endpoint` 逐字原样;env 车道 `SEMA_WEBSEARCH_ENDPOINT` 同判。provider 缺席 / 非串 / 认不出三形的句子分别含 `(it is missing)` / `(it is not a string)` / `(it is not one of them)`。🔴 射程:对 7.100.x 服务端,本包拒而服务端仍采纳;「本包句子与服务端 wire 句逐字相同」这一半对 7.101.0 已验(用 7.101.0 发布标签源码构建的判官逐字对拍一致);对 7.100.x 不适用。
|
|
9886
|
+
- **G-W3**(本版证明,纯包层):`resolveLiveInitToolFace([], {SEMA_LIVE_BASEURL:'http://x'}, {webSearchStamped:true})` ⇒ 含 `WebSearch`;`resolveLiveInitToolFace([], {SEMA_LIVE_BASEURL:'http://x', SEMA_WEBSEARCH_PROVIDER:'brave'}, {webSearchStamped:false})` ⇒ 不含。
|
|
9887
|
+
|
|
9888
|
+
**公面与码册(W-1 / X-1 / X-2 / C-1)**
|
|
9889
|
+
|
|
9890
|
+
- **G-X1**(本版证明,纯包层):`Object.keys(await import('@sema-agent/client-core'))` 去掉**所有以 `_` 开头的名字**(测试钩:35 个 `__*ForTests`、22 个 `_*ForTest`,另有 `_resetLiveQuestionStore` / `_resetUltracodePreset` 两个不带后缀)后恰 **1238** 名(0.82.7:1240),含 `terminalReasonForResult`,不含三只旧读口;`ADAPTER_DIVERGENCES.length === 12`(0.82.7:10)。型面:一个 `.ts` 文件写 `import type { SemaNestedUsageByTask } from '@sema-agent/client-core'` ⇒ `tsc` 报找不到该导出;`ClientVerbSpec` / `CatalogCacheEnvelope` / `PeerFrameLane` 同;`import type { LiveInitToolFaceOptions, MemorySavedChromeEvent } from '@sema-agent/client-core'` ⇒ 编译通过。
|
|
9891
|
+
- **G-C1**(本版证明,纯包层):`ENGINE_NOTICE_CODES.length === 71`(0.82.7:69);`engineNoticeInCatalog('config.context_settings_swapped')` 与 `engineNoticeInCatalog('config.secret_env_scrubbed')` 为真、`noticeAudienceOf` 都答 `'operator'`;前者紧跟 `config.models_swapped`,后者紧跟 `config.peer_lane_unmounted`。
|
|
9892
|
+
|
|
9893
|
+
包层行为另钉在各自的门里(结果帧 / 记忆写入 / 合并关停 / 审批卡诚实 / 自愈文案 / 转录 id / 联网搜索判决 / 通告码册,门名见 README Guards)。
|
|
9894
|
+
|
|
9895
|
+
### 100d. 端上会红的已知读点
|
|
9896
|
+
|
|
9897
|
+
**不改代码、只修掉编译错就升级的端会看到**(逐项的改法见下):「Saved N memories」那一行消失(K-24);凭旧旗 `isApiErrorMessage` 做的合成行凭据洗消整段跳过(K-10);沿用驼峰名 `toolUseResult` 的富卡与分类退化(K-1);`-p` stdout 结果帧键改名、截断 run 的 `result` 从抢救出的正文变成错误句(K-3 / K-5);`-p` 完成通知帧十三个键改名(K-11–K-23);注入件自愈句换措辞(E-1);入参超上限的 Write / Bash 审批卡变成通用卡、改写被拒(A-1);新行的转录 id 变 UUID 形(U-1);print 车道 init 帧在 settings 段采纳 WebSearch 时缺名(W-2)。四端今天的钉版都不会自动升到 0.83.0(minor),以上只在主动换钉时出现。
|
|
9898
|
+
|
|
9899
|
+
坐标是各端仓内路径,省去开头的 `src/`(验收脚本省去 `scripts/`)以免与本包路径混读;来自 [8200] / [8210] / [8216] 与本版各件在各端主干上的只读检索(终端 09-23、管理台 09-24、验收方 09-25 的读数);行号会漂,以各端现状为准。改法里「两名并读」一律新名优先。
|
|
9900
|
+
|
|
9901
|
+
**终端**
|
|
9902
|
+
|
|
9903
|
+
- K-1 `toolUseResult`(42 处生产读点 / 16 处测试读点,19 个文件,走 CC 渲染链):在 `sema/upstreamBridge.ts` 转录分支 `yield msg` 之前统一起别名一次(`tool_use_result` 在场且 `toolUseResult` 缺席时补上),与既有 `remote/sdkMessageAdapter.ts:205 / 220` 同法;渲染链不用改。
|
|
9904
|
+
- K-3 `errorCode`:`cli/print.ts:375`、`sema/printStreamJsonContract.ts:95`、`sema/terminalOpenSetCode.ts:73`、`sema/checkpointReopenedCopy.ts:48`、`sema/modelSwitchFallbackStore.ts:163` → 改读 `_sema_error_code`(读旧转录处两名并读)。
|
|
9905
|
+
- K-4 / K-4′ `model`:`sema/printStreamJsonContract.ts:1025` → `_sema_selected_model`;`sema/upstreamBridge.ts:3330` 读错误帧的那一处此前是死读,改读 `_sema_selected_model` 后即为活读([8235],改读、不删)。
|
|
9906
|
+
- K-5 `result`:`sema/printStreamJsonContract.ts:1198` / `:1226` 翻面时改为 `out.result = msg._sema_salvaged_result ?? <errors 拼接>`(`-p` stdout 的形不变);`cli/print.ts:398` / `:1193` 与 `sema/seamQueryEngine.ts:1783` 读的是翻面前的帧,先改读新键。
|
|
9907
|
+
- K-7 / K-24:`components/messages/SystemTextMessage.tsx:708`(读 `writtenPaths`;另按子型分派 `:72`、`components/messageActions.tsx:45`)→ chrome 分支消费 `memory_saved` 臂,用内部工厂(`utils/messages.ts:4635`)还原成行,行 uuid 用 `id`。 🔴 `sema/upstreamBridge.ts:3166` 的 chrome 分派兜底臂对未知 kind 返回空 ⇒ 不加这一臂的分支,「Saved N memories」那一行换钉当天静默消失(Remember 工具卡自己又刻意不渲确认)。
|
|
9908
|
+
- 🔴 K-10(安全面):`sema/apiErrorMessageWash.ts:32-33` 只在 `isApiErrorMessage === true` 时对合成行正文做凭据洗消 —— 不改读则升级后洗消整段跳过,报错正文里的 URL 用户名口令与 `api_key=…` 类值原样进 stdout 帧与落盘转录。另两处读点 `seam/adapter/runStream.ts:333`、`sema/printStreamJsonContract.ts:831`。改法:在 `seam/adapter/runStream.ts` 入口把新键别名成内部名一次(下游不动),并补一格「带凭据的报错 ⇒ stdout 与落盘转录都已洗净」的测试。
|
|
9909
|
+
- K-11–K-23:`sema/seamQueryEngine.ts:1722 / 1738` 经 `taskNotificationToPrintFrame` 直写 stdout,自身零读点;但 `-p` 输出上的键名随之变,读这条 stdout 的外部集成方要改读 `_sema_*`。
|
|
9910
|
+
- R-1:`sema/printStreamJsonContract.ts:94` 的本地映射函数与 `:1238` 调用点 → 改读帧上的 `terminal_reason` 或调本包 `terminalReasonForResult`,删本地映射。
|
|
9911
|
+
- U-1:`verify/_committed-segment-correction-live.mjs:348`(`/#segment\d+$/`)与 `:358-359`(`startsWith('wid_')`)换钉后**必红**,且「壳自铸的裸 uuid 造不出这个签名」这条判别力随换形消失 → 改比相等(盘上段身份 === 同一段 `segmentId`;盘上行 `uuid` ∈ `committedUuids`)。`utils/sessionStorage.ts:998-999` 注释里的 `wseq_<seq>` 改口为「由 seq 派生的 UUID」(复合键 `<sessionId>\0<uuid>` 仍然必要);`sema/committedSegmentCorrection.test.ts:2164-2169` 用字面串当 uuid 夹具,不受影响。
|
|
9912
|
+
- E-1:`sema/seamQuerySteerFollow.test.ts:851`(经 `:476` 的 `FOLLOWING_ROW = /sema is following that run/` 断言注入形续跟句)换钉后**必红** → 注入形另立锚 `/sema is following that reply/`,`FOLLOWING_ROW` 留给用户形。`wire-anchor-registry.mjs:3133-3155` 的文案锚不会红(用户形仍逐字铸那两句),但注入形那一半从此无锚 → 补一枚 `sema is following that reply and will show whatever it asks for next`。端自铸的两句同族句(`utils/handlePromptSubmit.ts:727` 回灌用尽、`sema/lostInjectionNotice.ts:78` 计划复核结局丢失)仍用旧主语,建议对齐(不阻塞)。
|
|
9913
|
+
- A-1:`sema/liveToolApprovalWire.ts:635` 按 `argsUnavailable === true` 走通用确认卡,而通用卡不渲 `wireNote` ⇒ 升级后入参超上限的 Write / Bash 卡从专属卡换成通用卡,100a-4 的说明句在终端上看不到 → **请让通用确认卡也渲 `wireNote`**(悬挂审批那一句同样受益)。`sema/askParkReopen.ts:1460-1470` 以 `out.kind !== 'failed'` 判成功 ⇒ 耐久腿拒发会走「失败 ⇒ 重跑整链」一次,第二次失败的上屏句说「not accepted by the engine」,对拒发这一形不准(那不是引擎拒的,包侧什么都没发)→ 见 `editRefused === true` 直接重出卡、换措辞。 通用确认卡只渲 ≤120 字符的入参预览,路径超过约 117 字符会被截,而说明句写的是「只恢复出了目标路径」—— 两者一起看才完整。
|
|
9914
|
+
- W-1:09-23 主干上 `sema/seamQuery.ts:96 / 1212`、`sema/seamQueryEngine.ts:84 / 545`、`sema/webSearchKeySlot.ts:41-42 / 272 / 281` 仍 import 已退出公面的旧三读口 ⇒ 编译期即红 → 按 §99a S-1 换读;已换读则零改动。
|
|
9915
|
+
- W-2:`sema/printStreamJsonContract.ts:1494` 调 `resolveLiveInitToolFace(process.argv.slice(2), process.env)` 未传第三参 → 宿主从 settings 段采纳 WebSearch 时传 `{ webSearchStamped: true }`。
|
|
9916
|
+
- H-1:装 `SettingsPort` 处实现 `mergedDisableAllHooks()`,返回本机 hooks 执行器读的同一个合并值(不实现 ⇒ 行为不变,日志一条 `warn`)。
|
|
9917
|
+
|
|
9918
|
+
**管理台**
|
|
9919
|
+
|
|
9920
|
+
- K-10:`lib/chat/transport/engine-transport.ts:791`(让位臂读 `isApiErrorMessage === true`)→ 改读 `_sema_api_error_message`,休眠读点同批改([8216];这一读点吃的是引擎车道活流,只读新名即可)。不改的症状:让位臂不再拦截,合成的失败正文进普通回复,已有流式文本时可能被截头、并与失败卡重复呈现。
|
|
9921
|
+
- K-5:`lib/chat/transport/turn-mapping.ts:553` 失败行收口的第三顺位回落 `message.result` —— 引擎车道转录面没有结果帧、到不了 → 删([8216])。
|
|
9922
|
+
- E-1:只以用户形调 `activeRunSelfHealRow`(`engine-transport.ts` 里 `activeRunSelfHealRow` 的调用点,不传 `origin`),不受影响。
|
|
9923
|
+
|
|
9924
|
+
**网页端**(未表态,窗 09-26)
|
|
9925
|
+
|
|
9926
|
+
- K-5:`turn-mapping.ts:341` 错误分支读 `message.result` —— 本包转录面上没有结果帧,引擎车道上跑不到(推断,把握高)→ 请核实后删掉,或改读 chrome 结局。
|
|
9927
|
+
- K-24:chrome 臂账本与分派(`chrome-arm-ledger.ts:44`、`turn-mapping.ts:450`)对不认识的臂打 `unsupported_event` 警告 ⇒ 升级后每次记忆写入多一条控制台警告、确认行不显示 → 在臂账本登记 `memory_saved` 并决定显示与否。
|
|
9928
|
+
|
|
9929
|
+
**桌面端**(未表态,窗 09-26)
|
|
9930
|
+
|
|
9931
|
+
- K-8:`main/session-host.ts:2456` 的 `??=` 补到达时戳 —— 保持不变(本来就是缺了才补),system 行从此由它补。
|
|
9932
|
+
- K-24:`main/session-host.ts`(`onChrome` 里按 `CHROME_EVENT_KINDS` 过滤那一处)只把四只渲染位臂(`CHROME_EVENT_KINDS`)转给渲染层,`memory_saved` 不在其中;本包座位层 `checkSeatChromeEnvelope` 也不把它当渲染位臂放行 ⇒ 要显示记忆写入确认,须在主进程侧还原成行(或另议扩座位契约与渲染层,两边同批)。
|
|
9933
|
+
|
|
9934
|
+
**验收脚本**
|
|
9935
|
+
|
|
9936
|
+
- K-3:`gate/gatelib.py:671` 读 `-p` 结果帧的 `errorCode`(0.83.0 后响亮报 MISSING,不会静默)→ 改读 `_sema_error_code`(两名并读)。
|
|
9937
|
+
- 24 项在各围栏里的读点已由验收方分类([8210]):发版当天受影响 1 处(一条默认不开的可选活腿);围栏重钉到内含 0.83.0 的终端时,有 5 个会**静默**失效(判据恒真或只进记录)→ 重钉之前先修这 5 个,判据锚按本版发布帖的机读对照改。
|
|
9938
|
+
- E-1:`repro/c14-plan-review-infinite-yes-loop/lib.mjs:48` 的 `NOTIF_QUEUED_RE`(用于 `probe-infinite-yes-loop.mjs:107,108,138`、`probe-single-press-observe.mjs:76`)在 0.83.0 上恒判「没看到」(假阴)→ 改成 `/is on hold:.*waiting on a decision.*kept the message queued/is`,或按版本二选一;`repro/…-declined-text-and-inflight-retest/probe-inflight-notification.sh:114` 的检出位加 `follow-up message sema sent on its own` 一支。
|
|
9939
|
+
- U-1:任何按 `wid_` / `wseq_` / `wtc_` / `#segment<n>` 认形的判据 → 按 100a′ 改比相等。
|
|
9940
|
+
|
|
9941
|
+
### 100e. 同名影子导出:本包侧对账(CC-176)
|
|
9942
|
+
|
|
9943
|
+
本包从 0.83.0 起多一道常驻门,从本包一侧读四个消费本包的端(终端、桌面端、网页端、管理台)的产品源码,专问一件事:**端上有没有自己声明一个与本包公面运行时导出同名的顶层导出**。同名 = 同一件公共逻辑住了两处(本包账面上已经有了,端上那份还在跑),两份各自改、互不知情。
|
|
9944
|
+
|
|
9945
|
+
**读的是哪一刻:** 本机该端克隆的 `origin/main`(没有这个 ref 时退回已提交的 HEAD);只读,不替端 fetch,不看工作区。门对每端打印所读的 ref、提交号和提交日期;所读提交早于 7 天时另打一行陈旧告警(不判红),这一端的结果只代表那一刻,刷新该端的克隆后重跑才是现势。
|
|
9946
|
+
|
|
9947
|
+
**判据(四端都适用):**
|
|
9948
|
+
|
|
9949
|
+
- 算:端产品源码(终端 `src/`、桌面端 `src/`、网页端 `ui/` 与 `bff/`、管理台 `src/`;测试文件与 `.d.ts` 除外)里的 `export const / let / var / function / class / enum / namespace`、`export { local as Name }`,以及指向扫描面外文件的具名转口,只要名字 ∈ 本包公面运行时导出名。
|
|
9950
|
+
- 不算:从本包转口(`export { X } from '@sema-agent/client-core'`,含子路径),这正是推荐形;`export type` / `interface` / `declare`;`export default`;从别的包转口。
|
|
9951
|
+
- 新增一条同名影子 ⇒ 本包门红。端上的正解三选一:**删本地实现,改从本包导入 / 转口**;两边不是一件事 ⇒ **改名**;本包缺一块、端才搬不动 ⇒ 在本包立票补对应的导出。
|
|
9952
|
+
- 豁免行不常驻:到期版本到了即红,端删掉那份而行还在也红 —— 端退役一条后,请在本包的发布帖里点一下,本包同批删行。
|
|
9953
|
+
|
|
9954
|
+
**基线存量(09-25 读数;全部登记,到期 0.85.0):**
|
|
9955
|
+
|
|
9956
|
+
*终端*(16 条;所读 `origin/main` 4e593722,09-23)
|
|
9957
|
+
|
|
9958
|
+
| 名字 | 坐标 | 与本包那份 | 建议 |
|
|
9959
|
+
|---|---|---|---|
|
|
9960
|
+
| `isTerminalStatus` | `components/tasks/taskStatusUtils.tsx:11` | 不是一件事:端判任务面板三词终态,本包判引擎 run 状态闭集(含 `blocked`) | 改名 |
|
|
9961
|
+
| `eventToSdkMessage` / `turnEndUsage` | `seam/adapter/downstream/eventToSdkMessage.ts:28` / `:45` | 同一函数对象,只做类型转写 | 改名,或把类型转写挪到调用点后删掉这层 |
|
|
9962
|
+
| `runStream` | `seam/adapter/runStream.ts:573` | 投影委派本包,外加宿主记账与 chrome 缺省出口 | 改名;其中的记账旁观是否三端公共,另议 |
|
|
9963
|
+
| `makeHitlCanUseTool` / `backendDeny` | `seam/adapter/upstream/hitlBridge.ts:54` / `:63` | 委派本包,只做类型转写 / 类型断言 | 改名 |
|
|
9964
|
+
| `attemptActiveRunSelfHeal` | `sema/activeRunSelfHeal.ts:126` | 委派本包,外加测试窗旋钮 | 改从本包导入,测试窗经 `deps.cancelReleaseWaitMs` 传 |
|
|
9965
|
+
| `observedFileHistoryCapture` / `fileHistoryCaptureDoctorDetail` | `sema/fileHistoryCaptureCapability.ts:56` / `:71` | 本包 0.82.1 出正式版之前的先行版:读数形、签名、措辞都不同 | 依赖抬到 ≥0.82.1 后改从本包导入,判定走 `fileHistoryCaptureMode`;开关显隐谓词本包暂无对应(本包判定今天只认 `off` / `on-always`) |
|
|
9966
|
+
| `parseLocalAllowRule` | `sema/localAllowRuleWrite.ts:172` | 委派本包,注入终端自己的规则匹配器 | 改名 |
|
|
9967
|
+
| `persistedRulesLaneAvailable` / `persistedRulesGovernanceAvailable` | `sema/persistedRulesWire.ts:134` / `:142` | 委派本包,只补缺省 base | 改从本包导入并在调用点传 base,或改名 |
|
|
9968
|
+
| `reopenPlanReviewCard` | `sema/planReviewReopen.ts:139` | 委派本包,注入呈现回执窗与投递口 | 改名 |
|
|
9969
|
+
| `drainingRetryDelayMs` | `sema/seamQuery.ts:338` | 委派本包,只透传测试退避梯 | 改从本包导入,退避梯经 `ladder` 参传;或改名 |
|
|
9970
|
+
| `CANCEL_MESSAGE` / `REJECT_MESSAGE` | `utils/messages.ts:232` / `:234` | 与本包逐字节相同 | 改从本包转口;若要保留本地原件,需在到期前另定处置 |
|
|
9971
|
+
|
|
9972
|
+
*桌面端*:0 条(所读 `origin/main` 5c996117,08-13 —— 本机克隆陈旧,只代表那一刻)。成片导出是对本包的具名转口,属正形。
|
|
9973
|
+
|
|
9974
|
+
*网页端*(6 条;所读 `origin/main` a668336a,09-19)
|
|
9975
|
+
|
|
9976
|
+
| 名字 | 坐标 | 与本包那份 | 建议 |
|
|
9977
|
+
|---|---|---|---|
|
|
9978
|
+
| `readDenialLimitFallback` | `lib/engine/engine-approval-evidence.ts:301` | 判据近乎一致:端入参是容器、按整数判;本包入参是那个值本身、按有限非负数判 | 改从本包导入:`readDenialLimitFallback(container?.denialLimitFallback)` |
|
|
9979
|
+
| `respondToQuestion` | `lib/engine/engine-decision-verbs.ts:510` | 不是一件事:端是会话传输层「答问题」动词(分三路);本包是流内问题的一次性应答口 | 改名;流内问题那一路是否改走本包应答口,另议 |
|
|
9980
|
+
| `buildTaskRequest` | `lib/engine/engine-turn-legs.ts:619` | 一行转调端内构造器(后者内部调本包同名函数),签名不同 | 改名,或删这层、调用点直调端内构造器 |
|
|
9981
|
+
| `classifyRulesFailure` / `listAllPersistedRules` | `lib/engine/rules-wire.ts:91` / `:122` | 同一件事,判据已经分叉:本包那份多出若干失败臂(503 按 `committed` 分可重发与结局不定、405 分两格),「规则店不在」只认机器码、不认 501 状态码;列全时对坏形页体按判不出处理,并剥掉调用方传入的游标 —— 端那份都没有 | 改从本包导入,渲染层接住多出来的失败臂(优先) |
|
|
9982
|
+
| `subagentResumeAvailable` | `lib/engine/subagent-resume-wire.ts:193` | 判据相同,读法不同:端读手上的能力快照对象,本包读进程级能力缓存 | 本包补一个吃快照对象的纯谓词后改从本包导入;或改名 |
|
|
9983
|
+
|
|
9984
|
+
*管理台*(3 条;所读 `origin/main` bc5b5fdd,09-24)
|
|
9985
|
+
|
|
9986
|
+
| 名字 | 坐标 | 与本包那份 | 建议 |
|
|
9987
|
+
|---|---|---|---|
|
|
9988
|
+
| `fmtTokens` | `components/me/humanize.ts:111` | 不是一件事:管理台是用量读数的词面(十进制,带「下界」选项);本包是模型上下文窗的词面(二进制 K 优先) | 改名 |
|
|
9989
|
+
| `TIER_ORDER` | `lib/config/tier-words.ts:120` | 今天逐元素相同(由本包那份转发而来,运行期分叉时补在序尾) | 改为从本包转口;若要保留补尾兜底,改名 |
|
|
9990
|
+
| `readWireErrorCode` | `lib/web/wire-read.ts:79` | 不是一件事:管理台读错误响应体(两种信封);本包读抛出物上的 `errorCode` | 改名 |
|
|
9991
|
+
|
|
9992
|
+
**本门看不见的(写清射程):** 端上换了名字另写一份同义判定;型级同名(`type` / `interface`);CommonJS 形导出。这几形只能靠合并时逐件问「这段逻辑为什么不在包里」。本门只看各端本机克隆的 `origin/main`(或 HEAD)那一刻,不替端 fetch;克隆陈旧时,结果也只代表那一刻。
|
|
9993
|
+
|
|
9994
|
+
### 100y. 🔴 三端升级必读(固定段式)
|
|
9995
|
+
|
|
9996
|
+
1. **换钉 `^0.83.0` 之前**:① 按 100d 把自己端上的旧名读点改成两名并读(新名优先):结果帧 `_sema_error_code` / `_sema_selected_model` / `_sema_model_degraded` / `_sema_salvaged_result`、合成终局行 `_sema_api_error_message`、工具结果记录只读 `tool_use_result`、`compact_boundary` 的 `_sema_attached_files`、print 通知帧十三个 `_sema_*`;② 要保留「Saved N memories」那一行的端先接好 `memory_saved` 臂(100a-2),否则那一行换钉当天从转录里消失;③ 还在 import 旧三读口的端先按 §99a S-1 换读(编译期即红);④ 按前缀形认转录 id、按旧句认注入件自愈句、按 `isApiErrorMessage` 认合成终局行的判据与探针先改锚(100a′)。peer sdk 地板 `>=11.3.0` 不动。
|
|
9997
|
+
2. **逐面**:
|
|
9998
|
+
- **结果帧与合成行**:端自己的 `-p` 投影层若在映射 `terminal_reason`,删掉本地映射表,改读帧上的键或调 `terminalReasonForResult`(两者同判),缺席就不写;渲「这一轮是谁答的」按 100b 的次序取 `_sema_response_model` / `_sema_selected_model`,都缺席写「未知」。
|
|
9999
|
+
- **工具结果记录**:端内部沿用驼峰名 `toolUseResult` 的渲染链,在自己的入口从 `tool_use_result` 同值起别名(包不再铸旧名)。
|
|
10000
|
+
- **system 行**:渲 system 行时刻的端在接收口自己补戳(只补缺席);自建管线直接喂 `adapt()` 的端,压缩分割线上的附带文件键用新名(本版包内两名并读,0.84.0 起只认新名)。
|
|
10001
|
+
- **记忆写入**:按 100a-2 接 `memory_saved` 臂;`notes` 是笔记,不是路径。
|
|
10002
|
+
- **转录 id**:按相等读的路径零改动;按 `uuid` 跨会话建表的,键里带会话维度;需要跨升级边界去重的,按 100a-6 用 wire 事件身份。
|
|
10003
|
+
- **hooks**:装 `SettingsPort` 的宿主(今天是终端)实现 `mergedDisableAllHooks()`;不装 `SettingsPort`、不调 `hooksForWire()` 的宿主零改动、也看不到告警。
|
|
10004
|
+
- **审批卡**:已按 `argsUnavailable` 选「看不到入参」卡形的端零改动,但回落卡从此复用 `argsUnavailable` —— 端上会换成通用确认卡,**请终端让通用确认卡也渲 `wireNote`**,否则 100a-4 的说明句不上屏;直接调 `surfaceFsApprovalAndDecide` 的端在 `failed` 结局 `editRefused === true` 时照原样重出卡,别说成「引擎没收你的答复」;按 `approvalResolutionOf` 分支的端零改动。
|
|
10005
|
+
- **注入件句**:以 `'injected'` 调 `activeRunSelfHealRow` 的端措辞全变(100a-3),按旧句做文本匹配的判据 / 探针同批改锚;只以用户形调用的端零改动。
|
|
10006
|
+
- **联网搜索**:换读 §99 的新判决;带 userinfo 的 endpoint 从此在提交前被判形错(7.100.x 服务端仍会采纳,本包更严);print 车道 init 帧在 settings 段采纳 WebSearch 时传 `webSearchStamped: true`。
|
|
10007
|
+
- **公面类型与码册**:四个类型零取用、零动作;码册 +2 都是 `operator` 码,按 audience 分流的端零动作。
|
|
10008
|
+
3. **成文改口**:见 100a′(作废 / 改读 / 新增三向);已发段(§15、§90、§92、§93、§97、§99 与 0.52.0 段)不回改,以本段为准;§7 P-43 随版改。
|
|
10009
|
+
|
|
10010
|
+
**包侧缺口:** ① `failed` 事件帧没有终局记录,`_sema_selected_model` 在这一路径上恒缺席,本包补不出来 · ② 转录 id 的唯一性射程不含会话身份:两场会话里同一 `seq` 得到同一 id(换形前后一样),按 `uuid` 跨会话建表的宿主自己带会话维度 · ③ 工具结果行在 wire 带 `eventId` 时原样用它当 `uuid`,本包不验形(引擎今天铸的是 UUID 形);没有稳定键时的兜底值由宿主 `ctx.uuid` 决定 · ④ 同一段事件跨升级边界重投会得到两套 id(100a-6);旧转录不迁移 · ⑤ `disableAllHooks` 合并值的正确性全靠宿主(本包拿不到 flag 来源、也不知道宿主启用了哪些来源,不重算);CC 云会话路径上项目 / 本地设置不压用户层 hooks 的逐来源语义本版不跟;宿主的「安全模式」本包没有读口;工作区里的项目 / 本地设置文件能关掉用户层 hooks 发往引擎(与本机执行器同判,引擎执行的工具若能写这些文件,就能在下一轮关掉用户层 hooks)· ⑥ `memory_saved` 不是渲染位臂,还原成行须在宿主侧做;父调用 id 为空串的写入只剩工具卡 · ⑦ 自建管线把 0.82.x 落盘的旧 `compact_boundary` 行重放进 `adapt()`:本版两名并读,0.84.0 起只认新名,那时旧行的「Referenced file」附件行不再出现(附件行本就不落盘)· ⑧ 流内帧路由上拒发之后,包不替端重出卡(没有跟踪器可 requeue 时这只审批按引擎自己的窗结算);耐久腿不从待决行的风险画像里回落 path;帧上没带入参且没有 `argsOmitted` 的形只有 `argsUnavailable`、没有说明句 · ⑨ 注入件句的 `<detail>` 是引擎原话,可能带引擎自己的词;`queued` 且卡呈不出那一句不给出路(出路仍在用户下一次提交时由用户形那一行给);端自铸的两句同族句仍是旧说法 · ⑩ 对 7.100.x 服务端:带 userinfo 的 endpoint 本包先拒、服务端仍采纳(本包更严);原因句与 7.101.0 已逐字对拍一致 · ⑪ 表态:网页端 / 桌面端截至 09-25 未表态(窗 09-26)。 · 记忆写入还原成行的那一句文案本包不出:要显示的端按 CC 的横幅写法渲「Saved N memory / memories」(按条数分单复数);桌面端与网页端若要一只本包的文案读口,在本版发布帖下说,下一个 patch 以只增方式补
|
|
10011
|
+
|
|
9602
10012
|
## §99 🆕 0.82.7(2026-09-24)每请求联网搜索配置的三态判决(CC-182)+ 旧三读口标为过渡期(patch;根公面 +5 函数;`WebSearchSettings` +1 可选位;零 wire 键、零投影臂)
|
|
9603
10013
|
|
|
9604
10014
|
### 99a. 处置表
|