@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,412 +1,100 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ⇄ B3 批搬迁(2026-07-27,多端改造设计稿 §3 B3):cli src/seam/adapter/downstream/terminalToSdkResult.ts
|
|
3
|
-
* **逐字整搬**(闭包实测 4 文件 / 零 Node 内建)。`Date.now()`(elapsedMs)是浏览器原生,原样保留。
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Terminal projector (T22): `done` → CC `SDKResultSuccess`, `failed` →
|
|
7
|
-
* `SDKResultError` (contract 02 §2.10/§2.11; 08 CS-10/CS-11/UC-2).
|
|
8
|
-
*
|
|
9
|
-
* done : result.result ⇐ TaskResult.result; result.model ⇐ TaskResult.model
|
|
10
|
-
* (MF-25 — the served model id, e.g. "deepseek-v4-pro"); stats ⇐
|
|
11
|
-
* flatten(TaskStats); modelUsage ⇐ stats.modelUsage (per-model split).
|
|
12
|
-
* DROP CC stop_reason / duration_api_ms / structured_output /
|
|
13
|
-
* fast_mode_state (contract 02 §2.10).
|
|
14
|
-
* Budget gate is a RESULT branch, not a throw: a `done` whose terminal
|
|
15
|
-
* cause is a failure carrying a budget code still settles as a result
|
|
16
|
-
* (08 CS-10) — surfaced via `terminal.failed.code` upstream, not here.
|
|
17
|
-
* failed : flatten CC's 4 SDKResultError subtypes + errors[] into the single
|
|
18
|
-
* {code, message} pair. A user-cancelled run settles here with
|
|
19
|
-
* code:"cancelled" (08 CS-11).
|
|
20
|
-
* park : done 帧的 `terminal.kind === "paused"`(HITL/plan-review park)在无
|
|
21
|
-
* overlay 消费面(-p / 非 REPL)也走 SDKResultError 臂 —— 绝不投影成
|
|
22
|
-
* 空成功([884]A1,见下方分支注释)。
|
|
23
|
-
*
|
|
24
|
-
* ── 终态分流([909]B1,2026-07-16;core 5.8.0 词表迁移 [2489],2026-08-04;因由形 0.60.0)──────
|
|
25
|
-
* 🔴 **0.60.0(engine ≥7.64.0 / sdk 8.4.0)换判据**:终局不再是并列的八个平面键,而是一条**带标
|
|
26
|
-
* 因由** `result.terminal`(四臂)。本文件一个 `status` 字面都不再比较 —— 读法单源在
|
|
27
|
-
* `runTerminal.readRunTerminal`,它同时认**扁平形**的两个来源(升级前落盘、读盘面逐字回放的历史行;
|
|
28
|
-
* server 自己的 409 拒绝信封),并把四臂之外的词一律归到 `unknown` 臂。分流表因此按**因由臂**排。
|
|
29
|
-
*
|
|
30
|
-
* ✅ **单代读面**(退役批,2026-08-04):core 5.8.0 是 BREAKING 大车(`status:'timeout'` 退役、
|
|
31
|
-
* 四个到限码全部改名),交付时点壳的引擎还捆 core 5.7,故读面曾同时认新旧两代,每处钉一个可 grep
|
|
32
|
-
* 的退役记号 + 一道逐文件逐次的等值登记门。**server 6.0.0 已捆 core 5.8.0 发车** ⇒ 窗口期关闭,
|
|
33
|
-
* 旧码腿(`budget.exceeded`/`budget.precall`/`limit.max_turns`)与 `status:'timeout'` 整臂本批删除
|
|
34
|
-
* (记号与登记门同批清空),读面与写面(limitsWire.ts)重新同为单一新形。旧形不再被认走这件事由
|
|
35
|
-
* `scripts/run-streamjson-timing-honesty-test.mjs` 的四条**退役负控**常驻看守(加回来就红)。
|
|
36
|
-
*
|
|
37
|
-
* terminal.kind code → subtype is_error
|
|
38
|
-
* ────────────────────────────────────────────────────────────────────────────────────────────
|
|
39
|
-
* completed —(结构上写不出码) → 'success' false
|
|
40
|
-
* failed limits.max_cost_exceeded → 'error_max_budget_usd' true
|
|
41
|
-
* failed limits.max_turns_exceeded → 'error_max_turns' true
|
|
42
|
-
* failed limits.max_tokens_exceeded → 'error_during_execution' true
|
|
43
|
-
* (5.8.0 新增,且是**主限**。CC 4 词表里没有 token 预算词 —— error_max_budget_usd
|
|
44
|
-
* 是**美元**账不是 token 账,借用它会让消费者按成本口径读一个 token 口径的停因。
|
|
45
|
-
* ⇒ 诚实兜底词 + errorCode 超集透传辨认;[2489] 明记该终帧「result 带已产出正文」
|
|
46
|
-
* ⇒ 走 salvage 腿,正文不丢。)
|
|
47
|
-
* failed limits.max_walltime_exceeded → 'error_during_execution' true
|
|
48
|
-
* (5.8.0 起墙钟到限的**唯一**形;5.7 的 `status:'timeout'` + `limit.timeout`
|
|
49
|
-
* 是同一个停因的上一代形,server 6.0.0 捆 core 5.8.0 后已随本批整臂删除。
|
|
50
|
-
* 选型理由留档:CC 无 wall-clock deadline 概念。曾选 error_max_turns「唯一
|
|
51
|
-
* run-limit 族词」,[2084]②a 定谳那是帧内自相矛盾(errorCode 是墙钟码而
|
|
52
|
-
* num_turns 远小于上限)且对墙钟停指错旋钮(max-turns 是可恢复失败)⇒ 改诚实
|
|
53
|
-
* 兜底词。真实语义靠 errors[] 文案 + errorCode 透传辨认,不变。)
|
|
54
|
-
* failed output.invalid → 'error_max_structured_output_retries' true
|
|
55
|
-
* failed 其余(含 cancelled/conflict…) → 'error_during_execution' true
|
|
56
|
-
* blocked —(engine 只给 reason) → 'error_during_execution' true
|
|
57
|
-
* paused —(结构上写不出码;扁平形回放的历史 → 'error_during_execution' true([884]A1)
|
|
58
|
-
* 行仍可能带 review.pending) 措辞按门种分「复核 / 交互作答」两句
|
|
59
|
-
* unknown — → 'error_during_execution' true(防御:
|
|
60
|
-
* 非 completed 的终局一律≠空成功;errors[] 里如实报出那个词的字面。**因由座在场
|
|
61
|
-
* 却整个读不出**(坏形/混合载体)也落这一臂,措辞改说「读不出」而不是编一个词)
|
|
62
|
-
* 〈整个缺席〉 — → 'error_during_execution' true(0.72.12 CC-50:
|
|
63
|
-
* (mock 车道 / 不带终态词的旧合成帧;读器返 null) fail-closed 取舍 + `_sema_outcome:'unknown'`;
|
|
64
|
-
* 此前落 'success' = 把「没有终态记录」编成成功;unknown 臂同带该标记)
|
|
65
|
-
*
|
|
66
|
-
* errorCode 透传:引擎的码骑 additive seam 字段 `errorCode`(CC schema 无此字段——与 success 臂的
|
|
67
|
-
* `model` 同款超集姿势),集成面可精确分流(limits.max_tokens_exceeded vs cancelled …)。
|
|
68
|
-
* 🔴 因由形下「码属于失败」是**形状**:paused / blocked 上引擎写不出码 ⇒ 这两臂的 `errorCode`
|
|
69
|
-
* 从 0.60.0 起恒缺席(扁平形回放的历史行仍带得动它)。截断 salvage:写出窗兑现的 r.result(非空)
|
|
70
|
-
* 骑 additive `result` 字段——CC error 帧无 result,但把引擎已救回的最终文本静默丢弃对 -p 消费者
|
|
71
|
-
* 是净损失。
|
|
72
|
-
*
|
|
73
|
-
* 成本取数 = `TaskStats.costMicroUsd`(整数 micro-USD 单轨,SDK 1.0.0 / server 1.319.0 /
|
|
74
|
-
* core 2.0.0 起;legacy float `costUsd` 已删,见 costOrNull 头注)。**零成本不再 ambiguous**
|
|
75
|
-
* (0.65.0 / B-073 ①):显式 `0` = 声明免费、键缺席 = 没定价,两档在 wire 上可分,包边界照实转;
|
|
76
|
-
* 部署级「这台 worker 到底配没配价表」仍可另问 `Capabilities.pricingConfigured`(contract 02
|
|
77
|
-
* §2.10 VERIFY)。本投影器只做单位换算(/1e6)并原样过境。
|
|
78
|
-
*/
|
|
79
1
|
import type { AgentEvent, TaskStats } from '@sema-agent/sdk';
|
|
80
2
|
import { type SDKMessage, type EmitContext } from '../types.js';
|
|
81
3
|
import { type SemaModelUsage } from './turnUsageToModelUsage.js';
|
|
82
|
-
/**
|
|
83
|
-
* CC 的 `NonNullableUsage` 占位形(coreSchemas 里是 `z.unknown()`,这里给它一个名字)
|
|
84
|
-
* + 0.66.0 / D-2 的两位 sema 超集(两位都**只在该说话时在场**,绝不铸 `false` / 假 0)。
|
|
85
|
-
*/
|
|
86
4
|
export interface SemaFlatUsage {
|
|
87
5
|
readonly inputTokens: number;
|
|
88
6
|
readonly outputTokens: number;
|
|
89
7
|
readonly cacheReadInputTokens: number;
|
|
90
8
|
readonly cacheCreationInputTokens: number;
|
|
91
9
|
readonly webSearchRequests: number;
|
|
92
|
-
/**
|
|
93
|
-
* D-2 / L-192② —— 在场且为 `true` ⇒ 同行的 `webSearchRequests: 0` 是「**wire 上没有这本账**」,
|
|
94
|
-
* 不是「这条 run 一次网搜都没做」。core 的 `TaskStats` 面上**没有**这一格(网搜只在散文里出现),
|
|
95
|
-
* 而 CC 的这一格型面是必填 `number` ⇒ 「不知道」只能以判别位在场(与 `_sema_cost_absent`
|
|
96
|
-
* 同一条两键合读纪律)。上游哪天真发这一格,值照读、本位退场(门里有正反两控)。
|
|
97
|
-
*/
|
|
98
10
|
readonly _sema_web_search_requests_absent?: true;
|
|
99
|
-
/**
|
|
100
|
-
* D-2 / L-192② —— `TaskStats.totalInputTokens`:**cache-INCLUSIVE** 的输入总量
|
|
101
|
-
* (core 逐字「the quantity cost is computed from … 'how much context did this task present'」)。
|
|
102
|
-
*
|
|
103
|
-
* 🔴 **为什么另开一格而不是灌进 `inputTokens`**:core RB-457-a(3.0.0 BREAKING)把
|
|
104
|
-
* `promptTokens` 的语义翻成 cache **MISS** 分量,而 CC / Anthropic 的 `input_tokens` 本义
|
|
105
|
-
* 正是 MISS —— 同帧已经另有 `cacheReadInputTokens` / `cacheCreationInputTokens` 两格,把总量
|
|
106
|
-
* 灌进 `inputTokens` 就是 core 逐字点名的那笔双算(「a 98% hit rate surfaced as 49.5%」)。
|
|
107
|
-
* 🔴 **为什么这一位必须长在扁平 usage 上**(与 [2295]「CC 形状不承载非 CC 语义」不矛盾,
|
|
108
|
-
* 差别与 `_sema_cost_absent` 那条同源):per-turn 那一面有**逐字通道**
|
|
109
|
-
* (`EngineTurnUsage` / chrome `last_turn_usage.engineUsage`),镜像不必长第二个座位;而
|
|
110
|
-
* **终帧这一面没有任何别的载体** —— 不给座位,这条 run 到底摆了多少上下文在终帧上就问不出来。
|
|
111
|
-
* 缺席 = wire 没报(老引擎 / 网关没报 usage),**绝不**拿 `promptTokens` 冒充总量。
|
|
112
|
-
*/
|
|
113
11
|
readonly _sema_total_input_tokens?: number;
|
|
114
|
-
/**
|
|
115
|
-
* D-2 族扫(0.66.0;异源对抗复审 [medium])—— `TaskStats.cacheWriteTokensLong`:**1 小时 TTL**
|
|
116
|
-
* 那一档的缓存写入分量。缺席 = wire 没报;显式 `0` 是**读数**(core 逐字「0 unless 1h caching
|
|
117
|
-
* is in use」),不是缺席。
|
|
118
|
-
* 🔴 **刻意不求和进 `cacheCreationInputTokens`**:core 对这两格的说法互相矛盾 ——
|
|
119
|
-
* `cacheWriteTokens` 自述是「Anthropic `cache_creation_input_tokens`」(协议侧那个量本就含 1h
|
|
120
|
-
* 子项),而 `totalInputTokens` 的求和式又把两格**并列相加**(那要求它们互不重叠)。相加与不加
|
|
121
|
-
* 各有一种错法,证据不足**不猜**:CC 那一格逐字保持 `cacheWriteTokens`(既有值一字不动),长 TTL
|
|
122
|
-
* 分量原样另给,对账由消费方按两个数自己做。上游澄清后再定(登记见 INTEGRATION §31d)。
|
|
123
|
-
*/
|
|
124
12
|
readonly _sema_cache_write_tokens_long?: number;
|
|
125
13
|
}
|
|
126
|
-
/**
|
|
127
|
-
* **这一条流**的收口快照(per-stream 的按次入参,绝不挂在调用方可复用的 `EmitContext` 上)。
|
|
128
|
-
* 每一格缺席 ⇒ 这次投影没有对应的流内面,只读终帧 `stats` 那一半。
|
|
129
|
-
*/
|
|
130
14
|
export interface TerminalStreamObserved {
|
|
131
15
|
readonly usageMissingObserved?: boolean;
|
|
132
16
|
readonly nestedUsageByTask?: ReadonlyMap<string, MutableSubagentUsageRow>;
|
|
133
|
-
/**
|
|
134
|
-
* 0.73.4 —— 本流见过的 `tool_start` 帧:`toolCallId → args`(帧上那只对象的**同一个引用**,不复制)。
|
|
135
|
-
* 拒绝账本行给不出入参对象,而被拒那次调用的入参已经在同一条流上;终帧铸拒绝行时按 id join
|
|
136
|
-
* (判据见 {@link joinableToolInput})。同一个 id 出现过两份不同入参的,收集方必须**不放进来**。
|
|
137
|
-
*/
|
|
138
17
|
readonly toolInputByCallId?: ReadonlyMap<string, unknown>;
|
|
139
18
|
}
|
|
140
|
-
/** 本流 `toolCallId → args` 快照的条数上限;溢出的调用不记 ⇒ 那一行 join 不上,留在 sema 载体(诚实缺席)。 */
|
|
141
19
|
export declare const TOOL_INPUT_JOIN_MAX_CALLS = 4096;
|
|
142
|
-
/**
|
|
143
|
-
* D-1 / L-192①(0.66.0)—— 一条被拒记录的**全可选**形:CC `SDKPermissionDenial`
|
|
144
|
-
* (agent-types `permissions.d.ts`,真形 `{tool_name: string; tool_use_id: string;
|
|
145
|
-
* tool_input: Record<string, unknown>}` **三键必填**)的三键 + 一位 sema 超集,**每一键都按
|
|
146
|
-
* wire 能不能兑现决定在不在**。
|
|
147
|
-
*
|
|
148
|
-
* 🔴 **三键里兑现得出两键**(引擎 ≥7.23.0):这本账在 wire 上是 `TaskStats.humanReview.gates[]`,core
|
|
149
|
-
* 的 gate 行是具名 `HumanReviewGateRow` 六格(`kind` / `waitMs` / `decision?` / `toolName?` /
|
|
150
|
-
* `toolArg?` / `toolCallId?`,`task-result.d.ts` 真字节)。`toolCallId` 是**行身份**(core 逐字:
|
|
151
|
-
* 「absent = not joinable … Never a placeholder」—— 缺席 = 铸点没有调用 id 可给:探针行 / 非
|
|
152
|
-
* tool_approval 的耐久门 / 老引擎;**不是**「没有调用」)。被拒时的**入参对象**账本上**没有**
|
|
153
|
-
* (sdk `types.d.ts` 同一格逐字记着「`tool_input`/`toolInput` **不在** gate ledger 上」)。⇒ 第三键的
|
|
154
|
-
* 来源是**同一条流的 `tool_start` 帧**(0.73.4;按 `toolCallId` join,判据见 {@link joinableToolInput});
|
|
155
|
-
* join 不上 ⇒ 那一键**缺席**,绝不铸 `{}`:一个空对象在 CC 形上读起来是「这次调用的入参是空的」,那是编的。
|
|
156
|
-
* 🔴 **两键都声明在这里**(不是假 affordance):mint 点对它们是**开集宽读** —— `toolCallId` 在
|
|
157
|
-
* 7.23.0 串上账本那天 `tool_use_id` 就**自动**开始带值(见 {@link permissionDenialParts} 的自动
|
|
158
|
-
* 升级腿,门里钉着 7.23.0 的真字节正控);账本上的 `toolInput` 仍等上游(哪天串上,它恒优先于流内
|
|
159
|
-
* join 的那份)。消费端读它们**必须按可选位读**(老引擎 / 不可 join 的行两键缺席)。
|
|
160
|
-
* 🔴 `_sema_tool_arg` = core 已经**脱敏并截短**的一行入参摘要(`primaryActivityArg` 同一道口),
|
|
161
|
-
* 它是 CC「denied: Bash(rm …)」那行显示唯一拿得到的材料。UNTRUSTED-for-display:只渲染,
|
|
162
|
-
* 绝不回喂模型、绝不当鉴权判据。
|
|
163
|
-
*/
|
|
164
20
|
export interface SemaPermissionDenial {
|
|
165
|
-
/** 被拒的工具名(⇐ `gates[].toolName`);wire 没报 ⇒ 键缺席,绝不编一个名字。 */
|
|
166
21
|
readonly tool_name?: string;
|
|
167
|
-
/** 被拒的**那一次调用**(⇐ `gates[].toolCallId`,引擎 ≥7.23.0 带;缺席 = 不可 join,不是没有调用)。 */
|
|
168
22
|
readonly tool_use_id?: string;
|
|
169
|
-
/** 被拒调用的**完整入参**(⇐ `gates[].toolInput`,今天 wire 上没有 ⇒ 恒缺席;非对象一律不铸)。 */
|
|
170
23
|
readonly tool_input?: Record<string, unknown>;
|
|
171
|
-
/**
|
|
172
|
-
* 0.73.4 —— `tool_input` 的来源位,**只在**它来自同一条流的 `tool_start` 帧时在场(账本自己带的那份不铸本位)。
|
|
173
|
-
* 读法:在场 = 这只对象是流内帧上的入参(审批人改写过入参的调用,帧上是改写后的那份)。
|
|
174
|
-
*/
|
|
175
24
|
readonly _sema_tool_input_source?: 'tool_start';
|
|
176
|
-
/** 被拒调用的一行入参摘要(⇐ `gates[].toolArg`,core 侧已脱敏截短);缺席 = 这条腿没串入参。 */
|
|
177
25
|
readonly _sema_tool_arg?: string;
|
|
178
26
|
}
|
|
179
|
-
/**
|
|
180
|
-
* D-3 / B-068 · L-198(0.66.0)—— core `TaskStats.costBreakdown`(`task-result.d.ts` 的
|
|
181
|
-
* finance taxonomy)的**窄读投影**,单位 = **micro-USD 原值**(键名即单位,包不折 USD:
|
|
182
|
-
* 折一次就多一次浮点漂移,而这一面正是账单面)。
|
|
183
|
-
*
|
|
184
|
-
* 每一格都是**可选**的:读不出的键不铸(绝不补 0 —— core 明说 unpriced 时整段与 `costMicroUsd`
|
|
185
|
-
* 一起省略,而一个补出来的 0 在账单面上就是一句「这一段没花钱」的假话)。**开集**:core 往这段
|
|
186
|
-
* 里加新类目时原样过境(sdk 的型面是 `costBreakdown?: unknown`,词表属主在 core)。
|
|
187
|
-
*/
|
|
188
27
|
export interface SemaCostBreakdown {
|
|
189
|
-
/** 根 agent 的 LLM 花费 = `costMicroUsd − compactionMicroUsd`(**不减 nested**)。 */
|
|
190
28
|
readonly llmRootMicroUsd?: number;
|
|
191
|
-
/** 委派子代的 LLM 花费 = `nested?.costMicroUsd ?? 0`;它**在 `costMicroUsd` 之外**。 */
|
|
192
29
|
readonly nestedSubagentMicroUsd?: number;
|
|
193
30
|
readonly memoryConsolidationMicroUsd?: number;
|
|
194
31
|
readonly suggestionsMicroUsd?: number;
|
|
195
|
-
/** 任务内压缩的 LLM 花费 —— 它**在 `costMicroUsd` 里面**(所以从 root 里减掉)。 */
|
|
196
32
|
readonly compactionMicroUsd?: number;
|
|
197
|
-
/** 开集:core 新加的类目原样过境(消费方 switch 必须带 default)。 */
|
|
198
33
|
readonly [k: string]: number | undefined;
|
|
199
34
|
}
|
|
200
|
-
/**
|
|
201
|
-
* D-3 —— core `NestedUsage`(`tool-spec.d.ts`)的窄读投影:这条 run **委派出去**的那本账。
|
|
202
|
-
* 🔴 `costMicroUsd` **缺席 = 委派花费没定价**(core 逐字 `ABSENT when the delegated spend was
|
|
203
|
-
* unpriced (RB-368) — never a fabricated 0`)⇒ 键缺席,绝不铸 0。
|
|
204
|
-
*/
|
|
205
35
|
export interface SemaNestedUsage {
|
|
206
36
|
readonly tokens?: number;
|
|
207
37
|
readonly turns?: number;
|
|
208
38
|
readonly tasks?: number;
|
|
209
39
|
readonly costMicroUsd?: number;
|
|
210
40
|
}
|
|
211
|
-
/**
|
|
212
|
-
* D-3 —— 终局**对账三段 + 两个判别位**。这正是 chrome 臂 `run_cost_reconciled` 的载荷本体:
|
|
213
|
-
* 两面共用**同一个**读器,所以「终帧超集键」与「chrome 对账臂」永远不会各算各的
|
|
214
|
-
* ([paired-mechanisms-must-share-premise])。
|
|
215
|
-
*
|
|
216
|
-
* core 的两条对账式(`task-result.d.ts` 逐字):
|
|
217
|
-
* · `llmRootMicroUsd + compactionMicroUsd === costMicroUsd`(压缩在 own 里面);
|
|
218
|
-
* · fully-reconciled spend = `costMicroUsd + nested.costMicroUsd`(子代在 own **外面**)。
|
|
219
|
-
* 🔴 本包**不当第二个会计**:三段照实过境,不改数、不补差;`reconciledMicroUsd` 只在**两段都
|
|
220
|
-
* 读得出**时才铸 —— 少了任何一边,总额就是不知道,而「不知道」只能以判别位在场。
|
|
221
|
-
*/
|
|
222
41
|
export interface RunCostReconcile {
|
|
223
|
-
/** 本任务 own 花费(⇐ `costMicroUsd`),**不含**子代。缺席 ⇒ 没定价,见 `costAbsent`。 */
|
|
224
42
|
readonly ownMicroUsd?: number;
|
|
225
|
-
/** 委派子代花费(⇐ `nested.costMicroUsd`)。缺席 ⇒ 没委派、或委派花费没定价(见判别位)。 */
|
|
226
43
|
readonly nestedMicroUsd?: number;
|
|
227
|
-
/** 任务内压缩花费(⇐ `costBreakdown.compactionMicroUsd`);它已含在 `ownMicroUsd` 里。 */
|
|
228
44
|
readonly compactionMicroUsd?: number;
|
|
229
|
-
/** 根 agent 花费(⇐ `costBreakdown.llmRootMicroUsd`);`own − compaction`。 */
|
|
230
45
|
readonly llmRootMicroUsd?: number;
|
|
231
|
-
/** `own + nested` —— core 逐字的 fully-reconciled spend;**任一段不知道就不铸**。 */
|
|
232
46
|
readonly reconciledMicroUsd?: number;
|
|
233
|
-
/** `true` ⇒ own 花费**没定价**(不是 0)。绝不铸 `false`。 */
|
|
234
47
|
readonly costAbsent?: true;
|
|
235
|
-
/** `true` ⇒ 委派过,但那本账**没定价**(不是 0)。绝不铸 `false`。 */
|
|
236
48
|
readonly nestedCostAbsent?: true;
|
|
237
|
-
/**
|
|
238
|
-
* 0.67.0(core 7.14.0 `TaskResult.stats.usageMissing`)—— `true` ⇒ 这条 run 上**至少有一轮**
|
|
239
|
-
* 没报 usage,所以本对账里的每一个数字(以及终帧 `usage` / `modelUsage` / `_sema_nested_usage`
|
|
240
|
-
* 的每一个 token 数)都是**下界**,不是一笔已知的账。
|
|
241
|
-
*
|
|
242
|
-
* 🔴 **`tokens: 0` 在这一位在场时读作「不知道」,不是「免费」**(core 合同逐字)。
|
|
243
|
-
* 🔴 **never false**:core 只在真缺 usage 时铸 `true`,缺席 ⇔ 每一轮都报了 usage ⇒ 本包同律
|
|
244
|
-
* **缺席不铸**(铸一个 `false` 就是替引擎说「我全都数到了」)。
|
|
245
|
-
* ⚠️ 它**与成本位正交**:`costAbsent` 说的是「没定价」,本位说的是「数得不全」——
|
|
246
|
-
* 一笔定了价、但少数了几轮的账,两位可以同时在场,渲染面要分别说。
|
|
247
|
-
*/
|
|
248
49
|
readonly usageLowerBound?: true;
|
|
249
50
|
}
|
|
250
|
-
/** {@link readRunCostFacts} 的产物:两面(终帧超集键 / chrome 对账臂)各取所需。 */
|
|
251
51
|
export interface RunCostFacts {
|
|
252
|
-
/** 终帧 `_sema_cost_breakdown` 的值;一个键都读不出 ⇒ `undefined`(不铸空对象)。 */
|
|
253
52
|
readonly breakdown?: SemaCostBreakdown;
|
|
254
|
-
/** 终帧 `_sema_nested_usage` 的值;同上。 */
|
|
255
53
|
readonly nested?: SemaNestedUsage;
|
|
256
|
-
/** chrome 臂 `run_cost_reconciled` 的载荷本体。 */
|
|
257
54
|
readonly reconcile: RunCostReconcile;
|
|
258
55
|
}
|
|
259
|
-
/**
|
|
260
|
-
* D-3 / B-068 · L-198 —— 终局成本事实的**唯一读器**(终帧超集键与 chrome 对账臂共用)。
|
|
261
|
-
*
|
|
262
|
-
* 🔴 `stats` 不是可读对象(409 拒绝信封 / park 体 / `failed` 事件帧)⇒ 返 `undefined` =
|
|
263
|
-
* **这条帧没有账**,调用方据此「不说话」(不发臂、不铸键),而不是发一条全缺席的空账。
|
|
264
|
-
*
|
|
265
|
-
* 🔴 **第二参 `observed`(0.67.1 / B-091,additive)**:**这一条流**的流内观测快照。给了它,对账段上的
|
|
266
|
-
* {@link RunCostReconcile.usageLowerBound} 就是**取并后**的读数(见 {@link usageLowerBoundOf});
|
|
267
|
-
* 不给(旧签名)⇒ 只读 `stats` 那一半,既有端逐位不变。
|
|
268
|
-
* ⚠️ 包内的两个调用点(`costFactParts` 与 `runStream` 的 `run_cost_reconciled` 铸点)**都必须**
|
|
269
|
-
* 传它 —— 少传一处就是把本件修的那条不对称原样种回去。
|
|
270
|
-
* 🔴 0.67.2 / 车 I 件 I-1:它是**按次调用的入参**,不再是 `EmitContext` 上的一格 —— 共享 ctx 被复用
|
|
271
|
-
* 给多条流时,那一格会把别的流的缺口串进这一条(见 {@link usageLowerBoundOf} 的第三段 🔴)。
|
|
272
|
-
*/
|
|
273
56
|
export declare function readRunCostFacts(stats: TaskStats | undefined, observed?: {
|
|
274
57
|
readonly usageMissingObserved?: boolean;
|
|
275
58
|
}): RunCostFacts | undefined;
|
|
276
|
-
/**
|
|
277
|
-
* L-228(0.67.0)—— 一只子任务在**这条流上被看见的**那本账(`_sema_nested_usage_by_task` 的行形)。
|
|
278
|
-
*
|
|
279
|
-
* 🔴 **它是流内累加的产物,不是引擎报的一个字段**:core 终局只有合计 `stats.nested`
|
|
280
|
-
* (`{tokens, turns, tasks, costMicroUsd}`),**没有 per-task 分项**(`task-result.d.ts` #594-660 亲验)。
|
|
281
|
-
* ⇒ 这几个数的唯一来源是子流 `turn_end` 的逐轮累加,而「这条流看见了多少」与「这条 run 一共有多少」
|
|
282
|
-
* 可以不相等 —— 那正是 {@link SemaNestedUsageByTask.partial} 存在的理由。
|
|
283
|
-
* 🔴 **没有 `costMicroUsd`**:`turn_end.usage` 上没有钱这一格(定价在终局做),编一个出来就是造账。
|
|
284
|
-
*/
|
|
285
59
|
export interface SemaSubagentUsageRow {
|
|
286
|
-
/** 这条流上看见的该子任务 `turn_end` 条数(**不是** core 的 `nested.turns`,见顶注)。 */
|
|
287
60
|
readonly turns: number;
|
|
288
|
-
/** 逐轮 `inputTokens` 求和。`usageMissing` 在场时它是**下界**。 */
|
|
289
61
|
readonly inputTokens: number;
|
|
290
|
-
/** 逐轮 `outputTokens` 求和。同上。 */
|
|
291
62
|
readonly outputTokens: number;
|
|
292
|
-
/** 逐轮 `cacheReadTokens` 求和;一轮都没报过 ⇒ **键不在**(绝不铸 0 冒充「零命中」)。 */
|
|
293
63
|
readonly cacheReadTokens?: number;
|
|
294
|
-
/** `true` ⇒ 这只子任务**至少有一轮**没报 usage,本行三个数是**下界**。never false。 */
|
|
295
64
|
readonly usageMissing?: true;
|
|
296
|
-
/**
|
|
297
|
-
* 0.67.2(车 I 件 I-2)—— `true` ⇒ **这一行是两个身份命名空间的同字面碰撞合并出来的**:
|
|
298
|
-
* 一半轮次的行键来自真身份 `sourceTaskId`、另一半来自回落的 `parentToolCallId`,而两者的**字面相等**。
|
|
299
|
-
* 本层没有任何读数能把它们拆回去(core 的合同不保证两个命名空间互斥),所以这一行的数字是**几只
|
|
300
|
-
* 子任务混在一起**的和。⇒ 这一位在场时**必然**伴随 `_sema_nested_usage_by_task_partial`,消费方
|
|
301
|
-
* 不许把本行当成某一只子代的账去渲。**never false**(缺席 = 这一行的每一轮都来自同一个命名空间)。
|
|
302
|
-
*/
|
|
303
65
|
readonly keyCollision?: true;
|
|
304
66
|
}
|
|
305
|
-
/** {@link SemaSubagentUsageRow} 的累加中间态(runStream 持有;`readonly` 在收口那一拍才加)。 */
|
|
306
67
|
export interface MutableSubagentUsageRow {
|
|
307
|
-
/**
|
|
308
|
-
* 0.67.2(车 I 件 I-2)—— **交付面的裸 id**(`sourceTaskId`,缺席时是回落的 `parentToolCallId`)。
|
|
309
|
-
* 🔴 累加表的**键**从 0.67.2 起带出身前缀(`s:` / `p:`,见 `runStream` 的 `rowKey`),因为两个身份
|
|
310
|
-
* 命名空间的字面可以相等、并在累加那一层就把两只子任务并掉(并掉之后出身位只剩一种,「出身混合」
|
|
311
|
-
* 那道闸读不出混合);交付面的键仍然必须是**裸 id**(端零改),所以原值存在行上,前缀不出本层。
|
|
312
|
-
*/
|
|
313
68
|
taskId: string;
|
|
314
69
|
turns: number;
|
|
315
70
|
inputTokens: number;
|
|
316
71
|
outputTokens: number;
|
|
317
72
|
cacheReadTokens?: number;
|
|
318
73
|
usageMissing?: true;
|
|
319
|
-
/**
|
|
320
|
-
* 0.67.1(异源复审 [medium] 实抓)—— **这一行的键是回落来的**(`parentToolCallId`),不是真身份
|
|
321
|
-
* `sourceTaskId`。**只进 `partial` 的判据,不进交付行**({@link SemaSubagentUsageRow} 上没有这一位:
|
|
322
|
-
* 它是本层的对账中间量,不是一条要过 wire 的事实)。
|
|
323
|
-
* 🔴 为什么非记不可:B-090 放宽入表条件之后,一条流上的行键**可以有两种出身**。混合出身时
|
|
324
|
-
* **同一只**子任务可以同时占两行(一轮走回落键、一轮走真身份),而另外两只子任务又可能并进同一个
|
|
325
|
-
* 回落行 —— 一次**拆行**与一次**合行**的计数误差方向相反,于是「行数 === `nested.tasks` **且**
|
|
326
|
-
* turns 之和 === `nested.turns`」两条对账**同时成立**,一张归属错误的表被标成「可证完整」。
|
|
327
|
-
* ⇒ 出身混合时 {@link SemaNestedUsageByTask.partial} **恒立**(见 `nestedUsageByTaskParts`)。
|
|
328
|
-
*/
|
|
329
74
|
keyFromParentFallback?: true;
|
|
330
75
|
}
|
|
331
|
-
/**
|
|
332
|
-
* 子代用量面的**下界判别位键名**(`_sema_subagent_usage_partial`)。
|
|
333
|
-
*
|
|
334
|
-
* 🔴 它与终帧的 `_sema_usage_lower_bound` **刻意不同名**(见上段):两者答的是两个问题,
|
|
335
|
-
* 一个消费面同时拿到两者时必须分得出来。
|
|
336
|
-
* 🔴 本包**不在任何 wire 帧上铸它** —— 它是**渲染面**的位(端把一行子代用量交给自己的视图时用)。
|
|
337
|
-
* 包给名与判据,是为了三端零自拼(同 `gateIdentity` 的三条身份键字面同一条纪律)。
|
|
338
|
-
*/
|
|
339
76
|
export declare const SEMA_SUBAGENT_USAGE_PARTIAL_KEY = "_sema_subagent_usage_partial";
|
|
340
|
-
/**
|
|
341
|
-
* 一行子代用量的数字**是不是下界**({@link SEMA_SUBAGENT_USAGE_PARTIAL_KEY} 该不该立)。
|
|
342
|
-
*
|
|
343
|
-
* 三个来源**取并**,每一条都能独立让这一行的数字不是最终数:
|
|
344
|
-
* · `row.usageMissing` —— 这只子代**至少有一轮**引擎没报账(数字照累加,但它是下界);
|
|
345
|
-
* · `row.keyCollision` —— 两个命名空间的 id 撞了字面,这一行是**几只子代的账并起来的**;
|
|
346
|
-
* · `opts.tablePartial` —— 整张表对不上引擎的权威合计(`_sema_nested_usage_by_task_partial`)⇒
|
|
347
|
-
* 表里**每一行**都不可证完整。
|
|
348
|
-
*
|
|
349
|
-
* 🔴 **`false` 不是「这一行是最终数」的证据**:它只说「本端没有任何一条理由认为它是下界」。
|
|
350
|
-
* 行本身还没收口(端自己的 store 知道,包不知道)时,端要自己把那一条并进来 —— 所以这只谓词
|
|
351
|
-
* 收一个 `opts`,而不是假装它掌握全部真相。
|
|
352
|
-
* 🔴 非对象 / 缺席入参 ⇒ `false`(答不出,不是断言);坏形位(非 `true` 的值)不当真。
|
|
353
|
-
*/
|
|
354
77
|
export declare function subagentUsageIsPartial(row: {
|
|
355
78
|
readonly usageMissing?: unknown;
|
|
356
79
|
readonly keyCollision?: unknown;
|
|
357
80
|
} | null | undefined, opts?: {
|
|
358
81
|
readonly tablePartial?: boolean;
|
|
359
82
|
}): boolean;
|
|
360
|
-
/** 终帧两个超集键的产物形(见 {@link nestedUsageByTaskParts})。 */
|
|
361
83
|
export interface SemaNestedUsageByTask {
|
|
362
84
|
readonly rows: Readonly<Record<string, SemaSubagentUsageRow>>;
|
|
363
|
-
/** 见 `_sema_nested_usage_by_task_partial`。 */
|
|
364
85
|
readonly partial: boolean;
|
|
365
86
|
}
|
|
366
|
-
/**
|
|
367
|
-
* D-2 族扫(0.66.0;异源对抗复审 [medium])—— **终局** per-model 行的 sema 超集位。
|
|
368
|
-
*
|
|
369
|
-
* 🔴 为什么只长在终局这一面:per-turn 那一面有**逐字通道**(`EngineTurnUsage` /
|
|
370
|
-
* chrome `last_turn_usage.engineUsage`,整对象原形过境),镜像不必长第二个座位([2295] 裁 ②);
|
|
371
|
-
* 而**终局的 per-model 分表没有任何逐字通道** —— 不给座位,多模型部署下「哪个模型摆了多少上下文 /
|
|
372
|
-
* 那一行的分量口径可不可信」在终帧上就问不出来。故本形只由 `mapModelUsage` / `modelUsageFor`
|
|
373
|
-
* (两条终局腿)加挂,`toCcModelUsage` 那个共用 mint 点一个字不动。
|
|
374
|
-
*/
|
|
375
87
|
export interface SemaTerminalModelUsage extends SemaModelUsage {
|
|
376
|
-
/** ⇐ 行上的 `totalInputTokens`(cache-INCLUSIVE 总量);缺席 = 这一行没报。 */
|
|
377
88
|
readonly _sema_total_input_tokens?: number;
|
|
378
|
-
/**
|
|
379
|
-
* ⇐ 行上的 `usageBasis` —— **口径版本标记**(sdk 逐字:`"uncached-components-v1"` = 三个输入
|
|
380
|
-
* 分量键互不重叠;缺席 = 口径不可保证,可能是存量行、也可能是跨阶段混窗聚合)。**开集串**:
|
|
381
|
-
* 原样过境,消费方 `switch` 必须带 `default`;🔴 **缺席不许倒推口径**(sdk 明令)。
|
|
382
|
-
*/
|
|
383
89
|
readonly _sema_usage_basis?: string;
|
|
384
|
-
/** ⇐ 行上的 `cacheWriteTokensLong`;语义与不求和的理由见 `SemaFlatUsage` 的同名位。 */
|
|
385
90
|
readonly _sema_cache_write_tokens_long?: number;
|
|
386
91
|
}
|
|
387
|
-
/** `done` → SDKResultSuccess (contract 02 §2.10 / 08 CS-10). */
|
|
388
92
|
export declare function doneToSdkResult(ev: Extract<AgentEvent, {
|
|
389
93
|
type: 'done';
|
|
390
|
-
}>, ctx: EmitContext,
|
|
391
|
-
/**
|
|
392
|
-
* 0.67.2:**这一条流**的收口快照 —— usage 缺口观测(见 {@link usageLowerBoundOf})与 per-subagent
|
|
393
|
-
* 累加表(见 {@link nestedUsageByTaskParts})。两格都是 per-stream 的事实,缺席 ⇒ 这次投影没有流内面
|
|
394
|
-
* (只读 `stats` 那一半、两个分表键都不铸),**绝不**回头去读调用方对象上可能残留的上一条流。
|
|
395
|
-
*/
|
|
396
|
-
observed?: TerminalStreamObserved): SDKMessage;
|
|
397
|
-
/** `failed` → SDKResultError (contract 02 §2.11 / 08 CS-11). */
|
|
94
|
+
}>, ctx: EmitContext, observed?: TerminalStreamObserved): SDKMessage;
|
|
398
95
|
export declare function failedToSdkResult(ev: Extract<AgentEvent, {
|
|
399
96
|
type: 'failed';
|
|
400
|
-
}>, ctx: EmitContext,
|
|
401
|
-
/** 0.67.2:同 {@link doneToSdkResult} 的第三参。 */
|
|
402
|
-
observed?: TerminalStreamObserved): SDKMessage;
|
|
403
|
-
/**
|
|
404
|
-
* Dispatch a terminal AgentEvent to its SDKResult arm.
|
|
405
|
-
*
|
|
406
|
-
* 🔴 第三参(0.67.2 / 车 I 件 I-1):**这一条流**的 usage 观测快照。`runStream` 在终帧那一拍**按值**
|
|
407
|
-
* 交给它与 `run_cost_reconciled` 铸臂 —— 两个投影口读的是**同一份本流快照**,而不是一个可能被别的流
|
|
408
|
-
* 写过的共享位。缺席(端直调)⇒ 与 0.67.1 的旧签名逐位同行为。
|
|
409
|
-
*/
|
|
97
|
+
}>, ctx: EmitContext, observed?: TerminalStreamObserved): SDKMessage;
|
|
410
98
|
export declare function terminalToSdkResult(ev: Extract<AgentEvent, {
|
|
411
99
|
type: 'done';
|
|
412
100
|
} | {
|