@sema-agent/client-core 0.77.1 → 0.78.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 (382) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/README.md +6 -5
  3. package/dist/abortableSleep.d.ts +0 -28
  4. package/dist/abortableSleep.js +0 -28
  5. package/dist/adapt/arms.d.ts +0 -46
  6. package/dist/adapt/arms.js +9 -544
  7. package/dist/adapt/ids.d.ts +0 -58
  8. package/dist/adapt/ids.js +0 -63
  9. package/dist/adapt/instanceLedger.d.ts +0 -25
  10. package/dist/adapt/instanceLedger.js +0 -20
  11. package/dist/adapt/panelTasks.d.ts +0 -69
  12. package/dist/adapt/panelTasks.js +0 -95
  13. package/dist/adapt/textSegmentAuthority.d.ts +1 -137
  14. package/dist/adapt/textSegmentAuthority.js +0 -54
  15. package/dist/adapt/textStream.d.ts +0 -252
  16. package/dist/adapt/textStream.js +2 -281
  17. package/dist/adapt/toolCards.d.ts +0 -46
  18. package/dist/adapt/toolCards.js +0 -23
  19. package/dist/adapt/turnFlags.d.ts +0 -54
  20. package/dist/adapt/turnFlags.js +1 -17
  21. package/dist/adapt/wireShapes.d.ts +0 -92
  22. package/dist/adapt/wireShapes.js +0 -83
  23. package/dist/adapt.d.ts +0 -55
  24. package/dist/adapt.js +1 -120
  25. package/dist/adapter/activeRunSelfHeal.d.ts +22 -515
  26. package/dist/adapter/activeRunSelfHeal.js +10 -625
  27. package/dist/adapter/downstream/eventToSdkMessage.d.ts +2 -305
  28. package/dist/adapter/downstream/eventToSdkMessage.js +2 -867
  29. package/dist/adapter/downstream/terminalToSdkResult.d.ts +2 -314
  30. package/dist/adapter/downstream/terminalToSdkResult.js +13 -560
  31. package/dist/adapter/downstream/turnUsageToModelUsage.d.ts +0 -95
  32. package/dist/adapter/downstream/turnUsageToModelUsage.js +2 -31
  33. package/dist/adapter/runStream.d.ts +0 -206
  34. package/dist/adapter/runStream.js +6 -596
  35. package/dist/adapter/types.d.ts +0 -111
  36. package/dist/adapter/types.js +0 -29
  37. package/dist/agentSession/backgroundView.d.ts +0 -106
  38. package/dist/agentSession/backgroundView.js +3 -49
  39. package/dist/agentSession/contract.d.ts +0 -98
  40. package/dist/agentSession/contract.js +0 -12
  41. package/dist/agentsWireCaps.d.ts +0 -72
  42. package/dist/agentsWireCaps.js +4 -72
  43. package/dist/approvalsStreamLiveCapability.d.ts +0 -25
  44. package/dist/approvalsStreamLiveCapability.js +0 -31
  45. package/dist/argvFlagValue.d.ts +0 -33
  46. package/dist/argvFlagValue.js +3 -35
  47. package/dist/attachmentsWireCaps.d.ts +0 -127
  48. package/dist/attachmentsWireCaps.js +0 -144
  49. package/dist/autoModeUnavailable.d.ts +0 -120
  50. package/dist/autoModeUnavailable.js +0 -144
  51. package/dist/classifierStatus.d.ts +0 -72
  52. package/dist/classifierStatus.js +0 -167
  53. package/dist/classifierVerdictWire.d.ts +0 -54
  54. package/dist/classifierVerdictWire.js +0 -133
  55. package/dist/clientContextWireCaps.d.ts +0 -37
  56. package/dist/clientContextWireCaps.js +0 -36
  57. package/dist/clientSlice.d.ts +0 -63
  58. package/dist/clientSlice.js +0 -45
  59. package/dist/cloudConfigWireCaps.d.ts +0 -86
  60. package/dist/cloudConfigWireCaps.js +2 -65
  61. package/dist/compensations.d.ts +0 -52
  62. package/dist/compensations.js +2 -63
  63. package/dist/controlRouter.d.ts +2 -208
  64. package/dist/controlRouter.js +1 -129
  65. package/dist/coreValuePorts.d.ts +0 -84
  66. package/dist/coreValuePorts.js +0 -29
  67. package/dist/decideReceipt.d.ts +0 -110
  68. package/dist/decideReceipt.js +0 -84
  69. package/dist/detachWire.d.ts +0 -130
  70. package/dist/detachWire.js +1 -130
  71. package/dist/deviceExecutorManagementCapability.d.ts +2 -35
  72. package/dist/deviceExecutorManagementCapability.js +1 -37
  73. package/dist/diagnostics.d.ts +0 -8
  74. package/dist/diagnostics.js +0 -8
  75. package/dist/diff/patch.d.ts +0 -17
  76. package/dist/diff/patch.js +0 -19
  77. package/dist/effectiveFacts.d.ts +0 -40
  78. package/dist/effectiveFacts.js +0 -22
  79. package/dist/effortWire.d.ts +0 -11
  80. package/dist/effortWire.js +0 -12
  81. package/dist/engineAgentPanelStore.d.ts +0 -169
  82. package/dist/engineAgentPanelStore.js +13 -293
  83. package/dist/engineCapReader.d.ts +0 -62
  84. package/dist/engineCapReader.js +1 -43
  85. package/dist/engineCapsCache.d.ts +0 -177
  86. package/dist/engineCapsCache.js +0 -199
  87. package/dist/engineCapsGenerationGuard.d.ts +0 -2
  88. package/dist/engineCapsGenerationGuard.js +0 -11
  89. package/dist/engineErrorCodes.d.ts +1 -316
  90. package/dist/engineErrorCodes.js +0 -427
  91. package/dist/engineHttpTools.d.ts +0 -29
  92. package/dist/engineHttpTools.js +0 -29
  93. package/dist/engineIdentity.d.ts +0 -83
  94. package/dist/engineIdentity.js +0 -88
  95. package/dist/engineInlineTaskStats.d.ts +0 -57
  96. package/dist/engineInlineTaskStats.js +1 -42
  97. package/dist/engineNoticeCodes.d.ts +0 -190
  98. package/dist/engineNoticeCodes.js +0 -182
  99. package/dist/engineSessionParam.d.ts +0 -30
  100. package/dist/engineSessionParam.js +0 -52
  101. package/dist/engineToolLabelStore.d.ts +0 -29
  102. package/dist/engineToolLabelStore.js +0 -31
  103. package/dist/engineWireSdk.d.ts +0 -90
  104. package/dist/engineWireSdk.js +0 -74
  105. package/dist/engineWireTarget.d.ts +0 -14
  106. package/dist/engineWireTarget.js +0 -39
  107. package/dist/env/localeGeo.d.ts +0 -12
  108. package/dist/env/localeGeo.js +2 -77
  109. package/dist/env/localeTag.d.ts +0 -34
  110. package/dist/env/localeTag.js +0 -32
  111. package/dist/env/uiLanguage.d.ts +0 -13
  112. package/dist/env/uiLanguage.js +0 -25
  113. package/dist/envFlag.d.ts +0 -37
  114. package/dist/envFlag.js +0 -40
  115. package/dist/executionLaneCapability.d.ts +0 -48
  116. package/dist/executionLaneCapability.js +0 -54
  117. package/dist/finalVerifyWire.d.ts +0 -67
  118. package/dist/finalVerifyWire.js +3 -43
  119. package/dist/fleet/fleetLedger.d.ts +0 -308
  120. package/dist/fleet/fleetLedger.js +10 -429
  121. package/dist/fleet/fleetProjection.d.ts +0 -240
  122. package/dist/fleet/fleetProjection.js +0 -189
  123. package/dist/fleet/fleetRowAgentType.d.ts +0 -6
  124. package/dist/fleet/fleetRowAgentType.js +1 -32
  125. package/dist/fleet/workflowSizeWarning.d.ts +0 -47
  126. package/dist/fleet/workflowSizeWarning.js +1 -46
  127. package/dist/fleetAgentPanelProjection.d.ts +0 -48
  128. package/dist/fleetAgentPanelProjection.js +8 -173
  129. package/dist/fleetTaskDesc.d.ts +0 -39
  130. package/dist/fleetTaskDesc.js +0 -69
  131. package/dist/forkWireCaps.d.ts +0 -23
  132. package/dist/forkWireCaps.js +1 -24
  133. package/dist/gateOutcome.d.ts +0 -140
  134. package/dist/gateOutcome.js +0 -85
  135. package/dist/gateVocabulary.d.ts +0 -114
  136. package/dist/gateVocabulary.js +3 -161
  137. package/dist/goalStopHook.d.ts +0 -127
  138. package/dist/goalStopHook.js +0 -178
  139. package/dist/headlessPermissionModeWire.d.ts +0 -76
  140. package/dist/headlessPermissionModeWire.js +1 -155
  141. package/dist/headlessReconnectWire.d.ts +0 -84
  142. package/dist/headlessReconnectWire.js +13 -67
  143. package/dist/hitl/approvalDecisionNoteAudit.d.ts +0 -49
  144. package/dist/hitl/approvalDecisionNoteAudit.js +0 -56
  145. package/dist/hitl/approvalOutcomeNote.d.ts +0 -2
  146. package/dist/hitl/approvalOutcomeNote.js +0 -20
  147. package/dist/hitl/approvalResolution.d.ts +0 -113
  148. package/dist/hitl/approvalResolution.js +0 -66
  149. package/dist/hitl/approvalsFeed.d.ts +0 -183
  150. package/dist/hitl/approvalsFeed.js +12 -243
  151. package/dist/hitl/armedGateRegistry.d.ts +0 -55
  152. package/dist/hitl/armedGateRegistry.js +0 -146
  153. package/dist/hitl/askGateWire.d.ts +0 -86
  154. package/dist/hitl/askGateWire.js +1 -95
  155. package/dist/hitl/askParkRowRouting.d.ts +0 -123
  156. package/dist/hitl/askParkRowRouting.js +1 -89
  157. package/dist/hitl/crashConverged.d.ts +0 -148
  158. package/dist/hitl/crashConverged.js +0 -214
  159. package/dist/hitl/editedRuleTextPrecheck.d.ts +0 -109
  160. package/dist/hitl/editedRuleTextPrecheck.js +0 -71
  161. package/dist/hitl/frameRouter.d.ts +0 -134
  162. package/dist/hitl/frameRouter.js +6 -378
  163. package/dist/hitl/gateIdentity.d.ts +0 -39
  164. package/dist/hitl/gateIdentity.js +0 -41
  165. package/dist/hitl/gateLedger.d.ts +0 -267
  166. package/dist/hitl/gateLedger.js +0 -121
  167. package/dist/hitl/hitlBridge.d.ts +7 -431
  168. package/dist/hitl/hitlBridge.js +7 -476
  169. package/dist/hitl/hitlHostSurface.d.ts +0 -150
  170. package/dist/hitl/hitlHostSurface.js +0 -169
  171. package/dist/hitl/livePendingAsk.d.ts +0 -91
  172. package/dist/hitl/livePendingAsk.js +0 -74
  173. package/dist/hitl/localAllowRule.d.ts +0 -62
  174. package/dist/hitl/localAllowRule.js +1 -33
  175. package/dist/hitl/parkOwnership.d.ts +0 -56
  176. package/dist/hitl/parkOwnership.js +0 -22
  177. package/dist/hitl/parkResolver.d.ts +3 -88
  178. package/dist/hitl/parkResolver.js +8 -349
  179. package/dist/hitl/parkRowBirthWait.d.ts +2 -26
  180. package/dist/hitl/parkRowBirthWait.js +3 -93
  181. package/dist/hitl/persistedRulesWire.d.ts +23 -371
  182. package/dist/hitl/persistedRulesWire.js +62 -329
  183. package/dist/hitl/planReviewWire.d.ts +4 -176
  184. package/dist/hitl/planReviewWire.js +9 -312
  185. package/dist/hitl/resumeRunningCard.d.ts +0 -105
  186. package/dist/hitl/resumeRunningCard.js +0 -105
  187. package/dist/hitl/sessionPolicyWire.d.ts +11 -191
  188. package/dist/hitl/sessionPolicyWire.js +0 -149
  189. package/dist/hitl/suspendedReopen.d.ts +3 -24
  190. package/dist/hitl/suspendedReopen.js +0 -14
  191. package/dist/hitl/toolApprovalWire.d.ts +5 -1308
  192. package/dist/hitl/toolApprovalWire.js +5 -945
  193. package/dist/hooksWireCaps.d.ts +0 -38
  194. package/dist/hooksWireCaps.js +0 -190
  195. package/dist/host.d.ts +0 -105
  196. package/dist/host.js +0 -33
  197. package/dist/hostEnv.d.ts +0 -14
  198. package/dist/hostEnv.js +0 -13
  199. package/dist/imagesWireCaps.d.ts +0 -21
  200. package/dist/imagesWireCaps.js +0 -22
  201. package/dist/index.d.ts +0 -134
  202. package/dist/index.js +0 -476
  203. package/dist/interactiveHalt.d.ts +5 -153
  204. package/dist/interactiveHalt.js +0 -111
  205. package/dist/interactiveToolsWire.d.ts +0 -62
  206. package/dist/interactiveToolsWire.js +1 -67
  207. package/dist/leaderConflict.d.ts +0 -59
  208. package/dist/leaderConflict.js +0 -48
  209. package/dist/limitsWire.d.ts +0 -125
  210. package/dist/limitsWire.js +2 -120
  211. package/dist/liveInitToolFace.d.ts +0 -77
  212. package/dist/liveInitToolFace.js +1 -109
  213. package/dist/liveModelCatalog.d.ts +0 -52
  214. package/dist/liveModelCatalog.js +0 -48
  215. package/dist/liveQuestionStore.d.ts +0 -87
  216. package/dist/liveQuestionStore.js +1 -56
  217. package/dist/mcpLiveness.d.ts +0 -151
  218. package/dist/mcpLiveness.js +0 -122
  219. package/dist/mcpPanel.d.ts +0 -104
  220. package/dist/mcpPanel.js +0 -49
  221. package/dist/mcpReconnect.d.ts +0 -58
  222. package/dist/mcpReconnect.js +0 -69
  223. package/dist/mcpWireCaps.d.ts +0 -55
  224. package/dist/mcpWireCaps.js +1 -13
  225. package/dist/memoryComplianceCapability.d.ts +3 -57
  226. package/dist/memoryComplianceCapability.js +0 -57
  227. package/dist/memoryEntriesWire.d.ts +6 -198
  228. package/dist/memoryEntriesWire.js +0 -144
  229. package/dist/memoryOriginCapability.d.ts +3 -53
  230. package/dist/memoryOriginCapability.js +0 -50
  231. package/dist/memorySpecWire.d.ts +0 -116
  232. package/dist/memorySpecWire.js +0 -150
  233. package/dist/model/catalog.d.ts +0 -111
  234. package/dist/model/catalog.js +0 -87
  235. package/dist/model/catalogLoader.d.ts +0 -114
  236. package/dist/model/catalogLoader.js +2 -139
  237. package/dist/model/modelSupplyRules.d.ts +1 -55
  238. package/dist/model/modelSupplyRules.js +0 -62
  239. package/dist/model/providerAuth.d.ts +0 -103
  240. package/dist/model/providerAuth.js +2 -38
  241. package/dist/model/providerCatalog.d.ts +0 -45
  242. package/dist/model/providerCatalog.js +0 -37
  243. package/dist/model/providerPresets.d.ts +0 -33
  244. package/dist/model/providerPresets.js +2 -91
  245. package/dist/model/tierVocabulary.d.ts +0 -31
  246. package/dist/model/tierVocabulary.js +0 -27
  247. package/dist/modelBudgetRule.d.ts +0 -39
  248. package/dist/modelBudgetRule.js +0 -39
  249. package/dist/modelCapabilityProbe.d.ts +0 -175
  250. package/dist/modelCapabilityProbe.js +0 -147
  251. package/dist/modelWireCaps.d.ts +0 -13
  252. package/dist/modelWireCaps.js +0 -13
  253. package/dist/notifications.d.ts +0 -233
  254. package/dist/notifications.js +14 -492
  255. package/dist/oneShotWireCaps.d.ts +0 -34
  256. package/dist/oneShotWireCaps.js +0 -35
  257. package/dist/ownKey.d.ts +0 -33
  258. package/dist/ownKey.js +0 -33
  259. package/dist/panelRunningHistory.d.ts +0 -28
  260. package/dist/panelRunningHistory.js +0 -43
  261. package/dist/peerFrames.d.ts +0 -71
  262. package/dist/peerFrames.js +0 -168
  263. package/dist/peerLaneCapability.d.ts +0 -44
  264. package/dist/peerLaneCapability.js +0 -52
  265. package/dist/permissionRuleIssue.d.ts +0 -30
  266. package/dist/permissionRuleIssue.js +0 -78
  267. package/dist/permissionRulesWriteCapability.d.ts +0 -46
  268. package/dist/permissionRulesWriteCapability.js +0 -54
  269. package/dist/permissionWireCaps.d.ts +0 -37
  270. package/dist/permissionWireCaps.js +0 -37
  271. package/dist/postureKnob.d.ts +0 -71
  272. package/dist/postureKnob.js +0 -86
  273. package/dist/principalWire.d.ts +0 -17
  274. package/dist/principalWire.js +0 -17
  275. package/dist/printToolResultFrame.d.ts +0 -100
  276. package/dist/printToolResultFrame.js +0 -33
  277. package/dist/promptProfileWireCaps.d.ts +0 -13
  278. package/dist/promptProfileWireCaps.js +0 -13
  279. package/dist/readFacePosture.d.ts +0 -43
  280. package/dist/readFacePosture.js +0 -46
  281. package/dist/request/printNotification.d.ts +0 -20
  282. package/dist/request/printNotification.js +0 -55
  283. package/dist/request/taskRequest.d.ts +1 -249
  284. package/dist/request/taskRequest.js +20 -498
  285. package/dist/resumeRefusalCopy.d.ts +0 -136
  286. package/dist/resumeRefusalCopy.js +1 -117
  287. package/dist/retainBackgroundWireCaps.d.ts +0 -48
  288. package/dist/retainBackgroundWireCaps.js +0 -48
  289. package/dist/retryStatus.d.ts +2 -221
  290. package/dist/retryStatus.js +0 -107
  291. package/dist/rewindWireCaps.d.ts +0 -27
  292. package/dist/rewindWireCaps.js +0 -24
  293. package/dist/runCancelContext.d.ts +1 -20
  294. package/dist/runCancelContext.js +0 -34
  295. package/dist/runTerminal.d.ts +0 -273
  296. package/dist/runTerminal.js +0 -177
  297. package/dist/sandboxWire.d.ts +0 -38
  298. package/dist/sandboxWire.js +0 -82
  299. package/dist/scenarioWire.d.ts +0 -60
  300. package/dist/scenarioWire.js +0 -68
  301. package/dist/scratchpadWireCaps.d.ts +0 -11
  302. package/dist/scratchpadWireCaps.js +0 -32
  303. package/dist/sdkWireTransit.d.ts +0 -38
  304. package/dist/sdkWireTransit.js +0 -30
  305. package/dist/seam.d.ts +18 -853
  306. package/dist/seam.js +0 -52
  307. package/dist/seatContract.d.ts +0 -555
  308. package/dist/seatContract.js +5 -304
  309. package/dist/selfOrchestrationDenial.d.ts +0 -189
  310. package/dist/selfOrchestrationDenial.js +0 -162
  311. package/dist/selfOrchestrationWireCaps.d.ts +0 -38
  312. package/dist/selfOrchestrationWireCaps.js +0 -38
  313. package/dist/sessionMap.d.ts +0 -60
  314. package/dist/sessionMap.js +0 -37
  315. package/dist/sessionMemoryStatus.d.ts +11 -114
  316. package/dist/sessionMemoryStatus.js +0 -112
  317. package/dist/sessionModelLatch.d.ts +0 -29
  318. package/dist/sessionModelLatch.js +0 -40
  319. package/dist/sessionPolicyCapability.d.ts +3 -53
  320. package/dist/sessionPolicyCapability.js +0 -52
  321. package/dist/sessionSlot.d.ts +0 -26
  322. package/dist/sessionSlot.js +0 -17
  323. package/dist/skillsWireCaps.d.ts +0 -87
  324. package/dist/skillsWireCaps.js +0 -38
  325. package/dist/sqlEngineCapability.d.ts +0 -118
  326. package/dist/sqlEngineCapability.js +0 -134
  327. package/dist/sseIdleTriage.d.ts +0 -79
  328. package/dist/sseIdleTriage.js +1 -80
  329. package/dist/steering.d.ts +0 -54
  330. package/dist/steering.js +0 -63
  331. package/dist/subagent/engineCompactWire.d.ts +0 -34
  332. package/dist/subagent/engineCompactWire.js +4 -134
  333. package/dist/subagent/engineDelegatedPrompt.d.ts +0 -31
  334. package/dist/subagent/engineDelegatedPrompt.js +1 -103
  335. package/dist/subagent/engineRowStopGate.d.ts +0 -20
  336. package/dist/subagent/engineRowStopGate.js +0 -49
  337. package/dist/subagent/engineSubagentOutput.d.ts +0 -7
  338. package/dist/subagent/engineSubagentOutput.js +1 -51
  339. package/dist/subagent/engineSubagentResume.d.ts +2 -279
  340. package/dist/subagent/engineSubagentResume.js +2 -129
  341. package/dist/subagent/engineSubagentSteer.d.ts +0 -26
  342. package/dist/subagent/engineSubagentSteer.js +0 -63
  343. package/dist/subagent/engineSubagentTail.d.ts +0 -38
  344. package/dist/subagent/engineSubagentTail.js +2 -110
  345. package/dist/subagent/engineTaskHandleWire.d.ts +6 -67
  346. package/dist/subagent/engineTaskHandleWire.js +0 -126
  347. package/dist/subagent/subagentOwnerAbsence.d.ts +0 -2
  348. package/dist/subagent/subagentOwnerAbsence.js +0 -25
  349. package/dist/subagentContentStore.d.ts +3 -260
  350. package/dist/subagentContentStore.js +7 -540
  351. package/dist/systemReminderTag.d.ts +0 -49
  352. package/dist/systemReminderTag.js +0 -61
  353. package/dist/toolResult.d.ts +1 -211
  354. package/dist/toolResult.js +1 -358
  355. package/dist/toolRoster.d.ts +0 -140
  356. package/dist/toolRoster.js +0 -66
  357. package/dist/typePins.d.ts +0 -46
  358. package/dist/types/engineState.d.ts +0 -71
  359. package/dist/types/engineState.js +0 -16
  360. package/dist/ultracodeWireCaps.d.ts +0 -75
  361. package/dist/ultracodeWireCaps.js +0 -92
  362. package/dist/unrefTimer.d.ts +0 -27
  363. package/dist/webSearchBackendCapability.d.ts +0 -72
  364. package/dist/webSearchBackendCapability.js +0 -79
  365. package/dist/webSearchWireCaps.d.ts +0 -37
  366. package/dist/webSearchWireCaps.js +0 -34
  367. package/dist/websearch/searchProviderPresets.d.ts +0 -81
  368. package/dist/websearch/searchProviderPresets.js +0 -27
  369. package/dist/wireErrorTriage.d.ts +4 -160
  370. package/dist/wireErrorTriage.js +0 -171
  371. package/dist/wireRefusalCopy.d.ts +0 -28
  372. package/dist/wireRefusalCopy.js +0 -28
  373. package/dist/workflow.d.ts +0 -40
  374. package/dist/workflow.js +0 -52
  375. package/dist/workflowClient.d.ts +0 -122
  376. package/dist/workflowClient.js +8 -360
  377. package/dist/workflowMonitor.d.ts +2 -72
  378. package/dist/workflowMonitor.js +0 -26
  379. package/dist/writeProtectionCapability.d.ts +0 -112
  380. package/dist/writeProtectionCapability.js +0 -109
  381. package/docs/INTEGRATION-CLIENTS.md +78 -5
  382. package/package.json +3 -3
@@ -1,52 +1,3 @@
1
- /**
2
- * systemReminderTag — `<system-reminder>` 包裹的**单一识别闸口**(件⑥⑦,2026-08-22,[4974])。
3
- *
4
- * ## 为什么要有这个文件
5
- *
6
- * core ≥5.46 起,引擎铸的每一个 `<system-reminder>` **开标签**都带一个 `mark` 属性。真字节直证
7
- * (core 5.52.0 `dist/core/reminder-mint.js`,逐行):
8
- * ```js
9
- * const MARK_SHAPE = /^[A-Za-z0-9_-]{22}$/ // randomBytes(16).toString("base64url")
10
- * export function openSystemReminder(mark) {
11
- * return mark === undefined ? "<system-reminder>" : `<system-reminder mark="${mark}">`
12
- * }
13
- * export function mintSystemReminder(body, mark) {
14
- * return `${openSystemReminder(mark)}\n${body}\n</system-reminder>`
15
- * }
16
- * ```
17
- * 闭标签**没有**属性,只有开标签变了。而包内两处判定当时都锚着**裸开标签**,于是同一个根因
18
- * 长出两个座位([4974] 双 CONFIRMED):
19
- * · `classifierVerdictWire.unwrapSystemReminder` —— 剥不掉壳 ⇒ 裁决原文前面顶着一整个开标签 ⇒
20
- * `startsWith(签名)` 恒不成立 ⇒ auto-deny 的通知行与 Recent Denials 记账**静默失效**;
21
- * · `subagent/engineDelegatedPrompt.stripEnvelopes` —— 信封整段剥不掉 ⇒ Fleet 详情页的
22
- * 「Prompt」又变回 ~1330 字符的技能清单(那个函数头注自陈 2026-08-01 修过的 bug 原样复发)。
23
- *
24
- * 两处各写一份正则正是这条缺陷能长出**两个**座位的原因,所以收成这一个闸口:识别口径只有一处,
25
- * 下次 core 再动标签形也只有一处要跟。
26
- *
27
- * ## 口径(刻意写窄,不做 HTML 解析)
28
- *
29
- * · 开标签 = `<system-reminder>` 或 `<system-reminder` + **空白起头**的属性段 + `>`;属性段用
30
- * `[^>]*` —— 它跨不过 `>`,所以没有回溯爆炸面,也不会把后面的正文吃进标签里。
31
- * · 刻意**不校验** `mark` 的值形:本模块的职责是「认出这是引擎的信封壳」并把它剥掉/跳过,
32
- * **不是**信任判定。真正的信任判据是壳里的 mark 比对(core 的 `reminderMarkDeclaration` 明说
33
- * 「带不带 mark 都可能是数据」),那是另一层的事;这里若按 mark 值放行/拒绝,等于把一个安全
34
- * 判定藏在一个显示层的剥壳函数里。
35
- * · 闭标签逐字 `</system-reminder>`(core 就是这么铸的,不给它加属性容忍 = 不给伪造面留口子)。
36
- * · **不处理嵌套**:配对用非贪婪,遇到第一个闭标签就收 —— 与件⑥⑦ 修之前逐字同语义
37
- * (core 不铸嵌套 reminder;真出现嵌套时残留的是外层闭标签,不是把正文吃掉,方向仍是保守的)。
38
- *
39
- * 🔴 零 import(端无关叶件):纯字符串处理,不碰 Node、不碰 wire 类型。
40
- */
41
- /**
42
- * 整条文本就是一个 `<system-reminder>` 包裹时,返回**里面的正文**;否则原样返回。
43
- * (`formatHookFeedback` = `mintSystemReminder` 的逆变换。)
44
- */
45
1
  export declare function unwrapSystemReminder(text: string): string;
46
- /**
47
- * 把文本里**所有**成对的 `<system-reminder>…</system-reminder>` 段整段删掉(不配对的原样留着 ——
48
- * 截断的信封宁可多渲一点,也不能把正文吃掉)。
49
- */
50
2
  export declare function stripSystemReminderBlocks(text: string): string;
51
- /** 这段文本**以**一个 system-reminder 开标签起头吗(诊断/判定用的轻量读口)。 */
52
3
  export declare function startsWithSystemReminderOpenTag(text: string): boolean;
@@ -1,73 +1,12 @@
1
- /**
2
- * systemReminderTag — `<system-reminder>` 包裹的**单一识别闸口**(件⑥⑦,2026-08-22,[4974])。
3
- *
4
- * ## 为什么要有这个文件
5
- *
6
- * core ≥5.46 起,引擎铸的每一个 `<system-reminder>` **开标签**都带一个 `mark` 属性。真字节直证
7
- * (core 5.52.0 `dist/core/reminder-mint.js`,逐行):
8
- * ```js
9
- * const MARK_SHAPE = /^[A-Za-z0-9_-]{22}$/ // randomBytes(16).toString("base64url")
10
- * export function openSystemReminder(mark) {
11
- * return mark === undefined ? "<system-reminder>" : `<system-reminder mark="${mark}">`
12
- * }
13
- * export function mintSystemReminder(body, mark) {
14
- * return `${openSystemReminder(mark)}\n${body}\n</system-reminder>`
15
- * }
16
- * ```
17
- * 闭标签**没有**属性,只有开标签变了。而包内两处判定当时都锚着**裸开标签**,于是同一个根因
18
- * 长出两个座位([4974] 双 CONFIRMED):
19
- * · `classifierVerdictWire.unwrapSystemReminder` —— 剥不掉壳 ⇒ 裁决原文前面顶着一整个开标签 ⇒
20
- * `startsWith(签名)` 恒不成立 ⇒ auto-deny 的通知行与 Recent Denials 记账**静默失效**;
21
- * · `subagent/engineDelegatedPrompt.stripEnvelopes` —— 信封整段剥不掉 ⇒ Fleet 详情页的
22
- * 「Prompt」又变回 ~1330 字符的技能清单(那个函数头注自陈 2026-08-01 修过的 bug 原样复发)。
23
- *
24
- * 两处各写一份正则正是这条缺陷能长出**两个**座位的原因,所以收成这一个闸口:识别口径只有一处,
25
- * 下次 core 再动标签形也只有一处要跟。
26
- *
27
- * ## 口径(刻意写窄,不做 HTML 解析)
28
- *
29
- * · 开标签 = `<system-reminder>` 或 `<system-reminder` + **空白起头**的属性段 + `>`;属性段用
30
- * `[^>]*` —— 它跨不过 `>`,所以没有回溯爆炸面,也不会把后面的正文吃进标签里。
31
- * · 刻意**不校验** `mark` 的值形:本模块的职责是「认出这是引擎的信封壳」并把它剥掉/跳过,
32
- * **不是**信任判定。真正的信任判据是壳里的 mark 比对(core 的 `reminderMarkDeclaration` 明说
33
- * 「带不带 mark 都可能是数据」),那是另一层的事;这里若按 mark 值放行/拒绝,等于把一个安全
34
- * 判定藏在一个显示层的剥壳函数里。
35
- * · 闭标签逐字 `</system-reminder>`(core 就是这么铸的,不给它加属性容忍 = 不给伪造面留口子)。
36
- * · **不处理嵌套**:配对用非贪婪,遇到第一个闭标签就收 —— 与件⑥⑦ 修之前逐字同语义
37
- * (core 不铸嵌套 reminder;真出现嵌套时残留的是外层闭标签,不是把正文吃掉,方向仍是保守的)。
38
- *
39
- * 🔴 零 import(端无关叶件):纯字符串处理,不碰 Node、不碰 wire 类型。
40
- */
41
- /**
42
- * 开标签的**闭集**形:core 只会铸这两种(`openSystemReminder` 逐字),所以判据也只认这两种。
43
- *
44
- * 🔴 **不做通配属性**(七审 finding② 采纳):`<system-reminder\s[^>]*>` 那种宽口会把
45
- * `onclick="…"` / 换行垃圾 / 未闭合引号 / 内嵌 `<img` 全部当成合法开标签 —— 而本模块的两个消费点
46
- * 处理的正是**模型与工具产出的文本**(UNTRUSTED),宽口等于给伪造信封开一道口子:攻击者/模型
47
- * 可以用一个假信封把内容藏起来(委派 prompt 面)或把自己的文本伪装成引擎裁决(分类器面)。
48
- * `mark` 的值形按 core `MARK_SHAPE` 逐字(`randomBytes(16).toString("base64url")` = 22 位
49
- * `[A-Za-z0-9_-]`),值本身**不比对**(见文件头:比对是信任判定,不是剥壳的活)——但**形**必须对,
50
- * 形不对的一律不是引擎铸的壳。
51
- */
52
1
  const OPEN_TAG_SOURCE = '<system-reminder(?: mark="[A-Za-z0-9_-]{22}")?>';
53
- /** 整段配对(开标签 + 正文 + 闭标签)。捕获组 1 = 正文。 */
54
2
  const WRAPPED_RE = new RegExp(`^\\s*${OPEN_TAG_SOURCE}\\s*\\n?([\\s\\S]*?)\\n?\\s*<\\/system-reminder>\\s*$`);
55
- /**
56
- * 整条文本就是一个 `<system-reminder>` 包裹时,返回**里面的正文**;否则原样返回。
57
- * (`formatHookFeedback` = `mintSystemReminder` 的逆变换。)
58
- */
59
3
  export function unwrapSystemReminder(text) {
60
4
  const m = WRAPPED_RE.exec(text);
61
5
  return m ? m[1] : text;
62
6
  }
63
- /**
64
- * 把文本里**所有**成对的 `<system-reminder>…</system-reminder>` 段整段删掉(不配对的原样留着 ——
65
- * 截断的信封宁可多渲一点,也不能把正文吃掉)。
66
- */
67
7
  export function stripSystemReminderBlocks(text) {
68
8
  return text.replace(new RegExp(`${OPEN_TAG_SOURCE}[\\s\\S]*?<\\/system-reminder>`, 'g'), '');
69
9
  }
70
- /** 这段文本**以**一个 system-reminder 开标签起头吗(诊断/判定用的轻量读口)。 */
71
10
  export function startsWithSystemReminderOpenTag(text) {
72
11
  return new RegExp(`^\\s*${OPEN_TAG_SOURCE}`).test(text);
73
12
  }
@@ -1,66 +1,21 @@
1
1
  import type { TaskResult, TaskStats } from '@sema-agent/sdk';
2
2
  import { type ModelFallbackReason } from './engineErrorCodes.js';
3
- /**
4
- * 引擎会在 `tool_end.structured` 顶层 `type` 上发的**全部**取值。
5
- * 用途**不是**「只处理这些」——下面的 switch 只认得其中一部分,认不得的照旧走 text 回落;
6
- * 用途是「**structured 在场**」这个判据本身:顶层 type 命中白名单 ⇒ 引擎这一版是发结构化的,
7
- * 于是模型面正文的**正则反解**(T11 bash / T13+T24 task-output / T14 后台回执三代文案)退位。
8
- * 反过来,一个 `{type:'something-else'}` 或裸对象**不算** structured 在场 —— 宁可回落到正则,
9
- * 也不许把「有个对象」当成「引擎发了结构化」(判据锚在决定结果的量上:决定的是「该不该信正则」)。
10
- * ⚠️ 与设计稿的口径差:任务书写「29 项」,[1840] 清单逐条数是 **30 项**(见交接报告「设计稿错漏」)。
11
- *
12
- * 🔴 **本表是 core `CC_DETAIL_TYPES` 的镜像,不是本包自铸的词表**(core
13
- * `dist/core/runner/tool-output-projection.js`)。等值由 `scripts/run-engine-vocab-floor-test.mjs` ⑤ 段
14
- * 对**实装 core** 双向钉(漏一词 / 多一词都红),对账物 = 本仓 devDep `@sema-agent/core`。
15
- * ⇒ **core 提货窗必须跟车对表**:每次抬 devDep core 版本,先跑 engine-vocab 门看这张表红不红,
16
- * 红了按 core 那一版的铸点逐词补/删,别改门去迁就表。历史上两次恒绿(5.10 前停 devDep 5.1、
17
- * 5.43 前停 devDep 5.20)的病根都不在表本身,在**对账物没跟着抬** —— 表漏一词的实际后果是
18
- * 那一类卡永远退回正则解模型面文本,而任何一层都不会响。
19
- */
20
3
  export declare const STRUCTURED_DETAIL_TYPES: ReadonlySet<string>;
21
- /** structured 在场判别:顶层 `type` ∈ 白名单 ⇒ 返回该 type,否则 undefined(= 不在场)。 */
22
4
  export declare function structuredDetailType(structured: unknown): string | undefined;
23
5
  export declare const PROTOCOL_MARKERS: {
24
- /** T11 bash 框架:退出码行头(core tools/fs/index.ts runShell)。 */
25
- /** 0.73.3(CC-60 A-D5):认 core 两个发货变体 —— exit1 注记形 `exit code: 1 (<note>)` 与图片形(首行后**没有** `--- stdout ---` 行,
26
- * 紧跟 `[Image data detected …]`)。第 2 组 = 括号注记(缺席 = undefined),第 3 组 = 老形的 stdout 分隔行(图片形缺席)。 */
27
6
  readonly bashHead: RegExp;
28
- /** T11 bash 框架:stderr 分隔行。 */
29
7
  readonly bashStderrSep: "\n--- stderr ---\n";
30
- /** T11 bash 框架:空 stdout 哨兵。 */
31
8
  readonly bashEmptySentinel: "(empty)";
32
- /** T12:`delimitUntrusted` 围栏(core untrusted-text.ts:118)。REF-CC-域词表-09 回炉车补齐——
33
- * 此前这条正则仍内联在 `stripUntrustedFence` 里,是原始「8 处文案协议解析点」普查(P1 lens-lexicon
34
- * 域词表-09 evidence)唯一没进表的一条(`stripUntrustedFence`/`untrustedFence` 单源消费)。 */
35
9
  readonly untrustedFence: RegExp;
36
- /** T13 TaskOutput:`<<<UNTRUSTED TaskOutput <id> …>>>` label 里的任务 id。 */
37
10
  readonly taskOutputLabel: RegExp;
38
- /** T13 TaskOutput:`status: …` 行。 */
39
11
  readonly taskOutputStatus: RegExp;
40
- /** T13 TaskOutput:空段哨兵。 */
41
12
  readonly taskOutputNoneSentinel: "(none)";
42
- /** T13 TaskOutput:stdout 分隔行(全量/增量两形共用一条正则——区分交给下面的 spool 判别)。 */
43
13
  readonly taskOutputStdoutLine: RegExp;
44
- /** T13 TaskOutput:stderr 分隔行。 */
45
14
  readonly taskOutputStderrLine: RegExp;
46
- /** T13 TaskOutput:agent 结果分隔行。 */
47
- /** 0.73.3(CC-60 A-D4):认可选括号注记 `--- result (partial) ---`(core 被 stop 打断的子代任务此前正文整段切不出)。 */
48
15
  readonly taskOutputResultLine: RegExp;
49
- /** [1505] spool 协议:全量可重读形(`engineTaskHandleWire.ts` mergeTaskOutput 单源消费点)。 */
50
16
  readonly spoolStdoutFull: "--- stdout (full, re-readable) ---";
51
- /** [1505] spool 协议:增量新字节形。 */
52
17
  readonly spoolStdoutIncremental: "--- new stdout ---";
53
18
  };
54
- /**
55
- * [1505] spool 标记判别(REF-CC-域词表-06 提单源):判「读游标该整体替换还是追加」这一件事,
56
- * 唯一真源在此——`engineTaskHandleWire.ts` 的 `mergeTaskOutput` 消费它,此前是各写一份
57
- * `.includes()` 的独立判读,现在改成两处调用同一个函数,不再靠两份手抄字面量碰巧对齐。
58
- * ⚠️ 措辞收窄(opus/对抗复审,回炉车):本函数**不**是"表里任何 stdout/stderr 分隔行判读的
59
- * 单源"——`parseModelFacingTaskOutput` 里的 `taskOutputStdoutLine` 是解**另一件事**(T13
60
- * TaskOutput 模型面正文里 stdout 段的边界在哪),两者字面量近似但语义不同、输入来源也不同
61
- * (读游标累积 vs 单次模型面文本反解),存在能让两者给出不同答案的输入(如带前导垃圾字节的
62
- * 文本)。它们只是共享同一张 `PROTOCOL_MARKERS` 登记表,不是同一个判据。
63
- */
64
19
  export declare function spoolMarkerOf(text: string): 'full' | 'incremental' | null;
65
20
  export declare function modelFacingParseCalls(): number;
66
21
  export declare function _resetModelFacingParseCountForTest(): void;
@@ -70,24 +25,10 @@ export declare function parseModelFacingBash(text: string): {
70
25
  exitCode: number | null;
71
26
  note?: string;
72
27
  } | null;
73
- /**
74
- * T12 —— 剥引擎的 `delimitUntrusted` 围栏(core untrusted-text.ts:118)**仅供渲染**。
75
- * 围栏是给模型看的注入防护,人类转录卡显示正文(clay 07-03 审计 #1/#9 视觉 bug 的修)。
76
- */
77
28
  export declare function stripUntrustedFence(text: string): {
78
29
  label: string;
79
30
  body: string;
80
31
  } | null;
81
- /**
82
- * T13 回落解析结果(REF-CC-TYPESHAPE-14:命名 discriminated union —— 此前是 4 成员内联匿名形,
83
- * 三个构造点各自手写、`'unknown'` 分支「没有 output」原来只是注释里的一句话,现在类型强制)。
84
- * 🔴 抽 DU **不改运行时形**(二次回炉,复审 #4):`taskId`/`status` 缺值时**键照样在、值是
85
- * `undefined`**(与 main 逐字节一致)——本函数是 npm 公面导出,`Object.keys()` / `'taskId' in r` /
86
- * JSON 序列化都是下游看得见的契约,类型重构无权改它。eopt 收官(E-seat 卡裁定):「公面键恒在」
87
- * 形不许被本批翻回条件展开——三键改 `| undefined` 显式并集,继续如实描述「键恒在、值可能 undefined」
88
- * 这个已裁定的公面契约(不是收窄成条件展开,那会静默改变 `Object.keys()` 的下游可见形)。
89
- * 常驻钉见 `run-client-core-pure-test.mjs` ⑪ 段「公面形(复审 #4 回卷钉)」三条。
90
- */
91
32
  export type ModelFacingTaskOutput = {
92
33
  kind: 'bash';
93
34
  taskId?: string | undefined;
@@ -103,216 +44,65 @@ export type ModelFacingTaskOutput = {
103
44
  taskId?: string | undefined;
104
45
  status?: string | undefined;
105
46
  };
106
- /**
107
- * T13 回落 —— 引擎 TaskOutput 的模型面正文(core task-registry.ts 的 bash/agent 两形,整体
108
- * delimitUntrusted 包裹、label = `TaskOutput <id>`)反解回卡片槽位。`kind` 报哪一形命中,
109
- * 'unknown' ⇒ 调用方回落原文(该分支类型上就没有 `output` 字段,不是「值恰好是 undefined」)。
110
- */
111
47
  export declare function parseModelFacingTaskOutput(text: string): ModelFacingTaskOutput;
112
48
  export declare function backgroundReceiptParseCalls(): number;
113
49
  export declare function _resetBackgroundReceiptParseCountForTest(): void;
114
- /**
115
- * T8 —— 压平非均匀 §E1 `output`(`string` | `(Text|Image)[]`)。
116
- * ⚠️ 真源在 adapt.ts(A 层 settle 报告也用同一份),本文件只 import,别再写第二份。
117
- */
118
50
  export type FlattenWireOutput = (output: unknown) => string;
119
- /** wire 没带 output 时的降级原因码(UI 显示决策留端;客户端绝不编造执行结果)。 */
120
51
  export declare const TOOL_RESULT_DEGRADED_WIRE_NO_OUTPUT: "wire_carried_no_output";
121
52
  export interface ToolResultBody {
122
53
  content: unknown;
123
54
  isError: boolean;
124
55
  toolUseResult?: unknown;
125
- /** 只在「wire 没带正文」时出现;在场 = 这张卡**没有真实执行结果**,不是空结果。 */
126
56
  degraded?: typeof TOOL_RESULT_DEGRADED_WIRE_NO_OUTPUT;
127
57
  }
128
- /**
129
- * T7 —— `tool_end.output === undefined`(events.d.ts:79 文档化的「工具没有正文」情形)时的卡体。
130
- *
131
- * cli 旧形:调 mock 注册表 `synthesizeToolIO(name, input)` **反造**一个结果体(stdout/hunks/匹配列表),
132
- * 卡片于是显示「看起来像真的、但根本不是这次执行产物」的内容。§8-4 按宪法「诚实优先于产出」裁定
133
- * 搬的时候就改掉:**输出诚实缺席 + degraded 标记**,由 UI 决定显示「结果不可用」。
134
- * 🔴 `content` 保持**字符串**(件1:tool_result block content 恒字符串,裸对象经 /compact 直发
135
- * provider = 400 invalid_request);空串 = 无正文,`degraded` 才是判别位。
136
- */
137
58
  export declare function degradedToolResultBody(isError: boolean): ToolResultBody;
138
- /**
139
- * 真实 §E1 `tool_end.output` → 卡片读的 typed 正文。
140
- *
141
- * B5 新增第 5 个入参 `structured`:**structured 在场 ⇒ 正则退位**(①)。
142
- * 三臂:`bash`(T11/T14)· `taskoutput|task_output`(T13,无 structured 的老腿)· 泛化兜底。
143
- * 🔴 `truncated` 只做中性提示,截断正文**绝不**回喂模型(events.d.ts:80-85)。
144
- */
145
59
  export declare function wireOutputToBody(toolName: string, output: unknown, isError: boolean, truncated: boolean, flatten: FlattenWireOutput, structured?: unknown): ToolResultBody;
146
- /**
147
- * design/64 CC-parity `toolUseResult`:引擎结构化细节 → 各卡 outputSchema **精确** typed 形
148
- * (safeParse 过了才渲富卡,不过就回落 12 行文本兜底)。
149
- * `structuredPatch` 在**这里**算(T20,core 裁定:引擎发 originalFile、客户端算 hunks)。
150
- * 全部**防御读**:形状不认得 ⇒ null ⇒ 调用方回落 text 路径(降保真,绝不炸)。
151
- */
152
- export declare function structuredToToolUseResult(structured: unknown,
153
- /** 压平后的模型面正文 —— 有些形(task-output)只带 identity/status,正文仍在模型面。 */
154
- modelText?: string): {
60
+ export declare function structuredToToolUseResult(structured: unknown, modelText?: string): {
155
61
  toolUseResult: unknown;
156
62
  isError?: boolean;
157
63
  } | null;
158
- /**
159
- * #117a / #158 —— **模型发起**的后台回执探测器。引擎侧秒关这张卡、从不进壳的 LocalShellTask
160
- * registry,只能从回执文案桥过去。
161
- * 🔴 **按 `toolName` 正向枚举分臂**(#158;开集入参,认不出的工具名一律 `null` = 不铸行,
162
- * 安全方向是漏检不是误检):
163
- * · `Bash` 臂 —— 三形回执首句 + **刻意**要求 INPUT 上 `run_in_background === true`:ctrl+B 的
164
- * detach lane(「Command moved to background」)归 engineToolDetach 管(它的行生命周期是有意的
165
- * settle-on-detach),在这里重复登记会长出双行。
166
- * · `Monitor` 臂 —— 第四形回执首句 `Monitoring in background; task_id=…`,**没有**
167
- * run_in_background 门:Monitor 天然后台,它的参数里根本没有这个键(此前三重门全拒 ⇒
168
- * 引擎 Monitor 任务在 ctrl+B 面板零行)。
169
- * 产物上的 `source: 'bash' | 'monitor'` 是行家族判别位(闭集),消费端按它分流行形,别按 command
170
- * 文本猜;新工具要进面板必须显式加臂 + 扩这个闭集。
171
- * 判定在库、**执行留宿主**(面板 store 写入 + 宿主 run 映射)—— 走 chrome `bgshell_register` 臂。
172
- * 🔴 Bash 臂正则复用 `THREE_GEN_BG_RECEIPT_RE`(见上方 T14 `parseBackgroundReceipt` 头注,
173
- * REF-CC-域词表-04 dedupe)—— 此前这里另抄了一份逐字节相同的字面量,两份手抄件靠"碰巧没人改坏"
174
- * 对齐;Monitor 臂用**分开的** `MONITOR_BG_RECEIPT_RE`(职责不交叉:THREE_GEN 还被
175
- * `parseBackgroundReceipt` 的 bash structured 回落共用,Monitor 不属那条链)。
176
- */
177
64
  export interface EngineBgShellRegistration {
178
65
  kind: 'register';
179
- /** 回执上的**引擎** task id(`task_id=…`,TaskOutput/TaskStop 的句柄)。 */
180
66
  taskId: string;
181
- /** tool_use input 的 command(面板行的命令行;Bash 与 Monitor 同键)。 */
182
67
  command: string;
183
- /** 模型给了 description 才有(Monitor 的 schema 里必填,恒在)。 */
184
68
  description?: string;
185
- /** 引擎模型面回执原文,逐字 —— 详情视图显示它(里面的 output-file 路径因此可见可复制)。 */
186
69
  receipt: string;
187
- /** #158 行家族判别:'bash'=run_in_background Bash;'monitor'=Monitor 长跑监视(事件流语义,
188
- * 终局才 settle)。消费端按此分流行形;闭集,新工具要进面板必须显式加臂。 */
189
70
  source: 'bash' | 'monitor';
190
71
  }
191
72
  export declare function detectEngineBgShellReceipt(toolName: string, rawInput: unknown, outputText: string | undefined): EngineBgShellRegistration | null;
192
- /**
193
- * TodoWrite 清单卡:引擎不发 todo structured,全量新表骑在 tool_use INPUT 上 ⇒ 从它合成 typed 结果。
194
- * `oldTodos` = 上一次的活体清单(调用方持:一个 session 一份,正是划删线 diff 要的粒度)。
195
- */
196
73
  export declare function todoWriteToolUseResult(rawInput: unknown, oldTodos: unknown[], isError: boolean): {
197
74
  toolUseResult: unknown;
198
75
  isError: boolean;
199
76
  newTodos: unknown[];
200
77
  } | null;
201
- /**
202
- * ReportFindings(core 1.288 [811]b,引擎侧执行的合成回声工具):details 是 `{count, level?, findings}`
203
- * **没有 type 判别位**(core synthetic-tools.js)⇒ B 层的 type-keyed switch 认领不了,按**工具名**认。
204
- * 双腿:优先 wire structured;引擎没发就从 tool_use INPUT 合成(回声工具:input.findings ≡ output.findings)。
205
- */
206
78
  export declare function reportFindingsToolUseResult(structured: unknown, rawInput: unknown): {
207
79
  toolUseResult: unknown;
208
80
  } | null;
209
- /**
210
- * 后台(async)子代的**启动回执**上那两位「身份」—— `type:"agent"` 两形里 `async_launched` 那一形。
211
- *
212
- * 只带**身份**,不带可渲染性:`description`/`prompt` 是富卡的必填位(缺了要回落 text 路径),
213
- * 与「这条回执宣告了哪个子代」无关,故不进本读口 —— 见 {@link structuredToToolUseResult} 的
214
- * `case 'agent'`。
215
- */
216
81
  export interface AsyncLaunchedAgentReceipt {
217
- /** 引擎子代任务 id(注意:**启动回执是 snake_case `task_id`**,完成卡是 camelCase `taskId`)。 */
218
82
  readonly taskId: string;
219
- /** bg 子代生命周期号(SendMessage 复活即 +1)。wire 今天未必带 ⇒ 缺席按首周期解释,绝不铸 0。 */
220
83
  readonly seq?: number;
221
84
  }
222
- /**
223
- * 把一张 `tool_end.structured` 窄化成 {@link AsyncLaunchedAgentReceipt} —— **仅当**它是
224
- * `type:"agent"` 的 **`async_launched` 启动回执**臂时;完成着陆报告 / 别的族 / 缺身份 ⇒ `null`。
225
- *
226
- * 🔴 分臂判据 = `status`(core 原话:"Branch on `status`, never on which keys are present"),
227
- * 与姊妹读口 {@link readCompletedAgentCard} 互为反面。本函数是这条纪律在**回执**侧的单一实现点:
228
- * 本包现在有两个消费点 —— 富卡投影(`structuredToToolUseResult`)与 adapt 的 bg 子代 alias 登记
229
- * (`adapt/arms.ts` 的 `tool_end_result` 臂,#158②)—— 两处不得各抄一遍键名与 `'async_launched'`。
230
- * 🔴 `task_id` 要**非空**串:空串是「有这个键但没有身份」,拿它当 taskId 会在内容账本里铸一条
231
- * 键为 `''` 的映射(读口那侧的 `?? ''` 兜底会当场把它认成命中)。诚实拒,不铸空 id ——
232
- * 与 {@link readCompletedAgentCard} 对 `taskId` 的同款判据一致。
233
- */
234
85
  export declare function readAsyncLaunchedAgentReceipt(structured: unknown): AsyncLaunchedAgentReceipt | null;
235
- /**
236
- * 子代**完成着陆报告**卡(core `agents/subagent.ts#completedAgentCard` 的 wire 形)。
237
- *
238
- * 沿革:5.10.0 之前这张卡被 core 的投影白名单在上 wire 前整张丢掉 —— `tool_end.structured` 自己的
239
- * 契约点名了它,而实际只有 `async_launched` 回执到得了消费方。5.10.0 修好了那条白名单,于是
240
- * `type:"agent"` 从「只有一形」变成「两形按 `status` 分」({@link structuredToToolUseResult} 的
241
- * `case 'agent'` 头注写了为什么本包不把它投成 CC 卡)。
242
- *
243
- * 🔴 **本读口只做窄化,不做解释**:每个键要么原样带出,要么(类型不符时)当缺席。绝不为缺席的量
244
- * 造零值([honest-absence-not-fabricated-zero])—— `stats` 取不到就是 `undefined`,不是 `{}`。
245
- * 🔴 **白名单不是闭集断言**:core 明写这张卡是「显式字段白名单」而非 spread(`checkpointToken` /
246
- * `checkpointGate` 这两个**能力**位永不上 wire)。未来 core 往卡上加字段时,本读口读不到它们 ——
247
- * 那是**加一个字段**的跟车工单,不是错误;宿主要原始全量随时可读 `structured` 本身。
248
- */
249
86
  export interface CompletedAgentCard {
250
- /** 子代**真实终态**(`completed` / `failed` / `blocked` / `suspended.*` …)。判别位;开集。 */
251
87
  readonly status: string;
252
- /** 子代任务 id(注意:完成卡是 camelCase `taskId`,启动回执是 snake_case `task_id`)。 */
253
88
  readonly taskId: string;
254
- /** 子代 transcript 句柄 —— 查询键,**不是**能力(续跑要部署侧的 resume 句柄)。 */
255
89
  readonly sessionId?: string;
256
- /** 子代类型名(roster 上的名字)。 */
257
90
  readonly subagentType?: string;
258
- /** 着陆报告正文 = 子代最终助手文本,**不含**模型面那层导向尾注。 */
259
91
  readonly result?: string;
260
- /** 到限截断时抢救出的最后模型文本。 */
261
92
  readonly salvagedOutput?: string;
262
- /** `outputSchema` 任务的结构化产出(不解释,原样)。 */
263
93
  readonly structuredOutput?: unknown;
264
- /** 失败归因三件之一:agent 自报无法推进的理由。 */
265
94
  readonly blockedReason?: string;
266
- /** 失败归因三件之二:人话。 */
267
95
  readonly errorMessage?: string;
268
- /** 失败归因三件之三:机器码(开集;词表见 `engineErrorCodes.ts`)。 */
269
96
  readonly errorCode?: string;
270
- /**
271
- * 🆕 core 5.10.0 —— `errorCode` 的**机器可执行配对**:refusal 什么时候解除。
272
- * 🔴 与 `retryable` 是**两个不同的问题**,可能同时出现且看起来矛盾(core 亲注):
273
- * `retryable` = 「现在原样重发行不行」(`usage.window_exhausted` 上它是 false,且是对的);
274
- * `retryAfterMs` = 「什么时候不再被拒」。调度器读前者+后者,立即重发的决策只读 `retryable`。
275
- * 在场条件 = `usage.window_exhausted` 终局;**别拿它的在场性去判别的事**([2575] 自查③)。
276
- */
277
97
  readonly retryAfterMs?: number;
278
- /**
279
- * 🆕 core 5.10.0 —— 降级实录(from/to/reason/atTurn)。形状与 `TaskResult.degraded` **同一个**
280
- * (core 把子代 TaskResult 的这一位原样搬上卡),故直接借 SDK 的类型而不是再开一个 `unknown` 出口。
281
- * 窄化 = 对象守卫(与 `terminalToSdkResult.degradedOf` 同一姿势):非对象一律当缺席。
282
- */
283
98
  readonly degraded?: NonNullable<TaskResult['degraded']>;
284
- /** 失败分类:错误种类。 */
285
99
  readonly errorKind?: string;
286
- /** 失败分类:原样重发是否可行(见 `retryAfterMs` 的配对说明)。 */
287
100
  readonly retryable?: boolean;
288
- /**
289
- * run 总账(CC `AgentToolCompletedOutput` 对位)。同 `degraded`:core 搬的就是子代
290
- * `TaskResult.stats`,所以借 SDK 的 `TaskStats`(它自带 `[key: string]: unknown` 开集索引,
291
- * 新键不会因此被类型面挡住)。数值重算是渲染层的活,本层只窄化不解释。
292
- */
293
101
  readonly stats?: TaskStats;
294
- /** 实际服务该子代的模型 id(与 `resolvedModel` 同值,core 两个键都发)。 */
295
102
  readonly model?: string;
296
- /** 同上 —— core 的显式别名键;两键择一读即可,本读口都带出以免宿主二次猜。 */
297
103
  readonly resolvedModel?: string;
298
- /**
299
- * 🆕 core 5.10.0 / [2577] —— **闭集单成员**:请求的模型词没绑上,子代跑在继承来的默认模型上。
300
- * 🔴 **这不是错误**(回落行为本身没变,只是现在说出来了);缺席 = 正常绑定或压根没请求过词。
301
- * 渲染建议(core 给的语义,UI 语言各端自裁):在生效 model 旁加「requested word did not bind /
302
- * inherited」注记,**不因它的在场性改变别的渲染**。加成员 = BREAKING,见 {@link ModelFallbackReason}。
303
- */
304
104
  readonly modelFallback?: ModelFallbackReason;
305
- /** 子代跑在哪个 worktree(`isolation:'worktree'` 时)。 */
306
105
  readonly worktreePath?: string;
307
- /** 子代的逐工具调用统计。原样带出。 */
308
106
  readonly toolStats?: unknown;
309
107
  }
310
- /**
311
- * 把一张 `tool_end.structured` 窄化成 {@link CompletedAgentCard} —— **仅当**它是 `type:"agent"` 的
312
- * **完成**臂时。不是 agent 卡 / 是 `async_launched` 回执 / 缺 `status` 或 `taskId` ⇒ `null`。
313
- *
314
- * 🔴 分臂判据 = `status`(core 原话:"Branch on `status`, never on which keys are present")。
315
- * 本函数是那条纪律在包内的**单一实现点**:三端(TUI / web / desktop)按同一份窄化读,
316
- * 而不是各自抄一遍键名与 `!== 'async_launched'`。
317
- */
318
108
  export declare function readCompletedAgentCard(structured: unknown): CompletedAgentCard | null;