@sema-agent/client-core 0.107.0 → 0.109.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.
Files changed (165) hide show
  1. package/CHANGELOG.md +239 -0
  2. package/README.md +54 -36
  3. package/dist/adapt/arms.js +23 -8
  4. package/dist/adapt/textStream.d.ts +2 -0
  5. package/dist/adapt/textStream.js +37 -16
  6. package/dist/adapter/activeRunSelfHeal.d.ts +2 -0
  7. package/dist/adapter/activeRunSelfHeal.js +21 -4
  8. package/dist/adapter/downstream/eventToSdkMessage.js +2 -1
  9. package/dist/agentSession/engineAgentRegistryRead.js +2 -0
  10. package/dist/bashExitReading.d.ts +12 -0
  11. package/dist/bashExitReading.js +44 -0
  12. package/dist/checkpointRowVerdict.d.ts +6 -1
  13. package/dist/checkpointRowVerdict.js +30 -2
  14. package/dist/cloudConfigWireCaps.d.ts +10 -0
  15. package/dist/cloudConfigWireCaps.js +33 -0
  16. package/dist/compensations.js +1 -1
  17. package/dist/coreValuePorts.d.ts +17 -1
  18. package/dist/coreValuePorts.js +5 -0
  19. package/dist/decideReceipt.js +2 -1
  20. package/dist/engineAgentAbsence.d.ts +2 -0
  21. package/dist/engineAgentAbsence.js +28 -0
  22. package/dist/engineErrorCodes.d.ts +9 -0
  23. package/dist/engineErrorCodes.js +9 -0
  24. package/dist/engineHealthFacts.d.ts +17 -0
  25. package/dist/engineHealthFacts.js +42 -3
  26. package/dist/engineNoticeCodes.d.ts +147 -1
  27. package/dist/engineNoticeCodes.js +694 -57
  28. package/dist/engineTargetSeat.js +1 -0
  29. package/dist/errorSupplementRoles.js +6 -1
  30. package/dist/eventLeg.js +1 -1
  31. package/dist/executionLaneWords.js +2 -1
  32. package/dist/fleetTaskDesc.js +3 -3
  33. package/dist/gateOutcome.d.ts +10 -1
  34. package/dist/gateOutcome.js +48 -1
  35. package/dist/generated/engineFactTables.d.ts +2 -0
  36. package/dist/generated/engineFactTables.js +11 -0
  37. package/dist/generated/engineNoticeTables.js +6 -0
  38. package/dist/generated/settingsSchemaFns.d.ts +4 -2
  39. package/dist/generated/settingsSchemaFns.js +9 -3
  40. package/dist/generated/settingsSchemaMcpRequestEntry.d.ts +1 -1
  41. package/dist/generated/settingsSchemaMcpRequestEntry.js +9 -18
  42. package/dist/generated/settingsSchemaReservedMemberName.d.ts +1 -0
  43. package/dist/generated/settingsSchemaReservedMemberName.js +7 -0
  44. package/dist/generated/settingsSchemaTables.d.ts +2 -0
  45. package/dist/generated/settingsSchemaTables.js +10 -0
  46. package/dist/generated/settingsSchemaWireName.d.ts +1 -0
  47. package/dist/generated/settingsSchemaWireName.js +8 -0
  48. package/dist/headlessReconnectWire.js +12 -7
  49. package/dist/hitl/approvalAskers.d.ts +13 -0
  50. package/dist/hitl/approvalAskers.js +79 -0
  51. package/dist/hitl/approvalCardReasons.js +22 -4
  52. package/dist/hitl/approvalRequestFrameReading.d.ts +14 -0
  53. package/dist/hitl/approvalRequestFrameReading.js +79 -0
  54. package/dist/hitl/approvalResolution.d.ts +3 -0
  55. package/dist/hitl/approvalResolution.js +22 -4
  56. package/dist/hitl/approvalsFeed.js +4 -13
  57. package/dist/hitl/askParkRowRouting.js +10 -3
  58. package/dist/hitl/automaticAnswerVerdict.d.ts +5 -2
  59. package/dist/hitl/automaticAnswerVerdict.js +16 -2
  60. package/dist/hitl/decisionConflict.d.ts +2 -1
  61. package/dist/hitl/decisionConflict.js +4 -1
  62. package/dist/hitl/decisionRefusal.d.ts +1 -0
  63. package/dist/hitl/decisionRefusal.js +5 -2
  64. package/dist/hitl/decisionSend.js +2 -6
  65. package/dist/hitl/frameRouter.d.ts +3 -2
  66. package/dist/hitl/frameRouter.js +37 -7
  67. package/dist/hitl/gateLedger.d.ts +2 -0
  68. package/dist/hitl/gateLedger.js +3 -1
  69. package/dist/hitl/hitlBridge.d.ts +4 -0
  70. package/dist/hitl/hitlBridge.js +11 -8
  71. package/dist/hitl/livePendingAsk.js +17 -16
  72. package/dist/hitl/localAllowRule.js +2 -1
  73. package/dist/hitl/noAllowCause.d.ts +1 -1
  74. package/dist/hitl/noAllowCause.js +4 -2
  75. package/dist/hitl/parkExpiryJudgements.js +26 -1
  76. package/dist/hitl/parkOwnership.d.ts +2 -0
  77. package/dist/hitl/parkOwnership.js +48 -8
  78. package/dist/hitl/parkResolver.js +39 -30
  79. package/dist/hitl/parkRowBirthWait.d.ts +2 -0
  80. package/dist/hitl/parkRowBirthWait.js +8 -1
  81. package/dist/hitl/parkedUnresumable.d.ts +13 -0
  82. package/dist/hitl/parkedUnresumable.js +80 -0
  83. package/dist/hitl/permissionRuleScope.d.ts +4 -0
  84. package/dist/hitl/permissionRuleScope.js +31 -0
  85. package/dist/hitl/persistedRulesWire.d.ts +7 -1
  86. package/dist/hitl/persistedRulesWire.js +25 -8
  87. package/dist/hitl/planReviewWire.js +12 -16
  88. package/dist/hitl/policyDenyCause.d.ts +3 -0
  89. package/dist/hitl/policyDenyCause.js +16 -0
  90. package/dist/hitl/sessionAllowRoute.js +5 -4
  91. package/dist/hitl/sessionPolicyDeliverable.js +1 -1
  92. package/dist/hitl/standingRows.d.ts +1 -5
  93. package/dist/hitl/standingRows.js +15 -14
  94. package/dist/hitl/toolApprovalWire.d.ts +16 -4
  95. package/dist/hitl/toolApprovalWire.js +57 -17
  96. package/dist/hooksReaderGenerations.d.ts +1 -0
  97. package/dist/hooksReaderGenerations.js +12 -0
  98. package/dist/hooksWireCaps.js +12 -7
  99. package/dist/hostSettingsSource.js +2 -0
  100. package/dist/i18n/messages.en.d.ts +206 -1
  101. package/dist/i18n/messages.en.js +209 -4
  102. package/dist/i18n/messages.zh.js +214 -4
  103. package/dist/index.d.ts +35 -8
  104. package/dist/index.js +20 -5
  105. package/dist/liveModelCatalog.d.ts +4 -2
  106. package/dist/liveModelCatalog.js +164 -26
  107. package/dist/localEngineJudge.d.ts +75 -0
  108. package/dist/localEngineJudge.js +242 -0
  109. package/dist/localEngineOccupancy.d.ts +88 -0
  110. package/dist/localEngineOccupancy.js +269 -0
  111. package/dist/localEngineSeatReading.d.ts +29 -0
  112. package/dist/localEngineSeatReading.js +294 -0
  113. package/dist/localEngineSpawn.d.ts +113 -0
  114. package/dist/localEngineSpawn.js +486 -0
  115. package/dist/localEngineStep.d.ts +286 -0
  116. package/dist/localEngineStep.js +1086 -0
  117. package/dist/localEngineStopLadder.d.ts +29 -0
  118. package/dist/localEngineStopLadder.js +139 -0
  119. package/dist/localEngineSwapCard.d.ts +43 -0
  120. package/dist/localEngineSwapCard.js +205 -0
  121. package/dist/localEngineTiming.d.ts +8 -0
  122. package/dist/localEngineTiming.js +8 -0
  123. package/dist/mcpReconnect.js +12 -5
  124. package/dist/mcpWireCaps.js +2 -2
  125. package/dist/memoryEntriesWire.d.ts +1 -1
  126. package/dist/memoryEntriesWire.js +5 -0
  127. package/dist/model/catalogDefault.d.ts +25 -0
  128. package/dist/model/catalogDefault.js +44 -0
  129. package/dist/noticePresentation.d.ts +2 -0
  130. package/dist/noticePresentation.js +79 -1
  131. package/dist/ownKey.d.ts +10 -0
  132. package/dist/ownKey.js +15 -1
  133. package/dist/permissionWireCaps.d.ts +1 -0
  134. package/dist/permissionWireCaps.js +11 -0
  135. package/dist/pluginHooksWire.d.ts +5 -3
  136. package/dist/pluginHooksWire.js +116 -7
  137. package/dist/queuedDelivery.d.ts +1 -0
  138. package/dist/queuedDelivery.js +12 -0
  139. package/dist/resultFrameKeys.js +4 -2
  140. package/dist/resumeRefusalCopy.js +15 -8
  141. package/dist/ruleReadings.js +1 -1
  142. package/dist/runPermissionModeSwitch.d.ts +2 -1
  143. package/dist/runPermissionModeSwitch.js +16 -6
  144. package/dist/seam.d.ts +13 -2
  145. package/dist/seam.js +8 -1
  146. package/dist/seatContract.d.ts +103 -12
  147. package/dist/seatContract.js +344 -14
  148. package/dist/sessionBackground.js +2 -0
  149. package/dist/sessionEngine.d.ts +2 -1
  150. package/dist/sessionEngine.js +5 -0
  151. package/dist/settingsHooksSalvage.d.ts +5 -0
  152. package/dist/settingsHooksSalvage.js +54 -0
  153. package/dist/subagentContentStore.d.ts +12 -0
  154. package/dist/subagentContentStore.js +73 -12
  155. package/dist/supportFloor.js +2 -0
  156. package/dist/taskNotificationAdmission.d.ts +19 -0
  157. package/dist/taskNotificationAdmission.js +84 -0
  158. package/dist/toolResult.js +20 -6
  159. package/dist/webSearchWireCaps.js +9 -4
  160. package/dist/wireFailureShape.d.ts +20 -0
  161. package/dist/wireFailureShape.js +37 -6
  162. package/dist/wireRefusalCopy.d.ts +23 -2
  163. package/dist/wireRefusalCopy.js +93 -4
  164. package/docs/INTEGRATION-CLIENTS.md +1959 -15
  165. package/package.json +4 -4
@@ -115,6 +115,8 @@ const ZH = {
115
115
  'model.subagent.chainUnbound': '子代理模型 {word} 在这台引擎上没有绑定(它和比它低的档位都没绑模型)—— 子代理将沿用父代理的模型。',
116
116
  'model.subagent.bindingNotInCatalog': '子代理模型 {word} 绑定的模型不在这台引擎的模型目录里 —— 子代理将沿用父代理的模型。',
117
117
  'model.subagent.ambiguous': '子代理模型 {word} 同时对上了几个只差大小写的模型名 —— 请照原样拼写;子代理将沿用父代理的模型。',
118
+ 'model.catalogDefault.refused.named': '不点名模型的任务会被拒:引擎从它的模型配置里解析不出缺省模型(设置里的缺省是 {name}) · 设一个引擎跑得了的缺省模型,或添加 / 修好一个',
119
+ 'model.catalogDefault.refused.select': '不点名模型的任务会被拒:引擎从它的模型配置里解析不出缺省模型(设置里的缺省是挑选条件) · 改挑选条件,或添加 / 修好一个引擎跑得了的模型',
118
120
  'session.devices.laneAbsent': '这个后端没有远程控制车道',
119
121
  'session.devices.laneUnreported': '这个后端没有报告远程控制车道',
120
122
  'session.devices.verbsOff': '这个后端的设备车道开着,但设备管理动作关着 —— 这里列不出也改不了设备',
@@ -122,11 +124,12 @@ const ZH = {
122
124
  'session.devices.probeFailedTransport': '连不上引擎,查不了远程控制车道 —— 请重试',
123
125
  'session.devices.probeFailedRefused': '引擎拒绝了设备清单查询 —— 请重试',
124
126
  'session.devices.probeFailedUnreadable': '读不懂引擎给的设备清单 —— 请重试',
125
- 'session.engine.selfNotLocal': '这只会话跑在本机这个应用自己起的引擎上,却是按 Cloud 会话开的。什么都没改 —— 请检查这只会话是怎么打开的。',
127
+ 'session.engine.selfNotLocal': '这只会话跑在本机引擎上,却是按 Cloud 会话开的。什么都没改 —— 请检查这只会话是怎么打开的。',
126
128
  'session.engine.dispatch.notWired': '这只会话所在的引擎此刻没接上,什么都没发。先连上那台引擎,再试一次。',
127
129
  'session.engine.dispatch.scopeMismatch': '这只会话属于另一个空间里的引擎,和你当前登录的空间不同,什么都没发。切到那个空间后再试一次。',
128
130
  'session.engine.dispatch.scopeUnproven': '确认不了你当前的登录能到达这只会话所在的引擎,什么都没发。先登录那台引擎所在的空间(或直接连上那台引擎),再试一次。',
129
131
  'session.engine.dispatch.unresolved': '这只会话所在的引擎还不知道,什么都没发。先为这只会话选一次引擎,再试一次。',
132
+ 'session.engine.dispatch.sessionAmbiguous': '这个会话同时登记在两台引擎上,先停下不发 —— 请先确认它属于哪一台。',
130
133
  'config.cloudLogin.accessDenied': '登录被拒绝了。',
131
134
  'config.cloudLogin.expiredToken': '登录码在批准之前过期了 —— 请重新开始。',
132
135
  'config.cloudLogin.invalidGrant': 'Cloud 登录已无法续期 —— 请重新登录。',
@@ -141,6 +144,7 @@ const ZH = {
141
144
  'config.engineTarget.notConfigured': 'Cloud 还没配好 —— 先登录并连上一台 Cloud 引擎。',
142
145
  'config.engineTarget.notSignedIn': '请先登录 Sema Cloud(或在高级选项里粘贴引擎令牌)。',
143
146
  'config.engineTarget.probeFailed': '引擎没通过连接检查。什么都没保存。',
147
+ 'config.engineTarget.cloudUnreachable': 'Cloud 引擎已配置,但此刻连不上 —— 请检查网络或引擎地址后重试。',
144
148
  'config.engineTarget.orgPolicy': '你的组织要求使用另一个 Cloud 引擎地址。',
145
149
  'config.engineTarget.urlRefused': '这个引擎地址不能用 —— 必须是不带凭据的 http(s) 地址。',
146
150
  'config.engineTarget.loginFailed': '登录失败。',
@@ -149,6 +153,7 @@ const ZH = {
149
153
  'config.engineTarget.serverBelowSupportFloor': '这台服务端自报版本 {version},低于本客户端支持的最低服务端版本 {floor}。发给它的请求可能被拒,或与这里描述的行为不一致;请连接 {floor} 或更新的服务端。',
150
154
  'config.engineTarget.input': '请求的形状不对,什么都没改。',
151
155
  'config.engineTarget.unknown': '引擎切换没有完成。',
156
+ 'config.webSearch.apiKeyWayOut': '如果密钥复制时前后带了空白、换行或不可见字符,请去掉 —— 密钥按原样使用,不会替你去除首尾空白。',
152
157
  'onboard.probe.endpointReachable': '{method} {path} → {status}(端点可达)',
153
158
  'onboard.probe.modelSuggest': '{error} —— 列表里相近的 id:"{near}"',
154
159
  'onboard.probe.redirected': '端点重定向了({status})到 {where} —— Sema 不会把你的钥匙跟着重定向带过去;请把最终地址填成根地址',
@@ -246,12 +251,24 @@ const ZH = {
246
251
  'approval.settle.cause.broadcastLost': '它没有送达任何一个打开着的连接',
247
252
  'approval.settle.cause.streamDisconnected': '承载这张卡的连接断了',
248
253
  'approval.settle.cause.undeliverable': '它没能送达任何审批界面',
254
+ 'approval.resolution.engineUnavailable': '引擎暂不可用 —— 待引擎回来再答。',
249
255
  'approval.decide.requiresBinding': '这次决定没有带上把它绑到审批卡上那个具体动作的绑定,引擎拒绝了 · 什么都没有决定,这条审批仍在等待 · 请重新获取待决审批,按现在列出的那张卡再决定;如果列出的卡本身就没有绑定,{wayOut}',
250
- 'approval.decide.unboundWayOut': '这里决不了 —— 取消这次运行,或等这条审批过期',
256
+ 'approval.decide.unboundWayOut.armed': '这里决不了 —— 取消这次运行,或等这条审批过期',
257
+ 'approval.decide.unboundWayOut.none': '这里决不了 —— 取消这次运行(这条审批没有到期计时)',
258
+ 'approval.decide.unboundWayOut.unknown': '这里决不了 —— 取消这次运行',
259
+ 'approval.rowUnresumable.lackingWayOut': '这台引擎决不了 —— 更新版本的引擎可以续跑它:请升级这台引擎后再发一次消息(有多台引擎可选时,换到更新的那一台),或者取消这次运行',
251
260
  'approval.rowUnresumable.fallback': '这台引擎没说它续得了这条待决审批,所以没有呈成可批的卡;什么都没发',
252
261
  'approval.rowUnresumable.askNotSurfaced': '这条待决行(任务 {taskId})这台引擎续不了,所以没有呈成可作答的卡:{sentence}',
253
262
  'approval.park.stillParked': '{gate} 这道门没能作答:{reason} —— 这一跑仍停在这条审批上。',
263
+ 'approval.park.refusedNotResumable': '{gate} 这道门没能作答:{reason} —— 这台引擎目前续不了这条审批;若这一跑仍停着,请取消它。',
264
+ 'approval.park.argsFromModelCall': '这条待决审批的记录里没有将执行的工具入参,下面显示的是对话里模型的原始调用 —— 若它在那之后被改写过(例如被钩子),实际执行的会与所见不同。这张卡不接受编辑后批准:所见入参不是将执行的那一份',
265
+ 'approval.park.questionsFromModelCall': '这条待决审批的记录里没有可呈现的问题,下面显示的是对话里模型的原始调用 —— 若它在那之后被改写过(例如被钩子),引擎实际在问的问题会与所见不同',
266
+ 'approval.policyDeny.denyRule': '这次工具调用被权限设置里的拒绝规则拒绝了。{tail}',
267
+ 'approval.policyDeny.dontAsk': '这次工具调用被拒绝了:本会话不再询问审批,凡需要审批的调用一律拒绝。{tail}',
268
+ 'approval.policyDeny.engineFloor': '这次工具调用被引擎侧的保护规则拒绝了,权限设置无法覆盖。{tail}',
269
+ 'approval.policyDeny.tail': '该操作没有执行。不要声称它已成功,也不要在本会话里重试 —— 请向用户说明这一限制,或建议别的做法。',
254
270
  'approval.decision.grantChanged': '引擎拒收了这次批准:它绑定的技能授予在卡呈出之后已经变了 · 什么都没有决定,这一请求仍在等待,但再批一次会以同样的理由被拒 · 请拒绝这一请求,让模型重新激活那个技能',
271
+ 'approval.decision.answerInvalid': '引擎拒收了这次回答本身:它与所问的问题对不上 · 什么都没有决定,这一问仍在等待 · 请改正回答后重新发送',
255
272
  'approval.decision.settledElsewhereContrary.deniedFirst': '这一请求已在别处被答复为拒绝,你的批准没有生效。',
256
273
  'approval.decision.settledElsewhereContrary.approvedFirst': '这一请求已在别处被答复为批准,你的拒绝没有生效。',
257
274
  'approval.decision.unconfirmedAfterRetry': '不知道你的答复有没有生效:之前那一发没有得到确认,重发时这一请求已不在等待 · 动手之前先看任务当前的状态',
@@ -330,7 +347,13 @@ const ZH = {
330
347
  'session.projectMemory.withheld.unknown': '这次请求没有带上它:「别读项目指令文件」这项设置因为一个这个版本不认识的原因被扣下了。',
331
348
  'session.policy.withheld.namespaceCoveringUnconfirmed': '没有写进这条会话的规则记录:这条规则点的是整个服务器或对端,或按模式点了它的一组工具,而引擎还没有确认这份记录会把这样的规则读成一组 —— 按精确工具名比对记录的引擎会一只都拦不住。',
332
349
  'session.fileHistoryLeg.notHonored': '引擎仍在为这个会话捕获文件历史,尽管你的设置要求它别这么做。',
333
- 'resume.refusal.placementMismatch': '这次续跑指定的放置根,和这件工作 parked 时记下的不是同一个 · 引擎在消耗任何东西之前就拒了它 —— parked 的工作原封未动 · 请用记下的那个根重试,或者省略放置根让它沿用记下的',
350
+ 'resume.refusal.placementMismatch': '这次续跑指定的放置根,和这件工作 parked 时记下的不是同一个 · {safe} · 请用记下的那个根重试,或者省略放置根让它沿用记下的',
351
+ 'resume.refusal.untouched': '引擎在消耗任何东西之前就拒了它 —— parked 的工作原封未动',
352
+ 'resume.refusal.principalMismatch': '这次续跑指定的身份(principal),和这件工作 parked 时记下的不是同一个 · {safe} · 请用记下的那个身份重试,或者省略它让它沿用记下的',
353
+ 'resume.refusal.compositionMismatch': '这次请求和这件工作 parked 时记下的编排段(composition leg)对不上(续跑指定了另一段,或在记录腿不是校验腿的卡上作废了校验暂停) · {safe} · 续跑时请用记下的那一段,或省略它让它沿用记下的;校验暂停只能在记录为校验腿的卡上作废',
354
+ 'resume.refusal.parentConstraintMissing': '这件工作是在继承自上层任务的策略约束下 parked 的,而这次续跑没有重新提供它们(不带它们续跑会悄悄丢掉上层的门) · {safe} · 请重新提供上层策略链后重试',
355
+ 'resume.refusal.parentConstraintMismatch': '这次续跑提供的上层策略约束,和这件工作 parked 时的对不上(链不全或不同,会让它在更薄或不同的上层规则下运行) · {safe} · 请用完整的原始上层策略链重试',
356
+ 'resume.refusal.constraintUnprojectable': '这次续跑带了编辑过的批准,但继承自上层任务的策略无法对编辑后的入参重新核对 · {safe} · 请不要编辑入参,再决断一次(没编辑过的批准不受这次拒绝影响)',
334
357
  'resume.refusal.preflightWaitable': '部署的续跑预检拒绝了这次尝试 · 拒绝发生在提交之前 —— 你的决断没有被消耗 · 引擎给了等待窗,所以障碍清除之后这个令牌仍可再赎',
335
358
  'resume.refusal.preflightNoWait': '部署的续跑预检拒绝了这次尝试 · 拒绝发生在提交之前 —— 你的决断没有被消耗 · 引擎没给等待窗,所以这次拒绝没有说明这个令牌还能不能再赎',
336
359
  'resume.refusal.policyBlock': '引擎在准入检查处拒绝续跑这件 parked 的工作(引擎说明,自这件工作最初被接受以来,它的准入策略变了) · {reason} · 这次拒绝没有说明在它之前有没有东西被消耗、重试是否会通过 —— 请先查看任务当前的状态再决断,如果它反复出现,请问运维这个部署的人',
@@ -374,7 +397,7 @@ const ZH = {
374
397
  'resume.refusal.park.interactiveEnded': '{head}引擎已结束那条 parked 的 run,所以这段对话空出来了:请把这项工作作为新消息重新发一次。',
375
398
  'resume.refusal.park.interactiveBusy': '{head}{configMayReturn}parked 的那条 run 会一直占着这段对话,直到它被取消。',
376
399
  'resume.refusal.park.blockedPrint': 'sema 不会自己把 run {run} 的卡放回屏幕:这一版引擎拒绝续跑它。请取消这条 run({cancel}),再把这项工作作为新任务重新提交。',
377
- 'resume.refusal.park.blockedInteractive': 'sema 不会自己把 run {run} 的卡放回屏幕:这一版引擎拒绝续跑它。要空出这段对话,请发一条消息把卡带回来并作答 —— sema 随后会提出取消那条 run,之后你就可以把这项工作作为新消息重新发一次。',
400
+ 'resume.refusal.park.blockedInteractive': 'sema 不会自己把 run {run} 的卡放回屏幕:这一版引擎拒绝续跑它。要空出这段对话,请发一条消息 —— sema 随后会提出取消那条 run(若卡反而回来了,先作答),之后你就可以把这项工作作为新消息重新发一次。',
378
401
  'session.selfHeal.wayOut.interactive': '运行 /clear,在全新会话里继续工作',
379
402
  'session.selfHeal.freshSession.default': '开一个新会话(去掉 --resume/--continue)',
380
403
  'session.selfHeal.freshSession.defaultCapitalized': '开一个新会话(去掉 --resume/--continue)',
@@ -530,6 +553,9 @@ const ZH = {
530
553
  'approval.mandate.wayOut.crossBoundaryTaint': '来自配置的放行(放行一切的设置,或策略自己的回答)对这次调用会被拒绝,所以由你在这里批准或拒绝来决定它',
531
554
  'approval.mandate.unknownWord': '这次确认所报告的原因,这个客户端不认识,所以不显示原因',
532
555
  'approval.card.payloadUnreadable': '这个客户端读不懂这张审批卡的格式,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
556
+ 'approval.card.payloadUnreadable.versionUnknown': '这个客户端不认识这条审批请求的格式版本,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
557
+ 'approval.card.payloadUnreadable.fieldsMalformed': '这条审批请求用的是这个客户端认识的格式版本,但其中一些字段的格式不对、读不出来,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
558
+ 'approval.card.payloadUnreadable.partUnknown': '这个客户端读不懂这条审批请求中的一部分,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
533
559
  'approval.card.more.one': '这张卡还有 1 条原因没有显示。',
534
560
  'approval.card.more.other': '这张卡还有 {count} 条原因没有显示。',
535
561
  'approval.card.denialLimit.plain': 'auto-deny 上限已到 —— auto 模式自己拒绝的调用已经够多,引擎现在要一个真人来决断;到目前为止连续 {consecutive} 次 / 共 {total} 次自动拒绝;触发的上限:{limit}',
@@ -629,8 +655,87 @@ const ZH = {
629
655
  'notice.wayOut.switchModel': '模型服务此刻无法处理这个请求 —— 请换一个模型试试',
630
656
  'notice.wayOut.wait': '模型服务仍在处理这个请求 —— 请稍等片刻后重试',
631
657
  'notice.wayOut.fixRequest': '模型服务拒绝了这个请求 —— 请修改请求后再发送;原样重发不会有变化',
658
+ 'notice.userInputUndrained.approvalFeedback.one': '你在批准工具调用时写下的 {count} 条附言没有送达模型,也不会再投递。如果还需要,请再发一次。',
659
+ 'notice.userInputUndrained.approvalFeedback.other': '你在批准工具调用时写下的 {count} 条附言没有送达模型,也不会再投递。如果还需要,请再发一次。',
632
660
  'notice.askUnresolvable.remedy.approver': '出路:接一个能答这类请求的审批人,或让已接的审批人可达,然后重试',
633
661
  'notice.askUnresolvable.remedy.permissionMode': '另一条出路(须本部署允许):{mode} 权限模式会不经人作答就放行这类请求,每一次这样放行都会标在它所放行的那次工具调用上',
662
+ 'notice.durableGate.lead': '本会话无法使用持久审批 —— {mandate},但{cause},所以审批请求无法被保存下来、留待之后答复。',
663
+ 'notice.durableGate.mandate.forceDurableGate': '这个账号要求使用它',
664
+ 'notice.durableGate.mandate.durableApproval': '这个任务要求使用它',
665
+ 'notice.durableGate.mandate.other': '它被要求使用',
666
+ 'notice.durableGate.cause.noDeploymentStore': '这套部署没有配置检查点存储',
667
+ 'notice.durableGate.cause.taskStoreDisabled': '这个任务关闭了自己的检查点存储',
668
+ 'notice.durableGate.cause.other': '没有可用的检查点存储',
669
+ 'notice.durableGate.approver.live': '权限请求改为在本会话中当场答复。',
670
+ 'notice.durableGate.approver.noneAttached': '本会话没有接入实时审批人,权限请求改按引擎配置的处置姿态办理。',
671
+ 'notice.durableGate.approver.unreported': '权限请求改按引擎配置的处置姿态办理。',
672
+ 'notice.durableGate.question.refused': '助手想向你提的问题无法在这里呈现,会被直接拒绝。',
673
+ 'notice.durableGate.exit.noDeploymentStore': '要使用持久审批,这套部署需要配置检查点存储。',
674
+ 'notice.durableGate.exit.taskStoreDisabled': '要使用持久审批,请让这个任务带着检查点存储运行。',
675
+ 'notice.durableGate.exit.other': '要使用持久审批,需要有可用的检查点存储。',
676
+ 'notice.durableGate.exitAlt.forceDurableGate': '或者请运维这套部署的人撤掉对这个账号的此项要求。',
677
+ 'notice.durableGate.exitAlt.durableApproval': '或者让这个任务在有实时审批人的地方运行。',
678
+ 'notice.memory.sessionPolluted': '本会话收进了来自外部来源的内容({reason})。从现在起,它写入的记忆可能被扣下候审,而不是存入长期记忆库;每一批实际扣下了什么,会另行通知。',
679
+ 'notice.memory.harvestQuarantined.counts': '记忆收集把本会话写入或修改的条目文件扣下了,没有加入长期记忆库 —— 扣下 {count} 个,移到一旁候审 {moved} 个,需要跟进 {escalated} 个;后两个数字可能有重叠。',
680
+ 'notice.memory.harvestQuarantined.indexOnly': '记忆收集把本会话对记忆索引的改动回滚到了原样;没有条目文件被扣下。',
681
+ 'notice.memory.harvestQuarantined.indexAlso': '记忆索引也已回滚。',
682
+ 'notice.memory.delegationWaived.lead': '一次委派原本会把本会话的记忆标为已污染,但这次没有标:这套部署不会只凭委派的静态工具检查就做标记,所以这次检查被豁免了。',
683
+ 'notice.memory.delegationWaived.agentType': '子代类型:{agentType}。',
684
+ 'notice.memory.delegationWaived.reason': '检查发现:"{reason}"。',
685
+ 'notice.memory.delegationWaived.tail': '其他污染判定,以及本会话上的记忆采集关闭设置,不受影响。',
686
+ 'notice.memory.captureOptedOut.flipVerb': '本会话的记忆采集从现在起已关闭 —— 关闭之前它产出的内容仍按常规采集处理。',
687
+ 'notice.memory.captureOptedOut.standingRecord': '本会话的记忆采集保持关闭 —— 更早一段运行留下的关闭记录管着它,之后的运行段不能重新打开。',
688
+ 'notice.memory.captureOptedOut.delegationFloor': '这个被委派的会话的记忆采集已关闭 —— 发起它的会话已经选择关闭,子代不能放宽这一点(本会话自己没有声明过)。',
689
+ 'notice.memory.captureOptedOut.forkOrigin': '这个分叉会话的记忆采集已关闭 —— 它接续的是一个已关闭采集的会话,那个会话的单向关闭记录管着这份副本(本会话自己没有声明过)。',
690
+ 'notice.memory.captureOptedOut.declaration': '本会话的记忆采集已关闭,这是提交时声明的。',
691
+ 'notice.memory.captureOptedOut.other': '本会话的记忆采集已关闭。',
692
+ 'notice.memory.captureOptedOut.tail': '它产出的任何内容都不会写入长期记忆库。关闭之前已经写入的条目留在库里,仍可检索;删除它们是另一个操作,绝不是这个开关的副作用。这个开关是单向的:想重新采集,请开始新的会话。',
693
+ 'notice.memory.captureOptoutUnpersisted.lead': '本会话的记忆采集关闭设置没能持久记录下来(控制面写入失败)。',
694
+ 'notice.memory.captureOptoutUnpersisted.declaration': '所以这个会话被拒绝了,而没有在一个下次恢复时会悄悄失效的开关下运行:什么都没有运行,也没有采集任何内容。请修复控制面(或接入采集记录存储),然后开始新的会话。',
695
+ 'notice.memory.captureOptoutUnpersisted.flipVerb': '所以只是这个请求被拒绝了:这次运行继续进行,记忆采集仍然开着。没有记录任何内容,原样重试会以同样的方式失败;如果这个会话不能被采集,请停止这次运行。',
696
+ 'notice.memory.captureOptoutUnpersisted.other': '所以这个设置没有生效。仅凭这条通知看不出是否有什么被停下 —— 请看这次运行自己的结果。没有记录任何内容,原样重试会以同样的方式失败。',
697
+ 'notice.peer.subject.message': '收到一条跨会话消息 #{seq}',
698
+ 'notice.peer.subject.messageFrom': '收到一条来自 {from} 的跨会话消息 #{seq}',
699
+ 'notice.peer.subject.notice': '收到一条跨会话通知 #{seq}',
700
+ 'notice.peer.subject.noticeFrom': '收到一条来自 {from} 的跨会话通知 #{seq}',
701
+ 'notice.peer.subject.held': '被暂扣的跨会话消息 #{seq}',
702
+ 'notice.peer.subject.heldFrom': '来自 {from} 的被暂扣跨会话消息 #{seq}',
703
+ 'notice.peer.inbound.refused': '{subject} 被这个会话的策略拒绝了,从未送达。',
704
+ 'notice.peer.inbound.admissionRefused': '{subject} 在准入时被拒绝了。',
705
+ 'notice.peer.inbound.held': '{subject} 被留到下一轮再判断 —— 它还没有送达,但也没有被拒绝。',
706
+ 'notice.peer.inbound.noticeUnrouted': '{subject} 没有可以送达的地方。',
707
+ 'notice.peer.inbound.noticeUserOnly': '{subject} 只展示给了你 —— 模型没有读到它。',
708
+ 'notice.peer.inbound.resupplyExhausted': '{subject}:模型可能从未读到它 —— 上下文压缩两次把它从模型的上下文里丢掉,发送方也没有被告知。',
709
+ 'notice.peer.inbound.other': '{subject}:本版本认不出引擎报告的处置方式。',
710
+ 'notice.peer.inbound.cause': '原因:{cause}。',
711
+ 'notice.peer.held.deliveredApproved': '{subject} 已获批准并送达。',
712
+ 'notice.peer.held.deliveredRejudged': '{subject} 经重新判断后送达,因为策略现在接受它。',
713
+ 'notice.peer.held.droppedRejudged': '{subject} 曾获批准,但策略现在拒绝它,所以被丢弃了。',
714
+ 'notice.peer.held.droppedInjectFailed': '{subject} 曾获批准,但放行时注入通道拒收了它,所以被丢弃了。',
715
+ 'notice.peer.held.evicted': '{subject} 为腾出位置而被作废:暂扣队列已满(仍暂扣 {heldCount} 条)。',
716
+ 'notice.peer.held.expiredDeadline': '{subject} 已在审阅期限届满时作废,没有送达。',
717
+ 'notice.peer.held.expiredCancelled': '{subject} 已被取消,没有送达。',
718
+ 'notice.peer.held.expiredShutdown': '{subject} 已在关闭时作废,没有送达。',
719
+ 'notice.peer.held.denied': '{subject} 已被否决,没有送达。',
720
+ 'notice.peer.held.refused': '{subject} 已被策略拒绝,没有送达。',
721
+ 'notice.peer.held.retiredSuperseded': '{subject} 离开了暂扣队列,但这里没有做出决定:另一个消费方已经处理了它。',
722
+ 'notice.peer.held.decidedElsewhere': '{subject} 已先被信箱的另一个消费方处理。',
723
+ 'notice.peer.held.retiredOther': '{subject} 离开了本会话的暂扣队列,这里没有做出决定。',
724
+ 'notice.peer.held.other': '{subject} 离开了本会话的暂扣队列(本版本认不出这一结果)。',
725
+ 'notice.peer.idle.recorded': '会话 {from} 请求在本会话下次空闲时得到通知;这个请求已记下。',
726
+ 'notice.peer.idle.refreshed': '会话 {from} 再次请求在本会话下次空闲时得到通知;它先前的请求已刷新。',
727
+ 'notice.peer.idle.full': '会话 {from} 请求在本会话下次空闲时得到通知,但本会话的订阅名单已满,所以这个请求被回绝了。',
728
+ 'notice.peer.idle.refused': '会话 {from} 请求在本会话下次空闲时得到通知,但本会话不接收其他会话的消息,所以这个请求被回绝了。',
729
+ 'notice.peer.idle.other': '会话 {from} 请求在本会话下次空闲时得到通知。',
730
+ 'notice.peer.idle.waiting': '此刻在等本会话空闲的订阅方:{live}。',
731
+ 'notice.classifier.denialLimit.consecutive': '这次运行已停止:权限分类器连续拦下了 {count} 次工具调用,达到拦截上限,而之后请人来决定的那次请求也没有任何人判过。',
732
+ 'notice.classifier.denialLimit.total': '这次运行已停止:权限分类器在这次运行里累计拦下了 {count} 次工具调用,达到拦截上限,而之后请人来决定的那次请求也没有任何人判过。',
733
+ 'notice.classifier.denialLimit.other': '这次运行已停止:权限分类器达到了拦截上限,而之后请人来决定的那次请求也没有任何人判过。',
734
+ 'notice.classifier.denialLimit.tool': '最近被拦下的动作:{tool}。',
735
+ 'notice.classifier.denialLimit.tail': '请先看一下转录,再改掉总被拦下的那一步,或者接一个审批人,然后重新运行。',
736
+ 'notice.task.lateApproval': '你对"{tool}"的批准没有被采用:一次运行或回合中断在你的决定落地之前就放掉了这个请求,所以这个工具没有运行,你的答复也没有结算任何东西。这只是时序上的事实,不是错误;如果还需要那一步,请再问一次。',
737
+ 'notice.task.haltUnconsumed': '你的停止请求没有切断任何东西:它到达时这次运行已经因自身原因在收尾,所以它没有停下任何东西,以这次运行自己的结局为准。',
738
+ 'notice.steering.parkedInputBlocked': '你在这次运行暂停期间发出的一条指令,在运行恢复时被拦下了:这套部署的输入筛查把它扣住,所以它没有到达模型。如果仍然适用,请再发一次。',
634
739
  'rules.refusal.sentence.one': '权限:有 1 条规则不会被执行 —— {list}',
635
740
  'rules.refusal.sentence.other': '权限:有 {count} 条规则不会被执行 —— {list}',
636
741
  'rules.refusal.item': '{rule}({reason})',
@@ -725,6 +830,8 @@ const ZH = {
725
830
  'session.permissionModeSwitch.refusedWithCode': '引擎拒绝切这条 run 的模式({status} {code}),它保持原来的模式。',
726
831
  'session.permissionModeSwitch.unconfirmed': '切档请求已发出,但没有收到读得懂的答复,不知道模式变没变 —— 请再切一次以确认。',
727
832
  'session.permissionModeSwitch.unavailable': '这里不能切正在跑的这一轮的模式,模式没有变。',
833
+ 'session.permissionModeSwitch.unavailableRunStore': '切换正在跑的这一轮的模式,需要这个部署保存持久的 run 记录,而它没有,所以模式没有改变。',
834
+ 'session.permissionModeSwitch.unavailableCheckpointStore': '切换正在跑的这一轮的模式,需要这个部署保存持久的审批检查点,而它没有,所以模式没有改变。',
728
835
  'notice.capability.subject.userInvokedSkills': '用户点名的技能',
729
836
  'notice.capability.subject.skillToolLists': '技能工具清单',
730
837
  'notice.capability.subject.permissionRulesWrite': '权限规则写入口',
@@ -836,8 +943,11 @@ const ZH = {
836
943
  'model.tier.blurb.flash': '又快又省 —— 标题、回顾、批量活儿',
837
944
  'model.tier.blurb.lite': '最省 —— 批量分类、简单查询',
838
945
  'model.catalog.candidateRejected': '部署拒绝了最近一次配置改动{which},仍在使用它之前的那份配置 —— 那次改动里新增的模型或设置没有生效',
946
+ 'model.catalog.envServed': '引擎当前按环境变量表提供模型;目录没有生效({stance})',
839
947
  'model.notServed.withDefault': '模型 {model} 在这台引擎的模型目录里不可用,所以本次会话改用引擎的缺省模型 {default}',
840
948
  'model.notServed.noDefault': '模型 {model} 在这台引擎的模型目录里不可用,所以本次会话把模型的选择交给引擎',
949
+ 'model.notMentionable.withDefault': '模型 {model} 在这台引擎的模型目录里,但这个部署的模型名单不允许选用它,所以本次会话改用引擎的缺省模型 {default}',
950
+ 'model.notMentionable.noDefault': '模型 {model} 在这台引擎的模型目录里,但这个部署的模型名单不允许选用它,所以本次会话把模型的选择交给引擎',
841
951
  'notice.failure.headline.connectionLostNotSent': '连不上引擎 —— 你的消息没有运行。请确认引擎已经启动,然后再发送一次。',
842
952
  'notice.failure.headline.connectionLost': '与引擎的连接断了 —— 不知道你的消息是否已经运行。重新发送之前,请先查看这次 run 的状态,或者重新接上它。',
843
953
  'notice.failure.headline.timeout': '事件流静默了 —— 这次 run 可能仍在引擎上运行。再次发送之前,请先查看它的状态。',
@@ -989,6 +1099,15 @@ const ZH = {
989
1099
  'notice.wireRefusal.hostPosture.unattributed': '引擎在任何东西运行之前就拒绝了这个请求:这个部署不接受请求里只有单用户部署才能使用的某项设置;引擎自己的消息会点名它 · {notLocal};请去掉那项设置后重新发送',
990
1100
  'notice.wireRefusal.autonomyLane': '引擎没有启动这次 leader 运行:这个部署运行在只做计划的自主档,而 leader 运行没有办法让它的计划被审阅,所以什么也没有启动 · 请改为作为普通运行提交这项工作,或请运维这台引擎的人更改它的自主设置',
991
1101
  'notice.wireRefusal.sessionArchiveStamped': '这个会话存下的存档仍带着更早版本的服务端写下的属主戳,所以不能被 fork,也不能替换它的日志;什么都没有写入 · 请删除这个会话,然后重新推送',
1102
+ 'notice.wireRefusal.sessionArchiveStamped.fork': '这个会话存下的存档仍带着更早版本的服务端写下的属主戳,所以不能被 fork,也不能替换它的日志;什么都没有写入 · 这段对话会按它自己的历史接着跑;要 fork 它,请删除这个会话,然后重新推送',
1103
+ 'notice.wireRefusal.envCredential': '引擎没有受理这个请求:它的 settings.env 里带着凭据,而引擎不从请求里收凭据',
1104
+ 'notice.wireRefusal.envCredential.folded': '这件停驻的工作无法继续:为它保存的请求在 settings.env 里带着凭据,而引擎不从请求里收凭据;什么都没有续跑',
1105
+ 'notice.wireRefusal.envCredential.names': '条目:{names}',
1106
+ 'notice.wireRefusal.envCredential.remedy': '请把这些凭据放进引擎自己的进程环境,然后去掉这些条目重新发送请求',
1107
+ 'notice.wireRefusal.sessionIdRetired': '引擎没有受理这个请求:它的会话 id 属于这台服务端上一只已删除的会话,这个 id 下的工作现在只为那只会话原来的属主运行 · 请换一个新会话',
1108
+ 'notice.wireRefusal.sessionIdRetired.folded': '这件停驻的工作无法继续:它的会话 id 属于这台服务端上一只已删除的会话,这个 id 下的工作现在只为那只会话原来的属主运行;什么都没有续跑,这张卡仍在等待',
1109
+ 'notice.wireRefusal.runConcurrencyCap.head': '这个部署在飞的运行已达到它允许的数量,所以引擎没有受理这个请求 · 请求本身没有任何问题',
1110
+ 'notice.wireRefusal.runConcurrencyCap.unknownWait': '请等在飞的运行有一条结束后再发送',
992
1111
  'notice.wireRefusal.unsupportedRule': '引擎拒绝了这个请求,所以其中任何内容都没有生效:里面有一条规则是引擎不支持的写法 —— {detail} · 请删掉或改写那条规则(要整只拦下一个工具,请只写工具名),再重新发送',
993
1112
  'notice.wireRefusal.unsupportedRule.other': '引擎拒绝了这个请求,所以其中任何内容都没有生效:里面有 {count} 条规则是引擎不支持的写法 —— {detail} · 请删掉或改写这些规则(要整只拦下一个工具,请只写工具名),再重新发送',
994
1113
  'notice.wireRefusal.unsupportedRule.stored': '引擎拒绝继续这件工作:为它保存的请求里有一条规则是引擎不支持的写法 —— {detail} · 它无法按保存的样子继续。请删掉或改写那条规则(要整只拦下一个工具,请只写工具名);若这件工作仍停驻着,请先取消它,然后作为新请求重新提交',
@@ -1057,6 +1176,15 @@ const ZH = {
1057
1176
  'rules.sessionPolicy.deployment.noOperator.removeReadStoreCorrupt': '引擎确认不了这个会话的规则当前在哪一版,所以没有改动任何内容。这台部署没有运维方可以查看规则库,要由运行它的人处理。',
1058
1177
  'rules.sessionPolicy.deployment.noOperator.removeWriteStoreCorrupt': '引擎确认不了这个会话的规则当前在哪一版,拒绝盖新版本,所以没有改动任何内容。这台部署没有运维方可以查看规则库,要由运行它的人处理。',
1059
1178
  'config.hooks.plan.reason.compactionLocalFallback': '这一次压缩的摘要因引擎会话不可用而在本客户端本地生成,引擎不会替它运行这只 hook,所以由本客户端自己运行',
1179
+ 'config.hooks.plan.reason.keyNotRead': '所连服务端不读这只 hook 上写的某个键(删掉该键,或改用会读它的服务端)',
1180
+ 'config.hooks.plan.disableAllHooks': '托管设置关闭了全部 hooks(disableAllHooks)。',
1181
+ 'config.hooks.plan.keyNotRead.oneKey': '{layer}:{hooks} 不会运行 —— 所连服务端不读键 {coordinates}。删掉该键,或改用会读它的服务端。',
1182
+ 'config.hooks.plan.keyNotRead.manyKeys': '{layer}:{hooks} 不会运行 —— 所连服务端不读这些键:{coordinates}。删掉这些键,或改用会读它们的服务端。',
1183
+ 'config.hooks.plan.keyNotRead.more': '{shown} 等另 {rest} 处',
1184
+ 'config.hooks.plan.keyNotRead.withOnFailure': '{line}所连服务端不读 onFailure:设成失败即阻断的 hook 失败时不会阻断。',
1185
+ 'config.hooks.plan.reason.sourceNotAuthored': '这只 hook 所在的匹配器组写了 "source",这一键只由本客户端设置(删掉该键)',
1186
+ 'config.hooks.plan.sourceNotAuthored.oneKey': '{layer}:{hooks} 不会运行 —— 键 {coordinates} 只由本客户端设置,不写在设置里。删掉该键。',
1187
+ 'config.hooks.plan.sourceNotAuthored.manyKeys': '{layer}:{hooks} 不会运行 —— 这些键只由本客户端设置,不写在设置里:{coordinates}。删掉这些键。',
1060
1188
  'session.hooks.compactTransition.disclosure.engineOutcomeUnknown': '摘要改走本客户端时,压缩请求已经发给了引擎,所以引擎有没有运行压缩 hook 这里判不了,本客户端也没有再运行一遍。',
1061
1189
  'session.hooks.compactTransition.disclosure.neitherRan': '这一次压缩 hook 没有运行:引擎没有在这里压缩,本客户端的本地摘要也没能启动。引擎之后若仍会压缩,到时会运行它们。',
1062
1190
  'session.background.handedOff': '已转到后台,结束时会告诉你。',
@@ -1132,6 +1260,83 @@ const ZH = {
1132
1260
  'approval.planReview.decision.gateUntrusted': '引擎认不出这道审阅门的编号(服务端那一行记录看起来坏了,请运维检查)。卡上就是当前在等批的计划:再答一次将不带门编号提交,那一次没有「计划已换」的保护。',
1133
1261
  'approval.planReview.option.askAgain.label': '不,要模型重新呈上计划',
1134
1262
  'approval.planReview.option.askAgain.description': '不批准;要模型重新呈上计划',
1263
+ 'localEngine.behind.cliUpdate': '本机引擎(版本 {running})比这个 Sema({own})新,这个 Sema 不能在它上面开始新的工作。请先运行 `sema update`,再重新打开这个会话。',
1264
+ 'localEngine.behind.appUpdate': '本机引擎(版本 {running})比这个 Sema({own})新,这个 Sema 不能在它上面开始新的工作。请把本应用更新到 {running} 或更新的版本,然后重启它。',
1265
+ 'localEngine.versionUnknown': '读不出本机引擎的版本,不会自动更换它。',
1266
+ 'localEngine.legacyBelowFloor': '本机引擎(版本 {running})低于这个 Sema 支持的最低版本({floor}),要先更换它,这个 Sema 才能使用。',
1267
+ 'localEngine.card.title.version': '要用新版本替换本机引擎吗?',
1268
+ 'localEngine.card.title.config': '要重启本机引擎,让改过的配置生效吗?',
1269
+ 'localEngine.card.title.credential': '要重启本机引擎,换用改过的凭据吗?',
1270
+ 'localEngine.card.title.modelDefault': '要重启本机引擎,让改过的默认模型生效吗?',
1271
+ 'localEngine.card.title.user': '现在重启本机引擎吗?',
1272
+ 'localEngine.card.title.unresponsive': '本机引擎没有响应,要重启它吗?',
1273
+ 'localEngine.card.versions': '在跑的引擎:版本 {running}。这个 Sema:版本 {own}。',
1274
+ 'localEngine.card.others.one': '另有 {total} 个 Sema 客户端在用这台引擎(其中 {midTurn} 个正在一轮对话中)。',
1275
+ 'localEngine.card.others.other': '另有 {total} 个 Sema 客户端在用这台引擎(其中 {midTurn} 个正在一轮对话中)。',
1276
+ 'localEngine.card.others.unknown': '其他在用这台引擎的 Sema 客户端:读不到。',
1277
+ 'localEngine.card.inflight.one': '引擎上有 {count} 个运行在进行。',
1278
+ 'localEngine.card.inflight.other': '引擎上有 {count} 个运行在进行。',
1279
+ 'localEngine.card.inflight.unknown': '引擎上进行中的运行:读不到。',
1280
+ 'localEngine.card.background.one': '有 {count} 个后台任务或工作流在跑。',
1281
+ 'localEngine.card.background.other': '有 {count} 个后台任务或工作流在跑。',
1282
+ 'localEngine.card.background.unknown': '后台任务与工作流:读不到。',
1283
+ 'localEngine.card.overlap': '在后台跑的运行可能在上面两行里都被计入。',
1284
+ 'localEngine.card.selfUnknown': '读不到这个 Sema 此刻在做什么。',
1285
+ 'localEngine.card.parked': '现在就做的话,进行中的工作会以停驻或中断收尾。停驻的工作按引擎的持久续跑机制继续,与引擎自行停止时同一保证;在原会话里续跑或取消之前,发往那个会话的新消息会被拒绝。',
1286
+ 'localEngine.card.force': '现在就做:进行中的工作约 {seconds} 秒内收尾。',
1287
+ 'localEngine.card.wait': '先不:当前引擎照常运行。',
1288
+ 'localEngine.exitFate.peers': '本机引擎继续运行:还有其他 Sema 客户端在用它。',
1289
+ 'localEngine.exitFate.lease': '本机引擎暂时继续运行,没人用时会自行停止。',
1290
+ 'localEngine.exitFate.unknown': '本机引擎继续运行;读不出是否还有其他 Sema 客户端在用它。',
1291
+ 'localEngine.principalOverrideIgnored': '环境变量里指定的主体(`SEMA_LIVE_PRINCIPAL`)对本机引擎不生效;Sema 用的是设置文件 env 块里的那一个,这样本机所有 Sema 应用都以同一个主体工作。要改,请在设置里改。',
1292
+ 'localEngine.principalUnknown': 'Sema 读不出{layer},本机会话已暂停:它们的主体可能就写在那里。请修好这个文件,然后重启 Sema。',
1293
+ 'localEngine.settingsLayer.userSettings': '你的设置文件',
1294
+ 'localEngine.settingsLayer.flagSettings': '启动时指定的设置文件',
1295
+ 'localEngine.settingsLayer.policySettings': '托管设置',
1296
+ 'localEngine.settingsLayer.unspecified': '某个设置文件',
1297
+ 'localEngine.bootRefusal': '本机引擎拒绝启动:{reason}',
1298
+ 'localEngine.firstShare': '这个 Sema 现在与本机其他 Sema 应用共用同一台本机引擎。这个应用以前私有引擎里的本机会话不在列表中显示;它们的数据原样留着。',
1299
+ 'localEngine.phase.starting': '正在启动本机引擎……',
1300
+ 'localEngine.phase.dormant': '本机引擎没有在跑;有会话要用时会启动。',
1301
+ 'localEngine.phase.draining': '本机引擎在停止前收尾手上的工作;它回来后 Sema 会重新连上。',
1302
+ 'localEngine.phase.unanswered': '有进程占着本机引擎的端口但不应答;Sema 在等它。',
1303
+ 'localEngine.phase.unverifiable': '本机引擎端口上有进程应答,但核不了它的身份:Sema 不起第二台,也不停它。',
1304
+ 'localEngine.phase.pendingBlocked': '在跑的本机引擎换掉之前,这个 Sema 用不了它。',
1305
+ 'localEngine.phase.swappingIdle': '正在趁空闲更换本机引擎……',
1306
+ 'localEngine.phase.swappingForced': '正在立即更换本机引擎;进行中的工作以停驻或中断收尾。',
1307
+ 'localEngine.waitingPeer': '另一个 Sema 正在启动或更换本机引擎;在等它。',
1308
+ 'localEngine.banner.pending': '本机引擎有一次待换;没人用它时就换。',
1309
+ 'localEngine.down.lockUnavailable': '另一个 Sema 持着本机引擎的启动锁,没有按时完成;请重试。',
1310
+ 'localEngine.down.spawnFailed': '本机引擎没能启动。',
1311
+ 'localEngine.down.spawnRefused': '本机引擎没有启动:启动前的准备没有通过。',
1312
+ 'localEngine.down.stopFailed': '旧的本机引擎没有按时停下,所以没有更换。',
1313
+ 'localEngine.down.crashLoop': '本机引擎反复意外停止,自动重启已暂停。',
1314
+ 'localEngine.down.highWaterUnreadable': '读不出这台机器上用过的最新引擎版本记录,本机引擎不启动;请检查引擎数据目录。',
1315
+ 'localEngine.crashLoop.retry': '本机引擎反复意外停止;约 {seconds} 秒后再试一次。',
1316
+ 'localEngine.crashLoop.stopped': '本机引擎反复意外停止;Sema 已不再自动重试,请手动重启。',
1317
+ 'localEngine.crashLoop.retrying': '正在再次尝试启动本机引擎。',
1318
+ 'localEngine.drainOverdue': '本机引擎收尾的时间比预期长。',
1319
+ 'localEngine.engineExited.unexpected': '本机引擎意外停止;需要时 Sema 会再启动它。',
1320
+ 'localEngine.engineExited.crashLoop': '本机引擎又一次意外停止;自动重启已暂停。',
1321
+ 'localEngine.engineExited.quiet': '本机引擎已退出;需要时 Sema 会再启动它。',
1322
+ 'localEngine.cannotVerifyEngine': '核不了在跑的本机引擎,Sema 不会停它。',
1323
+ 'localEngine.lockUnavailable': '另一个 Sema 持着本机引擎的启动锁;当前引擎照常运行。',
1324
+ 'localEngine.prepareFailed.reason': '本机引擎没有更换,当前引擎照常运行。原因:{reason}',
1325
+ 'localEngine.prepareFailed.timeout': '准备更换用时过长,本机引擎没有更换;当前引擎照常运行。',
1326
+ 'localEngine.spawnFailed.timeout': '新的本机引擎没有按时应答。',
1327
+ 'localEngine.lockLost': 'Sema 丢了本机引擎的启动锁;不再发后续信号,重新查看。',
1328
+ 'localEngine.forcedLine': '本机引擎已立即更换;当时进行中的工作以停驻或中断收尾。',
1329
+ 'localEngine.headless.behind': '本机引擎比这个 Sema 新;请更新 Sema 后重新运行命令。',
1330
+ 'localEngine.headless.legacyBelowFloor': '本机引擎低于这个 Sema 支持的版本;请交互打开 Sema 更换它,再重新运行命令。',
1331
+ 'localEngine.headless.unresponsive': '本机引擎没有响应;请交互打开 Sema 重启它,再重新运行命令。',
1332
+ 'localEngine.headless.swapPending': '本机引擎要先重启这条命令才能跑;请交互打开 Sema 确认,再重新运行命令。',
1333
+ 'localEngine.headless.drainOverdue': '本机引擎没有按时停完;请稍后重新运行命令。',
1334
+ 'localEngine.headless.unverifiable': '本机引擎端口上有进程应答但核不了身份;命令就此停止。',
1335
+ 'localEngine.restartOutcome.skippedNoDemand': '下次启动本机引擎时生效。',
1336
+ 'localEngine.restartOutcome.pendingCard': '有别的会话在用本机引擎;请在卡上确认重启。',
1337
+ 'localEngine.restartOutcome.pendingBusy': '有别的会话在用本机引擎;没人用时就重启。',
1338
+ 'localEngine.restartOutcome.failedPrepare': '本机引擎没有重启;当前引擎照常运行。',
1339
+ 'localEngine.restartOutcome.failedDown': '本机引擎没能重启:{detail}',
1135
1340
  };
1136
1341
  export const ZH_MESSAGES = Object.freeze(ZH);
1137
1342
  export const TERM_SLOTS = Object.freeze({
@@ -1161,6 +1366,11 @@ export const TERM_SLOTS = Object.freeze({
1161
1366
  'session.inheritEnv.withheld.all': ['run'],
1162
1367
  'session.inheritEnv.withheld.scrub': ['run'],
1163
1368
  'resume.refusal.placementMismatch': ['parked'],
1369
+ 'resume.refusal.untouched': ['parked'],
1370
+ 'resume.refusal.principalMismatch': ['parked', 'principal'],
1371
+ 'resume.refusal.compositionMismatch': ['parked', 'composition leg'],
1372
+ 'resume.refusal.parentConstraintMissing': ['parked'],
1373
+ 'resume.refusal.parentConstraintMismatch': ['parked'],
1164
1374
  'resume.refusal.policyBlock': ['parked'],
1165
1375
  'resume.refusal.contextUnavailable': ['run'],
1166
1376
  'resume.refusal.contextThird.withRun': ['run'],
package/dist/index.d.ts CHANGED
@@ -19,8 +19,8 @@ export { isReplayMarked } from './replayBody.js';
19
19
  export { composeEventLeg, EVENT_LEG_KINDS, EVENT_LEG_TABLE, approvalFrameContextOf } from './eventLeg.js';
20
20
  export type { ApprovalFrameContext, EventLeg, EventLegBindCause, EventLegBoundInfo, EventLegElicitationFrame, EventLegFrameInfo, EventLegHitlEnvelope, EventLegHitlPorts, EventLegIdleTriagePorts, EventLegKind, EventLegLiveSpec, EventLegOwnerPorts, EventLegPortName, EventLegPorts, EventLegQuestionFrame, EventLegRefusal, EventLegReport, EventLegRow, EventLegRunPorts, EventLegRunSpec, EventLegSpec, EventLegStage, EventLegTap, EventLegToolApprovalFrame, } from './eventLeg.js';
21
21
  export { frameBindingOf, inheritFrameBinding } from './frameBinding.js';
22
- export { __resetSubagentContentStoreConfigForTests, __resetSubagentOwnerLedgerForTests, clearSubagentContent, coerceOutput, configureSubagentContentStore, getBgParentRun, getBgParentRunOwner, getBgTerminalFacts, getSubagentContentSnapshot, isOwnEngineRun, parentToolCallIdOf, planSubagentViewSlots, publishSubagentContentEvent, pushSubagentLocalEcho, recordBgParentRun, recordOwnEngineRun, recordSubagentOwner, recordSubagentOwnerFromProgress, registerSubagentAlias, settleSubagentContent, SUBAGENT_CONTENT_STORE_DEFAULTS, subagentContentStoreConfig, subagentOwnerSessionConflicts, subscribeSubagentContent, subagentContentEventOf, } from './subagentContentStore.js';
23
- export type { BgTerminalFacts, SubagentContentEvent, SubagentContentItem, SubagentContentSnapshot, SubagentContentStoreConfig, SubagentOwnerRecord, SubagentOwnerSessionConflict, SubagentViewSlot, } from './subagentContentStore.js';
22
+ export { __resetSubagentContentStoreConfigForTests, __resetSubagentOwnerLedgerForTests, clearSubagentContent, coerceOutput, configureSubagentContentStore, getBgParentRun, getBgParentRunOwner, getBgTerminalFacts, getSubagentContentSnapshot, isOwnEngineRun, noteSeatSubagentAlias, parentToolCallIdOf, planSubagentViewSlots, publishSubagentContentEvent, pushSubagentLocalEcho, recordBgParentRun, recordOwnEngineRun, recordSubagentOwner, readSeatSubagentAlias, recordSubagentOwnerFromProgress, registerSubagentAlias, settleSubagentContent, SUBAGENT_CONTENT_STORE_DEFAULTS, subagentContentStoreConfig, subagentOwnerSessionConflicts, subscribeSubagentContent, subagentContentEventOf, } from './subagentContentStore.js';
23
+ export type { BgTerminalFacts, SeatSubagentAlias, SubagentAliasScope, SubagentContentEvent, SubagentContentItem, SubagentContentSnapshot, SubagentContentStoreConfig, SubagentOwnerRecord, SubagentOwnerSessionConflict, SubagentViewSlot, } from './subagentContentStore.js';
24
24
  export * from './engineAgentPanelStore.js';
25
25
  export * from './engineAgentAbsence.js';
26
26
  export * from './fleetAgentPanelProjection.js';
@@ -89,7 +89,22 @@ export * from './gateOutcome.js';
89
89
  export * from './postureKnob.js';
90
90
  export * from './engineIdentity.js';
91
91
  export { readEngineHealthFacts } from './engineHealthFacts.js';
92
- export type { EngineHealthFacts, EngineHealthCenterFacts, EngineHealthAuthFacts, EngineHealthDrainingFacts, EngineHealthLeaseFacts } from './engineHealthFacts.js';
92
+ export type { EngineHealthFacts, EngineHealthCenterFacts, EngineHealthAuthFacts, EngineHealthDrainingFacts, EngineHealthLeaseFacts, EngineHealthFirstAttachFacts, EngineHealthInflightFacts } from './engineHealthFacts.js';
93
+ export { localEngineAnchorOf, localEnginePlanDriftOf, judgeLocalEngine, localEngineLaneOf, localEngineVerdictSentence } from './localEngineJudge.js';
94
+ export type { LocalEngineAnchorReading, LocalEnginePlanFingerprint, LocalEnginePlanDrift, LocalEngineAnchorPidState, LocalEngineDataRootRelation, LocalEngineJudgeInput, LocalEngineRef, LocalEngineAnchoredProcess, LocalEngineVerdict, LocalEngineUpgradePath, } from './localEngineJudge.js';
95
+ export { countClientRegistry, fleetBackgroundLiveOf, localEngineSelfOf, localEngineRegistryStatusOf, localEngineIdle, localEngineDemandOf, localEngineExitFate, localEngineExitFateSentence, } from './localEngineOccupancy.js';
96
+ export type { ClientRegistryDirectory, ClientRegistryRecordReading, ClientRegistryCount, LocalEngineFleetReading, FleetBackgroundLive, LocalEngineSelfItem, LocalEngineSelfReading, LocalEngineSelfInput, LocalEngineSelf, LocalEngineRegistryStatus, LocalEngineOccupancy, LocalEngineDefaultLane, LocalEngineDemandSession, LocalEngineDemandInput, LocalEngineDemandSource, LocalEngineDemand, LocalEngineExitFate, } from './localEngineOccupancy.js';
97
+ export { LOCAL_ENGINE_SWAP_CAUSES, localEngineSwapAutoable, engineSwapCardOf, engineSwapCardText } from './localEngineSwapCard.js';
98
+ export type { LocalEngineSwapCause, LocalEngineSwapPolicy, EngineSwapCardTarget, EngineSwapCardUnknown, EngineSwapCardInput, EngineSwapCardOthers, EngineSwapCard, EngineSwapCardText, } from './localEngineSwapCard.js';
99
+ export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, engineBootRefusalOf, engineBootRefusalSentence, localEngineFirstShareSentence, } from './localEngineSpawn.js';
100
+ export type { LocalEngineSpawnPathSlot, LocalEngineSpawnDerived, LocalEngineSpawnValue, LocalEngineSpawnEnvRow, LocalEngineBudgets, LocalEngineSpawnPaths, LocalEngineSpawnEnvInput, LocalEngineSpawnApplied, LocalEngineSpawnEnv, LocalEngineSettingsLayerName, LocalEngineSettingsLayers, LocalEngineSeedInput, LocalEngineSeedFrom, LocalEngineSeedDropped, LocalEngineSeed, LocalEnginePrincipal, LocalEnginePrincipalView, LocalEngineBootRefusal, } from './localEngineSpawn.js';
101
+ export { LOCAL_ENGINE_STOP_LADDER, stopLadderStep } from './localEngineStopLadder.js';
102
+ export type { StopLadderSignal, StopLadderState, StopLadderObservation, StopLadderStepResult } from './localEngineStopLadder.js';
103
+ export { LOCAL_ENGINE_INITIAL_STATE, LOCAL_ENGINE_FAIL_CODES, localEngineStep, engineSwapAnswerOutcomeOf } from './localEngineStep.js';
104
+ export { LOCAL_ENGINE_TIMING } from './localEngineTiming.js';
105
+ export type { LocalEnginePolicy, LocalEngineStepOccupancy, LocalEngineTarget, LocalEngineStateDownReason, LocalEngineCauseEntry, LocalEngineAutoTry, LocalEngineCtx, LocalEngineCardHold, LocalEngineLockIntent, LocalEnginePlan, LocalEngineRelation, LocalEngineState, LocalEngineEvent, LocalEngineFailCode, LocalEngineNotice, LocalEngineEffect, LocalEngineStepResult, } from './localEngineStep.js';
106
+ export { localEngineSeatReadingOf, localEngineSeatSentence, localEngineNoticeText, localEngineFailText, engineTargetLocalOf, engineRestartOutcomeOf, } from './localEngineSeatReading.js';
107
+ export type { LocalEngineSeatHostFacts, EngineRestartOperation } from './localEngineSeatReading.js';
93
108
  export { transportFailureScene } from './engineWireFor.js';
94
109
  export type { EngineWireNoAnswerKind, TransportFailureChainEnd, TransportFailureLayer, TransportFailureScene, TransportFailureSocket } from './engineWireFor.js';
95
110
  export { engineUrlTransportVerdict, normalizeEngineBaseUrl } from './engineUrl.js';
@@ -123,7 +138,7 @@ export * from './engineWireSdk.js';
123
138
  export * from './classifierVerdictWire.js';
124
139
  export { stripSystemReminderBlocks, unwrapSystemReminder } from './systemReminderTag.js';
125
140
  export { findSystemReminderOpenTag, type SystemReminderOpenTagSpan } from './systemReminderTag.js';
126
- export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_IMAGE_INDEX_REQUIRED, CAPABILITY_K8S_LANE_REQUIRED, CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED, CAPABILITY_SELF_ORCHESTRATION_REQUIRED, CONFIG_AGENT_UNKNOWN_TOOL, CONFIG_DELEGATION_ENTRY_CAPS, CONFIG_IMAGE_INVALID, CONFIG_LEGACY_TOOL_NAME, CONFIG_LIMIT_INVALID, CONFIG_LIMIT_UNKNOWN_KEY, CONFIG_MCP_SERVER_NAME_COLLISION, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_OUTPUT_STYLE_INVALID, CONFIG_TOOL_FACE_CONTROL, CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_ROW_UNREVIVABLE, DECIDE_WORKFLOW_HOST_UNKNOWN, DECIDE_WORKFLOW_LANE_CODES, DECIDE_WORKFLOW_PARK_FORKED, DECIDE_WORKFLOW_PARKS_UNREADABLE, DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED, DELEGATION_CAP_CODES, DELEGATION_CONCURRENCY_CAP, DELEGATION_SESSION_CAP, delegationCapDispositionOf, DRAINING_ERROR_CODE, ENGINE_STOP_REASONS, engineStopReasonToCc, ENV_LIFETIME_EXPIRED, FLEET_LEASE_UNAVAILABLE, GATE_PARKED_ERROR_CODE, idempotencyPayloadMismatchContent, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDecideRowUnrevivableCode, isDelegationCapCode, isIdempotencyPayloadMismatchCode, isInterruptedToolEndCode, isLimitsExceededCode, isRewindFamilyCode, isRulesRefusalCode, isStatusDerivedCoarseCode, isWorkflowParkRefusalCode, LIMITS_MAX_COST_EXCEEDED, LIMITS_MAX_TOKENS_EXCEEDED, LIMITS_MAX_TURNS_EXCEEDED, LIMITS_MAX_WALLTIME_EXCEEDED, MCP_SERVER_REVOKED, MCP_TOOL_DECLARATION_CHANGED, MCP_TOOL_LISTING_UNREACHED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, PROMPT_ASSEMBLED_ROLE_REFUSED, REQUEST_AUTONOMY_LANE_REFUSED, RESUME_AT_ERROR_CODE_PREFIX, RESUME_CONTEXT_UNAVAILABLE, RESUME_ENV_FAILED, RESUME_PLACEMENT_MISMATCH, RESUME_POLICY_FOLD_CODE, RESUME_PREFLIGHT_REJECTED, RESUME_REOPEN_CODES, RESUME_RETRY_LATER_CODES, RESUME_TOOL_CONTRACT_MISMATCH, RESUME_TOOL_UNAVAILABLE, RESUME_USAGE_WINDOW_EXHAUSTED, REWIND_ERROR_CODE_PREFIXES, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, USER_ATTACHMENT_INVALID_ERROR_CODE, USER_INVOKED_SKILL_UNKNOWN_ERROR_CODE, WORKFLOW_PARK_REFUSAL_CODES, ATTACHMENT_BOUND_ELSEWHERE, ATTACHMENT_BUNDLE_INVALID, ATTACHMENT_BUNDLE_LANE_NOT_ISOLATED, ATTACHMENT_BUNDLE_SEED_FIXED, CONFLICT_SESSION_MEMORY_UNOBSERVED, CONFLICT_SESSION_ARCHIVE_STAMPED, ENV_HOME_UNCONFIRMED, } from './engineErrorCodes.js';
141
+ export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_IMAGE_INDEX_REQUIRED, CAPABILITY_K8S_LANE_REQUIRED, CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED, CAPABILITY_SELF_ORCHESTRATION_REQUIRED, CONFIG_AGENT_UNKNOWN_TOOL, CONFIG_DELEGATION_ENTRY_CAPS, CONFIG_IMAGE_INVALID, CONFIG_LEGACY_TOOL_NAME, CONFIG_LIMIT_INVALID, CONFIG_LIMIT_UNKNOWN_KEY, CONFIG_MCP_SERVER_NAME_COLLISION, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_OUTPUT_STYLE_INVALID, CONFIG_TOOL_FACE_CONTROL, CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_ROW_UNREVIVABLE, DECIDE_WORKFLOW_HOST_UNKNOWN, DECIDE_WORKFLOW_LANE_CODES, DECIDE_WORKFLOW_PARK_FORKED, DECIDE_WORKFLOW_PARKS_UNREADABLE, DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED, DELEGATION_CAP_CODES, DELEGATION_CONCURRENCY_CAP, DELEGATION_SESSION_CAP, delegationCapDispositionOf, DRAINING_ERROR_CODE, ENGINE_STOP_REASONS, engineStopReasonToCc, ENV_LIFETIME_EXPIRED, FLEET_LEASE_UNAVAILABLE, GATE_PARKED_ERROR_CODE, idempotencyPayloadMismatchContent, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDecideRowUnrevivableCode, isDelegationCapCode, isIdempotencyPayloadMismatchCode, isInterruptedToolEndCode, isLimitsExceededCode, isRewindFamilyCode, isRulesRefusalCode, isStatusDerivedCoarseCode, isWorkflowParkRefusalCode, LIMITS_MAX_COST_EXCEEDED, LIMITS_MAX_TOKENS_EXCEEDED, LIMITS_MAX_TURNS_EXCEEDED, LIMITS_MAX_WALLTIME_EXCEEDED, MCP_SERVER_REVOKED, MCP_TOOL_DECLARATION_CHANGED, MCP_TOOL_LISTING_UNREACHED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, PROMPT_ASSEMBLED_ROLE_REFUSED, REQUEST_AUTONOMY_LANE_REFUSED, RESUME_AT_ERROR_CODE_PREFIX, RESUME_CONTEXT_UNAVAILABLE, RESUME_ENV_FAILED, RESUME_PLACEMENT_MISMATCH, RESUME_POLICY_FOLD_CODE, RESUME_PREFLIGHT_REJECTED, RESUME_REOPEN_CODES, RESUME_RETRY_LATER_CODES, RESUME_TOOL_CONTRACT_MISMATCH, RESUME_TOOL_UNAVAILABLE, RESUME_USAGE_WINDOW_EXHAUSTED, REWIND_ERROR_CODE_PREFIXES, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, USER_ATTACHMENT_INVALID_ERROR_CODE, USER_INVOKED_SKILL_UNKNOWN_ERROR_CODE, WORKFLOW_PARK_REFUSAL_CODES, ATTACHMENT_BOUND_ELSEWHERE, ATTACHMENT_BUNDLE_INVALID, ATTACHMENT_BUNDLE_LANE_NOT_ISOLATED, ATTACHMENT_BUNDLE_SEED_FIXED, CONFLICT_SESSION_MEMORY_UNOBSERVED, CONFLICT_SESSION_ARCHIVE_STAMPED, ENV_HOME_UNCONFIRMED, REQUEST_ENV_CREDENTIAL_REFUSED, CONFLICT_SESSION_ID_RETIRED, } from './engineErrorCodes.js';
127
142
  export type { DelegationCapDisposition, ModelFallbackReason, OperatorGateRefusal, RunDeathVerdictCode, } from './engineErrorCodes.js';
128
143
  export { prepareRefusalCodeOf, prepareRefusalNoteOf, type PrepareRefusalCode, type PrepareRefusalNoteFacts } from './prepareRefusal.js';
129
144
  export * from './agentsWireCaps.js';
@@ -250,6 +265,8 @@ export { SUBMISSION_SURFACES, SUBMISSION_ORIGINS, SUBMISSION_TOOLS, SUBMISSION_K
250
265
  export type { SubmissionIdentity, SubmissionIdentityInput, SubmissionSurface, SubmissionOrigin, SubmissionTools, SubmissionKind, SubmissionProvenance, } from './request/submissionIdentity.js';
251
266
  export { taskNotificationOf, taskNotificationQueueCommand } from './notifications.js';
252
267
  export type { TaskNotificationQueueCommand, PendingNotificationCommand } from './notifications.js';
268
+ export { taskNotificationAdmissionOf } from './taskNotificationAdmission.js';
269
+ export type { TaskNotificationAdmission, TaskNotificationAdmissionVerdict, TaskNotificationAdmissionWhy, TaskNotificationReadResult, TaskNotificationRunRecordView, } from './taskNotificationAdmission.js';
253
270
  export { resultErrorCodeInTextOf } from './resultFrameKeys.js';
254
271
  export { humanTurnRefusalSentence, humanTurnDegradedSentence, printImageVisionSentence } from './humanTurnSentences.js';
255
272
  export type { HumanTurnInput, HumanTurnItem, HumanTurnAttachment, HumanTurnRider, HumanTurnMissing, HumanTurnCaps, HumanTurnEncoding, HumanTurnShare, HumanTurnSharePart, HumanTurnDegraded, HumanTurnDelivered, HumanTurnNotice, } from './humanTurn.js';
@@ -310,9 +327,12 @@ export { toolOutputMediaAbsenceOf, toolOutputMediaAbsenceSentence } from './tool
310
327
  export type { ToolOutputMediaAbsence } from './toolResultContent.js';
311
328
  export { _resetHitlHostSurfaceForTest, APPROVAL_PARKING_WARN_TEXT, approvalParkingNoticeText, CANCEL_DENY_BUDGET_MS, CANCEL_DENY_WARN_TEXT, EDIT_NOT_FORWARDED_WARN_TEXT, EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT, hitlHostSurfaceFor, hitlHostSurfaceMisses, hitlHostSurfaceMissesFor, installHitlHostSurface, installHitlHostSurfaceFor, observeCancelByDeny, REMEMBER_NOT_APPLIED_WARN_TEXT, REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT, RULE_NOT_SENT_REJECTED_WARN_TEXT, RULE_NOT_SENT_WARN_TEXT, surfaceEditRefusedOnBlindAsk, surfaceForCurrentSession, surfaceRememberNotApplied, } from './hitl/hitlHostSurface.js';
312
329
  export type { ClassifierDenyContext, HitlHostSurface, HitlNotice, } from './hitl/hitlHostSurface.js';
313
- export * from './hitl/toolApprovalWire.js';
330
+ export { APPROVAL_DENY_SETTLED_BY_WORDS, ASK_ORIGIN_WORDS, RESPOND_DECISIONS, RETRACTED_CARD_DECISION_KIND, RULE_OFFERS_ABSENCE_REASONS, RULE_OFFER_BATCH_MEMBER_KINDS, RULE_OFFER_MATCHES, RULE_OFFER_UNCOVERED_REASONS, TOOL_APPROVAL_FRAME_KEYS_MIRROR, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
331
+ export type { AnswerCarriage, AnswerPayloadCaps, AnswerPayloadLane, ApprovalAnswerCommitted, ApprovalAskReason, ApprovalAskReasonByHook, ApprovalAskReasonByPolicy, ApprovalCardAllowDecision, ApprovalCardClaim, ApprovalCardClaimOptions, ApprovalCardDecision, ApprovalCardDenyDecision, ApprovalCardFacts, ApprovalCardFrameFactsOptions, ApprovalCardParkRow, ApprovalCardPort, ApprovalCardRequest, ApprovalCardSupersedes, ApprovalCardV1Facts, ApprovalDenySettledBy, ApprovalGrantBinding, ApprovalHolderIdentity, ApprovalHolderJoin, ApprovalMandatedFacts, ApprovalPriorCard, AskOrigin, BoundGrantEntryReading, BoundSkillGrantsWire, DecideAnswerPayload, DecideApprovePayload, DecideDenyPayload, DenialLimitFallback, DenialLimitKind, FsApprovalWireDeps, HostApprovalCardHold, PersistedRuleAnchor, ReadRootCandidateView, RememberRefusalCode, RespondAnswerPayload, RespondToolApprovalFn, RespondToolApprovalOpts, RuleOfferBatchMember, RuleOfferMatch, RuleOfferReading, RuleOfferUncoveredDetail, RuleOfferUncoveredReason, RuleOffersAbsence, ToolApprovalDelegation, ToolApprovalFrame, ToolApprovalFrameLaneOpts, ToolApprovalGateLike, ToolApprovalParkingBodyReading, ToolApprovalRespondAckView, ToolApprovalRespondDecision, ToolApprovalRespondParkingView } from './hitl/toolApprovalWire.js';
314
332
  export * from './hitl/approvalCardReading.js';
315
333
  export * from './hitl/approvalCardReasons.js';
334
+ export { approvalRequestFrameReadingOf, APPROVAL_REQUEST_FRAME_UNREADABLE_WHYS } from './hitl/approvalRequestFrameReading.js';
335
+ export type { ApprovalRequestFrameReading, ApprovalRequestFrameUnreadableWhy } from './hitl/approvalRequestFrameReading.js';
316
336
  export { askClassReasonOf, askClassReasonsOf } from './hitl/askClassPair.js';
317
337
  export type { AskClassReasonRow } from './hitl/askClassPair.js';
318
338
  export * from './hitl/editedRuleTextPrecheck.js';
@@ -334,7 +354,7 @@ export { HITL_DECISION_FAMILIES, HITL_DECISION_NOT_APPLIED_CAUSES, HITL_DECISION
334
354
  export type { HitlApprovalDecisionRequest, HitlAskDecisionRequest, HitlDecisionApplied, HitlDecisionFamily, HitlDecisionGate, HitlDecisionNotApplied, HitlDecisionNotAppliedCause, HitlDecisionNotSent, HitlDecisionNotSentCause, HitlDecisionSendClient, HitlDecisionSendDeps, HitlDecisionSendOutcome, HitlDecisionSendRequest, HitlDecisionSettledElsewhere, HitlDecisionUnconfirmed, HitlDecisionUnconfirmedCause, HitlElicitationDecisionRequest, } from './hitl/decisionSend.js';
335
355
  export { PLAN_REVIEW_QUESTION_ID_PREFIX, REOPEN_ID_TAIL, approvalCallKey, askGateQuestionId, planReviewQuestionId, liveFrameCallKey, armedKeyFromQuestionId, } from './hitl/gateIdentity.js';
336
356
  export { _resetArmedGateRegistryForTest, _setGateArmedWaitMsForTest, clearArmedGate, gateArmedWaitMs, notePlanReviewAnswered, onGateArmed, planReviewArmedKey, registerArmedGate, registerArmedGateFor, registerArmedGateFromQuestionId, registerArmedGateFromQuestionIdFor, waitForGateArmed, wasGateArmed, wasGateArmedFor, } from './hitl/armedGateRegistry.js';
337
- export * from './hitl/parkOwnership.js';
357
+ export { askQuestionsFromPending, isHitlSafetyErrorLike, pendingRowIsOwnedByThisSession, pendingRowOwnershipOf, type ParkOwnershipDeps, } from './hitl/parkOwnership.js';
338
358
  export * from './hitl/parkRowBirthWait.js';
339
359
  export * from './hitl/approvalDecisionNoteAudit.js';
340
360
  export * from './hitl/askParkRowRouting.js';
@@ -356,9 +376,11 @@ export type { ReplayedApprovalDisposition, ReplayPendingBasis } from './hitl/rep
356
376
  export { hasLedgerPositionKey } from './hitl/gateLedger.js';
357
377
  export { durableSeqOf } from './hitl/gateLedger.js';
358
378
  export { MODE_ARBITRATION, automaticAnswerVerdict, mandatedApprovalDetailOf, crossBoundaryTaintOf, crossBoundaryTaintWayOutOf, permissionRequestHookScope, type CrossBoundaryTaintReading, type AutomaticAnswerLane, type AutomaticAnswerAskFace, type AutomaticAnswerFacts, type AutomaticAnswerRoad, type AutomaticAnswerUnknownWhy, type AutomaticAnswerVerdict, type PermissionRequestHookScope, } from './hitl/automaticAnswerVerdict.js';
359
- export { standingRowsOf, type StandingRows, type StandingRowsWhy, type StandingRowWhy, type StandingPersistentRow, type StandingRowsHostFacts, rememberOfferable, localAllowRuleEnforceable, type RememberOffer, type RememberOfferable, type LocalAllowRuleEnforcement, type LocalAllowRuleHostFacts, } from './hitl/standingRows.js';
379
+ export { standingRowsOf, type StandingRows, type StandingRowsWhy, type StandingRowWhy, type StandingPersistentRow, type StandingRowsHostFacts, rememberOfferable, localAllowRuleEnforceable, type RememberOffer, type RememberOfferable, type LocalAllowRuleEnforcement, } from './hitl/standingRows.js';
360
380
  export { classifyDecisionRefusal, liveAskPendingReading, decisionRefusalClosesOut, undeliverableDecisionContent, decideRowUnrevivableNotice, decisionRefusalAskReading, readDecisionRefusalReading, type DecisionRefusalReading, type RefusalRouteContext, type DecisionRefusalAskReading, type DecisionRefusalStanding, type DecisionRefusalClassified, type DecisionRefusalConflict, type LiveAskPendingReading, type UndeliverableDecisionEnd, type UndeliverableDecisionFacts, } from './hitl/decisionRefusal.js';
361
381
  export { decisionGrantChangedContent } from './hitl/decisionConflict.js';
382
+ export { decideFailureNote } from './decideFailureNote.js';
383
+ export { decisionAnswerInvalidContent } from './hitl/decisionConflict.js';
362
384
  export { noAllowCauseOf, type NoAllowCause, type RuleLadderNoAllowFacts } from './hitl/noAllowCause.js';
363
385
  export { policyDenyReason, type PolicyDenyLane, type PolicyDenyReasonFacts } from './hitl/frameRouter.js';
364
386
  export { readApprovalAllowRuleShadow, approvalAllowRuleShadowed, allowRuleShadowSentence, type ApprovalAllowRuleShadow, type ApprovalAllowRuleShadowMember, type AllowRuleShadowedWireMember, } from './hitl/allowRuleShadow.js';
@@ -366,6 +388,7 @@ export { projectCrashConverged } from './hitl/crashConverged.js';
366
388
  export type { ApprovalsListEnvelope, CrashConvergedOrphanState, CrashConvergedProjection, CrashConvergedRowReading } from './hitl/crashConverged.js';
367
389
  export type { ApprovalQueueKindedRow, ApprovalQueueRow } from './hitl/crashConverged.js';
368
390
  export { checkpointQueueRowSortOf, type CheckpointQueueRowSort } from './hitl/approvalQueueRow.js';
391
+ export { subagentSourceSessionOf } from './hitl/subagentSource.js';
369
392
  export * from './hitl/crashConvergedNotice.js';
370
393
  export { approvalCompleteParked } from './hitl/approvalCompleteParked.js';
371
394
  export { approvalCompleteCauseOf } from './hitl/approvalEndingCause.js';
@@ -411,6 +434,10 @@ export { readAssistantInbox } from './assistantInbox.js';
411
434
  export type { AssistantInboxVerb, AssistantInboxEntry, AssistantInboxReading, AssistantInboxUnavailableReason } from './assistantInbox.js';
412
435
  export { checkpointRowVerdictOf } from './checkpointRowVerdict.js';
413
436
  export type { CheckpointRowVerdictReading } from './checkpointRowVerdict.js';
437
+ export { checkpointRowBarOf, checkpointRowBarSentence } from './checkpointRowVerdict.js';
438
+ export type { CheckpointRowBar } from './checkpointRowVerdict.js';
439
+ export { parkedUnresumableRowsOf, parkedUnresumableLine } from './hitl/parkedUnresumable.js';
440
+ export type { ParkedUnresumableRow } from './hitl/parkedUnresumable.js';
414
441
  export { checkpointRequirementsDamagedOf } from './checkpointRowVerdict.js';
415
442
  export type { CheckpointRequirementsDamagedReading } from './checkpointRowVerdict.js';
416
443
  export { READ_CREDENTIAL_NOT_ACCEPTED_NOTICE, isReadCredentialRefusal } from './readCredentialRefusal.js';
@@ -465,7 +492,7 @@ export { scenarioSkillsOf, observedScenarioSkillsCapability } from './scenarioSk
465
492
  export type { ScenarioCardSkill, ScenarioSkillsCapabilityReading } from './scenarioSkills.js';
466
493
  export { observedApprovalFrameFamilies, approvalFrameFamiliesDeclaration } from './approvalFrameFamilies.js';
467
494
  export type { ApprovalFrameFamiliesReading, ApprovalFrameFamiliesDeclaration, ApprovalFrameFamiliesWithheld, ApprovalFrameFamiliesWithheldCause, } from './approvalFrameFamilies.js';
468
- export { sessionEngineBindingFor, commitSessionEngine, readSessionEngine, sessionDispatchTarget } from './sessionEngine.js';
495
+ export { sessionEngineBindingFor, commitSessionEngine, readSessionEngine, sessionDispatchTarget, sessionDispatchRefusedFor } from './sessionEngine.js';
469
496
  export type { SessionEngineKind, SessionEngineIdentityKind, SessionEngineBindingInput, SessionEngineRowInput, SessionEngineBindingFailure, SessionEngineSelfPresentation, SessionEngineDeclaredPresentation, SessionEngineAddressPresentation, SessionEngineBindingOk, SessionEngineSelfBinding, SessionEngineDeclaredBinding, SessionEngineAddressBinding, SessionEngineBinding, SessionEngineAssignment, SessionEngineView, SessionEngineSelfView, SessionEngineDeclaredView, SessionEngineAddressView, SessionEngineReading, SessionEngineBoundReading, SessionEngineSessionRef, SessionEngineCommitRequest, SessionEngineRecoverRequest, SessionEngineUnresolvedReason, SessionEngineCommitResult, SessionEngineCommitted, SessionEngineWiring, SessionDispatchRefusal, SessionDispatchDecision, SessionDispatchUrlTarget, SessionDispatchRefused, } from './sessionEngine.js';
470
497
  export { foldSessionPlacement } from './deviceRebind.js';
471
498
  export type { SessionPlacementView } from './deviceRebind.js';