@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,57 +1,5 @@
1
- /**
2
- * ⇄ B7 ③(census **G20**,设计稿 §3 B7 末条):`approvals.list` 取件 → **SDK 原生推送
3
- * `approvals.stream()`**,断流/无端点**回落轮询**的韧性臂保留。这是**行为改动**(不是搬迁),
4
- * 所以单独一个文件、单独一条测试、单独一个 commit。
5
- *
6
- * ## 先纠一个事实(census G20 的措辞会误导下一棒)
7
- *
8
- * G20 原话是「`hitlBridge.ts:197` 等三处今天靠 `approvals.list` 轮询」。**实测不是轮询** ——
9
- * 那三处(`hitlBridge.pendingForDecide` / `askGateWire.surfaceGateAndDecide` /
10
- * `toolApprovalWire.surfaceFsApprovalAndDecide`)都是**按需单次取件**:流上已经来了 park 信号,
11
- * 才去取那一行。真正缺的不是「把轮询换成推送」,而是**根本没有推送通道**:
12
- * · 别的客户端(web/桌面/另一个 TUI)解掉了一条 pending —— 本端不知道;
13
- * · 后台子代 lane 的 park 不在宿主自己的流上 —— 本端只有等下一次自己去 list 才看得见;
14
- * · 端要渲一个「有 N 条待审批」的常驻指示 —— 今天只能自己起定时器。
15
- *
16
- * ⇒ 本文件提供的是那条**缺失的推送通道**(pending 快照的订阅面),而不是把上面三处改成读缓存。
17
- *
18
- * ## 🔴 它**不替换** D-1 的取件(这条是安全边界,别"顺手优化"掉)
19
- *
20
- * D-1 两元组必须取自**人看见的那一行**。让取件去读一个可能陈旧的快照 =
21
- * 用一个过期的 `boundInputHash` 去 decide ⇒ server fail-closed 409 ⇒ 一个合法审批被拒
22
- * (或者更坏:快照比服务端新旧关系不确定时,人看到的和绑定的不是同一件事)。
23
- * 所以那三处**继续走权威 `list()`**,本 feed 只做「有变化了」的通知面与快照面。
24
- * pure 门 B7③ 段对这条有断言(feed 跑着的时候,decide 路径仍然打 `list()`)。
25
- *
26
- * ## 两条腿与降级次序
27
- *
28
- * 1. **push**:`approvals.stream()`(SDK 内部已带断线重连 + heartbeat 静默重连)。
29
- * 收到**非 heartbeat** 事件 ⇒ 重取权威 `list()`。
30
- * 🔴 绝不解析 delta 载荷 —— SDK 自述 `ApprovalStreamEvent` 是 **FORWARD-DRAFT**
31
- * (「payload fields are FORWARD-DRAFT pending service's shape confirmation」),
32
- * 照着未确认的形写解析 = 服务端一改就静默错。
33
- * 2. **poll**:stream 抛(404 无端点 / SDK 连 5 次开不起来 / 连 5 次空转)⇒ 落到定时 `list()`。
34
- * 并按 `streamRetryMs` 定期**再试一次 stream** —— 回落是降级不是永久放弃
35
- * (服务端升级上线后不该还要重启客户端)。
36
- * 🆕 [C77]② 这条腿可由宿主按拍闸门:`opts.shouldPoll`(desktop 的「仅活跃 run 时轮询」)。
37
- * 跳拍 ≠ 停摆(mode 仍 'poll'、定时器照排、不计 polls、不算 F5 逃逸),契约见该选项的 doc。
38
- * 3. **idle**:stop() 之后 / signal abort 之后 / F5 判定 poll 腿真挂了。
39
- *
40
- * ## 诚实面([probe-must-prove-it-speaks])
41
- *
42
- * 「一条快照都没有」既可能是「真的没有 pending」,也可能是「两条腿都挂了」。所以 feed 暴露
43
- * `stats()`(pushEvents / polls / listErrors / streamFailures / snapshots)与 `mode()`,
44
- * 端的自检可以断言「跑了 N 秒之后 mode 不是 idle 且 polls+pushEvents > 0」。
45
- *
46
- * 🔴 **CC-98 三态**:上面那两个量是**自检**面(端自己查健康),不是**渲染**面。渲染面要的是一句话 ——
47
- * 「有 N 条」/「一条都没有」/「这次取不到,不知道有没有」。第三句此前在订阅口上根本不存在:
48
- * `list()` 抛 / 回体读不懂 ⇒ 只 `listErrors++` 并静默返回 ⇒ 端手上停着上一张快照,它说 0 就一直
49
- * 显示 0。⇒ 订阅口现在发**两臂**({@link ApprovalsFeedEmission}),另有拉面三态 `reading()`。
50
- * 退避 / 重试 / 熔断语义**不变**:发了「不知道」照旧重试,取到就发真快照(含「内容与失败前一字不差」那一形)。
51
- */
52
1
  import type { PendingCheckpoint } from '@sema-agent/sdk';
53
2
  import { type LivePendingAskView } from './livePendingAsk.js';
54
- /** feed 消费的 wire 切片。`stream` 可选 —— 老 SDK / mock 没有它就直接走轮询腿。 */
55
3
  export interface ApprovalsFeedClientLike {
56
4
  approvals: {
57
5
  list(opts?: {
@@ -70,80 +18,22 @@ export interface ApprovalsFeedClientLike {
70
18
  }
71
19
  export type ApprovalsFeedMode = 'push' | 'poll' | 'idle';
72
20
  export interface ApprovalsFeedSnapshot {
73
- /**
74
- * CC-98 判别位。订阅口发的**不只有**真快照 —— 取件没看成时发
75
- * {@link ApprovalsFeedUnknownSnapshot}(`kind:'unknown'`)。
76
- * 🔴 消费者先看这一位再读别的键:把「取不到」当成「一条都没有」是本包的头号病形。
77
- */
78
21
  kind: 'snapshot';
79
- /** 权威 pending 列表(**恒来自 `list()`**,不是 delta 拼出来的)。 */
80
22
  pending: PendingCheckpoint[];
81
- /**
82
- * 0.72.14:**流内 ask**(含悬挂的子代 ask)的窄读行,同样恒来自 `list()`。
83
- * 🔴 **键缺席 = 引擎没报这一段**(老引擎),不是「没有」;引擎报了且为空 ⇒ `[]`。读法见 `livePendingAsk.ts`。
84
- */
85
23
  livePending?: LivePendingAskView[];
86
- /**
87
- * 🔴 CC-98(异源复审 R1 [high] 采修):这一段里**读不出来的行数**(>0 才在场)。
88
- *
89
- * 为什么必须上快照:读器对坏行是「逐条丢 + 计数」,丢掉的那几行**引擎照旧在报**。只把读得懂的行交出去
90
- * 而不交这个数,消费端就会拿一份**自己不知道不完整**的列表去做两件不许做的事:
91
- * ① 报精确总数(「0 条在等你」而其实有一条读不懂的在等人);
92
- * ② **缺席对账**(「这一行不在列表里了 ⇒ 撤卡」,而它只是这一拍读不懂)。
93
- * ⇒ 在场时:{@link countApprovalsAwaitingDecision} 的流内两格答 `null`(不知道确切数),
94
- * {@link createSuspendedAskTracker} 的 `ingest` **不报 `gone`**(照报 `appeared` / `upgraded`)。
95
- * 缺席 = 这一段**完整**(每一行都读出来了)—— 这时「一条都没有」才是一句可以说的话。
96
- */
97
24
  livePendingDropped?: number;
98
- /**
99
- * 🔴 CC-98(异源复审 R2 [medium] 采修):`pending` 段里**读不出来的行数**(>0 才在场)。
100
- * 与 `livePendingDropped` 同一条纪律:在场 ⇒ 这一段**不完整** ⇒ {@link countApprovalsAwaitingDecision}
101
- * 的 `durable` 格答 `null`(不知道确切数),缺席 = 每一行都读出来了。
102
- */
103
25
  pendingDropped?: number;
104
- /** 这次快照是被哪条腿触发的(对账节拍触发的取件记 `'poll'`:它就是一次定时 `list()`)。 */
105
26
  mode: 'push' | 'poll';
106
- /** 单调递增的修订号(端可用它判「我看到的是不是最新的」)。 */
107
27
  revision: number;
108
28
  }
109
- /**
110
- * CC-98:一次取件**没看成**的两个成因(闭集,不设「其它」)。
111
- * · `list_threw` —— 取件本身抛出 / 返回 reject 的 promise(手上根本没有回体:无端点、传输层炸、上游 5xx …);
112
- * · `unreadable_payload` —— 有回体但读不懂(回体不是对象 / `livePending` 键在场却不是数组 / `pending` 不是数组或行畸形)。
113
- * 两者刻意不合并:前者是「没拿到」,后者是「拿到了但不敢信」,宿主的提示文案与自检口径都不同。
114
- */
115
29
  export type ApprovalsFeedUnknownWhy = 'list_threw' | 'unreadable_payload';
116
- /**
117
- * 🔴 CC-98 **「这次取不到,不知道有没有」** —— 订阅口的第二臂,与真快照并列的一句话。
118
- *
119
- * 为什么必须有这一臂(而不是「不发」、更不是「发一张空的」):`list()` 失败 / 回体读不懂时,此前本 feed
120
- * **一张都不发** ⇒ 端手上停着上一张快照 —— 它说 0 就一直显示 0(而真相是「不知道」),说 1 就一直显示 1。
121
- * 「取不到」渲成「没有」是本包的头号病形,所以这一臂让**每个**消费者必须表态:渲破折号 / 渲「暂时看不到」/
122
- * 显式选择继续显示上一张并标过期 —— 任选其一,但不许当成 0。
123
- *
124
- * 🔴 本臂**不带** `pending` / `livePending` / `revision`:那三样都是「视图」,而本臂说的正是「视图现在不可信」。
125
- * 要上一张真快照(**过去**的事实)问 `snapshot()`;要「现在可不可信」问 `reading()`。
126
- */
127
30
  export interface ApprovalsFeedUnknownSnapshot {
128
31
  kind: 'unknown';
129
- /** 成因(见 {@link ApprovalsFeedUnknownWhy})。 */
130
32
  why: ApprovalsFeedUnknownWhy;
131
- /**
132
- * 这一段「不知道」的**起点**(epoch ms)。同一成因连着失败不重复发臂(与「内容没变不发快照」同一条纪律),
133
- * 所以本位不随每次失败前移 —— 端可以拿它答「已经盲了多久」。
134
- */
135
33
  at: number;
136
- /** 在哪条腿上取不到(与真快照的 `mode` 同义)。 */
137
34
  mode: 'push' | 'poll';
138
35
  }
139
- /** 订阅口发的东西(两臂)。🔴 先看 `kind`,再读别的键。 */
140
36
  export type ApprovalsFeedEmission = ApprovalsFeedSnapshot | ApprovalsFeedUnknownSnapshot;
141
- /**
142
- * CC-98 **拉面三态**(与本包能力位族的读数同一套词)。端在任何时刻问「我现在该渲什么」:
143
- * · `unobserved` —— 本 feed 还没有过任何结果(首次取件还没回来)。**不是**「没有 pending」。
144
- * · `present` —— 手上这张快照就是最近一次取件的结论(「一条都没有」只在这一态且列表为空时成立)。
145
- * · `unknown` —— 最近一次取件没看成(`why` / `at` 与最近发出的 {@link ApprovalsFeedUnknownSnapshot} 同源)。
146
- */
147
37
  export type ApprovalsFeedReading = {
148
38
  kind: 'unobserved';
149
39
  } | {
@@ -155,80 +45,26 @@ export type ApprovalsFeedReading = {
155
45
  at: number;
156
46
  };
157
47
  export interface ApprovalsFeedStats {
158
- /** 收到的**非 heartbeat** 推送事件数。 */
159
48
  pushEvents: number;
160
- /** heartbeat 帧数(证明「连着但没事发生」,与「断了」区分开)。 */
161
49
  heartbeats: number;
162
- /** 轮询腿真取件的次数。 */
163
50
  polls: number;
164
- /** `list()` 抛错的次数(两条腿共用计数 —— 取件失败不该被静默)。 */
165
51
  listErrors: number;
166
- /** stream 抛出(404 / 反复失败)导致降级的次数。 */
167
52
  streamFailures: number;
168
- /** 真正发给订阅者的快照数(内容无变化时不发 ⇒ 这个数会小于 polls+pushEvents)。 */
169
53
  snapshots: number;
170
- /** 0.72.14:对账节拍真取件的次数(与 `polls` 分开记 —— 它不属于回落轮询腿)。 */
171
54
  reconciles: number;
172
- /** 0.73.4:「欠一次看」的重试取件次数(见 `ApprovalsFeedOptions.pushTakeRetryMs`)。 */
173
55
  pushTakeRetries: number;
174
- /**
175
- * CC-98:真发给订阅者的「不知道」张数。与 `listErrors` 刻意分开:后者数**失败次数**,本位数
176
- * **发布次数**(同一段「不知道」只发一张)⇒ `unknowns <= listErrors` 恒成立,端的自检据此
177
- * 区分「一直在失败」与「失败了但端被通知过几次」。
178
- */
179
56
  unknowns: number;
180
57
  }
181
- /**
182
- * 0.72.14 **对账节拍**:悬挂的流内 ask 出现 / 结算时,较老的引擎不在 `approvals.stream` 上发任何事件 ⇒ push 腿连着也
183
- * 看不见它;而「仅活跃 run 时轮询」的 `shouldPoll` 恰好在宿主 turn 结束后关着。本旋钮给宿主一个**独立**的闸:
184
- * `shouldReconcile()` 为真(典型:会话有活跃后台代理 ∧ 没有活着的宿主 run)期间,无论当前是哪条腿都定时重取 `list()`。
185
- * · 闸关 ⇒ 零额外取件;不传本旋钮 ⇒ 连定时器都不起,行为与此前一字不差。
186
- * · 取件后快照没变 ⇒ 间隔翻倍直到 `maxIntervalMs`;变了 / 闸由关转开 ⇒ 回到 `intervalMs`。
187
- * · 谓词抛错 / 返回非布尔 ⇒ 按「查」处理(与 `shouldPoll` 同一个 fail-safe 方向:少查一次 = 一只等人的 ask 迟迟不出现)。
188
- * · 引擎开始在 stream 上为这一段发事件之后,push 腿自己就会重取,本节拍只剩兜底意义,宿主可以不再传。
189
- */
190
58
  export interface ApprovalsFeedReconcileOptions {
191
59
  shouldReconcile: () => boolean;
192
- /** 基础间隔;缺省 5000ms。 */
193
60
  intervalMs?: number;
194
- /** 退避上限;缺省 30_000ms。 */
195
61
  maxIntervalMs?: number;
196
62
  }
197
63
  export interface ApprovalsFeedOptions {
198
- /** 回落轮询间隔;缺省 5000ms。 */
199
64
  pollIntervalMs?: number;
200
- /** 降级后多久再试一次 stream;缺省 60_000ms。0 = 不再试(永久轮询)。 */
201
65
  streamRetryMs?: number;
202
- /**
203
- * [C77]② 轮询条件旋钮(协作板 desktop 请托:那一端的现行纪律是**仅活跃 run 时轮询**)。
204
- * 每一拍**触发时**查询一次:`false` ⇒ 跳过本拍取件,但照常排下一拍。缺省(不传)= 恒 true,
205
- * 行为与加旋钮之前一字不差。
206
- *
207
- * 🔴 语义与 `mode()==='idle'` 严格分开(别混同,端的自检读的就是这两个量):
208
- * · `shouldPoll()===false` = **消费方说现在不用查** —— 腿活着、定时器照排、`mode` 仍是
209
- * `'poll'`、`stats.polls` 不增(跳掉的那一拍没取件,计成 poll 就是谎报流量)、
210
- * **不计入** F5 的 `consecutivePollEscapes`(跳拍不是失败,连着跳一百拍也不该转 idle);
211
- * · `mode()==='idle'` = 这条腿**真挂了**(F5:回调体连续逃逸到上限)或已 `stop()`。
212
- *
213
- * 管辖边界(只管轮询腿,三处**不**受它约束,都是有理由的):
214
- * · **构造期那一次取件**不受管 —— 它是「首帧之前也要有内容」的一次性快照(否则端分不清
215
- * 「空白」与「没有 pending」);要连这一次都不要,就晚一点再 `startApprovalsFeed`;
216
- * · **push 腿**(`approvals.stream` 事件驱动的重取)不受管 —— 那是服务端说「变了」,
217
- * 省掉它 = 明知有变化还不去看,与本旋钮要省的「空转流量」不是一回事;
218
- * · **`refresh()`** 不受管 —— 那是端自己按下的显式动作。
219
- */
220
66
  shouldPoll?: () => boolean;
221
- /**
222
- * 0.73.4:**欠一次看**的重试基础间隔(ms;缺省 1000;`<= 0` = 关,与 0.73.3 之前同)。
223
- *
224
- * push 腿收到事件 = 引擎说「变了」;那一次 `list()` 若失败(抛出,或回体读不懂),这个「变了」就没人去看:
225
- * 其后的 heartbeat 不触发取件,没有别的事件的话,那张待批的卡一直不出现。⇒ 任何一次 push 侧取件
226
- * (起手那次、事件触发的、`refresh()`)没看成,就记一笔欠账并按 base、2×base、4×base … 退避重试,
227
- * 间隔封顶 30 s 与 base 的较大者,**不按次数放弃**(有人可能正在等这张卡);**比欠账更晚发起**的任何一次
228
- * 取件看成(哪条腿都算)即销账、撤定时器、间隔回到 base;更早发起、迟到回来的成功不销账。只在 push 模式记账 —— 轮询模式下轮询腿自己会再来。
229
- */
230
67
  pushTakeRetryMs?: number;
231
- /** 0.72.14:对账节拍(见 {@link ApprovalsFeedReconcileOptions})。缺省不起。 */
232
68
  reconcile?: ApprovalsFeedReconcileOptions;
233
69
  signal?: AbortSignal;
234
70
  }
@@ -236,27 +72,8 @@ export interface ApprovalsFeedHandle {
236
72
  stop(): void;
237
73
  mode(): ApprovalsFeedMode;
238
74
  stats(): ApprovalsFeedStats;
239
- /**
240
- * 最近一次**真**快照(还没有过 ⇒ null)。
241
- * 🔴 CC-98:它是**过去**的事实 —— 取件正失败时它仍是上一张(内容不会被改写成空)。
242
- * 「现在可不可信」问 {@link ApprovalsFeedHandle.reading}。
243
- */
244
75
  snapshot(): ApprovalsFeedSnapshot | null;
245
- /**
246
- * CC-98 三态:**现在**该渲什么。
247
- * 🔴 「一条都没有」只在 `present` 且列表为空时成立;`unobserved` / `unknown` 一律渲「不知道」
248
- * (破折号 / 「暂时看不到」),绝不渲 0。
249
- */
250
76
  reading(): ApprovalsFeedReading;
251
- /** 立刻取一次权威 list 并(有变化时)发快照。端在「用户点了刷新」之类的场景用。 */
252
77
  refresh(): Promise<void>;
253
78
  }
254
- /**
255
- * 起一条 pending-approvals feed。**幂等性归调用方**:一个 client 起一条就够了,起两条 =
256
- * 两倍取件(不是错误,但没意义)。
257
- *
258
- * 🔴 CC-98 订阅口收**两臂**({@link ApprovalsFeedEmission}):真快照(`kind:'snapshot'`)与
259
- * 「这次取不到」({@link ApprovalsFeedUnknownSnapshot},`kind:'unknown'`)。先判 `kind` 再读别的键 ——
260
- * 把 unknown 臂当成一张空列表就是把「不知道」渲成「没有」。三态的拉面读口是 `reading()`。
261
- */
262
79
  export declare function startApprovalsFeed(client: ApprovalsFeedClientLike, onSnapshot: (emission: ApprovalsFeedEmission) => void, opts?: ApprovalsFeedOptions): ApprovalsFeedHandle;