@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.
- package/CHANGELOG.md +42 -1
- package/README.md +6 -5
- package/dist/abortableSleep.d.ts +0 -28
- package/dist/abortableSleep.js +0 -28
- package/dist/adapt/arms.d.ts +0 -46
- package/dist/adapt/arms.js +9 -544
- package/dist/adapt/ids.d.ts +0 -58
- package/dist/adapt/ids.js +0 -63
- package/dist/adapt/instanceLedger.d.ts +0 -25
- package/dist/adapt/instanceLedger.js +0 -20
- package/dist/adapt/panelTasks.d.ts +0 -69
- package/dist/adapt/panelTasks.js +0 -95
- package/dist/adapt/textSegmentAuthority.d.ts +1 -137
- package/dist/adapt/textSegmentAuthority.js +0 -54
- package/dist/adapt/textStream.d.ts +0 -252
- package/dist/adapt/textStream.js +2 -281
- package/dist/adapt/toolCards.d.ts +0 -46
- package/dist/adapt/toolCards.js +0 -23
- package/dist/adapt/turnFlags.d.ts +0 -54
- package/dist/adapt/turnFlags.js +1 -17
- package/dist/adapt/wireShapes.d.ts +0 -92
- package/dist/adapt/wireShapes.js +0 -83
- package/dist/adapt.d.ts +0 -55
- package/dist/adapt.js +1 -120
- package/dist/adapter/activeRunSelfHeal.d.ts +22 -515
- package/dist/adapter/activeRunSelfHeal.js +10 -625
- package/dist/adapter/downstream/eventToSdkMessage.d.ts +2 -305
- package/dist/adapter/downstream/eventToSdkMessage.js +2 -867
- package/dist/adapter/downstream/terminalToSdkResult.d.ts +2 -314
- package/dist/adapter/downstream/terminalToSdkResult.js +13 -560
- package/dist/adapter/downstream/turnUsageToModelUsage.d.ts +0 -95
- package/dist/adapter/downstream/turnUsageToModelUsage.js +2 -31
- package/dist/adapter/runStream.d.ts +0 -206
- package/dist/adapter/runStream.js +6 -596
- package/dist/adapter/types.d.ts +0 -111
- package/dist/adapter/types.js +0 -29
- package/dist/agentSession/backgroundView.d.ts +0 -106
- package/dist/agentSession/backgroundView.js +3 -49
- package/dist/agentSession/contract.d.ts +0 -98
- package/dist/agentSession/contract.js +0 -12
- package/dist/agentsWireCaps.d.ts +0 -72
- package/dist/agentsWireCaps.js +4 -72
- package/dist/approvalsStreamLiveCapability.d.ts +0 -25
- package/dist/approvalsStreamLiveCapability.js +0 -31
- package/dist/argvFlagValue.d.ts +0 -33
- package/dist/argvFlagValue.js +3 -35
- package/dist/attachmentsWireCaps.d.ts +0 -127
- package/dist/attachmentsWireCaps.js +0 -144
- package/dist/autoModeUnavailable.d.ts +0 -120
- package/dist/autoModeUnavailable.js +0 -144
- package/dist/classifierStatus.d.ts +0 -72
- package/dist/classifierStatus.js +0 -167
- package/dist/classifierVerdictWire.d.ts +0 -54
- package/dist/classifierVerdictWire.js +0 -133
- package/dist/clientContextWireCaps.d.ts +0 -37
- package/dist/clientContextWireCaps.js +0 -36
- package/dist/clientSlice.d.ts +0 -63
- package/dist/clientSlice.js +0 -45
- package/dist/cloudConfigWireCaps.d.ts +0 -86
- package/dist/cloudConfigWireCaps.js +2 -65
- package/dist/compensations.d.ts +0 -52
- package/dist/compensations.js +2 -63
- package/dist/controlRouter.d.ts +2 -208
- package/dist/controlRouter.js +1 -129
- package/dist/coreValuePorts.d.ts +0 -84
- package/dist/coreValuePorts.js +0 -29
- package/dist/decideReceipt.d.ts +0 -110
- package/dist/decideReceipt.js +0 -84
- package/dist/detachWire.d.ts +0 -130
- package/dist/detachWire.js +1 -130
- package/dist/deviceExecutorManagementCapability.d.ts +2 -35
- package/dist/deviceExecutorManagementCapability.js +1 -37
- package/dist/diagnostics.d.ts +0 -8
- package/dist/diagnostics.js +0 -8
- package/dist/diff/patch.d.ts +0 -17
- package/dist/diff/patch.js +0 -19
- package/dist/effectiveFacts.d.ts +0 -40
- package/dist/effectiveFacts.js +0 -22
- package/dist/effortWire.d.ts +0 -11
- package/dist/effortWire.js +0 -12
- package/dist/engineAgentPanelStore.d.ts +0 -169
- package/dist/engineAgentPanelStore.js +13 -293
- package/dist/engineCapReader.d.ts +0 -62
- package/dist/engineCapReader.js +1 -43
- package/dist/engineCapsCache.d.ts +0 -177
- package/dist/engineCapsCache.js +0 -199
- package/dist/engineCapsGenerationGuard.d.ts +0 -2
- package/dist/engineCapsGenerationGuard.js +0 -11
- package/dist/engineErrorCodes.d.ts +1 -316
- package/dist/engineErrorCodes.js +0 -427
- package/dist/engineHttpTools.d.ts +0 -29
- package/dist/engineHttpTools.js +0 -29
- package/dist/engineIdentity.d.ts +0 -83
- package/dist/engineIdentity.js +0 -88
- package/dist/engineInlineTaskStats.d.ts +0 -57
- package/dist/engineInlineTaskStats.js +1 -42
- package/dist/engineNoticeCodes.d.ts +0 -190
- package/dist/engineNoticeCodes.js +0 -182
- package/dist/engineSessionParam.d.ts +0 -30
- package/dist/engineSessionParam.js +0 -52
- package/dist/engineToolLabelStore.d.ts +0 -29
- package/dist/engineToolLabelStore.js +0 -31
- package/dist/engineWireSdk.d.ts +0 -90
- package/dist/engineWireSdk.js +0 -74
- package/dist/engineWireTarget.d.ts +0 -14
- package/dist/engineWireTarget.js +0 -39
- package/dist/env/localeGeo.d.ts +0 -12
- package/dist/env/localeGeo.js +2 -77
- package/dist/env/localeTag.d.ts +0 -34
- package/dist/env/localeTag.js +0 -32
- package/dist/env/uiLanguage.d.ts +0 -13
- package/dist/env/uiLanguage.js +0 -25
- package/dist/envFlag.d.ts +0 -37
- package/dist/envFlag.js +0 -40
- package/dist/executionLaneCapability.d.ts +0 -48
- package/dist/executionLaneCapability.js +0 -54
- package/dist/finalVerifyWire.d.ts +0 -67
- package/dist/finalVerifyWire.js +3 -43
- package/dist/fleet/fleetLedger.d.ts +0 -308
- package/dist/fleet/fleetLedger.js +10 -429
- package/dist/fleet/fleetProjection.d.ts +0 -240
- package/dist/fleet/fleetProjection.js +0 -189
- package/dist/fleet/fleetRowAgentType.d.ts +0 -6
- package/dist/fleet/fleetRowAgentType.js +1 -32
- package/dist/fleet/workflowSizeWarning.d.ts +0 -47
- package/dist/fleet/workflowSizeWarning.js +1 -46
- package/dist/fleetAgentPanelProjection.d.ts +0 -48
- package/dist/fleetAgentPanelProjection.js +8 -173
- package/dist/fleetTaskDesc.d.ts +0 -39
- package/dist/fleetTaskDesc.js +0 -69
- package/dist/forkWireCaps.d.ts +0 -23
- package/dist/forkWireCaps.js +1 -24
- package/dist/gateOutcome.d.ts +0 -140
- package/dist/gateOutcome.js +0 -85
- package/dist/gateVocabulary.d.ts +0 -114
- package/dist/gateVocabulary.js +3 -161
- package/dist/goalStopHook.d.ts +0 -127
- package/dist/goalStopHook.js +0 -178
- package/dist/headlessPermissionModeWire.d.ts +0 -76
- package/dist/headlessPermissionModeWire.js +1 -155
- package/dist/headlessReconnectWire.d.ts +0 -84
- package/dist/headlessReconnectWire.js +13 -67
- package/dist/hitl/approvalDecisionNoteAudit.d.ts +0 -49
- package/dist/hitl/approvalDecisionNoteAudit.js +0 -56
- package/dist/hitl/approvalOutcomeNote.d.ts +0 -2
- package/dist/hitl/approvalOutcomeNote.js +0 -20
- package/dist/hitl/approvalResolution.d.ts +0 -113
- package/dist/hitl/approvalResolution.js +0 -66
- package/dist/hitl/approvalsFeed.d.ts +0 -183
- package/dist/hitl/approvalsFeed.js +12 -243
- package/dist/hitl/armedGateRegistry.d.ts +0 -55
- package/dist/hitl/armedGateRegistry.js +0 -146
- package/dist/hitl/askGateWire.d.ts +0 -86
- package/dist/hitl/askGateWire.js +1 -95
- package/dist/hitl/askParkRowRouting.d.ts +0 -123
- package/dist/hitl/askParkRowRouting.js +1 -89
- package/dist/hitl/crashConverged.d.ts +0 -148
- package/dist/hitl/crashConverged.js +0 -214
- package/dist/hitl/editedRuleTextPrecheck.d.ts +0 -109
- package/dist/hitl/editedRuleTextPrecheck.js +0 -71
- package/dist/hitl/frameRouter.d.ts +0 -134
- package/dist/hitl/frameRouter.js +6 -378
- package/dist/hitl/gateIdentity.d.ts +0 -39
- package/dist/hitl/gateIdentity.js +0 -41
- package/dist/hitl/gateLedger.d.ts +0 -267
- package/dist/hitl/gateLedger.js +0 -121
- package/dist/hitl/hitlBridge.d.ts +7 -431
- package/dist/hitl/hitlBridge.js +7 -476
- package/dist/hitl/hitlHostSurface.d.ts +0 -150
- package/dist/hitl/hitlHostSurface.js +0 -169
- package/dist/hitl/livePendingAsk.d.ts +0 -91
- package/dist/hitl/livePendingAsk.js +0 -74
- package/dist/hitl/localAllowRule.d.ts +0 -62
- package/dist/hitl/localAllowRule.js +1 -33
- package/dist/hitl/parkOwnership.d.ts +0 -56
- package/dist/hitl/parkOwnership.js +0 -22
- package/dist/hitl/parkResolver.d.ts +3 -88
- package/dist/hitl/parkResolver.js +8 -349
- package/dist/hitl/parkRowBirthWait.d.ts +2 -26
- package/dist/hitl/parkRowBirthWait.js +3 -93
- package/dist/hitl/persistedRulesWire.d.ts +23 -371
- package/dist/hitl/persistedRulesWire.js +62 -329
- package/dist/hitl/planReviewWire.d.ts +4 -176
- package/dist/hitl/planReviewWire.js +9 -312
- package/dist/hitl/resumeRunningCard.d.ts +0 -105
- package/dist/hitl/resumeRunningCard.js +0 -105
- package/dist/hitl/sessionPolicyWire.d.ts +11 -191
- package/dist/hitl/sessionPolicyWire.js +0 -149
- package/dist/hitl/suspendedReopen.d.ts +3 -24
- package/dist/hitl/suspendedReopen.js +0 -14
- package/dist/hitl/toolApprovalWire.d.ts +5 -1308
- package/dist/hitl/toolApprovalWire.js +5 -945
- package/dist/hooksWireCaps.d.ts +0 -38
- package/dist/hooksWireCaps.js +0 -190
- package/dist/host.d.ts +0 -105
- package/dist/host.js +0 -33
- package/dist/hostEnv.d.ts +0 -14
- package/dist/hostEnv.js +0 -13
- package/dist/imagesWireCaps.d.ts +0 -21
- package/dist/imagesWireCaps.js +0 -22
- package/dist/index.d.ts +0 -134
- package/dist/index.js +0 -476
- package/dist/interactiveHalt.d.ts +5 -153
- package/dist/interactiveHalt.js +0 -111
- package/dist/interactiveToolsWire.d.ts +0 -62
- package/dist/interactiveToolsWire.js +1 -67
- package/dist/leaderConflict.d.ts +0 -59
- package/dist/leaderConflict.js +0 -48
- package/dist/limitsWire.d.ts +0 -125
- package/dist/limitsWire.js +2 -120
- package/dist/liveInitToolFace.d.ts +0 -77
- package/dist/liveInitToolFace.js +1 -109
- package/dist/liveModelCatalog.d.ts +0 -52
- package/dist/liveModelCatalog.js +0 -48
- package/dist/liveQuestionStore.d.ts +0 -87
- package/dist/liveQuestionStore.js +1 -56
- package/dist/mcpLiveness.d.ts +0 -151
- package/dist/mcpLiveness.js +0 -122
- package/dist/mcpPanel.d.ts +0 -104
- package/dist/mcpPanel.js +0 -49
- package/dist/mcpReconnect.d.ts +0 -58
- package/dist/mcpReconnect.js +0 -69
- package/dist/mcpWireCaps.d.ts +0 -55
- package/dist/mcpWireCaps.js +1 -13
- package/dist/memoryComplianceCapability.d.ts +3 -57
- package/dist/memoryComplianceCapability.js +0 -57
- package/dist/memoryEntriesWire.d.ts +6 -198
- package/dist/memoryEntriesWire.js +0 -144
- package/dist/memoryOriginCapability.d.ts +3 -53
- package/dist/memoryOriginCapability.js +0 -50
- package/dist/memorySpecWire.d.ts +0 -116
- package/dist/memorySpecWire.js +0 -150
- package/dist/model/catalog.d.ts +0 -111
- package/dist/model/catalog.js +0 -87
- package/dist/model/catalogLoader.d.ts +0 -114
- package/dist/model/catalogLoader.js +2 -139
- package/dist/model/modelSupplyRules.d.ts +1 -55
- package/dist/model/modelSupplyRules.js +0 -62
- package/dist/model/providerAuth.d.ts +0 -103
- package/dist/model/providerAuth.js +2 -38
- package/dist/model/providerCatalog.d.ts +0 -45
- package/dist/model/providerCatalog.js +0 -37
- package/dist/model/providerPresets.d.ts +0 -33
- package/dist/model/providerPresets.js +2 -91
- package/dist/model/tierVocabulary.d.ts +0 -31
- package/dist/model/tierVocabulary.js +0 -27
- package/dist/modelBudgetRule.d.ts +0 -39
- package/dist/modelBudgetRule.js +0 -39
- package/dist/modelCapabilityProbe.d.ts +0 -175
- package/dist/modelCapabilityProbe.js +0 -147
- package/dist/modelWireCaps.d.ts +0 -13
- package/dist/modelWireCaps.js +0 -13
- package/dist/notifications.d.ts +0 -233
- package/dist/notifications.js +14 -492
- package/dist/oneShotWireCaps.d.ts +0 -34
- package/dist/oneShotWireCaps.js +0 -35
- package/dist/ownKey.d.ts +0 -33
- package/dist/ownKey.js +0 -33
- package/dist/panelRunningHistory.d.ts +0 -28
- package/dist/panelRunningHistory.js +0 -43
- package/dist/peerFrames.d.ts +0 -71
- package/dist/peerFrames.js +0 -168
- package/dist/peerLaneCapability.d.ts +0 -44
- package/dist/peerLaneCapability.js +0 -52
- package/dist/permissionRuleIssue.d.ts +0 -30
- package/dist/permissionRuleIssue.js +0 -78
- package/dist/permissionRulesWriteCapability.d.ts +0 -46
- package/dist/permissionRulesWriteCapability.js +0 -54
- package/dist/permissionWireCaps.d.ts +0 -37
- package/dist/permissionWireCaps.js +0 -37
- package/dist/postureKnob.d.ts +0 -71
- package/dist/postureKnob.js +0 -86
- package/dist/principalWire.d.ts +0 -17
- package/dist/principalWire.js +0 -17
- package/dist/printToolResultFrame.d.ts +0 -100
- package/dist/printToolResultFrame.js +0 -33
- package/dist/promptProfileWireCaps.d.ts +0 -13
- package/dist/promptProfileWireCaps.js +0 -13
- package/dist/readFacePosture.d.ts +0 -43
- package/dist/readFacePosture.js +0 -46
- package/dist/request/printNotification.d.ts +0 -20
- package/dist/request/printNotification.js +0 -55
- package/dist/request/taskRequest.d.ts +1 -249
- package/dist/request/taskRequest.js +20 -498
- package/dist/resumeRefusalCopy.d.ts +0 -136
- package/dist/resumeRefusalCopy.js +1 -117
- package/dist/retainBackgroundWireCaps.d.ts +0 -48
- package/dist/retainBackgroundWireCaps.js +0 -48
- package/dist/retryStatus.d.ts +2 -221
- package/dist/retryStatus.js +0 -107
- package/dist/rewindWireCaps.d.ts +0 -27
- package/dist/rewindWireCaps.js +0 -24
- package/dist/runCancelContext.d.ts +1 -20
- package/dist/runCancelContext.js +0 -34
- package/dist/runTerminal.d.ts +0 -273
- package/dist/runTerminal.js +0 -177
- package/dist/sandboxWire.d.ts +0 -38
- package/dist/sandboxWire.js +0 -82
- package/dist/scenarioWire.d.ts +0 -60
- package/dist/scenarioWire.js +0 -68
- package/dist/scratchpadWireCaps.d.ts +0 -11
- package/dist/scratchpadWireCaps.js +0 -32
- package/dist/sdkWireTransit.d.ts +0 -38
- package/dist/sdkWireTransit.js +0 -30
- package/dist/seam.d.ts +18 -853
- package/dist/seam.js +0 -52
- package/dist/seatContract.d.ts +0 -555
- package/dist/seatContract.js +5 -304
- package/dist/selfOrchestrationDenial.d.ts +0 -189
- package/dist/selfOrchestrationDenial.js +0 -162
- package/dist/selfOrchestrationWireCaps.d.ts +0 -38
- package/dist/selfOrchestrationWireCaps.js +0 -38
- package/dist/sessionMap.d.ts +0 -60
- package/dist/sessionMap.js +0 -37
- package/dist/sessionMemoryStatus.d.ts +11 -114
- package/dist/sessionMemoryStatus.js +0 -112
- package/dist/sessionModelLatch.d.ts +0 -29
- package/dist/sessionModelLatch.js +0 -40
- package/dist/sessionPolicyCapability.d.ts +3 -53
- package/dist/sessionPolicyCapability.js +0 -52
- package/dist/sessionSlot.d.ts +0 -26
- package/dist/sessionSlot.js +0 -17
- package/dist/skillsWireCaps.d.ts +0 -87
- package/dist/skillsWireCaps.js +0 -38
- package/dist/sqlEngineCapability.d.ts +0 -118
- package/dist/sqlEngineCapability.js +0 -134
- package/dist/sseIdleTriage.d.ts +0 -79
- package/dist/sseIdleTriage.js +1 -80
- package/dist/steering.d.ts +0 -54
- package/dist/steering.js +0 -63
- package/dist/subagent/engineCompactWire.d.ts +0 -34
- package/dist/subagent/engineCompactWire.js +4 -134
- package/dist/subagent/engineDelegatedPrompt.d.ts +0 -31
- package/dist/subagent/engineDelegatedPrompt.js +1 -103
- package/dist/subagent/engineRowStopGate.d.ts +0 -20
- package/dist/subagent/engineRowStopGate.js +0 -49
- package/dist/subagent/engineSubagentOutput.d.ts +0 -7
- package/dist/subagent/engineSubagentOutput.js +1 -51
- package/dist/subagent/engineSubagentResume.d.ts +2 -279
- package/dist/subagent/engineSubagentResume.js +2 -129
- package/dist/subagent/engineSubagentSteer.d.ts +0 -26
- package/dist/subagent/engineSubagentSteer.js +0 -63
- package/dist/subagent/engineSubagentTail.d.ts +0 -38
- package/dist/subagent/engineSubagentTail.js +2 -110
- package/dist/subagent/engineTaskHandleWire.d.ts +6 -67
- package/dist/subagent/engineTaskHandleWire.js +0 -126
- package/dist/subagent/subagentOwnerAbsence.d.ts +0 -2
- package/dist/subagent/subagentOwnerAbsence.js +0 -25
- package/dist/subagentContentStore.d.ts +3 -260
- package/dist/subagentContentStore.js +7 -540
- package/dist/systemReminderTag.d.ts +0 -49
- package/dist/systemReminderTag.js +0 -61
- package/dist/toolResult.d.ts +1 -211
- package/dist/toolResult.js +1 -358
- package/dist/toolRoster.d.ts +0 -140
- package/dist/toolRoster.js +0 -66
- package/dist/typePins.d.ts +0 -46
- package/dist/types/engineState.d.ts +0 -71
- package/dist/types/engineState.js +0 -16
- package/dist/ultracodeWireCaps.d.ts +0 -75
- package/dist/ultracodeWireCaps.js +0 -92
- package/dist/unrefTimer.d.ts +0 -27
- package/dist/webSearchBackendCapability.d.ts +0 -72
- package/dist/webSearchBackendCapability.js +0 -79
- package/dist/webSearchWireCaps.d.ts +0 -37
- package/dist/webSearchWireCaps.js +0 -34
- package/dist/websearch/searchProviderPresets.d.ts +0 -81
- package/dist/websearch/searchProviderPresets.js +0 -27
- package/dist/wireErrorTriage.d.ts +4 -160
- package/dist/wireErrorTriage.js +0 -171
- package/dist/wireRefusalCopy.d.ts +0 -28
- package/dist/wireRefusalCopy.js +0 -28
- package/dist/workflow.d.ts +0 -40
- package/dist/workflow.js +0 -52
- package/dist/workflowClient.d.ts +0 -122
- package/dist/workflowClient.js +8 -360
- package/dist/workflowMonitor.d.ts +2 -72
- package/dist/workflowMonitor.js +0 -26
- package/dist/writeProtectionCapability.d.ts +0 -112
- package/dist/writeProtectionCapability.js +0 -109
- package/docs/INTEGRATION-CLIENTS.md +78 -5
- 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;
|