@sema-agent/client-core 0.108.0 → 0.110.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +294 -0
- package/README.md +77 -40
- package/dist/adapt/arms.js +41 -13
- package/dist/adapt/textStream.d.ts +2 -0
- package/dist/adapt/textStream.js +37 -16
- package/dist/adapter/activeRunSelfHeal.js +1 -1
- package/dist/adapter/downstream/eventToSdkMessage.js +11 -5
- package/dist/agentSession/engineAgentRegistryRead.js +2 -0
- package/dist/bashExitReading.d.ts +12 -0
- package/dist/bashExitReading.js +44 -0
- package/dist/checkpointRowVerdict.d.ts +1 -1
- package/dist/checkpointRowVerdict.js +4 -2
- package/dist/compensations.js +1 -1
- package/dist/declared/supportFloorDeclared.js +1 -1
- package/dist/displayUntrusted.js +132 -14
- package/dist/engineAgentAbsence.d.ts +2 -0
- package/dist/engineAgentAbsence.js +28 -0
- package/dist/engineErrorCodes.d.ts +7 -0
- package/dist/engineErrorCodes.js +7 -0
- package/dist/engineHealthFacts.d.ts +26 -0
- package/dist/engineHealthFacts.js +63 -4
- package/dist/engineInlineTaskStats.d.ts +4 -3
- package/dist/engineInlineTaskStats.js +18 -2
- package/dist/engineNoticeCodes.d.ts +138 -0
- package/dist/engineNoticeCodes.js +662 -55
- package/dist/engineRepoint.d.ts +140 -0
- package/dist/engineRepoint.js +285 -0
- package/dist/engineRowRef.js +2 -0
- package/dist/engineSessionMessages.d.ts +2 -1
- package/dist/engineSessionMessages.js +5 -0
- package/dist/errorSupplementRoles.js +5 -1
- package/dist/fleet/fleetProjection.js +3 -2
- package/dist/fleetTaskDesc.js +3 -3
- package/dist/generated/engineFactTables.d.ts +3 -0
- package/dist/generated/engineFactTables.js +18 -0
- package/dist/generated/engineNoticeTables.js +3 -0
- package/dist/generated/sdkFactTables.d.ts +1 -0
- package/dist/generated/sdkFactTables.js +4 -0
- package/dist/hitl/approvalAskers.d.ts +6 -0
- package/dist/hitl/approvalAskers.js +30 -0
- package/dist/hitl/approvalCardReasons.js +25 -4
- package/dist/hitl/approvalRequestFrameReading.d.ts +21 -0
- package/dist/hitl/approvalRequestFrameReading.js +90 -0
- package/dist/hitl/approvalResolution.d.ts +8 -1
- package/dist/hitl/approvalResolution.js +4 -0
- package/dist/hitl/approvalsFeed.js +1 -1
- package/dist/hitl/askGateWire.js +0 -2
- package/dist/hitl/askParkRowRouting.js +5 -2
- package/dist/hitl/automaticAnswerVerdict.d.ts +5 -2
- package/dist/hitl/automaticAnswerVerdict.js +18 -4
- package/dist/hitl/decisionConflict.d.ts +2 -1
- package/dist/hitl/decisionConflict.js +10 -4
- package/dist/hitl/decisionRefusal.js +1 -0
- package/dist/hitl/decisionSend.d.ts +3 -0
- package/dist/hitl/decisionSend.js +29 -11
- package/dist/hitl/editedApprovalAcceptance.d.ts +25 -0
- package/dist/hitl/editedApprovalAcceptance.js +26 -0
- package/dist/hitl/frameRouter.js +13 -19
- package/dist/hitl/gateLedger.d.ts +0 -4
- package/dist/hitl/gateLedger.js +0 -19
- package/dist/hitl/hitlBridge.d.ts +5 -0
- package/dist/hitl/hitlBridge.js +13 -9
- package/dist/hitl/hitlHostSurface.d.ts +1 -0
- package/dist/hitl/hitlHostSurface.js +7 -2
- package/dist/hitl/hostWithdrawal.d.ts +15 -0
- package/dist/hitl/hostWithdrawal.js +38 -0
- package/dist/hitl/livePendingAsk.js +17 -16
- package/dist/hitl/localAllowRule.js +2 -1
- package/dist/hitl/noAllowCause.d.ts +1 -1
- package/dist/hitl/noAllowCause.js +4 -2
- package/dist/hitl/parkExpiryJudgements.js +26 -1
- package/dist/hitl/parkOwnership.d.ts +2 -0
- package/dist/hitl/parkOwnership.js +48 -8
- package/dist/hitl/parkResolver.js +32 -16
- package/dist/hitl/parkedUnresumable.d.ts +13 -0
- package/dist/hitl/parkedUnresumable.js +80 -0
- package/dist/hitl/permissionRuleScope.d.ts +4 -0
- package/dist/hitl/permissionRuleScope.js +31 -0
- package/dist/hitl/persistedRulesWire.d.ts +2 -0
- package/dist/hitl/persistedRulesWire.js +13 -12
- package/dist/hitl/planReviewWire.js +14 -4
- package/dist/hitl/sessionAllowRoute.js +5 -4
- package/dist/hitl/sessionPolicyWire.js +6 -4
- package/dist/hitl/standingRows.d.ts +2 -5
- package/dist/hitl/standingRows.js +30 -15
- package/dist/hitl/toolApprovalWire.d.ts +42 -9
- package/dist/hitl/toolApprovalWire.js +267 -44
- package/dist/hooksWireCaps.js +35 -4
- package/dist/hostSettingsSource.js +2 -0
- package/dist/hostTurnSettings.d.ts +10 -4
- package/dist/hostTurnSettings.js +112 -5
- package/dist/i18n/messages.en.d.ts +251 -0
- package/dist/i18n/messages.en.js +254 -2
- package/dist/i18n/messages.zh.js +264 -2
- package/dist/index.d.ts +48 -12
- package/dist/index.js +29 -7
- package/dist/inheritEnvCapability.js +2 -0
- package/dist/inputAuthor.d.ts +16 -0
- package/dist/inputAuthor.js +44 -0
- package/dist/interruptRefusalNote.d.ts +2 -0
- package/dist/interruptRefusalNote.js +17 -0
- package/dist/liveModelCatalog.d.ts +2 -0
- package/dist/liveModelCatalog.js +21 -7
- package/dist/liveQuestionStore.d.ts +4 -1
- package/dist/liveQuestionStore.js +12 -3
- package/dist/localEngineJudge.d.ts +75 -0
- package/dist/localEngineJudge.js +242 -0
- package/dist/localEngineOccupancy.d.ts +88 -0
- package/dist/localEngineOccupancy.js +269 -0
- package/dist/localEngineSeatReading.d.ts +29 -0
- package/dist/localEngineSeatReading.js +294 -0
- package/dist/localEngineSpawn.d.ts +113 -0
- package/dist/localEngineSpawn.js +486 -0
- package/dist/localEngineStep.d.ts +286 -0
- package/dist/localEngineStep.js +1086 -0
- package/dist/localEngineStopLadder.d.ts +29 -0
- package/dist/localEngineStopLadder.js +139 -0
- package/dist/localEngineSwapCard.d.ts +43 -0
- package/dist/localEngineSwapCard.js +205 -0
- package/dist/localEngineTiming.d.ts +8 -0
- package/dist/localEngineTiming.js +8 -0
- package/dist/mcpEngineLeg.d.ts +3 -0
- package/dist/mcpEngineLeg.js +38 -1
- package/dist/mcpPanel.js +2 -0
- package/dist/mcpReconnect.d.ts +9 -1
- package/dist/mcpReconnect.js +132 -20
- package/dist/mcpWireCaps.js +2 -2
- package/dist/memoryEntriesWire.d.ts +1 -1
- package/dist/memoryEntriesWire.js +5 -0
- package/dist/modelCapabilityProbe.js +4 -3
- package/dist/modsFace.d.ts +8 -1
- package/dist/modsFace.js +27 -0
- package/dist/noticePresentation.d.ts +2 -0
- package/dist/noticePresentation.js +79 -1
- package/dist/notifications.d.ts +17 -6
- package/dist/notifications.js +67 -19
- package/dist/ownKey.d.ts +5 -0
- package/dist/ownKey.js +8 -1
- package/dist/peerFrames.d.ts +40 -2
- package/dist/peerFrames.js +158 -3
- package/dist/pluginHooksWire.d.ts +2 -1
- package/dist/pluginHooksWire.js +56 -1
- package/dist/replayBody.js +10 -2
- package/dist/request/taskRequest.d.ts +5 -0
- package/dist/request/taskRequest.js +138 -21
- package/dist/resumeRefusalCopy.d.ts +1 -3
- package/dist/resumeRefusalCopy.js +2 -1
- package/dist/retryStatus.d.ts +2 -2
- package/dist/retryStatus.js +2 -0
- package/dist/ruleReadings.js +1 -1
- package/dist/seam.d.ts +24 -2
- package/dist/seam.js +15 -2
- package/dist/seatContract.d.ts +125 -10
- package/dist/seatContract.js +373 -7
- package/dist/sessionBackground.js +4 -1
- package/dist/sessionBackgroundHandoff.js +2 -1
- package/dist/sessionEngine.d.ts +2 -0
- package/dist/sessionEngine.js +111 -0
- package/dist/sessionMemoryStatus.d.ts +2 -1
- package/dist/sessionSyncFileHistory.d.ts +4 -0
- package/dist/sessionSyncFileHistory.js +28 -0
- package/dist/sseIdleTriage.d.ts +13 -1
- package/dist/sseIdleTriage.js +24 -6
- package/dist/subagent/engineSubagentTail.js +6 -0
- package/dist/subagentContentStore.d.ts +12 -0
- package/dist/subagentContentStore.js +72 -11
- package/dist/terminalStatuses.d.ts +1 -0
- package/dist/terminalStatuses.js +4 -1
- package/dist/toolResult.js +18 -5
- package/dist/turnFailurePresentation.js +9 -2
- package/dist/typePins.d.ts +11 -0
- package/dist/usageAnalytics.d.ts +17 -0
- package/dist/usageAnalytics.js +44 -2
- package/dist/wireFailureShape.d.ts +22 -5
- package/dist/wireFailureShape.js +47 -26
- package/dist/wireRefusalCopy.d.ts +31 -1
- package/dist/wireRefusalCopy.js +167 -2
- package/docs/INTEGRATION-CLIENTS.md +3269 -21
- package/package.json +5 -5
package/dist/i18n/messages.zh.js
CHANGED
|
@@ -117,6 +117,7 @@ const ZH = {
|
|
|
117
117
|
'model.subagent.ambiguous': '子代理模型 {word} 同时对上了几个只差大小写的模型名 —— 请照原样拼写;子代理将沿用父代理的模型。',
|
|
118
118
|
'model.catalogDefault.refused.named': '不点名模型的任务会被拒:引擎从它的模型配置里解析不出缺省模型(设置里的缺省是 {name}) · 设一个引擎跑得了的缺省模型,或添加 / 修好一个',
|
|
119
119
|
'model.catalogDefault.refused.select': '不点名模型的任务会被拒:引擎从它的模型配置里解析不出缺省模型(设置里的缺省是挑选条件) · 改挑选条件,或添加 / 修好一个引擎跑得了的模型',
|
|
120
|
+
'session.sync.pushRowBitsWriterSide': '会话已推送 · 它在目的端是只读镜像,标题与置顶由写入它的那一端持有,这一次没有在目的端更改',
|
|
120
121
|
'session.devices.laneAbsent': '这个后端没有远程控制车道',
|
|
121
122
|
'session.devices.laneUnreported': '这个后端没有报告远程控制车道',
|
|
122
123
|
'session.devices.verbsOff': '这个后端的设备车道开着,但设备管理动作关着 —— 这里列不出也改不了设备',
|
|
@@ -124,12 +125,30 @@ const ZH = {
|
|
|
124
125
|
'session.devices.probeFailedTransport': '连不上引擎,查不了远程控制车道 —— 请重试',
|
|
125
126
|
'session.devices.probeFailedRefused': '引擎拒绝了设备清单查询 —— 请重试',
|
|
126
127
|
'session.devices.probeFailedUnreadable': '读不懂引擎给的设备清单 —— 请重试',
|
|
127
|
-
'session.engine.selfNotLocal': '
|
|
128
|
+
'session.engine.selfNotLocal': '这只会话跑在本机引擎上,却是按 Cloud 会话开的。什么都没改 —— 请检查这只会话是怎么打开的。',
|
|
128
129
|
'session.engine.dispatch.notWired': '这只会话所在的引擎此刻没接上,什么都没发。先连上那台引擎,再试一次。',
|
|
129
130
|
'session.engine.dispatch.scopeMismatch': '这只会话属于另一个空间里的引擎,和你当前登录的空间不同,什么都没发。切到那个空间后再试一次。',
|
|
130
131
|
'session.engine.dispatch.scopeUnproven': '确认不了你当前的登录能到达这只会话所在的引擎,什么都没发。先登录那台引擎所在的空间(或直接连上那台引擎),再试一次。',
|
|
131
132
|
'session.engine.dispatch.unresolved': '这只会话所在的引擎还不知道,什么都没发。先为这只会话选一次引擎,再试一次。',
|
|
132
133
|
'session.engine.dispatch.sessionAmbiguous': '这个会话同时登记在两台引擎上,先停下不发 —— 请先确认它属于哪一台。',
|
|
134
|
+
'session.mcpReconnect.notRunning': '这只会话此刻在这台引擎上没有存活的任务(可能在等你回答、已经结束,或在别处运行),所以没有重连 {server};之后启动或恢复的任务会重新连接它声明的服务器。',
|
|
135
|
+
'session.mcpReconnect.unsupported': '这台引擎不支持在会话进行中重连 MCP 服务器,所以没有重连 {server}。',
|
|
136
|
+
'session.mcpReconnect.notFound': '引擎没有找到这个会话,所以没有重连 {server}。',
|
|
137
|
+
'session.mcpReconnect.invalid': '重连 {server} 的请求不合规(会话标识或服务器名称不可用),所以没有重连。',
|
|
138
|
+
'session.mcpReconnect.failed': '没能在引擎上重连 {server}:请求没有完成。',
|
|
139
|
+
'session.mcpReconnect.noSession': '还没有引擎会话,所以没有在引擎上重连 {server}。',
|
|
140
|
+
'session.mcpReconnect.unavailable': '这里不能在引擎上重连 {server}。',
|
|
141
|
+
'session.mcpReconnect.accepted.one': 'MCP 服务器 {server} 已重连:为这次运行挂载了 {toolCount} 个工具(新增 {added} 个,移除 {removed} 个)',
|
|
142
|
+
'session.mcpReconnect.accepted.other': 'MCP 服务器 {server} 已重连:为这次运行挂载了 {toolCount} 个工具(新增 {added} 个,移除 {removed} 个)',
|
|
143
|
+
'session.mcpReconnect.refused.untouched': 'MCP 服务器 {server} 没有重连,它的连接和工具原样未动{why}。',
|
|
144
|
+
'session.mcpReconnect.refused.noTools': 'MCP 服务器 {server} 没有重连;这次运行的工具列表里此刻没有它的工具(重连失败,或这次运行的工具设置没放行它的任何工具){why}。',
|
|
145
|
+
'session.mcpReconnect.refused.listed.one': 'MCP 服务器 {server} 没有重连;这次尝试之后,引擎报告它有 {toolCount} 个工具{why}。',
|
|
146
|
+
'session.mcpReconnect.refused.listed.other': 'MCP 服务器 {server} 没有重连;这次尝试之后,引擎报告它有 {toolCount} 个工具{why}。',
|
|
147
|
+
'session.mcpReconnect.undeclared': '这次运行没有声明任何 MCP 服务器,所以没有可重连的对象({server} 不属于这次运行){why}。',
|
|
148
|
+
'session.mcpReconnect.unsettled': 'MCP 重连在本次请求愿意等待的时间内没有落定,所以还没有结果:重连没有被取消,可能仍在进行。再次重连这台服务器前,请先确认它的状态——拨号落定之后再发一次请求,会先关闭连接、再重新拨号。',
|
|
149
|
+
'session.mcpReconnect.reasonTail': ' —— {reason}',
|
|
150
|
+
'session.mcpFailure.reauthorizeSuffix': '(需要重新授权)',
|
|
151
|
+
'session.mcpFailure.serverDownSuffix': '(服务器不可用)',
|
|
133
152
|
'config.cloudLogin.accessDenied': '登录被拒绝了。',
|
|
134
153
|
'config.cloudLogin.expiredToken': '登录码在批准之前过期了 —— 请重新开始。',
|
|
135
154
|
'config.cloudLogin.invalidGrant': 'Cloud 登录已无法续期 —— 请重新登录。',
|
|
@@ -252,6 +271,7 @@ const ZH = {
|
|
|
252
271
|
'approval.settle.cause.streamDisconnected': '承载这张卡的连接断了',
|
|
253
272
|
'approval.settle.cause.undeliverable': '它没能送达任何审批界面',
|
|
254
273
|
'approval.resolution.engineUnavailable': '引擎暂不可用 —— 待引擎回来再答。',
|
|
274
|
+
'approval.allowNote.notCarried': '这台引擎不能在「Yes」上附带备注 —— 写在这里的备注不会送达模型。',
|
|
255
275
|
'approval.decide.requiresBinding': '这次决定没有带上把它绑到审批卡上那个具体动作的绑定,引擎拒绝了 · 什么都没有决定,这条审批仍在等待 · 请重新获取待决审批,按现在列出的那张卡再决定;如果列出的卡本身就没有绑定,{wayOut}',
|
|
256
276
|
'approval.decide.unboundWayOut.armed': '这里决不了 —— 取消这次运行,或等这条审批过期',
|
|
257
277
|
'approval.decide.unboundWayOut.none': '这里决不了 —— 取消这次运行(这条审批没有到期计时)',
|
|
@@ -261,11 +281,17 @@ const ZH = {
|
|
|
261
281
|
'approval.rowUnresumable.askNotSurfaced': '这条待决行(任务 {taskId})这台引擎续不了,所以没有呈成可作答的卡:{sentence}',
|
|
262
282
|
'approval.park.stillParked': '{gate} 这道门没能作答:{reason} —— 这一跑仍停在这条审批上。',
|
|
263
283
|
'approval.park.refusedNotResumable': '{gate} 这道门没能作答:{reason} —— 这台引擎目前续不了这条审批;若这一跑仍停着,请取消它。',
|
|
284
|
+
'approval.park.resume.card': '{gate} 这道门没能作答:{reason} —— 这一跑仍停在这条审批上:卡再次出现时在卡上决,或取消这一跑。',
|
|
285
|
+
'approval.park.resume.speak': '{gate} 这道门没能作答:{reason} —— 这一跑仍停在这条审批上:发一句话把这张卡重新打开,再在卡上决,或取消这一跑。',
|
|
286
|
+
'approval.park.argsFromModelCall': '这条待决审批的记录里没有将执行的工具入参,下面显示的是对话里模型的原始调用 —— 若它在那之后被改写过(例如被钩子),实际执行的会与所见不同。这张卡不接受编辑后批准:所见入参不是将执行的那一份',
|
|
287
|
+
'approval.park.questionsFromModelCall': '这条待决审批的记录里没有可呈现的问题,下面显示的是对话里模型的原始调用 —— 若它在那之后被改写过(例如被钩子),引擎实际在问的问题会与所见不同',
|
|
264
288
|
'approval.policyDeny.denyRule': '这次工具调用被权限设置里的拒绝规则拒绝了。{tail}',
|
|
265
289
|
'approval.policyDeny.dontAsk': '这次工具调用被拒绝了:本会话不再询问审批,凡需要审批的调用一律拒绝。{tail}',
|
|
266
290
|
'approval.policyDeny.engineFloor': '这次工具调用被引擎侧的保护规则拒绝了,权限设置无法覆盖。{tail}',
|
|
267
291
|
'approval.policyDeny.tail': '该操作没有执行。不要声称它已成功,也不要在本会话里重试 —— 请向用户说明这一限制,或建议别的做法。',
|
|
268
292
|
'approval.decision.grantChanged': '引擎拒收了这次批准:它绑定的技能授予在卡呈出之后已经变了 · 什么都没有决定,这一请求仍在等待,但再批一次会以同样的理由被拒 · 请拒绝这一请求,让模型重新激活那个技能',
|
|
293
|
+
'approval.decision.answerInvalid': '引擎拒收了这次回答本身:它与所问的问题对不上 · 什么都没有决定,这一问仍在等待 · 请改正回答后重新发送',
|
|
294
|
+
'approval.editRefusal.line': '这次批准没有发出:这条请求在此处看不到工具入参,所以收不了改写后的批准。原卡照旧在等你决断——请按原样批准或拒绝。',
|
|
269
295
|
'approval.decision.settledElsewhereContrary.deniedFirst': '这一请求已在别处被答复为拒绝,你的批准没有生效。',
|
|
270
296
|
'approval.decision.settledElsewhereContrary.approvedFirst': '这一请求已在别处被答复为批准,你的拒绝没有生效。',
|
|
271
297
|
'approval.decision.unconfirmedAfterRetry': '不知道你的答复有没有生效:之前那一发没有得到确认,重发时这一请求已不在等待 · 动手之前先看任务当前的状态',
|
|
@@ -550,6 +576,9 @@ const ZH = {
|
|
|
550
576
|
'approval.mandate.wayOut.crossBoundaryTaint': '来自配置的放行(放行一切的设置,或策略自己的回答)对这次调用会被拒绝,所以由你在这里批准或拒绝来决定它',
|
|
551
577
|
'approval.mandate.unknownWord': '这次确认所报告的原因,这个客户端不认识,所以不显示原因',
|
|
552
578
|
'approval.card.payloadUnreadable': '这个客户端读不懂这张审批卡的格式,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
|
|
579
|
+
'approval.card.payloadUnreadable.versionUnknown': '这个客户端不认识这条审批请求的格式版本,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
|
|
580
|
+
'approval.card.payloadUnreadable.fieldsMalformed': '这条审批请求用的是这个客户端认识的格式版本,但其中一些字段的格式不对、读不出来,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
|
|
581
|
+
'approval.card.payloadUnreadable.partUnknown': '这个客户端读不懂这条审批请求中的一部分,所以只显示它的基本事实 —— 请据此决定,不确定它会做什么的话就拒绝它。',
|
|
553
582
|
'approval.card.more.one': '这张卡还有 1 条原因没有显示。',
|
|
554
583
|
'approval.card.more.other': '这张卡还有 {count} 条原因没有显示。',
|
|
555
584
|
'approval.card.denialLimit.plain': 'auto-deny 上限已到 —— auto 模式自己拒绝的调用已经够多,引擎现在要一个真人来决断;到目前为止连续 {consecutive} 次 / 共 {total} 次自动拒绝;触发的上限:{limit}',
|
|
@@ -628,6 +657,8 @@ const ZH = {
|
|
|
628
657
|
'session.hostSettings.heldPrevious': '刚才有一份设置文件没能完整读出(可能正在保存),所以仍按上一次完整读到的权限规则执行。',
|
|
629
658
|
'session.hostSettings.styleMissing': '设置里选中的输出风格「{name}」找不到或读不出,这一次请求不套用它。',
|
|
630
659
|
'session.hostSettings.styleSafeMode': '安全模式已开启,设置里的输出风格不套用。',
|
|
660
|
+
'session.hostSettings.styleOversize': '你的输出风格这一次请求没有套用:加上内置的产品背景说明后超过了 {limit} 个字符的上限。请缩短风格正文后再用。',
|
|
661
|
+
'session.hostSettings.styleUnreadable': '输出风格的正文读不成文本,这一次请求不套用它。',
|
|
631
662
|
'model.identity.lane.processEnv': '本客户端启动时的环境',
|
|
632
663
|
'model.identity.lane.settingsEnv': '本客户端的设置文件',
|
|
633
664
|
'model.identity.lane.modelCatalogFile': '本地模型目录文件',
|
|
@@ -653,6 +684,105 @@ const ZH = {
|
|
|
653
684
|
'notice.userInputUndrained.approvalFeedback.other': '你在批准工具调用时写下的 {count} 条附言没有送达模型,也不会再投递。如果还需要,请再发一次。',
|
|
654
685
|
'notice.askUnresolvable.remedy.approver': '出路:接一个能答这类请求的审批人,或让已接的审批人可达,然后重试',
|
|
655
686
|
'notice.askUnresolvable.remedy.permissionMode': '另一条出路(须本部署允许):{mode} 权限模式会不经人作答就放行这类请求,每一次这样放行都会标在它所放行的那次工具调用上',
|
|
687
|
+
'notice.durableGate.lead': '本会话无法使用持久审批 —— {mandate},但{cause},所以审批请求无法被保存下来、留待之后答复。',
|
|
688
|
+
'notice.durableGate.mandate.forceDurableGate': '这个账号要求使用它',
|
|
689
|
+
'notice.durableGate.mandate.durableApproval': '这个任务要求使用它',
|
|
690
|
+
'notice.durableGate.mandate.other': '它被要求使用',
|
|
691
|
+
'notice.durableGate.cause.noDeploymentStore': '这套部署没有配置检查点存储',
|
|
692
|
+
'notice.durableGate.cause.taskStoreDisabled': '这个任务关闭了自己的检查点存储',
|
|
693
|
+
'notice.durableGate.cause.other': '没有可用的检查点存储',
|
|
694
|
+
'notice.durableGate.approver.live': '权限请求改为在本会话中当场答复。',
|
|
695
|
+
'notice.durableGate.approver.noneAttached': '本会话没有接入实时审批人,权限请求改按引擎配置的处置姿态办理。',
|
|
696
|
+
'notice.durableGate.approver.unreported': '权限请求改按引擎配置的处置姿态办理。',
|
|
697
|
+
'notice.durableGate.question.refused': '助手想向你提的问题无法在这里呈现,会被直接拒绝。',
|
|
698
|
+
'notice.durableGate.exit.noDeploymentStore': '要使用持久审批,这套部署需要配置检查点存储。',
|
|
699
|
+
'notice.durableGate.exit.taskStoreDisabled': '要使用持久审批,请让这个任务带着检查点存储运行。',
|
|
700
|
+
'notice.durableGate.exit.other': '要使用持久审批,需要有可用的检查点存储。',
|
|
701
|
+
'notice.durableGate.exitAlt.forceDurableGate': '或者请运维这套部署的人撤掉对这个账号的此项要求。',
|
|
702
|
+
'notice.durableGate.exitAlt.durableApproval': '或者让这个任务在有实时审批人的地方运行。',
|
|
703
|
+
'notice.memory.sessionPolluted': '本会话的记忆已标记为暴露于外部({reason})。从现在起,它写入的记忆可能被扣下候审,而不是存入长期记忆库;每一批实际扣下了什么,会另行通知。',
|
|
704
|
+
'notice.memory.harvestQuarantined.counts': '记忆收集把本会话写入或修改的条目文件扣下了,没有加入长期记忆库 —— 扣下 {count} 个,移到一旁候审 {moved} 个,需要跟进 {escalated} 个;后两个数字可能有重叠。',
|
|
705
|
+
'notice.memory.harvestQuarantined.indexOnly': '记忆收集把本会话对记忆索引的改动回滚到了原样;没有条目文件被扣下。',
|
|
706
|
+
'notice.memory.harvestQuarantined.indexAlso': '记忆索引也已回滚。',
|
|
707
|
+
'notice.memory.delegationWaived.lead': '一次委派原本会把本会话的记忆标为已污染,但这次没有标:这套部署不会只凭委派的静态工具检查就做标记,所以这次检查被豁免了。',
|
|
708
|
+
'notice.memory.delegationWaived.agentType': '子代类型:{agentType}。',
|
|
709
|
+
'notice.memory.delegationWaived.reason': '检查发现:"{reason}"。',
|
|
710
|
+
'notice.memory.delegationWaived.tail': '其他污染判定,以及本会话上的记忆采集关闭设置,不受影响。',
|
|
711
|
+
'notice.memory.captureOptedOut.flipVerb': '本会话的记忆采集从现在起已关闭 —— 关闭之前它产出的内容仍按常规采集处理。',
|
|
712
|
+
'notice.memory.captureOptedOut.standingRecord': '本会话的记忆采集保持关闭 —— 更早一段运行留下的关闭记录管着它,之后的运行段不能重新打开。',
|
|
713
|
+
'notice.memory.captureOptedOut.delegationFloor': '这个被委派的会话的记忆采集已关闭 —— 发起它的会话已经选择关闭,子代不能放宽这一点(本会话自己没有声明过)。',
|
|
714
|
+
'notice.memory.captureOptedOut.forkOrigin': '这个分叉会话的记忆采集已关闭 —— 它接续的是一个已关闭采集的会话,那个会话的单向关闭记录管着这份副本(本会话自己没有声明过)。',
|
|
715
|
+
'notice.memory.captureOptedOut.declaration': '本会话的记忆采集已关闭,这是提交时声明的。',
|
|
716
|
+
'notice.memory.captureOptedOut.other': '本会话的记忆采集已关闭。',
|
|
717
|
+
'notice.memory.captureOptedOut.tail': '它产出的任何内容都不会写入长期记忆库。关闭之前已经写入的条目留在库里,仍可检索;删除它们是另一个操作,绝不是这个开关的副作用。这个开关是单向的:想重新采集,请开始新的会话。',
|
|
718
|
+
'notice.memory.captureOptoutUnpersisted.lead': '本会话的记忆采集关闭设置没能持久记录下来(控制面写入失败)。',
|
|
719
|
+
'notice.memory.captureOptoutUnpersisted.declaration': '所以这个会话被拒绝了,而没有在一个下次恢复时会悄悄失效的开关下运行:什么都没有运行,也没有采集任何内容。请修复控制面(或接入采集记录存储),然后开始新的会话。',
|
|
720
|
+
'notice.memory.captureOptoutUnpersisted.flipVerb': '所以只是这个请求被拒绝了:这次运行继续进行,记忆采集仍然开着。没有记录任何内容,原样重试会以同样的方式失败;如果这个会话不能被采集,请停止这次运行。',
|
|
721
|
+
'notice.memory.captureOptoutUnpersisted.other': '所以这个设置没有生效。仅凭这条通知看不出是否有什么被停下 —— 请看这次运行自己的结果。没有记录任何内容,原样重试会以同样的方式失败。',
|
|
722
|
+
'notice.peer.subject.message': '收到一条跨会话消息 #{seq}',
|
|
723
|
+
'notice.peer.subject.messageFrom': '收到一条来自 {from} 的跨会话消息 #{seq}',
|
|
724
|
+
'notice.peer.subject.notice': '收到一条跨会话通知 #{seq}',
|
|
725
|
+
'notice.peer.subject.noticeFrom': '收到一条来自 {from} 的跨会话通知 #{seq}',
|
|
726
|
+
'notice.peer.subject.held': '被暂扣的跨会话消息 #{seq}',
|
|
727
|
+
'notice.peer.subject.heldFrom': '来自 {from} 的被暂扣跨会话消息 #{seq}',
|
|
728
|
+
'notice.peer.inbound.refused': '{subject} 被这个会话的策略拒绝了,从未送达。',
|
|
729
|
+
'notice.peer.inbound.admissionRefused': '{subject} 在准入时被拒绝了。',
|
|
730
|
+
'notice.peer.inbound.held': '{subject} 被留到下一轮再判断 —— 它还没有送达,但也没有被拒绝。',
|
|
731
|
+
'notice.peer.inbound.noticeUnrouted': '{subject} 没有可以送达的地方。',
|
|
732
|
+
'notice.peer.inbound.noticeUserOnly': '{subject} 只展示给了你 —— 模型没有读到它。',
|
|
733
|
+
'notice.peer.inbound.resupplyExhausted': '{subject}:模型可能从未读到它 —— 上下文压缩两次把它从模型的上下文里丢掉,发送方也没有被告知。',
|
|
734
|
+
'notice.peer.inbound.other': '{subject}:本版本认不出引擎报告的处置方式。',
|
|
735
|
+
'notice.peer.inbound.cause': '原因:{cause}。',
|
|
736
|
+
'notice.sessionBox.peer.another': '另一个会话',
|
|
737
|
+
'notice.sessionBox.peer.anotherStart': '另一个会话',
|
|
738
|
+
'notice.sessionBox.inbox.one': '有 1 条跨会话消息待读',
|
|
739
|
+
'notice.sessionBox.inbox.many': '有 {pending} 条跨会话消息待读',
|
|
740
|
+
'notice.sessionBox.inbox.urgent': '(其中 {urgent} 条紧急)',
|
|
741
|
+
'notice.sessionBox.inbox.resupplied': '(补投 {resupplied} 条)',
|
|
742
|
+
'notice.sessionBox.delivery.delivered': '你发给 {peer} 的消息已送达。',
|
|
743
|
+
'notice.sessionBox.delivery.held': '你发给 {peer} 的消息正在等待对方会话批准。',
|
|
744
|
+
'notice.sessionBox.delivery.heldByPolicy': '你发给 {peer} 的消息被对方会话自身的设置暂扣,对方没有人被请求批准它。',
|
|
745
|
+
'notice.sessionBox.delivery.denied': '你发给 {peer} 的消息被对方会话拒绝了。',
|
|
746
|
+
'notice.sessionBox.delivery.refused': '{peer} 不接收跨会话消息,你的消息没有送达。',
|
|
747
|
+
'notice.sessionBox.delivery.expired': '你发给 {peer} 的消息在获批前已过期。',
|
|
748
|
+
'notice.sessionBox.delivery.dropped': '你发给 {peer} 的消息被丢弃了({reason})。',
|
|
749
|
+
'notice.sessionBox.delivery.droppedPlain': '你发给 {peer} 的消息被丢弃了。',
|
|
750
|
+
'notice.sessionBox.delivery.other': '你发给 {peer} 的消息有新的投递状态。',
|
|
751
|
+
'notice.sessionBox.idle.finished': '{peer} 已结束本轮。',
|
|
752
|
+
'notice.sessionBox.idle.finishedDetail': '{peer} 已结束本轮:{detail}',
|
|
753
|
+
'notice.sessionBox.idle.exited': '{peer} 已退出。',
|
|
754
|
+
'notice.sessionBox.idle.unavailable': '{peer} 不可用。',
|
|
755
|
+
'notice.sessionBox.idle.expired': '{peer} 在等待结束前没有应答。',
|
|
756
|
+
'notice.sessionBox.idle.other': '{peer} 有新的状态通知。',
|
|
757
|
+
'notice.peer.held.deliveredApproved': '{subject} 已获批准并送达。',
|
|
758
|
+
'notice.peer.held.deliveredRejudged': '{subject} 经重新判断后送达,因为策略现在接受它。',
|
|
759
|
+
'notice.peer.held.droppedRejudged': '{subject} 曾获批准,但策略现在拒绝它,所以被丢弃了。',
|
|
760
|
+
'notice.peer.held.droppedInjectFailed': '{subject} 曾获批准,但放行时注入通道拒收了它,所以被丢弃了。',
|
|
761
|
+
'notice.peer.held.evicted': '{subject} 为腾出位置而被作废:暂扣队列已满(仍暂扣 {heldCount} 条)。',
|
|
762
|
+
'notice.peer.held.expiredDeadline': '{subject} 已在审阅期限届满时作废,没有送达。',
|
|
763
|
+
'notice.peer.held.expiredCancelled': '{subject} 已被取消,没有送达。',
|
|
764
|
+
'notice.peer.held.expiredShutdown': '{subject} 已在关闭时作废,没有送达。',
|
|
765
|
+
'notice.peer.held.denied': '{subject} 已被否决,没有送达。',
|
|
766
|
+
'notice.peer.held.refused': '{subject} 已被策略拒绝,没有送达。',
|
|
767
|
+
'notice.peer.held.retiredSuperseded': '{subject} 离开了暂扣队列,但这里没有做出决定:另一个消费方已经处理了它。',
|
|
768
|
+
'notice.peer.held.decidedElsewhere': '{subject} 已先被信箱的另一个消费方处理。',
|
|
769
|
+
'notice.peer.held.retiredOther': '{subject} 离开了本会话的暂扣队列,这里没有做出决定。',
|
|
770
|
+
'notice.peer.held.other': '{subject} 离开了本会话的暂扣队列(本版本认不出这一结果)。',
|
|
771
|
+
'notice.peer.idle.recorded': '会话 {from} 请求在本会话下次空闲时得到通知;这个请求已记下。',
|
|
772
|
+
'notice.peer.idle.refreshed': '会话 {from} 再次请求在本会话下次空闲时得到通知;它先前的请求已刷新。',
|
|
773
|
+
'notice.peer.idle.full': '会话 {from} 请求在本会话下次空闲时得到通知,但本会话的订阅名单已满,所以这个请求被回绝了。',
|
|
774
|
+
'notice.peer.idle.refused': '会话 {from} 请求在本会话下次空闲时得到通知,但本会话不接收其他会话的消息,所以这个请求被回绝了。',
|
|
775
|
+
'notice.peer.idle.other': '会话 {from} 请求在本会话下次空闲时得到通知。',
|
|
776
|
+
'notice.peer.idle.waiting': '此刻在等本会话空闲的订阅方:{live}。',
|
|
777
|
+
'notice.classifier.denialLimit.consecutive': '这次运行已停止:权限分类器连续拦下了 {count} 次工具调用,达到拦截上限,而之后请人来决定的那次请求也没有任何人判过。',
|
|
778
|
+
'notice.classifier.denialLimit.total': '这次运行已停止:权限分类器在这次运行里累计拦下了 {count} 次工具调用,达到拦截上限,而之后请人来决定的那次请求也没有任何人判过。',
|
|
779
|
+
'notice.classifier.denialLimit.other': '这次运行已停止:权限分类器达到了拦截上限,而之后请人来决定的那次请求也没有任何人判过。',
|
|
780
|
+
'notice.classifier.denialLimit.tool': '最近被拦下的动作:{tool}。',
|
|
781
|
+
'notice.classifier.denialLimit.tail': '请先看一下转录,再改掉总被拦下的那一步,或者接一个审批人,然后重新运行。',
|
|
782
|
+
'notice.task.lateApproval': '你对"{tool}"的批准没有被采用:一次运行或回合中断在你的决定落地之前就放掉了这个请求,所以这个工具没有运行,你的答复也没有结算任何东西。这只是时序上的事实,不是错误;如果还需要那一步,请再问一次。',
|
|
783
|
+
'notice.task.haltUnconsumed': '你的停止请求没有切断任何东西:它到达时这次运行已经因自身原因在收尾,所以它没有停下任何东西,以这次运行自己的结局为准。',
|
|
784
|
+
'notice.steering.parkedInputBlocked': '你在这次运行暂停期间发出的一条指令,在运行恢复时被拦下了:这套部署的输入筛查把它扣住,所以它没有到达模型。如果仍然适用,请再发一次。',
|
|
785
|
+
'notice.model.capabilityDowngraded.image': '这段对话里的图片没有发给 {model}:它的目录条目声明了不收图片输入,所以每张图只以一行占位说明的形式到达它。如果它其实能看图,请在该模型条目里声明(input: ["text", "image"]);否则请换一个能看图的模型。',
|
|
656
786
|
'rules.refusal.sentence.one': '权限:有 1 条规则不会被执行 —— {list}',
|
|
657
787
|
'rules.refusal.sentence.other': '权限:有 {count} 条规则不会被执行 —— {list}',
|
|
658
788
|
'rules.refusal.item': '{rule}({reason})',
|
|
@@ -735,6 +865,10 @@ const ZH = {
|
|
|
735
865
|
'session.steerRefusal.advice': '{happened} —— {nextStep}',
|
|
736
866
|
'session.steerRefusal.hostQueue.queued': '它留在队列里,在这个 turn 结束时会原样提交',
|
|
737
867
|
'session.steerRefusal.hostQueue.dropped': '它没有被保留;{nextStep}',
|
|
868
|
+
'session.interruptRefusal.nothingInFlight': '这次打断没有被接受:这条 run 正在等待一个待决的决定,所以没有在飞的一轮可以切 · run 本身没有变化,仍在等待 · 要结束它,请停止整条 run;要给它留一条消息,直接发送 —— 消息会在 run 继续时送达',
|
|
869
|
+
'session.interruptRefusal.notHeld': '这次打断没有被接受:这台服务器上没有这条 run 可以切的在飞一轮 —— 这条 run 可能在另一台服务器上运行,或走的是没有在飞一轮的路径 · run 本身没有变化 · 要结束它,请停止整条 run',
|
|
870
|
+
'session.interruptRefusal.notRunning': '这次打断没有被接受:这条 run 已经不在运行 —— 它刚刚结束,或已不再接受打断 · 没有切掉任何东西,也没有改变任何东西 · 动手之前先看一下它当前的状态',
|
|
871
|
+
'session.interruptRefusal.unrecognised': '这次打断没有被接受,原因这一版认不出来 · 不要假定这条 run 已经停了,或有哪一轮被切掉了 · 请看一下它当前的状态;如果反复出现,请反馈错误码(如果引擎给了的话)',
|
|
738
872
|
'session.permissionModeSwitch.applied': '正在跑的这一轮现在用 {mode} 权限模式。',
|
|
739
873
|
'session.permissionModeSwitch.folded': '正在跑的这一轮现在用 {mode} 权限模式,不是你选的那一档 —— {reason}。',
|
|
740
874
|
'session.permissionModeSwitch.reason.entryFloor': '这台部署不允许比它的下限更宽松的模式',
|
|
@@ -871,6 +1005,8 @@ const ZH = {
|
|
|
871
1005
|
'notice.failure.headline.parked': '事件流结束时这次 run 还没到终态 —— 这次 run 很可能是 parked 在等一个决断,而不是崩溃了。请查看它的状态并处理待决的事项;这个 turn 没有在这里完成。',
|
|
872
1006
|
'notice.failure.headline.internal': '这个客户端遇到了内部错误 —— 这是客户端的 bug,不是引擎故障,这个 turn 没有完成。',
|
|
873
1007
|
'notice.failure.headline.causeUnreadable': '这次失败的原因读不出(错误对象有一部分不可读)—— 不知道引擎是否收到了你的消息。重新发送之前,请先查看这次 run 的状态,或者重新接上它。',
|
|
1008
|
+
'notice.streamEnded.emptyLegs.headline': '事件流连着两次打开都没收到任何内容,结束时这次 run 还没到终态 —— 这次 run 很可能是 parked 在等一个决断,而不是崩溃了。请查看它的状态并处理待决的事项;这个 turn 没有在这里完成。',
|
|
1009
|
+
'notice.streamEnded.consecutiveFailures.headline': '事件流一直断在没有进展的地方,客户端已经不再重新打开它 —— 不知道这次 run 是仍在运行,还是在等一个决断。重新发送之前,请先查看它的状态,或者重新接上它;这个 turn 没有在这里完成。',
|
|
874
1010
|
'notice.failure.quota.fiveHour': '你的 5 小时额度已用完',
|
|
875
1011
|
'notice.failure.quota.weekly': '你的每周额度已用完',
|
|
876
1012
|
'notice.failure.quota.budgetPersonal': '你的个人预算已用完',
|
|
@@ -1017,6 +1153,24 @@ const ZH = {
|
|
|
1017
1153
|
'notice.wireRefusal.autonomyLane': '引擎没有启动这次 leader 运行:这个部署运行在只做计划的自主档,而 leader 运行没有办法让它的计划被审阅,所以什么也没有启动 · 请改为作为普通运行提交这项工作,或请运维这台引擎的人更改它的自主设置',
|
|
1018
1154
|
'notice.wireRefusal.sessionArchiveStamped': '这个会话存下的存档仍带着更早版本的服务端写下的属主戳,所以不能被 fork,也不能替换它的日志;什么都没有写入 · 请删除这个会话,然后重新推送',
|
|
1019
1155
|
'notice.wireRefusal.sessionArchiveStamped.fork': '这个会话存下的存档仍带着更早版本的服务端写下的属主戳,所以不能被 fork,也不能替换它的日志;什么都没有写入 · 这段对话会按它自己的历史接着跑;要 fork 它,请删除这个会话,然后重新推送',
|
|
1156
|
+
'notice.wireRefusal.envCredential': '引擎没有受理这个请求:它的 settings.env 里带着凭据,而引擎不从请求里收凭据',
|
|
1157
|
+
'notice.wireRefusal.envCredential.folded': '这件停驻的工作无法继续:为它保存的请求在 settings.env 里带着凭据,而引擎不从请求里收凭据;什么都没有续跑',
|
|
1158
|
+
'notice.wireRefusal.envCredential.names': '条目:{names}',
|
|
1159
|
+
'notice.wireRefusal.envCredential.remedy': '请把这些凭据放进引擎自己的进程环境,然后去掉这些条目重新发送请求',
|
|
1160
|
+
'notice.wireRefusal.sessionIdRetired': '引擎没有受理这个请求:它的会话 id 属于这台服务端上一只已删除的会话,这个 id 下的工作现在只为那只会话原来的属主运行 · 请换一个新会话',
|
|
1161
|
+
'notice.wireRefusal.sessionIdRetired.folded': '这件停驻的工作无法继续:它的会话 id 属于这台服务端上一只已删除的会话,这个 id 下的工作现在只为那只会话原来的属主运行;什么都没有续跑,这张卡仍在等待',
|
|
1162
|
+
'notice.wireRefusal.runConcurrencyCap.head': '这个部署在飞的运行已达到它允许的数量,所以引擎没有受理这个请求 · 请求本身没有任何问题',
|
|
1163
|
+
'notice.wireRefusal.runConcurrencyCap.unknownWait': '请等在飞的运行有一条结束后再发送',
|
|
1164
|
+
'notice.wireRefusal.unreadMembers': '引擎没有受理这个请求:它带着{part},这个版本的服务端读不出原样的写法,照它跑会悄悄把这一部分漏掉',
|
|
1165
|
+
'notice.wireRefusal.unreadMembers.folded': '这件停驻的工作无法继续:为它保存的请求带着{part},这个版本的服务端读不出原样的写法,续跑会悄悄把这一部分漏掉;什么都没有续跑,这张卡仍在等待',
|
|
1166
|
+
'notice.wireRefusal.unreadMembers.where': '位置:{where}',
|
|
1167
|
+
'notice.wireRefusal.unreadMembers.remedy': '请把这一部分改成当前的写法后重新发送请求',
|
|
1168
|
+
'notice.wireRefusal.unreadMembers.folded.remedy': '若这件工作仍停驻着,请先取消它,然后作为新请求重新提交,并把这一部分改成当前的写法',
|
|
1169
|
+
'notice.wireRefusal.unreadMembers.part.settingsHooks': '钩子设置',
|
|
1170
|
+
'notice.wireRefusal.unreadMembers.part.settingsEnv': '环境变量',
|
|
1171
|
+
'notice.wireRefusal.unreadMembers.part.settingsOther': '一项设置',
|
|
1172
|
+
'notice.wireRefusal.unreadMembers.part.mcpTransport': '某个 MCP 服务的连接设置',
|
|
1173
|
+
'notice.wireRefusal.unreadMembers.part.a2aHeaders': '某个 A2A 对端的请求头',
|
|
1020
1174
|
'notice.wireRefusal.unsupportedRule': '引擎拒绝了这个请求,所以其中任何内容都没有生效:里面有一条规则是引擎不支持的写法 —— {detail} · 请删掉或改写那条规则(要整只拦下一个工具,请只写工具名),再重新发送',
|
|
1021
1175
|
'notice.wireRefusal.unsupportedRule.other': '引擎拒绝了这个请求,所以其中任何内容都没有生效:里面有 {count} 条规则是引擎不支持的写法 —— {detail} · 请删掉或改写这些规则(要整只拦下一个工具,请只写工具名),再重新发送',
|
|
1022
1176
|
'notice.wireRefusal.unsupportedRule.stored': '引擎拒绝继续这件工作:为它保存的请求里有一条规则是引擎不支持的写法 —— {detail} · 它无法按保存的样子继续。请删掉或改写那条规则(要整只拦下一个工具,请只写工具名);若这件工作仍停驻着,请先取消它,然后作为新请求重新提交',
|
|
@@ -1078,15 +1232,20 @@ const ZH = {
|
|
|
1078
1232
|
'session.subagent.delegatedPrompt.absence.forbidden': '这个子代的 prompt 显示不了:引擎不允许读取它的对话。',
|
|
1079
1233
|
'session.subagent.delegatedPrompt.absence.promptAbsent': '读到了这个子代的对话,但里面没有可显示的委派 prompt。',
|
|
1080
1234
|
'session.subagent.delegatedPrompt.absence.unknown': '这个子代的 prompt 这次读取不到。',
|
|
1235
|
+
'rules.sessionPolicy.remove.loosenForbiddenStem': '引擎拒绝把这些条目从这个会话的规则记录里拿掉,所以记录没有变:引擎把其中至少一条算作运维方写下的、而不是会话属主自己加的,而属主只能撤自己加的条目。',
|
|
1236
|
+
'rules.sessionPolicy.remove.loosenForbidden': '{stem}请让运维方来撤,或者在新会话里继续。',
|
|
1081
1237
|
'rules.sessionPolicy.tighten.unknown.sessionOwnerless.noIdentity': '这个会话没有属主,为它写的规则之后永远读不回来;没有写入任何内容。',
|
|
1082
1238
|
'rules.sessionPolicy.tighten.unknown.storeCorrupt.noOperator': '引擎确认不了这个会话的规则当前在哪一版,拒绝盖新版本,所以没有写入任何内容。送去的条目没有问题 —— 这台部署没有运维方可以查看规则库,要由运行它的人处理。',
|
|
1083
1239
|
'rules.sessionPolicy.deployment.noOperator.readStoreCorrupt': '引擎确认不了这个会话的规则当前在哪一版,所以没有交出这份记录。这台部署没有运维方可以查看规则库,要由运行它的人处理。',
|
|
1084
|
-
'rules.sessionPolicy.deployment.noOperator.removeLoosenForbidden': '
|
|
1240
|
+
'rules.sessionPolicy.deployment.noOperator.removeLoosenForbidden': '{stem}这台部署没有运维方来撤。请在新会话里继续。',
|
|
1085
1241
|
'rules.sessionPolicy.deployment.noOperator.removeReadStoreCorrupt': '引擎确认不了这个会话的规则当前在哪一版,所以没有改动任何内容。这台部署没有运维方可以查看规则库,要由运行它的人处理。',
|
|
1086
1242
|
'rules.sessionPolicy.deployment.noOperator.removeWriteStoreCorrupt': '引擎确认不了这个会话的规则当前在哪一版,拒绝盖新版本,所以没有改动任何内容。这台部署没有运维方可以查看规则库,要由运行它的人处理。',
|
|
1087
1243
|
'config.hooks.plan.reason.compactionLocalFallback': '这一次压缩的摘要因引擎会话不可用而在本客户端本地生成,引擎不会替它运行这只 hook,所以由本客户端自己运行',
|
|
1088
1244
|
'config.hooks.plan.reason.keyNotRead': '所连服务端不读这只 hook 上写的某个键(删掉该键,或改用会读它的服务端)',
|
|
1089
1245
|
'config.hooks.plan.disableAllHooks': '托管设置关闭了全部 hooks(disableAllHooks)。',
|
|
1246
|
+
'config.hooks.plan.reason.closedUntrusted': '这个工作区未受信任,所以其中不运行任何 hook',
|
|
1247
|
+
'config.hooks.plan.reason.closedGovernanceUnreadable': '托管策略读不出来,所以这一回合不运行任何 hook',
|
|
1248
|
+
'config.hooks.plan.reason.closedDisableAll': '托管设置关闭了全部 hooks(disableAllHooks)',
|
|
1090
1249
|
'config.hooks.plan.keyNotRead.oneKey': '{layer}:{hooks} 不会运行 —— 所连服务端不读键 {coordinates}。删掉该键,或改用会读它的服务端。',
|
|
1091
1250
|
'config.hooks.plan.keyNotRead.manyKeys': '{layer}:{hooks} 不会运行 —— 所连服务端不读这些键:{coordinates}。删掉这些键,或改用会读它们的服务端。',
|
|
1092
1251
|
'config.hooks.plan.keyNotRead.more': '{shown} 等另 {rest} 处',
|
|
@@ -1133,8 +1292,11 @@ const ZH = {
|
|
|
1133
1292
|
'config.mods.loader.failed': '{name} 装载失败:{reason}',
|
|
1134
1293
|
'config.mods.loader.failedNoReason': '{name} 装载失败',
|
|
1135
1294
|
'config.mods.refusal.by': '被 {by} 拒绝',
|
|
1295
|
+
'config.mods.request.by': '由 {by} 发起',
|
|
1136
1296
|
'config.mods.rewrite.resultInPlace': '由 {by} 代替工具作答',
|
|
1137
1297
|
'config.mods.rewrite.inputBy': '参数在放行前被 {by} 改过',
|
|
1298
|
+
'config.mods.session.unreadable': '读不出这个对话最近一次运行用了哪些 mod',
|
|
1299
|
+
'config.mods.session.unarmed': '这个对话在当前引擎上运行过之后,这里会显示 mod',
|
|
1138
1300
|
'follow.notFollowed.headRun': '这块屏已不再跟着 run {taskId}{reason}{ending}{exit}',
|
|
1139
1301
|
'follow.notFollowed.headTurn': '这块屏已不再跟着这一轮的 run{reason}{ending}{exit}',
|
|
1140
1302
|
'follow.notFollowed.reason.exhaustedDraining': ':服务它的那台引擎实例在它最后一条事件流关闭时正在下线,而这个客户端的重新附着次数已经用完。',
|
|
@@ -1169,10 +1331,108 @@ const ZH = {
|
|
|
1169
1331
|
'approval.planReview.decision.gateUntrusted': '引擎认不出这道审阅门的编号(服务端那一行记录看起来坏了,请运维检查)。卡上就是当前在等批的计划:再答一次将不带门编号提交,那一次没有「计划已换」的保护。',
|
|
1170
1332
|
'approval.planReview.option.askAgain.label': '不,要模型重新呈上计划',
|
|
1171
1333
|
'approval.planReview.option.askAgain.description': '不批准;要模型重新呈上计划',
|
|
1334
|
+
'localEngine.behind.cliUpdate': '本机引擎(版本 {running})比这个 Sema({own})新,这个 Sema 不能在它上面开始新的工作。请先运行 `sema update`,再重新打开这个会话。',
|
|
1335
|
+
'localEngine.behind.appUpdate': '本机引擎(版本 {running})比这个 Sema({own})新,这个 Sema 不能在它上面开始新的工作。请把本应用更新到 {running} 或更新的版本,然后重启它。',
|
|
1336
|
+
'localEngine.versionUnknown': '读不出本机引擎的版本,不会自动更换它。',
|
|
1337
|
+
'localEngine.legacyBelowFloor': '本机引擎(版本 {running})低于这个 Sema 支持的最低版本({floor}),要先更换它,这个 Sema 才能使用。',
|
|
1338
|
+
'localEngine.card.title.version': '要用新版本替换本机引擎吗?',
|
|
1339
|
+
'localEngine.card.title.config': '要重启本机引擎,让改过的配置生效吗?',
|
|
1340
|
+
'localEngine.card.title.credential': '要重启本机引擎,换用改过的凭据吗?',
|
|
1341
|
+
'localEngine.card.title.modelDefault': '要重启本机引擎,让改过的默认模型生效吗?',
|
|
1342
|
+
'localEngine.card.title.user': '现在重启本机引擎吗?',
|
|
1343
|
+
'localEngine.card.title.unresponsive': '本机引擎没有响应,要重启它吗?',
|
|
1344
|
+
'localEngine.card.versions': '在跑的引擎:版本 {running}。这个 Sema:版本 {own}。',
|
|
1345
|
+
'localEngine.card.others.one': '另有 {total} 个 Sema 客户端在用这台引擎(其中 {midTurn} 个正在一轮对话中)。',
|
|
1346
|
+
'localEngine.card.others.other': '另有 {total} 个 Sema 客户端在用这台引擎(其中 {midTurn} 个正在一轮对话中)。',
|
|
1347
|
+
'localEngine.card.others.unknown': '其他在用这台引擎的 Sema 客户端:读不到。',
|
|
1348
|
+
'localEngine.card.inflight.one': '引擎上有 {count} 个运行在进行。',
|
|
1349
|
+
'localEngine.card.inflight.other': '引擎上有 {count} 个运行在进行。',
|
|
1350
|
+
'localEngine.card.inflight.unknown': '引擎上进行中的运行:读不到。',
|
|
1351
|
+
'localEngine.card.background.one': '有 {count} 个后台任务或工作流在跑。',
|
|
1352
|
+
'localEngine.card.background.other': '有 {count} 个后台任务或工作流在跑。',
|
|
1353
|
+
'localEngine.card.background.unknown': '后台任务与工作流:读不到。',
|
|
1354
|
+
'localEngine.card.overlap': '在后台跑的运行可能在上面两行里都被计入。',
|
|
1355
|
+
'localEngine.card.selfUnknown': '读不到这个 Sema 此刻在做什么。',
|
|
1356
|
+
'localEngine.card.parked': '现在就做的话,进行中的工作会以停驻或中断收尾。停驻的工作按引擎的持久续跑机制继续,与引擎自行停止时同一保证;在原会话里续跑或取消之前,发往那个会话的新消息会被拒绝。',
|
|
1357
|
+
'localEngine.card.force': '现在就做:进行中的工作约 {seconds} 秒内收尾。',
|
|
1358
|
+
'localEngine.card.wait': '先不:当前引擎照常运行。',
|
|
1359
|
+
'localEngine.exitFate.peers': '本机引擎继续运行:还有其他 Sema 客户端在用它。',
|
|
1360
|
+
'localEngine.exitFate.lease': '本机引擎暂时继续运行,没人用时会自行停止。',
|
|
1361
|
+
'localEngine.exitFate.unknown': '本机引擎继续运行;读不出是否还有其他 Sema 客户端在用它。',
|
|
1362
|
+
'localEngine.principalOverrideIgnored': '环境变量里指定的主体(`SEMA_LIVE_PRINCIPAL`)对本机引擎不生效;Sema 用的是设置文件 env 块里的那一个,这样本机所有 Sema 应用都以同一个主体工作。要改,请在设置里改。',
|
|
1363
|
+
'localEngine.principalUnknown': 'Sema 读不出{layer},本机会话已暂停:它们的主体可能就写在那里。请修好这个文件,然后重启 Sema。',
|
|
1364
|
+
'localEngine.settingsLayer.userSettings': '你的设置文件',
|
|
1365
|
+
'localEngine.settingsLayer.flagSettings': '启动时指定的设置文件',
|
|
1366
|
+
'localEngine.settingsLayer.policySettings': '托管设置',
|
|
1367
|
+
'localEngine.settingsLayer.unspecified': '某个设置文件',
|
|
1368
|
+
'localEngine.bootRefusal': '本机引擎拒绝启动:{reason}',
|
|
1369
|
+
'localEngine.firstShare': '这个 Sema 现在与本机其他 Sema 应用共用同一台本机引擎。这个应用以前私有引擎里的本机会话不在列表中显示;它们的数据原样留着。',
|
|
1370
|
+
'localEngine.phase.starting': '正在启动本机引擎……',
|
|
1371
|
+
'localEngine.phase.dormant': '本机引擎没有在跑;有会话要用时会启动。',
|
|
1372
|
+
'localEngine.phase.draining': '本机引擎在停止前收尾手上的工作;它回来后 Sema 会重新连上。',
|
|
1373
|
+
'localEngine.phase.unanswered': '有进程占着本机引擎的端口但不应答;Sema 在等它。',
|
|
1374
|
+
'localEngine.phase.unverifiable': '本机引擎端口上有进程应答,但核不了它的身份:Sema 不起第二台,也不停它。',
|
|
1375
|
+
'localEngine.phase.pendingBlocked': '在跑的本机引擎换掉之前,这个 Sema 用不了它。',
|
|
1376
|
+
'localEngine.phase.swappingIdle': '正在趁空闲更换本机引擎……',
|
|
1377
|
+
'localEngine.phase.swappingForced': '正在立即更换本机引擎;进行中的工作以停驻或中断收尾。',
|
|
1378
|
+
'localEngine.waitingPeer': '另一个 Sema 正在启动或更换本机引擎;在等它。',
|
|
1379
|
+
'localEngine.banner.pending': '本机引擎有一次待换;没人用它时就换。',
|
|
1380
|
+
'localEngine.down.lockUnavailable': '另一个 Sema 持着本机引擎的启动锁,没有按时完成;请重试。',
|
|
1381
|
+
'localEngine.down.spawnFailed': '本机引擎没能启动。',
|
|
1382
|
+
'localEngine.down.spawnRefused': '本机引擎没有启动:启动前的准备没有通过。',
|
|
1383
|
+
'localEngine.down.stopFailed': '旧的本机引擎没有按时停下,所以没有更换。',
|
|
1384
|
+
'localEngine.down.crashLoop': '本机引擎反复意外停止,自动重启已暂停。',
|
|
1385
|
+
'localEngine.down.highWaterUnreadable': '读不出这台机器上用过的最新引擎版本记录,本机引擎不启动;请检查引擎数据目录。',
|
|
1386
|
+
'localEngine.crashLoop.retry': '本机引擎反复意外停止;约 {seconds} 秒后再试一次。',
|
|
1387
|
+
'localEngine.crashLoop.stopped': '本机引擎反复意外停止;Sema 已不再自动重试,请手动重启。',
|
|
1388
|
+
'localEngine.crashLoop.retrying': '正在再次尝试启动本机引擎。',
|
|
1389
|
+
'localEngine.drainOverdue': '本机引擎收尾的时间比预期长。',
|
|
1390
|
+
'localEngine.engineExited.unexpected': '本机引擎意外停止;需要时 Sema 会再启动它。',
|
|
1391
|
+
'localEngine.engineExited.crashLoop': '本机引擎又一次意外停止;自动重启已暂停。',
|
|
1392
|
+
'localEngine.engineExited.quiet': '本机引擎已退出;需要时 Sema 会再启动它。',
|
|
1393
|
+
'localEngine.cannotVerifyEngine': '核不了在跑的本机引擎,Sema 不会停它。',
|
|
1394
|
+
'localEngine.lockUnavailable': '另一个 Sema 持着本机引擎的启动锁;当前引擎照常运行。',
|
|
1395
|
+
'localEngine.prepareFailed.reason': '本机引擎没有更换,当前引擎照常运行。原因:{reason}',
|
|
1396
|
+
'localEngine.prepareFailed.timeout': '准备更换用时过长,本机引擎没有更换;当前引擎照常运行。',
|
|
1397
|
+
'localEngine.spawnFailed.timeout': '新的本机引擎没有按时应答。',
|
|
1398
|
+
'localEngine.lockLost': 'Sema 丢了本机引擎的启动锁;不再发后续信号,重新查看。',
|
|
1399
|
+
'localEngine.forcedLine': '本机引擎已立即更换;当时进行中的工作以停驻或中断收尾。',
|
|
1400
|
+
'localEngine.headless.behind': '本机引擎比这个 Sema 新;请更新 Sema 后重新运行命令。',
|
|
1401
|
+
'localEngine.headless.legacyBelowFloor': '本机引擎低于这个 Sema 支持的版本;请交互打开 Sema 更换它,再重新运行命令。',
|
|
1402
|
+
'localEngine.headless.unresponsive': '本机引擎没有响应;请交互打开 Sema 重启它,再重新运行命令。',
|
|
1403
|
+
'localEngine.headless.swapPending': '本机引擎要先重启这条命令才能跑;请交互打开 Sema 确认,再重新运行命令。',
|
|
1404
|
+
'localEngine.headless.drainOverdue': '本机引擎没有按时停完;请稍后重新运行命令。',
|
|
1405
|
+
'localEngine.headless.unverifiable': '本机引擎端口上有进程应答但核不了身份;命令就此停止。',
|
|
1406
|
+
'localEngine.restartOutcome.skippedNoDemand': '下次启动本机引擎时生效。',
|
|
1407
|
+
'localEngine.restartOutcome.pendingCard': '有别的会话在用本机引擎;请在卡上确认重启。',
|
|
1408
|
+
'localEngine.restartOutcome.pendingBusy': '有别的会话在用本机引擎;没人用时就重启。',
|
|
1409
|
+
'localEngine.restartOutcome.failedPrepare': '本机引擎没有重启;当前引擎照常运行。',
|
|
1410
|
+
'localEngine.restartOutcome.failedDown': '本机引擎没能重启:{detail}',
|
|
1411
|
+
'session.devices.repoint.done': '已改指:这台机器的设备档和会话现在跟着新的引擎地址走。设备身份没变 —— 没有重新注册。',
|
|
1412
|
+
'session.devices.repoint.unverified': '什么都没改:确认不了新地址上有这台设备。如果它就是同一台引擎,请确认你是用这台设备所属账号登录的,然后再试一次;否则请到引擎自己的地址重新注册这台机器,再到引擎的设备列表里移除旧设备。',
|
|
1413
|
+
'session.devices.repoint.undetermined': '什么都没改:对新地址的一项核对没读到结果,所以不知道这台设备是否登记在那边。请再试一次;或者到引擎自己的地址重新注册这台机器,再到引擎的设备列表里移除旧设备。',
|
|
1414
|
+
'session.devices.repoint.partial': '设备档已跟着新地址走,但不是每只会话都改成了。再运行一次同样的命令即可补完 —— 已改好的会话不会再动。',
|
|
1415
|
+
'session.devices.repoint.storeFailed': '设备档没能迁过去,所以什么都没改。请再运行一次命令;一直失败的话,到引擎自己的地址重新注册这台机器。',
|
|
1416
|
+
'session.devices.repoint.refused.addressInvalid': '什么都没改:有一个地址用不了。请给引擎完整的 https:// 地址(明文 http:// 只收本机地址)。',
|
|
1417
|
+
'session.devices.repoint.refused.sameAddress': '什么都没改:新地址和旧地址是同一个引擎地址。',
|
|
1418
|
+
'session.devices.repoint.refused.recordAbsent': '什么都没改:这台机器上没有旧地址对应的设备档。',
|
|
1419
|
+
'session.devices.repoint.refused.recordNotActive': '什么都没改:这个地址上的设备档不是已完成的注册(还在注册中,或设备已被移除)。请到引擎自己的地址重新注册。',
|
|
1420
|
+
'session.devices.repoint.refused.recordUnreadable': '什么都没改:有一份设备档读不了,所以原样没动。',
|
|
1421
|
+
'session.devices.repoint.refused.targetOccupied': '什么都没改:这台机器在新地址上已经有一份不同设备的设备档。',
|
|
1422
|
+
'session.devices.repoint.refused.unarmed': '什么都没改:这个应用没有接好迁移设备档和会话的能力。',
|
|
1172
1423
|
};
|
|
1173
1424
|
export const ZH_MESSAGES = Object.freeze(ZH);
|
|
1174
1425
|
export const TERM_SLOTS = Object.freeze({
|
|
1175
1426
|
'session.background.refusal.envOff': ['SEMA_HEADLESS_DETACH'],
|
|
1427
|
+
'session.mcpReconnect.unsupported': ['MCP'],
|
|
1428
|
+
'session.mcpReconnect.accepted.one': ['MCP'],
|
|
1429
|
+
'session.mcpReconnect.accepted.other': ['MCP'],
|
|
1430
|
+
'session.mcpReconnect.refused.untouched': ['MCP'],
|
|
1431
|
+
'session.mcpReconnect.refused.noTools': ['MCP'],
|
|
1432
|
+
'session.mcpReconnect.refused.listed.one': ['MCP'],
|
|
1433
|
+
'session.mcpReconnect.refused.listed.other': ['MCP'],
|
|
1434
|
+
'session.mcpReconnect.undeclared': ['MCP'],
|
|
1435
|
+
'session.mcpReconnect.unsettled': ['MCP'],
|
|
1176
1436
|
'session.permissionModeSwitch.reason.disableAutoMode': ['auto'],
|
|
1177
1437
|
'session.thinking.offWithUltracodeOnBody': ['Ultracode'],
|
|
1178
1438
|
'config.mcp.toolAxesInvalid': ['toolAxes'],
|
|
@@ -1327,6 +1587,8 @@ export const TERM_SLOTS = Object.freeze({
|
|
|
1327
1587
|
'notice.failure.headline.connectionLost': ['run'],
|
|
1328
1588
|
'notice.failure.headline.timeout': ['run'],
|
|
1329
1589
|
'notice.failure.headline.parked': ['parked', 'run', 'turn'],
|
|
1590
|
+
'notice.streamEnded.emptyLegs.headline': ['parked', 'run', 'turn'],
|
|
1591
|
+
'notice.streamEnded.consecutiveFailures.headline': ['run', 'turn'],
|
|
1330
1592
|
'notice.failure.headline.internal': ['turn'],
|
|
1331
1593
|
'notice.failure.headline.causeUnreadable': ['run'],
|
|
1332
1594
|
'notice.failure.settings.safety': ['turn'],
|