@sema-agent/client-core 0.112.1 → 0.113.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 (178) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/README.md +36 -23
  3. package/dist/adapt/arms.js +7 -1
  4. package/dist/adapt/textStream.d.ts +2 -0
  5. package/dist/adapt/textStream.js +27 -1
  6. package/dist/adapter/activeRunSelfHeal.d.ts +7 -5
  7. package/dist/adapter/activeRunSelfHeal.js +38 -66
  8. package/dist/adapter/downstream/eventToSdkMessage.js +4 -0
  9. package/dist/adapter/downstream/terminalToSdkResult.d.ts +8 -0
  10. package/dist/adapter/downstream/terminalToSdkResult.js +36 -1
  11. package/dist/adapter/runStream.d.ts +2 -12
  12. package/dist/adapter/runStream.js +46 -19
  13. package/dist/agentSession/engineAgentRegistryRead.js +2 -1
  14. package/dist/agentSession/engineSessionBackgroundStop.js +2 -2
  15. package/dist/attachmentOutcome.d.ts +35 -0
  16. package/dist/attachmentOutcome.js +192 -0
  17. package/dist/attachmentPathPlan.d.ts +67 -0
  18. package/dist/attachmentPathPlan.js +203 -0
  19. package/dist/attachmentRoute.d.ts +9 -1
  20. package/dist/attachmentRoute.js +23 -2
  21. package/dist/declared/supportFloorDeclared.d.ts +1 -1
  22. package/dist/declared/supportFloorDeclared.js +1 -0
  23. package/dist/deviceRebind.js +2 -3
  24. package/dist/displayUntrusted.js +126 -19
  25. package/dist/engineAddress.d.ts +1 -1
  26. package/dist/engineAddress.js +9 -6
  27. package/dist/engineErrorCodes.d.ts +3 -0
  28. package/dist/engineErrorCodes.js +4 -0
  29. package/dist/engineNoticeCodes.d.ts +34 -4
  30. package/dist/engineNoticeCodes.js +133 -6
  31. package/dist/engineUnavailable.d.ts +4 -2
  32. package/dist/engineUnavailable.js +99 -17
  33. package/dist/fleet/fleetLedger.d.ts +9 -3
  34. package/dist/fleet/fleetLedger.js +112 -16
  35. package/dist/fleet/fleetProjection.d.ts +5 -0
  36. package/dist/fleet/fleetProjection.js +9 -1
  37. package/dist/gateVocabulary.d.ts +7 -0
  38. package/dist/gateVocabulary.js +40 -14
  39. package/dist/generated/engineFactTables.d.ts +4 -2
  40. package/dist/generated/engineFactTables.js +198 -2
  41. package/dist/generated/engineNoticeTables.js +56 -8
  42. package/dist/generated/settingsSchemaFns.d.ts +7 -0
  43. package/dist/generated/settingsSchemaFns.js +11 -0
  44. package/dist/generated/settingsSchemaHash.d.ts +1 -0
  45. package/dist/generated/settingsSchemaHash.js +58 -0
  46. package/dist/generated/settingsSchemaOwnKeyRead.js +6 -1
  47. package/dist/generated/settingsSchemaTables.d.ts +3 -2
  48. package/dist/generated/settingsSchemaTables.js +14 -0
  49. package/dist/generated/settingsSchemaTightenVerdict.d.ts +1 -0
  50. package/dist/generated/settingsSchemaTightenVerdict.js +125 -0
  51. package/dist/headlessPermissionModeWire.d.ts +7 -2
  52. package/dist/headlessPermissionModeWire.js +77 -8
  53. package/dist/hitl/approvalDecisionDoor.d.ts +24 -0
  54. package/dist/hitl/approvalDecisionDoor.js +77 -0
  55. package/dist/hitl/approvalDelivery.d.ts +6 -0
  56. package/dist/hitl/approvalDelivery.js +57 -7
  57. package/dist/hitl/approvalResolution.d.ts +6 -3
  58. package/dist/hitl/approvalResolution.js +24 -2
  59. package/dist/hitl/approvalsFeed.js +1 -1
  60. package/dist/hitl/automaticAnswerVerdict.d.ts +1 -1
  61. package/dist/hitl/decisionSend.d.ts +7 -4
  62. package/dist/hitl/decisionSend.js +90 -41
  63. package/dist/hitl/frameRouter.d.ts +3 -3
  64. package/dist/hitl/frameRouter.js +5 -0
  65. package/dist/hitl/hitlHostSurface.d.ts +3 -2
  66. package/dist/hitl/hitlHostSurface.js +5 -3
  67. package/dist/hitl/legacyApprovalShapes.d.ts +142 -0
  68. package/dist/hitl/legacyApprovalShapes.js +1 -0
  69. package/dist/hitl/livePendingAsk.d.ts +4 -4
  70. package/dist/hitl/livePendingAsk.js +5 -3
  71. package/dist/hitl/parkResolver.js +1 -1
  72. package/dist/hitl/persistedRulesWire.js +2 -2
  73. package/dist/hitl/planReviewCard.d.ts +2 -1
  74. package/dist/hitl/planReviewCard.js +64 -1
  75. package/dist/hitl/planReviewWire.d.ts +30 -0
  76. package/dist/hitl/planReviewWire.js +204 -65
  77. package/dist/hitl/sessionPolicyWire.js +16 -7
  78. package/dist/hitl/subagentSource.d.ts +1 -0
  79. package/dist/hitl/subagentSource.js +11 -0
  80. package/dist/hitl/toolApprovalWire.d.ts +34 -10
  81. package/dist/hitl/toolApprovalWire.js +182 -33
  82. package/dist/hookMatcherVerdict.d.ts +2 -1
  83. package/dist/hookMatcherVerdict.js +3 -2
  84. package/dist/hooksReaderGenerations.d.ts +8 -0
  85. package/dist/hooksReaderGenerations.js +49 -0
  86. package/dist/hooksWireCaps.js +43 -18
  87. package/dist/hostSettingsSource.d.ts +1 -1
  88. package/dist/hostSettingsSource.js +2 -2
  89. package/dist/hostTurnSettings.d.ts +2 -2
  90. package/dist/hostTurnSettings.js +87 -47
  91. package/dist/humanTurn.d.ts +2 -1
  92. package/dist/humanTurn.js +44 -13
  93. package/dist/humanTurnRead.d.ts +7 -0
  94. package/dist/humanTurnRead.js +23 -14
  95. package/dist/humanTurnSentences.js +3 -0
  96. package/dist/i18n/messages.en.d.ts +91 -5
  97. package/dist/i18n/messages.en.js +98 -12
  98. package/dist/i18n/messages.zh.js +108 -15
  99. package/dist/index.d.ts +29 -15
  100. package/dist/index.js +17 -9
  101. package/dist/liveModelCatalog.js +1 -0
  102. package/dist/liveQuestionStore.d.ts +2 -0
  103. package/dist/liveQuestionStore.js +7 -2
  104. package/dist/localConfig/kernel.d.ts +2 -1
  105. package/dist/localConfig/kernel.js +12 -18
  106. package/dist/localConfig/mcp/edit.js +25 -27
  107. package/dist/localConfig/mcp/servers.js +5 -8
  108. package/dist/localConfig/modelPool.d.ts +6 -1
  109. package/dist/localConfig/modelPool.js +104 -27
  110. package/dist/localConfig/modelPoolWords.d.ts +2 -0
  111. package/dist/localConfig/modelPoolWords.js +1 -0
  112. package/dist/localConfig/settingsWrite.js +1 -14
  113. package/dist/localConfig/skills.js +9 -16
  114. package/dist/localEngineSpawn.d.ts +29 -1
  115. package/dist/localEngineSpawn.js +62 -1
  116. package/dist/mcpLiveness.d.ts +1 -1
  117. package/dist/mcpProbeWire.js +2 -2
  118. package/dist/mcpReconnect.js +2 -2
  119. package/dist/model/catalogLoader.js +3 -17
  120. package/dist/model/onboardJudgement.d.ts +8 -0
  121. package/dist/model/onboardJudgement.js +8 -3
  122. package/dist/model/onboardSteps.d.ts +19 -0
  123. package/dist/model/onboardSteps.js +76 -0
  124. package/dist/notifications.js +6 -0
  125. package/dist/ownKey.d.ts +4 -0
  126. package/dist/ownKey.js +61 -0
  127. package/dist/pathShape.d.ts +14 -0
  128. package/dist/pathShape.js +44 -0
  129. package/dist/planReviewCardFacts.d.ts +3 -0
  130. package/dist/planReviewCardFacts.js +20 -3
  131. package/dist/pluginHooksWire.d.ts +20 -8
  132. package/dist/pluginHooksWire.js +204 -86
  133. package/dist/prepareRefusal.d.ts +2 -0
  134. package/dist/prepareRefusal.js +11 -1
  135. package/dist/request/taskRequest.js +3 -1
  136. package/dist/resultFrameKeys.d.ts +1 -0
  137. package/dist/resultFrameKeys.js +3 -0
  138. package/dist/resumeRefusalCopy.js +3 -1
  139. package/dist/retryStatus.d.ts +11 -1
  140. package/dist/retryStatus.js +15 -4
  141. package/dist/runTerminal.d.ts +1 -0
  142. package/dist/runTerminal.js +15 -1
  143. package/dist/sdkWireTransit.d.ts +1 -1
  144. package/dist/seatContract.d.ts +12 -3
  145. package/dist/seatContract.js +24 -13
  146. package/dist/sessionEngine.js +1 -1
  147. package/dist/sessionHooksRoster.js +8 -6
  148. package/dist/sessionIdSegment.d.ts +0 -1
  149. package/dist/sessionIdSegment.js +1 -3
  150. package/dist/sessionMemoryErase.js +2 -2
  151. package/dist/sessionMemoryStatus.js +2 -1
  152. package/dist/sessionOccupant.d.ts +29 -0
  153. package/dist/sessionOccupant.js +78 -0
  154. package/dist/settingsHooksSalvage.d.ts +4 -1
  155. package/dist/settingsHooksSalvage.js +22 -9
  156. package/dist/skillOverrideChain.d.ts +3 -0
  157. package/dist/skillOverrideChain.js +31 -4
  158. package/dist/skillsWireCaps.d.ts +16 -2
  159. package/dist/skillsWireCaps.js +47 -20
  160. package/dist/subagent/agentStateDetail.js +32 -8
  161. package/dist/subagent/engineCompactWire.js +48 -36
  162. package/dist/subagent/engineDelegatedPrompt.d.ts +3 -2
  163. package/dist/subagent/engineDelegatedPrompt.js +65 -28
  164. package/dist/subagentEditOutcomes.d.ts +9 -0
  165. package/dist/subagentEditOutcomes.js +43 -0
  166. package/dist/supportFloor.d.ts +2 -1
  167. package/dist/supportFloor.js +1 -1
  168. package/dist/toolResult.js +4 -2
  169. package/dist/toolRoster.d.ts +1 -0
  170. package/dist/toolRoster.js +1 -0
  171. package/dist/usageAnalytics.js +2 -1
  172. package/dist/userAttachmentEnvelope.d.ts +11 -0
  173. package/dist/userAttachmentEnvelope.js +7 -2
  174. package/dist/userAttachmentSeat.d.ts +7 -1
  175. package/dist/userAttachmentSeat.js +44 -7
  176. package/dist/wiringInstructionsAttribution.js +8 -2
  177. package/docs/INTEGRATION-CLIENTS.md +1588 -16
  178. package/package.json +5 -5
@@ -209,14 +209,14 @@ const ZH = {
209
209
  'onboard.plan.modelsNotList': '模型目录里的 "models" 不是列表 —— 不改写它。',
210
210
  'onboard.plan.modelsItemNotObject': '模型目录里有一项 models[] 不是对象 —— 不改写它。',
211
211
  'onboard.plan.envNotObject': '设置文件里的 "env" 不是对象 —— 不改写它。',
212
- 'onboard.plan.envCatalogPresent': '引擎正按环境变量供模型 "{model}",目录里没有启用的模型;写下第一条目录模型会替换掉环境里的那几只。请先把它们放进目录。',
212
+ 'onboard.plan.envCatalogPresent': '引擎正在用环境设置里的模型 "{model}";在模型列表里启用第一条会让环境里的模型退出使用,所以什么都没存。想在这里添加模型,请先从引擎的环境设置里去掉模型项,再回来添加;或者保持现状,继续用环境里的模型。',
213
213
  'onboard.input.keyInFields': '模型 ID / 根地址里含着 API 钥匙 —— 请检查这几栏。',
214
214
  'model.pool.add.duplicate': '「{model}」在这一批里以同一个地址出现了两次 —— 只加一次。',
215
215
  'model.pool.add.probeFailed': '供应商拒绝了「{model}」(钥匙、模型名或应答格式不对)—— 改好后再核对一次。',
216
216
  'model.pool.add.probeUnverified': '「{model}」还没跟供应商核对过(或核对没做完)—— 请再核对一次,或按「未验证」保存。',
217
217
  'model.pool.add.pinMoved': '保存「{name}」时模型列表被改了(它的名字或存的钥匙变了)—— 什么都没加。请再试一次。',
218
218
  'model.pool.notFound': '模型列表里没有叫「{name}」的模型。',
219
- 'model.pool.importEnv.notYet': '引擎正在用环境设置里的「{model}」。本应用暂时还不能把环境模型复制进模型列表 —— 请先手动把它们加进来(地址和钥匙),再加别的。',
219
+ 'model.pool.importEnv.notYet': '引擎正在用环境设置里的「{model}」。本应用还不能把环境里的模型搬进模型列表 —— 什么都没存。想在这里添加模型,请先从引擎的环境设置里去掉模型项,再回来添加;或者保持现状,继续用环境里的模型。',
220
220
  'model.pool.tier.badGroup': '档位组名要以字母或数字开头,只能用字母、数字、「.」「_」「-」。',
221
221
  'model.pool.tier.noGroup': '没有叫「{group}」的档位组。',
222
222
  'model.pool.tier.groupExists': '已经有叫「{group}」的档位组了。',
@@ -233,7 +233,7 @@ const ZH = {
233
233
  'onboard.refusal.writeConflict': '保存过程中有别的程序改了配置 —— 什么都没保存;请重试。',
234
234
  'onboard.refusal.writeFailed': '模型配置没能保存。',
235
235
  'onboard.refusal.engineIsRemote': '正在用 Cloud 引擎 —— 本机模型接入对它不起作用。请先切回本机引擎。',
236
- 'onboard.refusal.envCatalogPresent': '引擎正按环境变量供模型;写下第一条目录模型会替换掉它们,所以没有保存。请先把那几只模型放进目录。',
236
+ 'onboard.refusal.envCatalogPresent': '引擎正在用环境设置里的模型;在模型列表里启用第一条会让它们退出使用,所以什么都没存。想在这里添加模型,请先从引擎的环境设置里去掉模型项,再回来添加;或者保持现状,继续用环境里的模型。',
237
237
  'config.mcp.nameBlank': 'MCP 服务器条目{where}的名字不可用({name}),没有启动。请给它起个名字,或删掉这一条。',
238
238
  'config.mcp.nameEdgeWhitespace': 'MCP 服务器名 {name}{where} 不能照原样使用,所以没有启动:它与其他设置里的同名对不上(例如禁用服务器列表)。请去掉名字里多余的空白。',
239
239
  'config.mcp.nameCollides': 'MCP 服务器名 {name}{where} 不能照原样使用,所以没有启动:去掉首尾空白后会与另一条 MCP 服务器重名。请去掉名字里多余的空白,或删掉重复的一条。',
@@ -317,6 +317,12 @@ const ZH = {
317
317
  'approval.policyDeny.tail': '该操作没有执行。不要声称它已成功,也不要在本会话里重试 —— 请向用户说明这一限制,或建议别的做法。',
318
318
  'approval.decision.grantChanged': '引擎拒收了这次批准:它绑定的技能授予在卡呈出之后已经变了 · 什么都没有决定,这一请求仍在等待,但再批一次会以同样的理由被拒 · 请拒绝这一请求,让模型重新激活那个技能',
319
319
  'approval.decision.answerInvalid': '引擎拒收了这次回答本身:它与所问的问题对不上 · 什么都没有决定,这一问仍在等待 · 请改正回答后重新发送',
320
+ 'approval.routeMissing.line': '你的答复没有送达:服务端不认本应用提交答复用的这个地址(not_found.route)。什么都没有决定,这个请求仍在等待;重新连接可能解决。',
321
+ 'approval.notSent.noVerb': '没有呈出审批卡:这台服务端接收审批答复的地址比本应用用的新。什么都没有发送,这个请求仍在等待;需要更新本应用才能作答。',
322
+ 'approval.notSent.cardUnreadable': '没有呈出审批卡:本应用读不懂这条审批请求,在这里答不了。什么都没有发送,这个请求仍在等待;更新版本的本应用也许能作答。',
323
+ 'approval.notSent.noVerbOldServer': '没有显示审批卡:本应用只能在 {version} 或更高版本的服务端上作答审批,而它没能确认这台服务端是。什么都没发出,请求仍在等待;重新连接可能解决,否则需要升级服务端。',
324
+ 'approval.decision.notSentOldServer': '你的答复没有发出:本应用只能在 {version} 或更高版本的服务端上作答审批,而它没能确认这台服务端是。什么都没决定,请求仍在等待;重新连接可能解决,否则需要升级服务端。',
325
+ 'approval.decision.notSentNewerAddress': '你的答复没有发出:这台服务端接收审批答复的地址比本应用用的新。什么都没有决定,这个请求仍在等待;需要更新本应用才能作答。',
320
326
  'approval.editRefusal.stem': '这条请求在此处看不到工具入参,所以收不了改写后的批准',
321
327
  'approval.editRefusal.line': '这次批准没有发出:{stem}。原卡照旧在等你决断——请按原样批准或拒绝。',
322
328
  'approval.editRefusal.parkReason': '这张卡回了一个改写后的批准,但{stem}——什么都没有发出(待决记录里的入参缺失,或因为太大在那里只留下了一个标明大小的占位);请按原样批准或拒绝',
@@ -406,6 +412,8 @@ const ZH = {
406
412
  'resume.refusal.parentConstraintMissing': '这件工作是在继承自上层任务的策略约束下 parked 的,而这次续跑没有重新提供它们(不带它们续跑会悄悄丢掉上层的门) · {safe} · 请重新提供上层策略链后重试',
407
413
  'resume.refusal.parentConstraintMismatch': '这次续跑提供的上层策略约束,和这件工作 parked 时的对不上(链不全或不同,会让它在更薄或不同的上层规则下运行) · {safe} · 请用完整的原始上层策略链重试',
408
414
  'resume.refusal.constraintUnprojectable': '这次续跑带了编辑过的批准,但继承自上层任务的策略无法对编辑后的入参重新核对 · {safe} · 请不要编辑入参,再决断一次(没编辑过的批准不受这次拒绝影响)',
415
+ 'resume.refusal.isolationScopeMismatch': '这次续跑指定的隔离范围(isolation scope),和这件工作 parked 时记下的不是同一个 · {safe} · 请用记下的那个隔离范围重试,或者省略它让它沿用记下的',
416
+ 'resume.refusal.agentDefinitionMismatch': '这个 parked 的子代,名字现在解析到的定义和它 parked 时的工具清单不一样,或者它的记录说不清当时用的是哪套清单 · {safe} · 请到这个名字仍解析为 parked 时那份定义的地方续跑,或者让它过期',
409
417
  'resume.refusal.preflightWaitable': '部署的续跑预检拒绝了这次尝试 · 拒绝发生在提交之前 —— 你的决断没有被消耗 · 引擎给了等待窗,所以障碍清除之后这个令牌仍可再赎',
410
418
  'resume.refusal.preflightNoWait': '部署的续跑预检拒绝了这次尝试 · 拒绝发生在提交之前 —— 你的决断没有被消耗 · 引擎没给等待窗,所以这次拒绝没有说明这个令牌还能不能再赎',
411
419
  'resume.refusal.policyBlock': '引擎在准入检查处拒绝续跑这件 parked 的工作(引擎说明,自这件工作最初被接受以来,它的准入策略变了) · {reason} · 这次拒绝没有说明在它之前有没有东西被消耗、重试是否会通过 —— 请先查看任务当前的状态再决断,如果它反复出现,请问运维这个部署的人',
@@ -455,7 +463,6 @@ const ZH = {
455
463
  'resume.refusal.park.blockedInteractive': 'sema 不会自己把 run {run} 的卡放回屏幕:这一版引擎拒绝续跑它。要空出这段对话,请发一条消息 —— sema 随后会提出取消那条 run(若卡反而回来了,先作答),之后你就可以把这项工作作为新消息重新发一次。',
456
464
  'session.selfHeal.wayOut.interactive': '运行 /clear,在全新会话里继续工作',
457
465
  'session.selfHeal.freshSession.default': '开一个新会话(去掉 --resume/--continue)',
458
- 'session.selfHeal.freshSession.defaultCapitalized': '开一个新会话(去掉 --resume/--continue)',
459
466
  'session.selfHeal.gate.kind': '一个 {kind} 决定',
460
467
  'session.selfHeal.gate.generic': '一个决定',
461
468
  'session.selfHeal.handle.run': '(run {taskId})',
@@ -474,6 +481,8 @@ const ZH = {
474
481
  'session.selfHeal.injected.steerRejected': '{lead}没有送达:把它交给正在进行的那一轮回复{id}被拒绝了({detail})。sema 没有重试,所以模型没有看到它。',
475
482
  'session.selfHeal.injected.decisionInFlight': '{lead}没有送达:这个会话还被较早的一轮回复占着{id},而你对它在等的那个决断的回答还在路上。sema 没有重试,所以模型没有看到它。',
476
483
  'session.selfHeal.injected.dismissedPlan': '{lead}没有送达:这个会话被较早的一轮回复占着{id},它的计划在等你审阅,而你关掉了那张审批卡 —— {closed}。想让卡回来时请发一条消息;sema 没有重试,所以模型没有看到它。',
484
+ 'session.selfHeal.injected.planReopenConversationLeft': '{lead}没有送达:这个会话被较早的一轮回复占着{id},它的计划在等你审阅,但屏幕已不在这份计划所属的那个对话上,所以 sema 没有把审批卡显示在这里 —— 回到那个对话后它会再次出现。sema 没有重试,所以模型没有看到它。',
485
+ 'session.selfHeal.injected.planReopenConversationUnconfirmed': '{lead}没有送达:这个会话被较早的一轮回复占着{id},它的计划在等你审阅,而 sema 无法确认屏幕上仍是这份计划所属的那个对话,所以没有显示审批卡。sema 没有重试,所以模型没有看到它。',
477
486
  'session.selfHeal.injected.queuedOn': '{lead}排在较早的一轮回复{id}上,那一轮回复停在那里等一个决断',
478
487
  'session.selfHeal.injected.queuedShown': '{queuedOn};sema 已经把那张决断卡显示出来了,你回答之后这条消息才会被取走。',
479
488
  'session.selfHeal.injected.queuedInFlight': '{queuedOn};你对它的回答还在路上,那个回答生效之后这条消息才会被取走。',
@@ -512,6 +521,8 @@ const ZH = {
512
521
  'session.selfHeal.row.planReopenFailed.dismissed': '上一个 turn 处于 parked 状态,在等一次计划审阅(run {taskId}),而你关掉了它的审批卡 —— {closed}。它没有取消这次 run —— 那等于替你把计划丢掉了。你的消息没有发出;再发一次可以把卡叫回来。',
513
522
  'session.selfHeal.row.planReopenFailed.withKeep': '上一个 turn 处于 parked 状态,在等一次计划审阅(run {taskId}),而 sema 没能重新打开那张审批卡{noView}。它没有取消这次 run —— 那等于替你把计划丢掉了。你的消息没有发出。想保住这段对话,请{keep}:会话 resume 之后,如果它还在等,那张卡会回来。如果你不再需要那份计划,也可以{wayOut}。{viaEngine}',
514
523
  'session.selfHeal.row.planReopenFailed.noKeep': '上一个 turn 处于 parked 状态,在等一次计划审阅(run {taskId}),而 sema 没能重新打开那张审批卡{noView}。它没有取消这次 run —— 那等于替你把计划丢掉了。你的消息没有发出;如果你不再需要那份计划,请{wayOut}。{viaEngine}',
524
+ 'session.selfHeal.row.planReopenFailed.conversationLeft': '上一个 turn 处于 parked 状态,在等一次计划审阅(run {taskId}),但屏幕已不在这次审阅所属的那个对话上,所以 sema 没有把审批卡放到这里的屏幕上。它没有取消这次 run —— 那等于替你把计划丢掉了。你的消息没有发出。回到那个对话,计划卡会再次出现。',
525
+ 'session.selfHeal.row.planReopenFailed.conversationUnconfirmed': '上一个 turn 处于 parked 状态,在等一次计划审阅(run {taskId}),但 sema 无法确认屏幕上仍是这次审阅所属的那个对话,所以没有重新打开审批卡。它没有取消这次 run —— 那等于替你把计划丢掉了。你的消息没有发出;请在那个对话里再发一次,把卡叫回来。',
515
526
  'session.selfHeal.row.steered.textOnly': '只有你消息的文字交了出去 —— 如果那次提交里还有图片或附件,它们都没有送出。',
516
527
  'session.selfHeal.row.steered.tail.following': 'sema 正在跟着那次 run,它接下来要什么都会显示出来。',
517
528
  'session.selfHeal.row.steered.tail.watch': '请留意那次 run 怎么处理它。',
@@ -572,9 +583,12 @@ const ZH = {
572
583
  'session.selfHeal.endRun.engineInteractive.noId': '在引擎上结束那条 run',
573
584
  'session.selfHeal.wakeOn.engine': '(POST /v1/sessions/:id/wake)',
574
585
  'session.selfHeal.wakeOn.host': '({where})',
575
- 'session.selfHeal.headless.decide': '这个会话被较早的一次 run{handle}占着{status},它 parked 在等{gate},所以这条消息没有发出。决定它,会话就解锁:POST {decidePath}。改为结束那次 run 也能解锁,但那等于替你否决了那一项:{endRun}。或者{freshSession}。{governance}',
576
- 'session.selfHeal.headless.statusOnly': '这个会话被较早的一次 run{handle}占着,状态是 {status},所以这条消息没有发出。引擎报告那次 run 上没有待决的决断:如果它还在干活,请等它结束;如果它永远落定不了,请{endRun} —— 那会丢掉它正在做的事。或者{freshSession}。',
577
- 'session.selfHeal.headless.neverReleased': '这个会话上仍有一次 run 在活动{handle},而且从未被释放,所以 sema 没有发送这条消息。这里没有任何东西会自己清掉。{startOver},或者{endRun}。',
586
+ 'session.busy.running': '这个会话被较早的一次 run{handle}占着,引擎报告它仍在运行,所以这条消息没有发出。如果它还在干活,请等它结束;如果它永远结束不了,请{endRun} —— 那会丢掉它正在做的事 —— 或者{freshSession}。',
587
+ 'session.busy.parked': '这个会话被较早的一次 run{handle}占着,它还没有被释放,所以这条消息没有发出。没有任何东西会自己放开它 —— {endRun},或者{freshSession}。',
588
+ 'session.busy.parkedDecide': '这个会话被较早的一次 run{handle}占着{status},它 parked 着,所以这条消息没有发出。引擎报告这个会话里有{gate}在等:请在 POST {decidePath} 上决定它,然后重发这条消息。如果决定之后会话仍被占着,请{endRun} —— 那可能丢掉那次 run 正在等的事 —— 或者{freshSession}。{governance}',
589
+ 'session.busy.unreadable': '这个会话被较早的一次 run{handle}占着,所以这条消息没有发出。sema 读不出那次 run 在做什么 —— {endRun},或者{freshSession}。',
590
+ 'session.busy.released': '占着这个会话的那次 run 刚刚被放开,所以这条消息没有发出。请再发一次。',
591
+ 'session.busy.freshSession.interactive': '开一个新会话',
578
592
  'approval.deniedBy.policy': '被这个部署的权限策略拒绝',
579
593
  'approval.deniedBy.hook': '被 PreToolUse hook 拒绝',
580
594
  'approval.deniedBy.org': '被一条组织规则拒绝',
@@ -596,15 +610,26 @@ const ZH = {
596
610
  'approval.origin.hook': 'PreToolUse hook 就这次调用提了问',
597
611
  'approval.origin.askRule': '一条已保存的 ask 规则命中了这次调用',
598
612
  'approval.origin.denialLimitFallback': 'auto 模式分类器达到了它的拒绝上限,把这次调用交回给你',
613
+ 'approval.origin.integrityGuard': '引擎常开的完整性守卫就这次调用提了问(删除受保护的位置、核实不了的递归删除、读不懂的 shell 文本,或写入会话转录;光凭出身,这个客户端分不出是哪一种)',
599
614
  'approval.origin.shellGateTighten': '粗粒度的 shell 检查把这条命令评在它放行的档位之上,所以要问你',
600
- 'approval.origin.safetyTighten': '门依据这次调用自身的事实收紧了(网络外联、不可逆性,或受保护的写入;光凭出身,这个客户端分不出是哪一种)',
615
+ 'approval.origin.safetyTighten': '门依据这次调用自身的事实收紧了(例如网络外联、不可逆性或受保护的写入,还有别的情形;光凭出身,这个客户端分不出是哪一种)',
601
616
  'approval.origin.policy': '这个部署的权限策略,或权限模式的缺省设置,要求就这次调用询问你',
602
617
  'approval.origin.unknownWithWord': '这次调用要问你;它的出身 {word} 是比这个客户端更新的词,请照常回答',
603
618
  'approval.origin.unknownNoWord': '这次调用要问你;它的出身是比这个客户端更新的词,请照常回答',
619
+ 'approval.originHeadline.ancestorMarked': '发起这项工作的任务把它设成了等人答复;它会一直暂停。',
620
+ 'approval.originHeadline.orgUnavailable': '暂时查不到组织的策略,所以这一步要你来定。',
621
+ 'approval.originHeadline.orgRule': '你所在组织的一条规则规定,这一步要你来定。',
622
+ 'approval.originHeadline.ruleStoreUnavailable': '无法确认已保存的规则是否禁止这一步,所以要你来定。',
623
+ 'approval.originHeadline.hook': '一个检查工具调用的 hook 要你确认;你允许了才会执行。',
624
+ 'approval.originHeadline.denialLimitFallback': 'auto 模式自动拒绝的次数到了上限,所以这一步要你来定。',
625
+ 'approval.originHeadline.shellGateTighten': '内置的 shell 命令检查要你确认后,这条命令才会运行。',
626
+ 'approval.originHeadline.safetyTighten': '内置的安全检查需要你确认这个操作;你允许了才会执行。',
627
+ 'approval.originHeadline.integrityGuard': '内置的保护检查就这个操作提了问;它自己的说明在详情里。',
628
+ 'approval.originHeadline.unknown': '这次询问的原因比本客户端新,这里说不清;请照常回答。',
604
629
  'approval.ruleOffer.absence.allowOutranked': '这里没有「不再询问」这一选项:已经有一条 allow 规则命中了这次调用,但这一问的优先级更高 —— 再加一条 allow 规则也会被同样压过',
605
630
  'approval.ruleOffer.absence.askRuleMatched': '这里没有「不再询问」这一选项:一条 ask 规则命中了这次调用,并会一直询问 —— 它还在的时候,allow 规则改变不了什么;想不再被询问,请检查你的 ask 规则',
606
631
  'approval.ruleOffer.absence.askRuleMatchedDeploymentList': '这里没有「不再询问」这一选项:这个部署对这个工具的每次调用都会询问,你自己的规则关不掉它 —— 选 "in this session" 这一项,可以让它在本会话结束之前不再询问',
607
- 'approval.ruleOffer.absence.laneCannotSpeak': '这里没有「不再询问」这一选项:这条审批通道存不了规则',
632
+ 'approval.ruleOffer.absence.laneCannotSpeak': '这里没有「不再询问」这一选项:这张卡对这条具体命令给不出规则,可以逐次批准;你信任的东西换一种规则能覆盖的写法,仍然能得到规则 —— 经为那种写法出的卡,或在设置里写',
608
633
  'approval.ruleOffer.absence.unknown': '这里没有「不再询问」这一选项(原因是这个版本还不认识的一种)',
609
634
  'approval.ruleOffer.uncovered.redirection': '一直会询问(shell 重定向)',
610
635
  'approval.ruleOffer.uncovered.noRuleForm': '没有可覆盖的规则形式',
@@ -862,8 +887,21 @@ const ZH = {
862
887
  'notice.classifier.denialLimit.tail': '请先看一下转录,再改掉总被拦下的那一步,或者接一个审批人,然后重新运行。',
863
888
  'notice.task.lateApproval': '你对"{tool}"的批准没有被采用:一次运行或回合中断在你的决定落地之前就放掉了这个请求,所以这个工具没有运行,你的答复也没有结算任何东西。这只是时序上的事实,不是错误;如果还需要那一步,请再问一次。',
864
889
  'notice.task.haltUnconsumed': '你的停止请求没有切断任何东西:它到达时这次运行已经因自身原因在收尾,所以它没有停下任何东西,以这次运行自己的结局为准。',
890
+ 'notice.turnInterrupted.extensionAbort': '一个扩展结束了正在运行的这一轮,已经完成的工具调用保留各自的结果。',
891
+ 'notice.turnInterrupted.extensionAbortNamed': '扩展"{extension}"结束了正在运行的这一轮,已经完成的工具调用保留各自的结果。',
865
892
  'notice.steering.parkedInputBlocked': '你在这次运行暂停期间发出的一条指令,在运行恢复时被拦下了:这套部署的输入筛查把它扣住,所以它没有到达模型。如果仍然适用,请再发一次。',
866
893
  'notice.model.capabilityDowngraded.image': '这段对话里的图片没有发给 {model}:它的目录条目声明了不收图片输入,所以每张图只以一行占位说明的形式到达它。如果它其实能看图,请在该模型条目里声明(input: ["text", "image"]);否则请换一个能看图的模型。',
894
+ 'notice.rewind.boundaryUnrecorded.notSaved': '这一回合开始时的文件状态没有保存下来,所以之后把文件回退到这一回合会被拒绝。',
895
+ 'notice.rewind.boundaryUnrecorded.timedOut': '保存这一回合开始时的文件状态没有在限定时间内完成,所以之后把文件回退到这一回合会被拒绝。',
896
+ 'notice.rewind.boundaryUnrecorded.tail': '这一回合本身照常进行。如果你需要回到它开始时的文件样子,请依靠自己留的副本,比如版本控制。',
897
+ 'notice.inheritEnv.declaredLate': '这个执行环境要启动的每一条 shell 命令都被拒绝了。它的 inheritEnv 列表里列出了 {name}(inheritEnv[{index}]),而在环境建好之后做出的一次声明(declareWithheldEnv)现在把这个变量标成了引擎自己的服务凭据,子进程不能继承它。在这次声明或这个列表变化之前,重试都不会成功:请在建好环境之前先做这次声明,或者把这一项从 inheritEnv 里去掉。',
898
+ 'notice.mods.stopEnded.point.run': '这次运行的停止点',
899
+ 'notice.mods.stopEnded.point.agent': '一个委派子代理的停止点',
900
+ 'notice.mods.stopEnded.point.other': '一个停止点',
901
+ 'notice.mods.stopEnded.lead.named': '扩展"{registration}"结束了{point}:这次运行没有被送回去从这里继续工作,模型也没有被告知。',
902
+ 'notice.mods.stopEnded.lead.anon': '一个停止处理器结束了{point}:这次运行没有被送回去从这里继续工作,模型也没有被告知。',
903
+ 'notice.mods.stopEnded.reason': '它给的理由:"{reason}"。',
904
+ 'notice.mods.stopEnded.tail': '这只对这一个停止点有效,之后的停止点还会再问一次。如果这不是你想要的,请检查适用于这里的停止处理器。',
867
905
  'rules.refusal.sentence.one': '权限:有 1 条规则不会被执行 —— {list}',
868
906
  'rules.refusal.sentence.other': '权限:有 {count} 条规则不会被执行 —— {list}',
869
907
  'rules.refusal.item': '{rule}({reason})',
@@ -909,6 +947,8 @@ const ZH = {
909
947
  'config.hooks.httpPolicy.urlListMalformed': 'HTTP hook 被拦下:allowedHttpHookUrls({layer})不是字符串列表,按空列表读,所以任何 HTTP hook 都不运行 —— {url} 的 {event} hook 不会运行。',
910
948
  'config.hooks.httpPolicy.envListMalformed': 'HTTP hook {url}({event})在没有环境变量的情况下运行:httpHookAllowedEnvVars({layer})不是字符串列表,按空列表读。',
911
949
  'config.hooks.httpPolicy.layerUnreadable': 'HTTP hook 被拦下:读不出 {layer} 的设置,无法核对它的 allowedHttpHookUrls,所以任何 HTTP hook 都不运行 —— {url} 的 {event} hook 不会运行。',
950
+ 'config.hooks.layerWithheld.degraded': '{layer}:这一回合没能完整读出(设置内容过大读不完,或这一层形状坏了 / 还没装载),这一层和其它可编辑设置里的 hooks 都不发送 —— 只运行托管设置里的 hooks。',
951
+ 'config.hooks.plan.reason.layerDegraded': '有一层设置这一回合没能完整读出,所以只发送托管设置里的 hooks',
912
952
  'config.hooks.layerWithheld.trust': '{layer}:其中的 hooks 不会运行 —— 这个客户端没有工作区信任步骤,而仓库可控的设置里的 hooks 只有在工作区被信任之后才允许。用户设置、flag 设置和托管设置里的 hooks 不受影响。',
913
953
  'config.taskRequest.memoryOff.settingsSectionNotObject': 'memoryOffDeclared: settings 的 memory 段必须是对象 —— 收到 {shape}。',
914
954
  'config.taskRequest.memoryOff.enabledNotBoolean': 'memoryOffDeclared: settings memory.enabled 在场时必须是布尔 —— 收到 {shape}。',
@@ -1198,6 +1238,12 @@ const ZH = {
1198
1238
  'session.humanTurn.degraded.noImageSeat.other': '有 {count} 张图片没有发送:进行中的这一轮不能再加图片 —— 请在这一轮结束后作为新消息发送',
1199
1239
  'session.humanTurn.degraded.noAttachmentIdSeat.one': '有 1 个上传文件没有附上:进行中的这一轮不能再加文件 —— 请在这一轮结束后作为新消息发送',
1200
1240
  'session.humanTurn.degraded.noAttachmentIdSeat.other': '有 {count} 个上传文件没有附上:进行中的这一轮不能再加文件 —— 请在这一轮结束后作为新消息发送',
1241
+ 'session.humanTurn.degraded.noPathSeat.one': '有 1 个附带文件只以引用形发出:进行中的这一轮不能再请引擎读文件 —— 请在这一轮结束后作为新消息发送',
1242
+ 'session.humanTurn.degraded.noPathSeat.other': '有 {count} 个附带文件只以引用形发出:进行中的这一轮不能再请引擎读文件 —— 请在这一轮结束后作为新消息发送',
1243
+ 'session.humanTurn.degraded.pathNotAdmitted.one': '有 1 个附带文件只以引用形发出:无法确认引擎这一发收不收要它读的文件,所以没有请它读',
1244
+ 'session.humanTurn.degraded.pathNotAdmitted.other': '有 {count} 个附带文件只以引用形发出:无法确认引擎这一发收不收要它读的文件,所以没有请它读',
1245
+ 'session.humanTurn.degraded.pathSeatCount.one': '有 1 个附带文件只以引用形发出:一条消息能请引擎读的文件数量有限',
1246
+ 'session.humanTurn.degraded.pathSeatCount.other': '有 {count} 个附带文件只以引用形发出:一条消息能请引擎读的文件数量有限',
1201
1247
  'session.humanTurn.printVision.no': '这只模型{model}不能看图,所以这条提示里的图片没有发送',
1202
1248
  'session.humanTurn.printVision.unknown': '引擎的模型列表没有说明这只模型{model}是否接受图片输入 —— 这条提示里的图片仍然发出了;如果它不接受,图片可能被丢弃,或这一发可能被拒绝',
1203
1249
  'config.scenarioRefusal.source.ruling': ',由配置中心指派给你,',
@@ -1272,6 +1318,7 @@ const ZH = {
1272
1318
  'notice.wireRefusal.unsupportedRule.stored.other': '引擎拒绝继续这件工作:为它保存的请求里有 {count} 条规则是引擎不支持的写法 —— {detail} · 它无法按保存的样子继续。请删掉或改写这些规则(要整只拦下一个工具,请只写工具名);若这件工作仍停驻着,请先取消它,然后作为新请求重新提交',
1273
1319
  'notice.prepareRefusal.draftKept': '你的草稿还保留着',
1274
1320
  'notice.prepareRefusal.mcpServerNameCollision': '引擎在准备这一跑时拒绝了它:为它声明的两台 MCP 服务器分不出彼此 —— 同一个名字写了两次,或名字被引擎转成了同一个工具名前缀(例如“a.b”与“a_b”),工具名会撞在一起 · 引擎自己的报错文字会点名它们 · 同样的请求再发一次仍会被同样拒绝;请在配置这一跑 MCP 服务器的地方给其中一台改个名字,或移除其中一台(若是部署声明的,请找运维这台引擎的人),然后重新发送',
1321
+ 'notice.prepareRefusal.userAttachmentPath': '引擎拒绝了这条消息的第 {n} 件附件:它点名的是这一跑工作区里的文件,而这一跑没有可读的工作区,或不接受这个路径或行段{draft} · 去掉那一件附件,再发一次',
1275
1322
  'notice.retry.source.unifiedHeader': '依据模型服务的额度响应头判定',
1276
1323
  'notice.retry.source.providerCode': '依据模型服务的错误码判定',
1277
1324
  'notice.retry.source.status': '仅依据 HTTP 状态码判定',
@@ -1322,7 +1369,7 @@ const ZH = {
1322
1369
  'doctor.wiring.fleetTranscripts.noPromise': '后台子代对话留存:{tier} —— 这个部署不承诺后台子代句柄能活过引擎重启',
1323
1370
  'doctor.wiring.fleetTranscripts.unknownTier': '后台子代对话留存:未知档位(“{tier}”)—— 按「不承诺后台子代句柄能活过引擎重启」读',
1324
1371
  'config.attachments.refusal.credentialShapedWord': '看起来是一把凭据而不是附件清单,所以没有使用、也不在这里显示 —— 凭据不该放进这个设置。',
1325
- 'session.subagent.delegatedPrompt.absence.notOwnedAfterRestart': '这个子代的 prompt 显示不了:本进程没有记录它的对话存在哪里(这份记录只在内存里,重启后、或从别的壳续的 run 里都是空的)。',
1372
+ 'session.subagent.delegatedPrompt.absence.anchorUnreported': '这个子代的 prompt 显示不了:本端没有收到它的对话存放位置。',
1326
1373
  'session.subagent.delegatedPrompt.absence.notInStore': '这个子代的 prompt 显示不了:引擎的会话店里没有它的会话。',
1327
1374
  'session.subagent.delegatedPrompt.absence.forbidden': '这个子代的 prompt 显示不了:引擎不允许读取它的对话。',
1328
1375
  'session.subagent.delegatedPrompt.absence.promptAbsent': '读到了这个子代的对话,但里面没有可显示的委派 prompt。',
@@ -1346,6 +1393,7 @@ const ZH = {
1346
1393
  'config.hooks.plan.keyNotRead.manyKeys': '{layer}:{hooks} 不会运行 —— 所连服务端不读这些键:{coordinates}。删掉这些键,或改用会读它们的服务端。',
1347
1394
  'config.hooks.plan.keyNotRead.more': '{shown} 等另 {rest} 处',
1348
1395
  'config.hooks.plan.keyNotRead.withOnFailure': '{line}所连服务端不读 onFailure:设成失败即阻断的 hook 失败时不会阻断。',
1396
+ 'config.hooks.plan.keyNotRead.readerFieldsUnreadable': '所连服务端的 hook 字段清单读不出,上面这些键改按服务端版本核对;服务端可能其实读其中一些键。',
1349
1397
  'config.hooks.plan.reason.sourceNotAuthored': '这只 hook 所在的匹配器组写了 "source",这一键只由本客户端设置(删掉该键)',
1350
1398
  'config.hooks.plan.sourceNotAuthored.oneKey': '{layer}:{hooks} 不会运行 —— 键 {coordinates} 只由本客户端设置,不写在设置里。删掉该键。',
1351
1399
  'config.hooks.plan.sourceNotAuthored.manyKeys': '{layer}:{hooks} 不会运行 —— 这些键只由本客户端设置,不写在设置里:{coordinates}。删掉这些键。',
@@ -1413,7 +1461,7 @@ const ZH = {
1413
1461
  'config.localConfig.refused.skillNameUnstorable': '设置里存不下这个技能的名字;给它的文件夹或文件改个名再来配置。',
1414
1462
  'config.localConfig.refused.entryInUse': '这个模型还在被使用(作缺省模型、被某个角色指着,或在旧档位设置里)—— 先把它们改指别的模型。什么都没保存。',
1415
1463
  'config.localConfig.refused.credentialUnpaired': '这个模型用它现有的钥匙或地址连不上 —— 什么都没保存。',
1416
- 'config.localConfig.refused.envCatalogPresent': '引擎正在用环境里设的模型;在这里加一条会让那几只退出使用。请先导入环境模型 —— 什么都没保存。',
1464
+ 'config.localConfig.refused.envCatalogPresent': '引擎正在用环境设置里的模型;在这里加一条会让它们退出使用 —— 什么都没存。想在这里添加模型,请先从引擎的环境设置里去掉模型项,再回来添加;或者保持现状,继续用环境里的模型。',
1417
1465
  'config.localConfig.refused.probeFailed': '供应商表明这次改动里有模型配错了(钥匙、模型名或应答格式)—— 什么都没保存。',
1418
1466
  'config.localConfig.refused.probeUnverified': '这次改动里有模型还没跟供应商核对过(或核对没做完)—— 什么都没保存。请再核对一次,或按「未验证」保存。',
1419
1467
  'config.localConfig.unavailable.engineIsRemote': '正在用 Cloud 引擎 —— 本机配置对它不起作用。请先切回本机引擎。',
@@ -1435,6 +1483,7 @@ const ZH = {
1435
1483
  'config.localConfig.disclosure.decidedBy': '生效的设置来自{layer}。',
1436
1484
  'config.localConfig.disclosure.shadowed': '这项设置被{layer}盖住了,所以暂时不生效。',
1437
1485
  'config.localConfig.disclosure.tierGroupOverridden': '旧设置里有几个档位组与{layer}里已有的组重名;已保留{layer}里的,旧的没有拷过去。',
1486
+ 'config.localConfig.disclosure.shadowUnknown': '说不清这项设置有没有被{layer}盖住:那个文件读不出。',
1438
1487
  'config.localConfig.disclosure.tierGroupOverriddenNamed': '旧设置里这几个档位组与{layer}里已有的组重名;已保留{layer}里的,旧的没有拷过去:{names}。',
1439
1488
  'config.localConfig.layer.userSettings': '你的用户设置',
1440
1489
  'config.localConfig.layer.projectSettings': '这个项目的共享设置',
@@ -1487,6 +1536,9 @@ const ZH = {
1487
1536
  'approval.planReview.note.tooLarge': '这份计划太长,卡上显示不全({length} 个字符),不能在这张卡上批准。可以拒绝,或要一份更短的计划。',
1488
1537
  'approval.planReview.note.notCarried': '引擎没有把这份计划的正文带到卡上(可能过长),不能在这张卡上批准。可以拒绝,或要模型重新呈一次计划。',
1489
1538
  'approval.planReview.note.unknown': '这张卡给不出它要批的计划正文,不能在这张卡上批准。可以拒绝,或要模型重新呈一次计划。',
1539
+ 'approval.planReview.heading.plain': '计划审阅',
1540
+ 'approval.planReview.heading.gate': '计划审阅 — 门 {gate}',
1541
+ 'approval.planReview.heading.replaces': '{head}。这张卡替换了先前的一张计划卡。',
1490
1542
  'approval.planReview.askAgain.shown': '用户要求重新呈上这份计划。',
1491
1543
  'approval.planReview.askAgain.marked': '用户没法批准这份计划:里面有不能照原样显示的字符。请去掉这些字符后重新呈上计划。',
1492
1544
  'approval.planReview.askAgain.tooLarge': '用户没法批准这份计划:它太长,显示不全。请呈上一份更短的计划。',
@@ -1497,9 +1549,20 @@ const ZH = {
1497
1549
  'approval.planReview.decision.refused': '这次 {decision} 没有生效:引擎拒了它,什么都没改。',
1498
1550
  'approval.planReview.decision.cardMissing': '批准一份计划需要附上呈出它的那张卡,这次批准没有附卡。',
1499
1551
  'approval.planReview.decision.gateMoved': '这张卡上的计划已不是在等批的那份。',
1500
- 'approval.planReview.decision.gateUntrusted': '引擎认不出这道审阅门的编号(服务端那一行记录看起来坏了,请运维检查)。修好之前,在这里批准会被同样拒掉、什么都不改。拒绝或要求重新出计划将不带门编号提交:它不批准任何东西,但计划若在此期间已换,它会作用在那时在等的那份计划上,那份可能还没人看过。也可以取消这项任务。',
1552
+ 'approval.planReview.decision.gateUntrusted': '引擎认不出这道审阅门的编号(服务端那一行记录看起来坏了,请运维检查)。修好之前,在这里批准会被同样拒掉、什么都不改。取消这项任务一定可行。拒绝或要求重新出计划将不带门编号提交,也可能被同样拒掉;若它被受理,它不批准任何东西,但计划若在此期间已换,它会作用在那时在等的那份计划上,那份可能还没人看过。',
1501
1553
  'approval.planReview.decision.sentWithoutGateId': '这次回答发出时没带门编号。若它生效,作用的是它到达时引擎正在等的那份审阅,不一定是这张卡上的计划。',
1502
1554
  'approval.planReview.bridge.gateIdMissing': '批准或改写计划需要带上用户看过的那张审阅卡的门编号,这次决断没有带,所以什么都没发。请从审阅卡上决断(卡上带着门编号),或改为拒绝这份计划,或取消这项任务。',
1555
+ 'approval.planReview.notice.what.approve': '对这份计划的批准',
1556
+ 'approval.planReview.notice.what.reject': '对这份计划的拒绝',
1557
+ 'approval.planReview.notice.what.askAgain': '要模型重新呈上计划的请求',
1558
+ 'approval.planReview.notice.what.unknown': '对这份计划的决断',
1559
+ 'approval.planReview.notice.notSent': '你{what}没能发出;计划仍在等决断。',
1560
+ 'approval.planReview.notice.refused': '你{what}没有生效:引擎拒了它。',
1561
+ 'approval.planReview.notice.stillParked': '你{what}没有生效;计划仍停在同一道审阅上。',
1562
+ 'approval.planReview.notice.storedForm': '你{what}没有生效,再决断也不会生效:引擎没法按这道审阅存下的样子继续它。请取消这项任务,再把这件工作作为新任务重新提交。',
1563
+ 'approval.planReview.notice.unconfirmed': '没能确认你{what}是否生效。',
1564
+ 'approval.planReview.notice.wayOut': '引擎给的出路:{wayOut}。',
1565
+ 'approval.planReview.notice.cardOnScreen': '计划审阅卡在屏上。',
1503
1566
  'approval.planReview.option.askAgain.label': '不,要模型重新呈上计划',
1504
1567
  'approval.planReview.option.askAgain.description': '不批准;要模型重新呈上计划',
1505
1568
  'localEngine.behind.cliUpdate': '本机引擎(版本 {running})比这个 Sema({own})新,这个 Sema 不能在它上面开始新的工作。请先运行 `sema update`,再重新打开这个会话。',
@@ -1538,6 +1601,8 @@ const ZH = {
1538
1601
  'localEngine.settingsLayer.unspecified': '某个设置文件',
1539
1602
  'localEngine.bootRefusal': '本机引擎拒绝启动:{reason}',
1540
1603
  'localEngine.firstShare': '这个 Sema 现在与本机其他 Sema 应用共用同一台本机引擎。这个应用以前私有引擎里的本机会话不在列表中显示;它们的数据原样留着。',
1604
+ 'localEngine.bindNotAcknowledged': '本机引擎没有启动:Sema 缺省只让它监听 `127.0.0.1`,而 `BIND_HOST` 要求监听别的地址。要允许,请打开 `{switchKey}` 并接受风险;否则把 `BIND_HOST` 改回 `127.0.0.1` 或删掉它,再重新启动。',
1605
+ 'localEngine.bindAcknowledged': '本机引擎被设为监听 `127.0.0.1` 之外的地址:别的机器或本机上的其他程序可能连上它,并以你的身份执行命令。',
1541
1606
  'localEngine.phase.starting': '正在启动本机引擎……',
1542
1607
  'localEngine.phase.dormant': '本机引擎没有在跑;有会话要用时会启动。',
1543
1608
  'localEngine.phase.draining': '本机引擎在停止前收尾手上的工作;它回来后 Sema 会重新连上。',
@@ -1629,6 +1694,7 @@ const ZH = {
1629
1694
  'engine.bootRefusal.withWaysOut': '本机引擎拒绝启动:{reason} {waysOut}',
1630
1695
  'engine.bootRefusal.withFix': '本机引擎拒绝启动:{reason} {fix}',
1631
1696
  'engine.bootRefusal.waysOut': '出路:(1){newer} —— {separate};(2){restore};(3){repair}。',
1697
+ 'engine.bootRefusal.waysOutFour': '出路:(1){newer} —— {separate};(2){restore};(3){repair};(4){migration}。',
1632
1698
  'engine.bootRefusal.who.sema': '更新的 sema',
1633
1699
  'engine.bootRefusal.who.semaAtLeast': '更新的 sema(它的引擎是 {version} 或更新的版本)',
1634
1700
  'engine.bootRefusal.who.app': '本应用更新的版本',
@@ -1649,6 +1715,10 @@ const ZH = {
1649
1715
  'engine.bootRefusal.folder.default': '你的 sema 配置文件夹里的 engine-data 文件夹',
1650
1716
  'engine.bootRefusal.repair': '如果上面点名的文件根本读不了(EACCES 一类的 I/O 错误),修好它的访问(权限、磁盘)后{again}',
1651
1717
  'engine.bootRefusal.repairDeployment': '如果上面点名的文件根本读不了(EACCES 一类的 I/O 错误),修好它的访问(权限、挂载、磁盘)后重启',
1718
+ 'engine.bootRefusal.release.atLeast': '引擎版本为 {version} 或更新、且仍带这条迁移的版本',
1719
+ 'engine.bootRefusal.release.any': '仍带这条迁移的版本',
1720
+ 'engine.bootRefusal.migration': '如果上面有一行说这个数据文件夹跳过了一次必经的一次性迁移,就用{release}把它启动一次,等那次启动完整结束,然后{again}',
1721
+ 'engine.bootRefusal.migrationDeployment': '如果上面有一行说数据根跳过了一次必经的一次性迁移,就用{release}把数据根启动一次,等那次启动完整结束,再启动这份构建',
1652
1722
  'session.devices.repoint.done': '已改指:这台机器的设备档和会话现在跟着新的引擎地址走。设备身份没变 —— 没有重新注册。',
1653
1723
  'session.devices.repoint.unverified': '什么都没改:确认不了新地址上有这台设备。如果它就是同一台引擎,请确认你是用这台设备所属账号登录的,然后再试一次;否则请到引擎自己的地址重新注册这台机器,再到引擎的设备列表里移除旧设备。',
1654
1724
  'session.devices.repoint.undetermined': '什么都没改:对新地址的一项核对没读到结果,所以不知道这台设备是否登记在那边。请再试一次;或者到引擎自己的地址重新注册这台机器,再到引擎的设备列表里移除旧设备。',
@@ -1662,12 +1732,28 @@ const ZH = {
1662
1732
  'session.devices.repoint.refused.targetOccupied': '什么都没改:这台机器在新地址上已经有一份不同设备的设备档。',
1663
1733
  'session.devices.repoint.refused.unarmed': '什么都没改:这个应用没有接好迁移设备档和会话的能力。',
1664
1734
  'session.devices.repoint.refused.rosterUnbound': '什么都没改:这个应用没有接好新地址上的设备列表,所以无法核对这次迁移。这是应用自己的接线问题,再试一次也不会好。',
1735
+ 'attachments.outcome.attached.row': '已附上',
1736
+ 'attachments.outcome.partial.row': '只附上了一部分',
1737
+ 'attachments.outcome.notAttached.row': '没有附上',
1738
+ 'attachments.outcome.notAttachedDeclined.row': '没有附上:扩展 {name} 拒绝了它',
1739
+ 'attachments.outcome.refused.row': '没有附上:引擎拒绝了这条消息的附件',
1740
+ 'attachments.outcome.refusedNamed.row': '没有附上:引擎拒绝了这一件附件',
1741
+ 'attachments.outcome.unknown.row': '无法确认是否已附上',
1665
1742
  'attachments.withheld.toolsElsewhere.row': '这个会话的工具不读写这台机器上的文件',
1666
1743
  'attachments.withheld.toolsLocationUnconfirmed.row': '无法确认这个会话的工具读写的是这台机器上的文件',
1667
1744
  'attachments.withheld.toolsElsewhere.model': '这个会话的工具不读写客户端所在机器上的文件,所以客户端没有附上那台机器上的副本;它可能与工具读写的文件不同,文件也可能只存在于工具运行的地方',
1668
1745
  'attachments.withheld.toolsLocationUnconfirmed.model': '客户端无法确认这个会话的工具读写的是它所在机器上的文件,所以没有附上那台机器上的副本;它可能与工具读写的文件不同,文件也可能只存在于工具运行的地方',
1669
1746
  'attachments.localCopy.model': '这是用户从客户端所在机器上交来的内容:它是那台机器上的副本,随附的路径也是那台机器上的路径。这个会话的工具未必读写那台机器上的文件,所以工具读写的文件可能不同,也可能不存在。',
1747
+ 'attachments.pathOverflow.seatCount.row': '没有请引擎自己读这件附件:这条消息点名的文件已达到引擎一条消息能读的数量',
1748
+ 'attachments.pathOverflow.linesInvalid.row': '没有请引擎自己读这件附件:它的行段不合法(行号从 1 起,行段不能在起点之前结束)',
1749
+ 'attachments.pathOverflow.pathInvalid.row': '没有请引擎自己读这件附件:它的路径为空,或超过了引擎接受的长度',
1750
+ 'attachments.pathPointer.model': '用户随这条消息附了 {path}。',
1670
1751
  'session.compaction.canceled': '压缩已取消。',
1752
+ 'session.compaction.notRunning.willRetry': '这一轮的压缩没有生效;会在你下一条消息时再请求一次。',
1753
+ 'session.compaction.notRunning.final': '这一轮的压缩也没有生效,什么都没有压缩。如果还需要,请再请求一次压缩。',
1754
+ 'session.subagent.editOutcomes.allApplied.one': '已应用 {count} 处文件修改。',
1755
+ 'session.subagent.editOutcomes.allApplied.other': '已应用 {count} 处文件修改。',
1756
+ 'session.subagent.editOutcomes.mixed': '文件修改:共尝试 {attempted} 处,已应用 {succeeded} 处,未执行 {refused} 处,失败 {failed} 处。',
1671
1757
  'localEngine.health.answer.unansweredTimeout': '没有在时限内应答',
1672
1758
  'localEngine.health.answer.unansweredNetwork': '连不上',
1673
1759
  'localEngine.health.answer.ok': '应答了,状态为 "ok"',
@@ -1758,6 +1844,8 @@ export const TERM_SLOTS = Object.freeze({
1758
1844
  'resume.refusal.compositionMismatch': ['parked', 'composition leg'],
1759
1845
  'resume.refusal.parentConstraintMissing': ['parked'],
1760
1846
  'resume.refusal.parentConstraintMismatch': ['parked'],
1847
+ 'resume.refusal.isolationScopeMismatch': ['parked', 'isolation scope'],
1848
+ 'resume.refusal.agentDefinitionMismatch': ['parked'],
1761
1849
  'resume.refusal.policyBlock': ['parked'],
1762
1850
  'resume.refusal.contextUnavailable': ['run'],
1763
1851
  'resume.refusal.contextThird.withRun': ['run'],
@@ -1811,6 +1899,8 @@ export const TERM_SLOTS = Object.freeze({
1811
1899
  'session.selfHeal.row.planReopenFailed.dismissed': ['parked', 'run', 'turn'],
1812
1900
  'session.selfHeal.row.planReopenFailed.withKeep': ['parked', 'run', 'turn'],
1813
1901
  'session.selfHeal.row.planReopenFailed.noKeep': ['parked', 'run', 'turn'],
1902
+ 'session.selfHeal.row.planReopenFailed.conversationLeft': ['parked', 'run', 'turn'],
1903
+ 'session.selfHeal.row.planReopenFailed.conversationUnconfirmed': ['parked', 'run', 'turn'],
1814
1904
  'session.selfHeal.row.steered.tail.following': ['run'],
1815
1905
  'session.selfHeal.row.steered.tail.watch': ['run'],
1816
1906
  'session.selfHeal.row.steered.unknownTail.following': ['run'],
@@ -1860,12 +1950,15 @@ export const TERM_SLOTS = Object.freeze({
1860
1950
  'session.selfHeal.endRun.engineInteractive': ['run'],
1861
1951
  'session.selfHeal.endRun.engineInteractive.noId': ['run'],
1862
1952
  'session.selfHeal.row.steerFailed.runEnded': ['run', 'turn'],
1863
- 'session.selfHeal.headless.decide': ['parked', 'run'],
1864
- 'session.selfHeal.headless.statusOnly': ['run'],
1865
- 'session.selfHeal.headless.neverReleased': ['run'],
1953
+ 'session.busy.running': ['run'],
1954
+ 'session.busy.parked': ['run'],
1955
+ 'session.busy.parkedDecide': ['parked', 'run'],
1956
+ 'session.busy.unreadable': ['run'],
1957
+ 'session.busy.released': ['run'],
1866
1958
  'approval.deniedBy.hook': ['hook'],
1867
1959
  'approval.origin.planReview': ['run'],
1868
1960
  'approval.origin.hook': ['hook'],
1961
+ 'approval.originHeadline.hook': ['hook'],
1869
1962
  'approval.boundGrants.denyPart.one': ['run'],
1870
1963
  'approval.boundGrants.denyPart.other': ['run'],
1871
1964
  'approval.boundGrants.denyPart.named.one': ['run'],
package/dist/index.d.ts CHANGED
@@ -107,8 +107,8 @@ export { countClientRegistry, fleetBackgroundLiveOf, localEngineSelfOf, localEng
107
107
  export type { ClientRegistryDirectory, ClientRegistryRecordReading, ClientRegistryCount, LocalEngineFleetReading, FleetBackgroundLive, LocalEngineSelfItem, LocalEngineSelfReading, LocalEngineSelfInput, LocalEngineSelf, LocalEngineRegistryStatus, LocalEngineOccupancy, LocalEngineDefaultLane, LocalEngineDemandSession, LocalEngineDemandInput, LocalEngineDemandSource, LocalEngineDemand, LocalEngineExitFate, } from './localEngineOccupancy.js';
108
108
  export { LOCAL_ENGINE_SWAP_CAUSES, localEngineSwapAutoable, engineSwapCardOf, engineSwapCardText } from './localEngineSwapCard.js';
109
109
  export type { LocalEngineSwapCause, LocalEngineSwapPolicy, EngineSwapCardTarget, EngineSwapCardUnknown, EngineSwapCardInput, EngineSwapCardOthers, EngineSwapCard, EngineSwapCardText, } from './localEngineSwapCard.js';
110
- export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, localEngineFirstShareSentence, } from './localEngineSpawn.js';
111
- export type { LocalEngineSpawnPathSlot, LocalEngineSpawnDerived, LocalEngineSpawnValue, LocalEngineSpawnEnvRow, LocalEngineBudgets, LocalEngineSpawnPaths, LocalEngineSpawnEnvInput, LocalEngineSpawnApplied, LocalEngineSpawnEnv, LocalEngineSettingsLayerName, LocalEngineSettingsLayers, LocalEngineSeedInput, LocalEngineSeedFrom, LocalEngineSeedDropped, LocalEngineSeed, LocalEnginePrincipal, LocalEnginePrincipalView, } from './localEngineSpawn.js';
110
+ export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, localEngineFirstShareSentence, LOCAL_ENGINE_SEED_REFUSALS, LOCAL_ENGINE_BIND_DISCLOSURES, localEngineSeedRefusalCodeOf, localEngineBindGateOf, localEngineBindSentence, } from './localEngineSpawn.js';
111
+ export type { LocalEngineSpawnPathSlot, LocalEngineSpawnDerived, LocalEngineSpawnValue, LocalEngineSpawnEnvRow, LocalEngineBudgets, LocalEngineSpawnPaths, LocalEngineSpawnEnvInput, LocalEngineSpawnApplied, LocalEngineSpawnEnv, LocalEngineSettingsLayerName, LocalEngineSettingsLayers, LocalEngineSeedInput, LocalEngineSeedFrom, LocalEngineSeedDropped, LocalEngineSeed, LocalEnginePrincipal, LocalEnginePrincipalView, LocalEngineSeedRefusal, LocalEngineBindRefusal, LocalEngineBindDisclosure, LocalEngineBindGateInput, LocalEngineBindPass, LocalEngineBindRefuse, LocalEngineBindGate, } from './localEngineSpawn.js';
112
112
  export { ENGINE_UNAVAILABLE_REASONS, ENGINE_INSTALL_SHAPES, ENGINE_BOOT_REFUSAL_CODES, engineBootRefusalOf, engineBootRefusalSentence, engineUnavailableLine, } from './engineUnavailable.js';
113
113
  export type { EngineUnavailableReason, EngineBootRefusalReason, EngineInstallShape, EngineBootRefusalForm, EngineDataRootVariant, EngineBootWayOut, LocalEngineBootRefusal, EngineUnavailableFacts, } from './engineUnavailable.js';
114
114
  export { LOCAL_ENGINE_STOP_LADDER, stopLadderStep } from './localEngineStopLadder.js';
@@ -157,7 +157,10 @@ export { stripSystemReminderBlocks, unwrapSystemReminder } from './systemReminde
157
157
  export { findSystemReminderOpenTag, type SystemReminderOpenTagSpan } from './systemReminderTag.js';
158
158
  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';
159
159
  export type { DelegationCapDisposition, ModelFallbackReason, OperatorGateRefusal, RunDeathVerdictCode, } from './engineErrorCodes.js';
160
+ export type { SessionOccupant } from './sessionOccupant.js';
160
161
  export { prepareRefusalCodeOf, prepareRefusalNoteOf, type PrepareRefusalCode, type PrepareRefusalNoteFacts } from './prepareRefusal.js';
162
+ export { attachmentOutcomesOf, attachmentOutcomeText, ATTACHMENT_OUTCOMES } from './attachmentOutcome.js';
163
+ export type { AttachmentOutcome, AttachmentOutcomeRow, AttachmentOutcomesReport, AttachmentOutcomesSent, AttachmentSupply } from './attachmentOutcome.js';
161
164
  export * from './agentsWireCaps.js';
162
165
  export { engineToolDirectoryOf } from './engineToolDirectory.js';
163
166
  export type { EngineToolDirectory, EngineToolDirectorySource } from './engineToolDirectory.js';
@@ -233,6 +236,7 @@ export { abortableSleep } from './abortableSleep.js';
233
236
  export { DEFAULT_SESSION_KEY } from './sessionSlot.js';
234
237
  export * from './scratchpadWireCaps.js';
235
238
  export * from './toolResult.js';
239
+ export { subagentEditOutcomesOf, subagentEditOutcomesSentence, type SubagentEditOutcomes } from './subagentEditOutcomes.js';
236
240
  export * from './diff/patch.js';
237
241
  export * from './sandboxWire.js';
238
242
  export * from './scenarioWire.js';
@@ -241,8 +245,8 @@ export * from './limitsWire.js';
241
245
  export * from './interactiveToolsWire.js';
242
246
  export * from './headlessPermissionModeWire.js';
243
247
  export * from './headlessReconnectWire.js';
244
- export { coerceTaskStatus, coerceWorkflowStatus, CONTROL_TOOL_VERBS, FLEET_TASK_ROW_KEYS_NOT_PROJECTED, FLEET_TASK_ROW_WIRE_KEYS, FLEET_TASK_VIEW_KEYS, FLEET_WORKFLOW_ROW_KEYS_NOT_PROJECTED, FLEET_WORKFLOW_ROW_WIRE_KEYS, FLEET_WORKFLOW_VIEW_KEYS, projectDescription, projectTasks, projectWorkflows, wireResumable, wireRowUsage, workflowRunDisplayStatusOf, } from './fleet/fleetProjection.js';
245
- export type { FleetRowUsage, FleetTaskStatus, FleetTaskView, FleetWorkflowView, NotProjectedEntry, ProjectTasksOptions, } from './fleet/fleetProjection.js';
248
+ export { coerceTaskStatus, coerceWorkflowStatus, CONTROL_TOOL_VERBS, FLEET_LEDGER_TASK_VIEW_EXTRA_KEYS, FLEET_TASK_ROW_KEYS_NOT_PROJECTED, FLEET_TASK_ROW_WIRE_KEYS, FLEET_TASK_VIEW_KEYS, FLEET_WORKFLOW_ROW_KEYS_NOT_PROJECTED, FLEET_WORKFLOW_ROW_WIRE_KEYS, FLEET_WORKFLOW_VIEW_KEYS, fleetTaskShownStatus, projectDescription, projectTasks, projectWorkflows, wireResumable, wireRowUsage, workflowRunDisplayStatusOf, } from './fleet/fleetProjection.js';
249
+ export type { FleetLedgerTaskView, FleetRowUsage, FleetTaskStatus, FleetTaskView, FleetWorkflowView, NotProjectedEntry, ProjectTasksOptions, } from './fleet/fleetProjection.js';
246
250
  export * from './fleet/fleetLedger.js';
247
251
  export * from './fleet/bgSubagentRow.js';
248
252
  export * from './fleet/workflowSizeWarning.js';
@@ -283,6 +287,10 @@ export { mintUserAttachmentEnvelope, showAttachmentName } from './userAttachment
283
287
  export { showAttachmentNameCc } from './userAttachmentEnvelope.js';
284
288
  export type { UserAttachmentDescriptor, UserAttachmentNotebookCell } from './userAttachmentEnvelope.js';
285
289
  export { encodeHumanTurn, deliveredUuidsOf, imageSentOnUnknownVision, otherBodyBytesOf } from './humanTurn.js';
290
+ export { attachmentPathOverflowText } from './attachmentPathPlan.js';
291
+ export type { AttachmentPathOverflow, UserAttachmentPathEntry } from './attachmentPathPlan.js';
292
+ export { attachmentRoutePlanOf } from './attachmentPathPlan.js';
293
+ export type { AttachmentRouteBatch, AttachmentRoutePlan, AttachmentRouteStep } from './attachmentPathPlan.js';
286
294
  export { batchCompatible, planQueuedDelivery, humanTurnCapsOf, humanTextForKeywordScan, selfHealSteerEligible } from './queuedDelivery.js';
287
295
  export type { QueueEntry, QueueEntryKind, QueueShellBlock, QueuedHoldReason, QueuedDeliveryPlan, HumanTurnCapsFacts } from './queuedDelivery.js';
288
296
  export { SUBMISSION_SURFACES, SUBMISSION_ORIGINS, SUBMISSION_TOOLS, SUBMISSION_KINDS, submissionProvenanceOf, submissionIdentityOf, requestLaneOf, submissionOriginOf, } from './request/submissionIdentity.js';
@@ -292,13 +300,14 @@ export type { TaskNotificationQueueCommand, PendingNotificationCommand } from '.
292
300
  export { taskNotificationAdmissionOf } from './taskNotificationAdmission.js';
293
301
  export type { TaskNotificationAdmission, TaskNotificationAdmissionVerdict, TaskNotificationAdmissionWhy, TaskNotificationReadResult, TaskNotificationRunRecordView, } from './taskNotificationAdmission.js';
294
302
  export { resultErrorCodeInTextOf } from './resultFrameKeys.js';
303
+ export { resultTurnAbortedByOf } from './resultFrameKeys.js';
295
304
  export { humanTurnRefusalSentence, humanTurnDegradedSentence, printImageVisionSentence } from './humanTurnSentences.js';
296
305
  export type { HumanTurnInput, HumanTurnItem, HumanTurnAttachment, HumanTurnRider, HumanTurnMissing, HumanTurnCaps, HumanTurnEncoding, HumanTurnShare, HumanTurnSharePart, HumanTurnDegraded, HumanTurnDelivered, HumanTurnNotice, } from './humanTurn.js';
297
306
  export type { UserAttachment } from '@sema-agent/sdk';
298
307
  export { observedUserAttachmentSeat, projectUserAttachmentSeatCapability, userAttachmentSeatAdmits } from './userAttachmentSeat.js';
299
308
  export type { UserAttachmentSeatReading, UserAttachmentSeatPresent, UserAttachmentSeatLimits } from './userAttachmentSeat.js';
300
309
  export { attachmentRouteOf, attachmentWithheldReasonText, attachmentLocalCopyNote, ATTACHMENT_ROUTE_LEGS, TOOLS_LOCATIONS } from './attachmentRoute.js';
301
- export type { AttachmentRoute, AttachmentRouteFacts, AttachmentRouteLeg, AttachmentWithheldReason, ToolsLocation } from './attachmentRoute.js';
310
+ export type { AttachmentRoute, AttachmentRouteFallback, AttachmentRouteFacts, AttachmentRouteLeg, AttachmentWithheldReason, ToolsLocation } from './attachmentRoute.js';
302
311
  export { scenarioRefusalFromError, scenarioRefusalContent } from './scenarioRefusal.js';
303
312
  export type { ScenarioRefusalReading } from './scenarioRefusal.js';
304
313
  export { projectEngineSessionMessages } from './engineSessionMessages.js';
@@ -327,10 +336,10 @@ export * from './detachWire.js';
327
336
  export * from './workflowMonitor.js';
328
337
  export * from './workflowClient.js';
329
338
  export * from './hooksWireCaps.js';
330
- export { ENGINE_FIRED_HOOK_EVENTS, PLUGIN_HOOK_DISPOSITIONS, PLUGIN_HOOK_REASONS, PLUGIN_HOOK_EXCLUSION_REASONS, SETTINGS_HOOK_DROP_REASONS, isEngineFiredHookEvent, pluginHookVerdictOf, pluginHookReasonText, settingsHookDropText, pluginHookExecutorLabel, hooksNotRunNotice, settingsHooksKeptLocally, pluginHooksKeptLocally, userPromptSubmitExecutorOf, type EngineFiredHookEvent, type PluginHookDisposition, type PluginHookReason, type PluginHookExclusionReason, type SettingsHookDropReason, type HookSettingsSource, type PluginHookKey, type PluginHookVerdict, type PluginHookExclusion, type SettingsHookDrop, type SettingsHookVerdict, type SettingsHookExclusion, type HooksWireEngineFacts, type PluginHookReaderState, type HooksWirePlan, type HooksWirePlanOptions, type SettingsHooksSalvageRow, type SettingsLayerWithheldRow, type PluginHookModuleVerdict, type SessionHookVerdict, HOOK_ENTRY_TYPE_WORDS, type HookEntryTypeWord, } from './pluginHooksWire.js';
339
+ export { SUPPORT_FLOOR_SETTINGS_CONTRACT, PLUGIN_HOOK_DISPOSITIONS, PLUGIN_HOOK_REASONS, PLUGIN_HOOK_EXCLUSION_REASONS, SETTINGS_HOOK_DROP_REASONS, isEngineFiredHookEvent, pluginHookVerdictOf, pluginHookReasonText, settingsHookDropText, pluginHookExecutorLabel, hooksNotRunNotice, settingsHooksKeptLocally, pluginHooksKeptLocally, userPromptSubmitExecutorOf, type EngineFiredHookEvent, type HooksWireSettingsContract, type PluginHookDisposition, type PluginHookReason, type PluginHookExclusionReason, type SettingsHookDropReason, type HookSettingsSource, type PluginHookKey, type PluginHookVerdict, type PluginHookExclusion, type SettingsHookDrop, type SettingsHookVerdict, type SettingsHookExclusion, type HooksWireEngineFacts, type PluginHookReaderState, type HooksWirePlan, type HooksWirePlanOptions, type SettingsHooksSalvageRow, type SettingsLayerWithheldRow, type PluginHookModuleVerdict, type SessionHookVerdict, HOOK_ENTRY_TYPE_WORDS, type HookEntryTypeWord, } from './pluginHooksWire.js';
331
340
  export { sessionHooksRosterOf } from './sessionHooksRoster.js';
332
341
  export { HTTP_POLICY_DROP_REASONS, type HttpPolicyDropReason, type HttpPolicyDropRow } from './httpHookPolicy.js';
333
- export { salvageSettingsHooksEntries, settingsHooksSalvageNotice, type HooksSalvage, type HooksSalvageDrop, type HooksSalvageRejection, type HooksSalvageOutcome, type HooksSalvageDropCode, type HooksSalvageRejectionCode, } from './settingsHooksSalvage.js';
342
+ export { isGuardHookEvent, salvageSettingsHooksEntries, settingsHooksSalvageNotice, type HooksSalvage, type HooksSalvageDrop, type HooksSalvageRejection, type HooksSalvageOutcome, type HooksSalvageDropCode, type HooksSalvageRejectionCode, } from './settingsHooksSalvage.js';
334
343
  export { hostSettingNoticeEventsOf } from './hostSettingNoticeArm.js';
335
344
  export { hostSettingsSelfCheck, HostSettingsRefused, HOST_SUPPLIED_KEYS, HOST_SETTING_CAUSES, HOST_SETTING_DISPOSITIONS, type HostSuppliedKey, type HostSettingCause, type HostSettingDisposition, type HostSettingPlane, type HostSettingNoticeId, type HostSettingRow, type HostSettingNotice, type HostTurnVerdict, type HostTurnSettingsSources, type HostWebSearchSource, type HostMemorySource, type HostTurnSettingsInput, type HostSettingsCarried, type HostTurnSettings, type HooksPlanFacts, type HostOutputStyleSource, type HostOutputStyleBody, type HostOutputStyleFacts, type HostSettingsSession, type HostSettingsHeld, type HostSettingsAcceptConfirmation, type HostPermissionFacts, hostSettingsConsent, hostSettingsAcceptCurrent, } from './hostTurnSettings.js';
336
345
  export { hostSettingsSessionFollows, type WorkspaceTrustState, type HostSettingsSource, type HostSettingsLayer, type HostSettingsLayerRead, type HostSettingsCarrierRead, type HostSettingsCarrierStatus, type HostSettingsEmptyKind, type HostManagedPolicyReading, type HostStartupMode, } from './hostSettingsSource.js';
@@ -357,12 +366,12 @@ export { toolOutputMediaAbsenceOf, toolOutputMediaAbsenceSentence } from './tool
357
366
  export type { ToolOutputMediaAbsence } from './toolResultContent.js';
358
367
  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';
359
368
  export type { ClassifierDenyContext, HitlHostSurface, HitlNotice, } from './hitl/hitlHostSurface.js';
360
- 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, WITHDRAWN_CARD_DECISION_KIND, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, allowNoteNotCarriedSentence, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalCardRequestOf, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondParkedRedeemed, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolApprovalReplayVerdictOf, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
361
- export type { AnswerCarriage, AnswerPayloadCaps, AnswerPayloadLane, ApprovalAnswerCommitted, ApprovalAskReason, ApprovalAskReasonByHook, ApprovalAskReasonByPolicy, ApprovalCardAllowDecision, ApprovalCardClaim, ApprovalCardClaimOptions, ApprovalCardDecision, ApprovalCardDenyDecision, ApprovalCardFacts, ApprovalCardFrameFactsOptions, ApprovalCardHostBits, ApprovalCardParkRow, ApprovalCardPort, ApprovalCardRequest, ApprovalCardSupersedes, ApprovalCardV1Facts, ApprovalDenySettledBy, ApprovalGrantBinding, ApprovalHolderIdentity, ApprovalHolderJoin, ApprovalInputSource, ApprovalMandatedFacts, ApprovalPriorCard, ApprovalRequestedBy, 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, ToolApprovalFrameRunBits, ToolApprovalGateLike, ToolApprovalParkingBodyReading, ToolApprovalReplayVerdict, ToolApprovalRespondAckView, ToolApprovalRespondDecision, ToolApprovalRespondParkingView, ToolApprovalRespondRedeemedView } from './hitl/toolApprovalWire.js';
369
+ export { APPROVAL_DENY_SETTLED_BY_WORDS, ASK_ORIGIN_WORDS, FEEDBACK_REFUSAL_CODES, 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, WITHDRAWN_CARD_DECISION_KIND, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, allowNoteNotCarriedSentence, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalCardRequestOf, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, feedbackRefusalOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondParkedRedeemed, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, subagentBadgeFor, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolApprovalReplayVerdictOf, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
370
+ export type { AnswerCarriage, AnswerPayloadCaps, AnswerPayloadLane, ApprovalAnswerCommitted, ApprovalAskReason, ApprovalAskReasonByHook, ApprovalAskReasonByPolicy, ApprovalCardAllowDecision, ApprovalCardClaim, ApprovalCardClaimOptions, ApprovalCardDecision, ApprovalCardDenyDecision, ApprovalCardFacts, ApprovalCardFrameFactsOptions, ApprovalCardHostBits, ApprovalCardParkRow, ApprovalCardPort, ApprovalCardRequest, ApprovalCardSupersedes, ApprovalCardV1Facts, ApprovalDenySettledBy, ApprovalGrantBinding, ApprovalHolderIdentity, ApprovalHolderJoin, ApprovalInputSource, ApprovalMandatedFacts, ApprovalPriorCard, ApprovalRequestedBy, AskOrigin, BoundGrantEntryReading, BoundSkillGrantsWire, DecideAnswerPayload, DecideApprovePayload, DecideDenyPayload, DenialLimitFallback, DenialLimitKind, FsApprovalWireDeps, HostApprovalCardHold, PersistedRuleAnchor, ReadRootCandidateView, RememberRefusalCode, RespondAnswerPayload, RespondToolApprovalFn, RespondToolApprovalOpts, RuleOfferBatchMember, RuleOfferMatch, RuleOfferReading, RuleOfferUncoveredDetail, RuleOfferUncoveredReason, RuleOffersAbsence, ToolApprovalDelegation, LegacyToolApprovalFrame, LegacyToolApprovalRespondAck, ToolApprovalFrameLaneOpts, ToolApprovalFrameRunBits, ToolApprovalGateLike, ToolApprovalParkingBodyReading, ToolApprovalReplayVerdict, ToolApprovalRespondAckView, ToolApprovalRespondDecision, ToolApprovalRespondParkingView, ToolApprovalRespondRedeemedView } from './hitl/toolApprovalWire.js';
362
371
  export * from './hitl/approvalCardReading.js';
363
372
  export * from './hitl/approvalCardReasons.js';
364
373
  export { approvalRequestFrameReadingOf, APPROVAL_REQUEST_FRAME_UNREADABLE_WHYS } from './hitl/approvalRequestFrameReading.js';
365
- export { approvalAskReasonsOf } from './hitl/approvalAskers.js';
374
+ export { approvalAgentIdOf, approvalAskReasonsOf } from './hitl/approvalAskers.js';
366
375
  export type { ApprovalRequestFrameReading, ApprovalRequestFrameUnreadableWhy } from './hitl/approvalRequestFrameReading.js';
367
376
  export { askClassReasonOf, askClassReasonsOf } from './hitl/askClassPair.js';
368
377
  export type { AskClassReasonRow } from './hitl/askClassPair.js';
@@ -372,9 +381,10 @@ export { ruleToolNameVerdictOf } from './protocolSegment.js';
372
381
  export type { RuleToolNameReading } from './protocolSegment.js';
373
382
  export * from './hitl/askGateWire.js';
374
383
  export * from './hitl/planReviewWire.js';
375
- export type { PlanReviewCardFacts, PlanReviewBody, PlanBodyUnknownCause } from './planReviewCardFacts.js';
376
- export { planReviewBodyOf } from './planReviewCardFacts.js';
384
+ export type { PlanReviewCardFacts, PlanReviewBody, PlanBodyUnknownCause, PlanReviewCurrentGate } from './planReviewCardFacts.js';
385
+ export { planReviewBodyOf, mintPlanReviewCardFacts, registeredPlanReviewCardFacts, currentPlanReviewGateOf, samePlanReviewCardFacts } from './planReviewCardFacts.js';
377
386
  export { planReviewCardNote } from './hitl/planReviewCard.js';
387
+ export { planReviewOutcomeNotice } from './hitl/planReviewCard.js';
378
388
  export { readRunLedgerSnapshot } from './runLedgerSnapshot.js';
379
389
  export type { RunLedgerSnapshot, RunLedgerFold, RunLedgerSnapshotDeps } from './runLedgerSnapshot.js';
380
390
  export { decisionInFlightOf, decisionReadMark } from './hitl/decisionLedger.js';
@@ -382,6 +392,8 @@ export { ASK_PARK_AUTO_REOPEN_BLOCKS, askParkAutoReopenBlockedContent, askParkAu
382
392
  export type { AskParkAutoReopenBlock, AskParkAutoReopenBlockNotice, AskParkGate } from './hitl/askParkAutoReopenBlock.js';
383
393
  export type { DecisionIdentity } from './hitl/decisionLedger.js';
384
394
  export { HITL_DECISION_FAMILIES, HITL_DECISION_NOT_APPLIED_CAUSES, HITL_DECISION_NOT_SENT_CAUSES, HITL_DECISION_UNCONFIRMED_CAUSES, sendHitlDecision, hitlDecisionOutcomeContent, toolPermissionSettledLine, toolPermissionUnconfirmedOf, toolPermissionUnconfirmedLine, } from './hitl/decisionSend.js';
395
+ export { APPROVAL_DECISION_DOORS, approvalDecisionDoorOf, approvalDecisionDoorSource } from './hitl/approvalDecisionDoor.js';
396
+ export type { ApprovalAskDecisionVerb, ApprovalDecisionDoor, ApprovalDecisionDoorReading, AskDoorDecisionBody } from './hitl/approvalDecisionDoor.js';
385
397
  export { elicitationRefusedLine } from './hitl/elicitationRefusal.js';
386
398
  export type { HitlApprovalDecisionRequest, HitlAskDecisionRequest, HitlDecisionApplied, HitlDecisionFamily, HitlDecisionGate, HitlDecisionNotApplied, HitlDecisionNotAppliedCause, HitlDecisionNotSent, HitlDecisionNotSentCause, HitlDecisionSendClient, HitlDecisionSendDeps, HitlDecisionSendOutcome, HitlDecisionSendRequest, HitlDecisionSettledElsewhere, HitlDecisionUnconfirmed, HitlDecisionUnconfirmedCause, HitlElicitationDecisionRequest, ToolPermissionUnconfirmed, ToolPermissionUnconfirmedCause, } from './hitl/decisionSend.js';
387
399
  export { PLAN_REVIEW_QUESTION_ID_PREFIX, REOPEN_ID_TAIL, approvalCallKey, askGateQuestionId, planReviewQuestionId, liveFrameCallKey, armedKeyFromQuestionId, SCREEN_CARD_ORIGINS, questionCardOriginOf, hostReopenQuestionId, hostRunChoiceQuestionId, } from './hitl/gateIdentity.js';
@@ -462,14 +474,16 @@ export { devicesFaceOf, devicesWritesAllowed, devicesFaceDetail } from './device
462
474
  export type { DevicesFace, DevicesFaceInput, DevicesFaceUnavailableWhy } from './devicesFace.js';
463
475
  export { cloudLoginFailureOf, cloudLoginFailureText, engineTargetRefusalText, seatMcpReadingOf, watchEngineTarget } from './engineTargetSeat.js';
464
476
  export type { CloudLoginFailureContext, EngineTargetReading, EngineTargetWatch } from './engineTargetSeat.js';
465
- export { KEY_SLOT_PREFIX, keyEnvNameForEntry, onboardBaseUrlProblem, onboardRefusalText, onboardWriteVerdict, poolEntryNameOf, probeModelEndpoint, discoverEndpointModels, } from './model/onboardJudgement.js';
477
+ export { KEY_SLOT_PREFIX, ONBOARD_PROBE_BUDGETS, keyEnvNameForEntry, onboardBaseUrlProblem, onboardRefusalText, onboardWriteVerdict, poolEntryNameOf, probeModelEndpoint, discoverEndpointModels, } from './model/onboardJudgement.js';
466
478
  export type { OnboardJsonObject, OnboardPlanEntry, OnboardProbeBodyReader, OnboardProbeDeps, OnboardProbeFetch, OnboardProbeRequestInit, OnboardProbeResponse, OnboardProbeTarget, OnboardWritePlan, OnboardWritePlanInput, OnboardWriteVerdict, OnboardDiscoveryTarget, } from './model/onboardJudgement.js';
479
+ export { ONBOARD_STEPS, ONBOARD_STEP_STATES, ONBOARD_STEP_REASONS, onboardStepPlanOf } from './model/onboardSteps.js';
480
+ export type { OnboardStep, OnboardStepState, OnboardStepReason, OnboardStepRow, OnboardStepPlan, OnboardStepPlanInput } from './model/onboardSteps.js';
467
481
  export { LOCAL_CONFIG_DOCUMENTS, globalStateFilePathOf } from './localConfig/documents.js';
468
482
  export type { LocalConfigDocument, LocalConfigDocumentName, LocalConfigWritableDocumentName, GlobalStateFilePlace } from './localConfig/documents.js';
469
483
  export { LOCAL_CONFIG_UNREADABLE_CAUSES, LOCAL_CONFIG_REFUSALS, LOCAL_CONFIG_NOT_WRITTEN_CAUSES, LOCAL_CONFIG_UNAVAILABLE_CAUSES, LOCAL_CONFIG_UNKNOWN_CAUSES, LOCAL_CONFIG_APPLIES_ON, LOCAL_CONFIG_RESIDUES, LOCAL_CONFIG_STEP_ROLES, LOCAL_CONFIG_WRITE_PRECONDITIONS, LOCAL_CONFIG_DISCLOSURE_KINDS, localConfigAccess, applyLocalConfigIntent, previewLocalConfigIntent, localConfigReceiptSentence, localConfigResidueSentence, localConfigDisclosureSentence, } from './localConfig/kernel.js';
470
484
  export type { LocalConfigUnreadableCause, LocalConfigFileReading, LocalConfigFilesReading, LocalConfigRefusal, LocalConfigNotWrittenCause, LocalConfigUnavailableCause, LocalConfigUnknownCause, LocalConfigAppliesOn, LocalConfigResidue, LocalConfigStepRole, LocalConfigReceipt, LocalConfigPreview, LocalConfigWritePrecondition, LocalConfigDisclosureKind, LocalConfigDisclosure, LocalConfigHostFacts, LocalConfigAccessRequest, LocalConfigAccess, LocalConfigTransactStep, LocalConfigFileWrite, LocalConfigCommitReport, LocalConfigStorePort, LocalConfigStepInput, LocalConfigStepPlan, LocalConfigStep, LocalConfigIntent, } from './localConfig/kernel.js';
471
- export { MODEL_POOL_EDIT_KINDS, MODEL_POOL_CHANNEL_SOURCES, MODEL_POOL_CREDENTIAL_KINDS, MODEL_POOL_COMPLETENESS, MODEL_POOL_MAX_BATCH, MODEL_POOL_PROBE_STATES, MODEL_POOL_DEFAULT_KEEP_REASONS, poolWritePlan, modelPoolIntentOf, editModelPoolWith, modelPoolViewOf, effectiveDefaultModelOf, defaultModelChoiceOf, modelPoolRowEditOf, channelProfilesOf, modelPoolEditOfSeat, onboardWritePlan, } from './localConfig/modelPool.js';
472
- export type { ModelPoolEditKind, ModelPoolChannelSource, ModelPoolCredentialKind, ModelPoolCompleteness, ModelPoolProbeState, ModelPoolDefaultKeepReason, DefaultModelBatchRow, DefaultModelChoice, ModelPoolProbeReading, ModelPoolEntrySpec, ModelPoolChannelProfile, ModelPoolChannelData, ModelPoolModelRow, ModelPoolRoleRow, ModelPoolRowAction, ModelPoolEdit, ModelPoolProblem, ModelPoolPlannedEntry, ModelPoolPlan, EffectiveDefaultModel, EffectiveDefaultModelInput, ModelPoolIntentProbe, ModelPoolEditOutcome, ModelPoolViewEntry, ModelPoolViewTierGroup, ModelPoolProvider, ModelPoolView, ModelPoolReadings, } from './localConfig/modelPool.js';
485
+ export { MODEL_POOL_EDIT_KINDS, MODEL_POOL_CHANNEL_SOURCES, MODEL_POOL_CREDENTIAL_KINDS, MODEL_POOL_COMPLETENESS, MODEL_POOL_MAX_BATCH, MODEL_POOL_PROBE_STATES, MODEL_POOL_DEFAULT_KEEP_REASONS, poolWritePlan, modelPoolIntentOf, editModelPoolWith, modelPoolViewOf, modelPoolEnvReadingOf, effectiveDefaultModelOf, defaultModelChoiceOf, modelPoolRowEditOf, channelProfilesOf, modelPoolEditOfSeat, onboardWritePlan, } from './localConfig/modelPool.js';
486
+ export type { ModelPoolEditKind, ModelPoolChannelSource, ModelPoolCredentialKind, ModelPoolCompleteness, ModelPoolProbeState, ModelPoolDefaultKeepReason, DefaultModelBatchRow, DefaultModelChoice, ModelPoolProbeReading, ModelPoolEntrySpec, ModelPoolChannelProfile, ModelPoolChannelData, ModelPoolModelRow, ModelPoolRoleRow, ModelPoolRowAction, ModelPoolEdit, ModelPoolProblem, ModelPoolPlannedEntry, ModelPoolPlan, EffectiveDefaultModel, EffectiveDefaultModelInput, ModelPoolIntentProbe, ModelPoolEditOutcome, ModelPoolViewEntry, ModelPoolViewTierGroup, ModelPoolProvider, ModelPoolView, ModelPoolEnvReading, ModelPoolReadings, } from './localConfig/modelPool.js';
473
487
  export { LOCAL_CONFIG_WRITE_INTENTS, SETTINGS_WRITE_KEYS, settingsWritePlan, settingsWriteStep } from './localConfig/settingsWrite.js';
474
488
  export type { LocalConfigWriteIntentRow, LocalConfigWriteIntent, SettingsWriteIntent, SettingsWriteEdit, SettingsWritePlanInput, SettingsWritePlan, SettingsWriteStepInput, } from './localConfig/settingsWrite.js';
475
489
  export { MCP_SERVER_SCOPES, MCP_SERVER_ROW_STATES, MCP_SERVER_WITHHELD_CAUSES, mcpProjectChainOf, mcpPathWithinFence, expandMcpServerEntry, mcpServersReport } from './localConfig/mcp/servers.js';