@sema-agent/client-core 0.77.0 → 0.77.2
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 +23 -1
- package/README.md +5 -4
- 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 +1 -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 +13 -358
- package/dist/hitl/persistedRulesWire.js +0 -310
- 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 +1 -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 +0 -249
- package/dist/request/taskRequest.js +10 -496
- 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 +11 -65
- package/dist/subagent/engineTaskHandleWire.js +20 -131
- 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 +62 -1
- package/package.json +1 -1
|
@@ -1,41 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ⇄ B1 批搬迁(2026-07-27,多端改造设计稿 §2.4.1-B):cli src/sema/subagentContentStore.ts 逐字搬入(零依赖;壳侧改 re-export)。
|
|
3
|
-
* 🔴 module 级台账(tasks/parentToTask/ownEngineRuns/bgFacts)= 单实例语义:写方(seam adapter
|
|
4
|
-
* runStream 的子代内容分流 + liveClient 的 run_started own 台账)与读方(查看态/帧级 own 判别)
|
|
5
|
-
* 必须走**同一个模块实例**,否则 own 判别恒 false(帧级校验静默失效)。
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* subagentContentStore — dep-free side-channel store for ENGINE subagent CONTENT events (C1 consumption,
|
|
9
|
-
* service 1.89 `forwardSubagentEvents` + core 1.219; blackboard [381]⑤/[383]③).
|
|
10
|
-
*
|
|
11
|
-
* WIRE FACTS: with `forwardSubagentEvents: true` on the task request, the live stream carries the
|
|
12
|
-
* subagent's text_delta / reasoning_delta / tool_start / tool_end stamped with EventIdentity
|
|
13
|
-
* —— 🔴 **durable 腿(重放)送的是同一段的聚合形** `text` / `reasoning`(整段全文,同样带
|
|
14
|
-
* EventIdentity)。两类都要收:只收增量的话,续听重放尾的宿主整条子代转录都是空的
|
|
15
|
-
* (0.62.0 补;两类的处置**不同**,见 {@link publishSubagentContentEvent} 的吸收规则)
|
|
16
|
-
* 🔴 **重放的幂等闸覆盖四个臂**(`text` / `reasoning` / `tool_start` / `tool_end`):重连 = 新的一条
|
|
17
|
-
* 流,缝前那道事件序号去重只在同一条流内有效,所以「整轮重放」拦得住的只能是这本账。判据形相同
|
|
18
|
-
* (先问身份、再问账本),身份与账本各按臂取:散文两臂 = 聚合帧 `eventId` + 已上屏的整段正文;
|
|
19
|
-
* 工具两臂 = `toolCallId` + `items` 上那张卡,收口另带一本**自己额度**的收口身份账(同一次调用
|
|
20
|
-
* 会有**第二发**真收口 —— 门 park 之后恢复执行,见 {@link publishSubagentContentEvent})。
|
|
21
|
-
* (§E1 redact upstream; §E2 identity). 🔴 EventIdentity 的键是 `eventId` / `parentToolCallId`
|
|
22
|
-
* (+ LIVE 白名单四臂上的 `sourceTaskId` / `bgAgentId`)—— **没有 `taskId`**(sdk `events.d.ts` 的
|
|
23
|
-
* `interface EventIdentity` 直证;`taskId` 只长在 `meta` 首帧上)。所以内容帧到不了「自带引擎
|
|
24
|
-
* taskId」那一步,归账键靠 `parentToTask`,见 `canonicalKey`。The seam adapter (runStream.ts)
|
|
25
|
-
* DIVERTS those events here — they must never reach the main-transcript pipeline (a subagent's tokens
|
|
26
|
-
* rendering as the leader's text is the pollution failure mode).
|
|
27
|
-
*
|
|
28
|
-
* WHAT IT KEEPS (bounded, per task):
|
|
29
|
-
* - a NEUTRAL item log: {kind:'text'|'thinking',text} | {kind:'tool',name,input,output,isError,id}
|
|
30
|
-
* (ring-capped) — the 查看态 transcript backlog, so entering a running agent mid-flight still shows
|
|
31
|
-
* history. Message SHAPES are built by the consumers (engineAgentView/chrome-agentprogress own the
|
|
32
|
-
* CC message creators; this store stays dep-free like engineAgentPanelStore).
|
|
33
|
-
* - live accumulation buffers (streaming text/thinking not yet segment-closed).
|
|
34
|
-
* - taskId → parentToolCallId (the C2 steer target — service routes subagent steer by parentToolCallId).
|
|
35
|
-
*
|
|
36
|
-
* NOTIFY: coalesced (~250ms) per-task notify so a per-token delta storm never turns into per-token
|
|
37
|
-
* AppState writes; consumers pull a snapshot on notify.
|
|
38
|
-
*/
|
|
39
1
|
export type SubagentContentItem = {
|
|
40
2
|
kind: 'text';
|
|
41
3
|
text: string;
|
|
@@ -49,59 +11,20 @@ export type SubagentContentItem = {
|
|
|
49
11
|
input: unknown;
|
|
50
12
|
output?: string;
|
|
51
13
|
isError?: boolean;
|
|
52
|
-
}
|
|
53
|
-
/** local user echo (查看态 composer 插话) — rides in the item log so a full rebuild keeps it in order */
|
|
54
|
-
| {
|
|
14
|
+
} | {
|
|
55
15
|
kind: 'echo';
|
|
56
16
|
text: string;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* **截尾留痕**(0.62.0):字节预算把这条子代早先的内容丢掉了多少。恒**排在 items 最前**、
|
|
60
|
-
* 每条子代**至多一条**(丢一次加一条会把账本自己撑爆),随后续丢弃**原地更新**。
|
|
61
|
-
*
|
|
62
|
-
* 🔴 它存在的唯一理由是「不许无声消失」:没有它,用户读到的转录比真实发生的少一截而毫无提示,
|
|
63
|
-
* 而那正是本包在别处反复记账的那类静默失败。渲染端该把它渲成一行可见的省略说明。
|
|
64
|
-
* 🔴 本记录**自身不计入预算**(它是关于预算的元信息,不是内容)。
|
|
65
|
-
*/
|
|
66
|
-
| {
|
|
17
|
+
} | {
|
|
67
18
|
kind: 'truncated';
|
|
68
19
|
droppedBytes: number;
|
|
69
20
|
keptFrom: number;
|
|
70
21
|
};
|
|
71
|
-
/**
|
|
72
|
-
* 🔴 [2393] sweep-F15(2026-08-03 全窗复审)**记一笔口径分叉**(裁定:留 `| undefined`,写明为什么):
|
|
73
|
-
* 下面五个可选位在 eopt 收官批被写成 `?: T | undefined`(= 允许显式赋 `undefined` 落键),而同窗
|
|
74
|
-
* 另两处的口径是相反的(`fleetAgentPanelProjection` 的「🔴 缺席即不落键(消费端据键在不在判三态)」、
|
|
75
|
-
* `toolResult` 的「公面键恒在形不许被 eopt 批翻成条件展开」)。两种口径都出自同一批,当时没有一处记账。
|
|
76
|
-
* 为什么这里走另一条:**本类型的消费端一处都不用「键在不在」判三态** —— 本文件 `apply()` 全部用
|
|
77
|
-
* `typeof ev.delta === 'string'` / `ev.output ?? ''` / `ev.isError === true` 这类**值级**判据
|
|
78
|
-
* (逐行核过,见下方 switch),所以 `{delta: undefined}` 与「不落键」在本模块里可观测等价;而生产者
|
|
79
|
-
* 是宿主的帧适配腿,`{ delta: maybe }` 这种直写形在 eopt 下会编译红,逼它们改写成条件展开只是把
|
|
80
|
-
* 噪音推给三端,换不来任何判别力。
|
|
81
|
-
* ⚠️ 反过来的约束:**谁想给这个类型加一个用「键在不在」判三态的位,就必须同批把这里改成条件展开**
|
|
82
|
-
* (那时两种口径就不能再共存了)。
|
|
83
|
-
*/
|
|
84
22
|
export interface SubagentContentEvent {
|
|
85
|
-
/**
|
|
86
|
-
* 🔴 六臂,两类语义(0.62.0 加 `text` / `reasoning` 两个**聚合**臂):
|
|
87
|
-
* · `*_delta` = **增量**,语义是「往缓冲里追加」;
|
|
88
|
-
* · `text` / `reasoning` = 一段的**权威全文**(durable 重放腿送的就是这一形),语义是
|
|
89
|
-
* 「这一段最终是这样」—— 处置**不是追加**,见 {@link publishSubagentContentEvent} 的吸收规则。
|
|
90
|
-
* 两类必须分得开:把聚合帧折成一发 `*_delta` 会让「活体流过 + 重放聚合」变成**双份**。
|
|
91
|
-
*/
|
|
92
23
|
type: 'text_delta' | 'reasoning_delta' | 'text' | 'reasoning' | 'tool_start' | 'tool_end';
|
|
93
24
|
taskId: string;
|
|
94
25
|
parentToolCallId: string;
|
|
95
26
|
delta?: string | undefined;
|
|
96
|
-
/** 聚合两臂(`text` / `reasoning`)的**整段全文**。刻意不复用 `delta` 位:同名不同义会让
|
|
97
|
-
* 「这一位是增量还是全文」变成读者要靠 `type` 去反推的事,而反推错的代价是内容重复上屏。 */
|
|
98
27
|
text?: string | undefined;
|
|
99
|
-
/** wire 上那一帧的**事件身份**(聚合两臂的幂等键;缺席 ⇒ 退回内容判据,见 publish 的两道闸)。
|
|
100
|
-
* 🔴 工具两臂**不拿它当身份**:那次调用的身份是 `toolCallId`,账本是 `items` 上那张卡。
|
|
101
|
-
* ⚠️ 但两臂**确实读它**(0.62.2 起):它是那张卡逐半的**阶段水位**({@link CardPhase} 的
|
|
102
|
-
* `start` / `end`),回答「这一发比卡上现在承载的那一阶段新还是旧」。缺席是一个值 ——
|
|
103
|
-
* 身份缺席而内容真的变了 ⇒ 那一半的水位被清掉(判不出新旧就诚实地说判不出)。
|
|
104
|
-
* 旧注写的「工具两臂不读这一位」自 0.62.2 起不成立。 */
|
|
105
28
|
eventId?: string | undefined;
|
|
106
29
|
toolCallId?: string | undefined;
|
|
107
30
|
toolName?: string | undefined;
|
|
@@ -109,110 +32,25 @@ export interface SubagentContentEvent {
|
|
|
109
32
|
output?: string | undefined;
|
|
110
33
|
isError?: boolean | undefined;
|
|
111
34
|
}
|
|
112
|
-
/**
|
|
113
|
-
* `tool_end.output` → 本 store 的 `output` 位(**唯一**字符串化口)。
|
|
114
|
-
*
|
|
115
|
-
* 为什么住在这里(#158 移交① / [3674](d) 姊妹病,2026-08-12 搬入):这个函数原本长在
|
|
116
|
-
* `subagent/engineSubagentTail.ts`(tail 腿)里。而喂本 store 的是**两条**腿 —— tail 腿与
|
|
117
|
-
* seam 适配器的 C1 分流臂(`adapter/runStream.ts`)—— C1 那条当时自己写了
|
|
118
|
-
* `typeof sub.output === 'string' ? sub.output : undefined`,于是同一个 wire 形经不同腿进同一个
|
|
119
|
-
* 账本得到两种结果(块数组走 C1 恒空)。字符串化口跟着**它服务的那个位**走,两条腿一律 import
|
|
120
|
-
* 这一份:第二份实现在类型面就没有立足点了。
|
|
121
|
-
* 🔴 住这里的另一个硬理由:tail 腿的传递闭包里有 SDK/host(engineWireSdk 等),而 C1 所在的
|
|
122
|
-
* `runStream.ts` 有一道**可移植性闭包门**(零 Node 内建 / 零 react / 文件数棘轮 ≤7)——
|
|
123
|
-
* 从 tail 腿 import 会当场把整条 wire 依赖拖进内核。本 store 已在那 7 件之内且零 import,
|
|
124
|
-
* 所以搬到这里的代价是 0 个新闭包文件。
|
|
125
|
-
*
|
|
126
|
-
* 语义:`undefined`/`null` ⇒ `undefined`(诚实缺席,不铸空串);`string` ⇒ 原样直通;
|
|
127
|
-
* **§E1 的 `(TextContent|ImageContent)[]` 块数组 ⇒ 规范展平**(text 块贡献 `.text`、image 块贡献
|
|
128
|
-
* 中性占位 `[image]`);其余(server `redactDeep` 之后原型不保的对象形等)⇒ `JSON.stringify`,
|
|
129
|
-
* 序列化失败退 `String(v)`。
|
|
130
|
-
*
|
|
131
|
-
* 🔴 块数组这一支为什么不是 `JSON.stringify`(0.30.0 发包扫描修,2026-08-14):`output` 是**展示位**
|
|
132
|
-
* (投进 {@link planSubagentViewSlots} 的结果栏),而同一个 wire 形在主 lane 走的是
|
|
133
|
-
* `adapt/wireShapes.ts` 的 `flattenWireOutput`(工具卡体 / print 帧 / 面板 settle 三处)。修前这里
|
|
134
|
-
* 出的是 `[{"type":"text","text":"…"}]` 这种机器形 —— 同一份素材主 lane 渲人话、子代查看态渲转义
|
|
135
|
-
* JSON;带 image 块时整段 base64(events.d.ts 的 `totalChars` 注释逐字:image/document = base64 真实
|
|
136
|
-
* 体量)会被原样灌进内容账本并上屏(item 数有 200 上限、**单 item 体量无上限**)。
|
|
137
|
-
* 🔴 为什么这里还有第二份展平实现、而不是 import 那一份:本 store 是 `runStream.ts` 内核可移植闭包
|
|
138
|
-
* (`run-client-core-portability-test.mjs` 的 `MAX_CLOSURE_FILES`,只许降)里的一件,且本文件头注
|
|
139
|
-
* 三处以「dep-free / 零 import」为立身之本;从 `adapt/wireShapes.ts` 拉一条边会同时破这两条。
|
|
140
|
-
* ⇒ 两份实现由 **pure 门 ⑨b 段的等值断言**逐形对拍钉住(字符串 / 纯 text 块 / 含 image 块 / 混合 /
|
|
141
|
-
* 空数组 / 未知块形六形,`coerceOutput(x) === flattenWireOutput(x)` + 逐字面值),任一侧改语义当场红。
|
|
142
|
-
* 动本函数的块数组分支 ⇒ 同批看那条断言。
|
|
143
|
-
*/
|
|
144
35
|
export declare function coerceOutput(v: unknown): string | undefined;
|
|
145
|
-
/**
|
|
146
|
-
* 本账本的**字节预算**。此前只有条数帽(每条子代 ≤ 200 条 item、≤ 32 条子代),而条数帽对
|
|
147
|
-
* 「一条工具结果里的一整个 base64 附件」「一段几 MB 的模型输出」**零判别力** —— 200 条的上限在
|
|
148
|
-
* **单条无上限**的前提下根本不是一个预算,实测面上一个子代槽位吃到十几 MB 常驻是可复现的。
|
|
149
|
-
*
|
|
150
|
-
* 🔴 单位是 **UTF-8 字节**(不是 JS 串长度):账本里装的是引擎送来的文本,而「多少内存 / 多少屏」
|
|
151
|
-
* 这两件事都跟编码后的体量走;按串长度算会让一段 CJK 的真实占用是名义值的三倍。
|
|
152
|
-
* 🔴 缺省值的来历(如实):对标产品的语料里**没有**对应的「子代转录字节预算」可对齐(查过),
|
|
153
|
-
* 所以这两个数不假称是 parity —— 它们来自 web 端探针实测的「单槽十几 MB」这一观测:总帽取
|
|
154
|
-
* 16 MiB(把整本账本按住在那个量级),每子代帽取总帽的 1/8 = 2 MiB(一条子代吃满也留得下
|
|
155
|
-
* 另外七条的位置)。端可以按自己的宿主改配,这两个数只是「不配时不至于无界」。
|
|
156
|
-
*/
|
|
157
36
|
export interface SubagentContentStoreConfig {
|
|
158
|
-
/** 单条子代**保留**的内容字节上限。超出 ⇒ 从最早的内容开始丢,并留一条 `truncated` 记录。 */
|
|
159
37
|
maxBytesPerTask: number;
|
|
160
|
-
/** 整本账本保留的内容字节上限。超出 ⇒ 整条**最久未用**的子代账本被清掉(不是无差别清空)。 */
|
|
161
38
|
maxBytesTotal: number;
|
|
162
39
|
}
|
|
163
|
-
/** 不配时生效的两位(理由见 {@link SubagentContentStoreConfig} 顶注)。 */
|
|
164
40
|
export declare const SUBAGENT_CONTENT_STORE_DEFAULTS: Readonly<SubagentContentStoreConfig>;
|
|
165
|
-
/**
|
|
166
|
-
* 配字节预算(宿主启动时调一次;两位可分开配,只给一位时另一位保持现值)。
|
|
167
|
-
*
|
|
168
|
-
* 🔴 **fail-loud**:0 / 负数 / 非有限数 / 非整数一律 `throw` —— 一个被**静默忽略**的预算配置正是
|
|
169
|
-
* 这本账本要消灭的那类失败(宿主以为配上了,而账本还在按缺省无声地丢或不丢)。
|
|
170
|
-
* 🔴 拒绝是**原子**的:任何一位不合法就整只拒,既有配置一个字节不动(半套配置比不配更坏)。
|
|
171
|
-
*/
|
|
172
41
|
export declare function configureSubagentContentStore(next: Partial<SubagentContentStoreConfig>): void;
|
|
173
|
-
/** 当前生效的两位(**快照**:改返回值不影响账本)。 */
|
|
174
42
|
export declare function subagentContentStoreConfig(): SubagentContentStoreConfig;
|
|
175
|
-
/** 测试钩:把预算复位到缺省。 */
|
|
176
43
|
export declare function __resetSubagentContentStoreConfigForTests(): void;
|
|
177
|
-
/**
|
|
178
|
-
* **内容归账那一半**(`parentToolCallId → taskId`,多对一):把停在 parent 键下的内容迁到 canonical
|
|
179
|
-
* task 键,并让后续内容帧的 `canonicalKey` 解析到 task。**不写** `taskToParent`。
|
|
180
|
-
*
|
|
181
|
-
* 为什么要与 {@link registerSubagentAlias} 分开(#158② 复审收货,2026-08-12):这张表其实承载
|
|
182
|
-
* **两件不同的事**,方向与基数都不同 ——
|
|
183
|
-
* · `parentToTask`:内容归账,**多对一**(同一个子代可能被多次调用宣告:SendMessage 复活会为
|
|
184
|
-
* 同一 taskId 再发一条 `async_launched` 回执,骑的是复活那次调用的 toolCallId);旧键不删,
|
|
185
|
-
* 所以两次宣告的内容都归到同一个 taskId,加一条只会更全。
|
|
186
|
-
* · `taskToParent`:**单值**,而它的读口 {@link parentToolCallIdOf} 是**对外**的 C2 steer 投递
|
|
187
|
-
* 目标(service 按「委派工具调用的 id」路由子代 steer)。这一位的**权威来源是 wire 的内容帧**
|
|
188
|
-
* (`publishSubagentContentEvent` 记在内容态上的 `parentToolCallId`,读口对它做兜底),
|
|
189
|
-
* 一条启动回执**不足以**改写它:复活回执带的是复活调用,拿它盖掉真正的委派调用 = 用户插话
|
|
190
|
-
* 投到错的目标,而「复活后该按哪个 target 投」要 server 语义作证,本包无从判定。
|
|
191
|
-
* ⇒ 回执类喂点只用本函数(只加内容归账,零 steer 面影响);`task_progress` tick 那条喂点两键都带、
|
|
192
|
-
* 且是引擎对「这条 tick 属谁」的当期陈述,继续用 {@link registerSubagentAlias}。
|
|
193
|
-
*/
|
|
194
44
|
export declare function registerSubagentContentAlias(parentToolCallId: string, taskId: string): void;
|
|
195
|
-
/** Register the parentToolCallId ↔ engine-taskId pair (from task_progress, which carries both).
|
|
196
|
-
* Content parked under the parent key migrates to the canonical task key.
|
|
197
|
-
* ⚠️ 这一口**同时**写单值的 `taskToParent`(= 对外 C2 steer 目标,见
|
|
198
|
-
* {@link registerSubagentContentAlias} 头注的两件事分家说明)。只想补内容归账的喂点用那一口。 */
|
|
199
45
|
export declare function registerSubagentAlias(parentToolCallId: string, taskId: string): void;
|
|
200
46
|
export declare function publishSubagentContentEvent(ev: SubagentContentEvent): void;
|
|
201
|
-
/** 查看态 composer echo (C2 steer optimistic display) — segment-closes the buffers first so the echo
|
|
202
|
-
* lands AFTER the text streamed before it. taskId may be unseen (row entered before any content):
|
|
203
|
-
* parentToolCallId may then be unknown — pass '' and the steer path resolves the target separately. */
|
|
204
47
|
export declare function pushSubagentLocalEcho(taskId: string, text: string): void;
|
|
205
48
|
export interface SubagentContentSnapshot {
|
|
206
49
|
items: SubagentContentItem[];
|
|
207
|
-
/** streaming tails not yet segment-closed (render as the live trailing message) */
|
|
208
50
|
textBuf: string;
|
|
209
51
|
thinkBuf: string;
|
|
210
52
|
}
|
|
211
53
|
export declare function getSubagentContentSnapshot(taskId: string): SubagentContentSnapshot | null;
|
|
212
|
-
/**
|
|
213
|
-
* 一个查看态转录槽位。`slot` = 稳定 key(消费端拿去当 message uuid —— 250ms 一次的重组不换 key);
|
|
214
|
-
* `live: true` = 尚未段闭合的流式尾巴(下一次段闭合后由同内容的真 item 接位)。
|
|
215
|
-
*/
|
|
216
54
|
export type SubagentViewSlot = {
|
|
217
55
|
kind: 'text';
|
|
218
56
|
slot: string;
|
|
@@ -227,9 +65,7 @@ export type SubagentViewSlot = {
|
|
|
227
65
|
kind: 'echo';
|
|
228
66
|
slot: string;
|
|
229
67
|
text: string;
|
|
230
|
-
}
|
|
231
|
-
/** 截尾留痕(0.62.0):渲染端渲一行「更早的 N 字节输出已被预算丢弃」类说明。 */
|
|
232
|
-
| {
|
|
68
|
+
} | {
|
|
233
69
|
kind: 'truncated';
|
|
234
70
|
slot: string;
|
|
235
71
|
droppedBytes: number;
|
|
@@ -240,27 +76,15 @@ export type SubagentViewSlot = {
|
|
|
240
76
|
id: string;
|
|
241
77
|
name: string;
|
|
242
78
|
input: unknown;
|
|
243
|
-
/** undefined = tool_start 已到、tool_end 未到(在飞工具:卡先上屏,结果就地补) */
|
|
244
79
|
output?: string;
|
|
245
80
|
isError?: boolean;
|
|
246
81
|
};
|
|
247
|
-
/**
|
|
248
|
-
* 把一个子代的内容账本投影成查看态渲染计划。
|
|
249
|
-
*
|
|
250
|
-
* [1568] 之前的形(壳侧 engineAgentView 里)有两处「等段闭合」:①遇到第一个未闭合工具就 break;
|
|
251
|
-
* ②textBuf/thinkBuf 完全不投影。实测(engine 1.275.0 真跑):数据面 ~23 帧/s 的 delta 连续到壳,
|
|
252
|
-
* 查看态却只在 tool 边界更新(进查看态后 6.0s 全空,之后每 5–15s 才动一次)。现形:在飞工具照投,
|
|
253
|
-
* 流式尾巴作为 live 槽投 —— 屏面粒度 = wire 粒度(store notify 已按 250ms 合并)。
|
|
254
|
-
*/
|
|
255
82
|
export declare function planSubagentViewSlots(taskId: string): SubagentViewSlot[];
|
|
256
|
-
/** C2 steer target: the service routes subagent steer by the delegating tool call's id. */
|
|
257
83
|
export declare function parentToolCallIdOf(taskId: string): string | undefined;
|
|
258
|
-
/** Settle a task's streaming buffers (turn ended / run settled) so the snapshot is complete. */
|
|
259
84
|
export declare function settleSubagentContent(taskId: string): void;
|
|
260
85
|
export declare function clearSubagentContent(taskId: string): void;
|
|
261
86
|
export interface BgTerminalFacts {
|
|
262
87
|
status: string;
|
|
263
|
-
/** 0.74.0 —— 这份终局属于哪个周期(通知带 `seq` 时记;缺席 = 通知没报)。洗绿保护只在同周期内生效。 */
|
|
264
88
|
cycleSeq?: number;
|
|
265
89
|
summary?: string;
|
|
266
90
|
recentSteps?: Array<{
|
|
@@ -270,116 +94,35 @@ export interface BgTerminalFacts {
|
|
|
270
94
|
}>;
|
|
271
95
|
}
|
|
272
96
|
export declare function recordBgTerminalFacts(taskId: string, facts: BgTerminalFacts): void;
|
|
273
|
-
/** 复活清账(#242 批 3 / 0.31.0 扫码 P2):非终态行帧/snapshot 复活 = 新周期开启,旧周期的
|
|
274
|
-
* 终态事实作废 —— 不清账时 factsAccepted 的方向核会拿上周期的 killed/failed 当先例,把
|
|
275
|
-
* 第二周期的合法 completed 整条拒收(status 与 summary 都不入账)。只删本 taskId 键;
|
|
276
|
-
* taskToParent 映射不动(寻址面与事实面分离)。 */
|
|
277
97
|
export declare function clearBgTerminalFacts(taskId: string): void;
|
|
278
98
|
export declare function getBgTerminalFacts(taskId: string): BgTerminalFacts | undefined;
|
|
279
|
-
/** 一行子代的宿主记录。`sessionId` = 登记时刻那条流的会话(per-id 读面要拼 `?session=`)。 */
|
|
280
99
|
export interface SubagentOwnerRecord {
|
|
281
|
-
/** 宿主引擎 run id(resume / subagentOutput / tail 三条读面寻址的第一段)。 */
|
|
282
100
|
runId: string;
|
|
283
|
-
/** 登记时的会话 id;缺席即不带 `?session=`(空串按「带了且不匹配」处理 = 404,恒不铸空串)。 */
|
|
284
101
|
sessionId?: string;
|
|
285
|
-
/**
|
|
286
|
-
* 🔴 design/285 批 2(D7a):登记时那条流所属的**会话槽键**(`installHostFor(key, …)` 的 key)。
|
|
287
|
-
*
|
|
288
|
-
* 为什么记它而不是只记 `sessionId`:读侧要的不只是 `?session=`,还有**打哪台服务器、用谁的
|
|
289
|
-
* token 与 principal** —— 那三件在 `engineWireTargetFor(sessionKey)` 上,按槽装配。只记会话
|
|
290
|
-
* 而 wire target 仍走默认槽 = 「会话对了、凭证是别人的」(D7b),per-key 会话锚只做完一半。
|
|
291
|
-
*
|
|
292
|
-
* 缺席 ⇒ 读侧回落 `DEFAULT_SESSION_KEY`,与 0.44.0 逐字同(见 `resolveOwnerContext`)。
|
|
293
|
-
* 🔴 缺席的**唯一**合法来源是「这一写没有通道证据」:兼容入口 `ledger.applyFrame` 每帧现读槽
|
|
294
|
-
* 会话、库里不留锚,它写进来的行归属不可知,所以两个新位一律不写(与 0.44.0 逐字同)。
|
|
295
|
-
*/
|
|
296
102
|
sessionKey?: string;
|
|
297
103
|
}
|
|
298
|
-
/**
|
|
299
|
-
* 🔴 R6(design/285 §7):同一个 `runId` 上先后被喂进**两个不同**会话时的留痕。
|
|
300
|
-
*
|
|
301
|
-
* 为什么要有:合表后 tick 腿(壳 liveClient 开流时捕获)与 fleet 两腿(ingress 捕获)会写同一条
|
|
302
|
-
* 记录。口径仍是「带值的写照常赢」(last-write-wins),但那不能是**静默**的 —— 两条腿对同一个宿主
|
|
303
|
-
* run 给出不同会话,要么是宿主把两条流的帧喂进了同一本账,要么是某一腿的捕获点写错了,两种都是
|
|
304
|
-
* 承重缺陷。**判据是计数而不是日志**:本 store 是零 import 的内核闭包(见文件头注),而且
|
|
305
|
-
* 「只落日志的告警在测试里等于不存在」(本仓既有裁定,见 `auditRetainWithoutWake` 头注)。
|
|
306
|
-
*/
|
|
307
104
|
export interface SubagentOwnerSessionConflict {
|
|
308
105
|
taskId: string;
|
|
309
106
|
runId: string;
|
|
310
|
-
/** 冲突前记录上的**出身对**(整对记,不是只记会话 —— 换槽键与换会话同样是换出身)。 */
|
|
311
107
|
prior: {
|
|
312
108
|
sessionId?: string;
|
|
313
109
|
sessionKey?: string;
|
|
314
110
|
};
|
|
315
|
-
/** 这一写带来的出身对(它整对赢)。 */
|
|
316
111
|
next: {
|
|
317
112
|
sessionId?: string;
|
|
318
113
|
sessionKey?: string;
|
|
319
114
|
};
|
|
320
115
|
}
|
|
321
|
-
/** R6 读口:`count` = 累计冲突次数(恒应为 0);`last` = 最后一次的四元组(诚实缺席用 undefined)。 */
|
|
322
116
|
export declare function subagentOwnerSessionConflicts(): {
|
|
323
117
|
count: number;
|
|
324
118
|
last?: SubagentOwnerSessionConflict;
|
|
325
119
|
};
|
|
326
|
-
/**
|
|
327
|
-
* fleet 行帧 / bg 通知腿的登记口(既有两写点)。
|
|
328
|
-
* `sessionId` 是 #242 批 2 additive 补位:缺席则不落键(读面据此判「不带 `?session=`」)。
|
|
329
|
-
* `sessionKey` 是 design/285 批 2 additive 补位,同款「缺席则不落键」。
|
|
330
|
-
*
|
|
331
|
-
* 🔴 **两个新位的值必须来自 ingress 的不可变捕获**(`ledger.issueStream()` 那一刻解析一次),
|
|
332
|
-
* **不是**每帧现读某个可变槽 —— 逐帧现读会让重连后旧流的迟到帧被登记成 `{旧 runId, 新会话}`,
|
|
333
|
-
* 正是本文件 `recordSubagentOwnerFromProgress` 头注明令禁止的错组合。ingress 的 epoch 闸让旧代际
|
|
334
|
-
* 的帧根本进不来,这才是「原子」的落点。
|
|
335
|
-
*/
|
|
336
120
|
export declare function recordBgParentRun(taskId: string, runId: string, sessionId?: string, sessionKey?: string): void;
|
|
337
|
-
/**
|
|
338
|
-
* 「这一行子代的宿主 run」统一登记口(**显式传值**,零推断,见本段头注)。
|
|
339
|
-
* `runId` 缺席/空串 ⇒ 什么都不记(宁可「不知道」也不记一个错的宿主);`taskId === runId`
|
|
340
|
-
* 的退化自指映射同样拒收(顶层 run 行不是任何人的子代)。
|
|
341
|
-
*
|
|
342
|
-
* 🔴 **`sessionId` 的缺席不覆盖在场**(合表的承重口径,#242 批 2 自查抓出):喂本表的三条腿里
|
|
343
|
-
* **只有 tick 腿带 session**(它在开流时一次性捕获),fleet 行帧腿与 bg 通知腿都不带。合表前
|
|
344
|
-
* 两表各记各的,合表后若让「后到的无 session 写」直接盖掉整条记录,tick 捕获的会话就会被抹掉,
|
|
345
|
-
* resume 退回「此刻的会话」—— 那正是对抗复审轮5 M1 要防的错组合(旧 runId + 新 sessionId ⇒
|
|
346
|
-
* session-bound run 上 fail-closed 404)。
|
|
347
|
-
* 口径:**同一 `runId` 上缺席不覆盖在场**(带值的写照常赢);`runId` 真变了 ⇒ 旧 session 必须丢
|
|
348
|
-
* (那是另一条宿主 run 的会话,留着就是错组合)。
|
|
349
|
-
*
|
|
350
|
-
* 🔴 **`sessionId` 与 `sessionKey` 是一个「出身对」,整对进出**(design/285 批 2,异源对抗复审
|
|
351
|
-
* [high] 收紧):**这一写带了任一位就整对赢**;**两位都缺席**才走上面那条「缺席不覆盖在场」。
|
|
352
|
-
* 分开 merge(各留各的)会合成一条从来没被同一次捕获产生过的元组 —— 而读侧正是拿这一对去挑
|
|
353
|
-
* 服务器 / 凭证 / 会话,详见函数体里那段头注的两条可达路径。`runId` 变了 ⇒ 整对丢。
|
|
354
|
-
* 🔴 **同 runId 上换出身不静默**(R6):出身对(会话**或**槽键)变了就计 `ownerSessionConflictCount`
|
|
355
|
-
* 并留下两对(读口 {@link subagentOwnerSessionConflicts})。值仍按「带出身的写赢」,变的是它不再无声。
|
|
356
|
-
*/
|
|
357
121
|
export declare function recordSubagentOwner(taskId: string, runId?: string, sessionId?: string, sessionKey?: string): void;
|
|
358
|
-
/**
|
|
359
|
-
* `task_progress` 腿的登记口(#242 批 2 ①:收编前本表**零 task_progress 腿**,已直证)。
|
|
360
|
-
*
|
|
361
|
-
* 一条帧进,认得就记,认不得就什么都不做(**绝不改帧**)。只认 `task_progress` —— 引擎侧子代的
|
|
362
|
-
* 累计 tick,带子代自己的 `taskId`。
|
|
363
|
-
*
|
|
364
|
-
* 🔴 **`ownerRunId` / `ownerSessionId` 必须由调用方显式喂**,本函数**不许**从
|
|
365
|
-
* `activeEngineRunId()` 推断(壳 `subagentOwnerLedger.ts:20-22` 对抗复审轮3 H2 实撞的教训:
|
|
366
|
-
* 进程级值被并发 main/fork 流互相覆写 + 每个 query 的 finally 清空 ⇒ run A 的 tick 可能被
|
|
367
|
-
* 登记到 run B 名下,而错值比缺席更坏)。登记点必须在**持有 stream-local run id 的那个闭包**
|
|
368
|
-
* 里(壳 = `liveClient.ts` 的 `stampSubagentOwners`),把不可变的值传进来。
|
|
369
|
-
* 🔴 `ownerSessionId` 同理**开流时一次性捕获**,不逐帧现读:逐帧现读会让 `/clear`、resume、
|
|
370
|
-
* 会话切换之后晚到的旧流 tick 被登记成 `{旧 runId, 新 sessionId}`,这对组合去 resume 会带着
|
|
371
|
-
* 错 session 打旧 run,fail-closed 404。
|
|
372
|
-
*/
|
|
373
122
|
export declare function recordSubagentOwnerFromProgress(ev: unknown, ownerRunId?: string, ownerSessionId?: string, ownerSessionKey?: string): void;
|
|
374
123
|
export declare function getBgParentRun(taskId: string): string | undefined;
|
|
375
|
-
/**
|
|
376
|
-
* 整条宿主记录(runId + 登记时会话)。undefined = **诚实不知道**,调用方渲 no-run 出路 /
|
|
377
|
-
* 不渲入口 —— 绝不在这里回落成「此刻在飞的那条 run」([anchor-on-the-deciding-quantity])。
|
|
378
|
-
*/
|
|
379
124
|
export declare function getBgParentRunOwner(taskId: string | undefined): SubagentOwnerRecord | undefined;
|
|
380
|
-
/** 测试钩:清宿主台账(module 级单例,同进程多组断言必须能清)。R6 冲突台账一并清。 */
|
|
381
125
|
export declare function __resetSubagentOwnerLedgerForTests(): void;
|
|
382
126
|
export declare function recordOwnEngineRun(runId: string): void;
|
|
383
127
|
export declare function isOwnEngineRun(runId: string): boolean;
|
|
384
|
-
/** Single consumer (the panel hook). Returns an unsubscribe. */
|
|
385
128
|
export declare function subscribeSubagentContent(fn: (taskId: string) => void): () => void;
|