@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
package/dist/adapt.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
// 本文件只剩台账 import/export 那四个方法要用的四个口;15 条臂的全部依赖已随臂表落 adapt/arms.ts。
|
|
2
1
|
import { isEngineWorkflowNotified, isWorkflowCompletionCardEnqueued, listNotifiedRuns, listWorkflowCompletionCardsEnqueued, markEngineWorkflowNotified, noteWorkflowCompletionCardEnqueued, parseTranscriptNotificationSeeds, } from './notifications.js';
|
|
3
|
-
/**
|
|
4
|
-
* ── A 族拆分(REF-CC-SPLIT-01,2026-08-02)—— 帧形词表与双平面共用件已落 `src/adapt/` ─────────
|
|
5
|
-
* 本文件从此只留:公面契约表(coverage/divergences/ledger 形)+ 适配器实例(台账)+ **驱动壳**。
|
|
6
|
-
* 词表与纯助手在 `adapt/wireShapes.ts`,双平面包装与 id 派生在 `adapt/ids.ts`。
|
|
7
|
-
* 🔴 公面用**具名再导出**(不是 `export *`):`TASK_TOOL_NAMES` / `decisionOf` 是内部件,
|
|
8
|
-
* `export *` 会把它们推上 npm 公面,public-export-baseline 双向门当场红。
|
|
9
|
-
*/
|
|
10
2
|
export { CANCEL_MESSAGE, estimateCjkTokens, flattenWireOutput, FLUSH_INTERVAL_MS, IDLE_FLUSH_MS, REJECT_MESSAGE, sanitizeToolUseBlock, shortTaskLabel, SUBAGENT_TOOL_NAMES, WORKFLOW_TOOL_NAMES, } from './adapt/wireShapes.js';
|
|
11
3
|
import { IDLE_FLUSH_MS } from './adapt/wireShapes.js';
|
|
12
4
|
import { chrome, mainLane, makeIdOf } from './adapt/ids.js';
|
|
@@ -16,9 +8,7 @@ import { createPanelTaskLedger } from './adapt/panelTasks.js';
|
|
|
16
8
|
import { createAdapterInstanceLedger } from './adapt/instanceLedger.js';
|
|
17
9
|
import { createTurnFlags } from './adapt/turnFlags.js';
|
|
18
10
|
import { ARMS } from './adapt/arms.js';
|
|
19
|
-
/** 本批覆盖清单——差分守卫按它区分「已覆盖臂必须逐字段等价」与「已声明未覆盖臂」。 */
|
|
20
11
|
export const ADAPTER_COVERAGE = {
|
|
21
|
-
/** 已落码的帧臂。 */
|
|
22
12
|
frames: [
|
|
23
13
|
'assistant',
|
|
24
14
|
'user',
|
|
@@ -31,28 +21,15 @@ export const ADAPTER_COVERAGE = {
|
|
|
31
21
|
'diagnostics',
|
|
32
22
|
'steering_injected',
|
|
33
23
|
'workspace_changed',
|
|
34
|
-
// FIX⑦(2026-08-07):`human_input` 账本帧 —— 投 chrome 记账,**不铸 transcript 行**(不带正文)。
|
|
35
24
|
'human_input',
|
|
36
|
-
// B-072 ④(0.65.0):`message_committed` 定位账本帧 —— 同 human_input 归 chrome(不带正文,
|
|
37
|
-
// 绝不铸 transcript 行);端拿它自建 entryId→已渲消息 映射,解析压缩分割线的保留段锚。
|
|
38
25
|
'message_committed',
|
|
39
|
-
// #318 件①(2026-08-21):`engine_notice` 引擎结构化通告 —— 投 chrome(开集,一个码都不判)。
|
|
40
26
|
'engine_notice',
|
|
41
|
-
// #323 / core #447 + L-310(0.68.1 改口):assistant 散文段边界 → **整段替换文本缓冲** +
|
|
42
|
-
// chrome text_segment_end(子流断闸在替换之前)。修前这里写「本批**不**动文本缓冲」——
|
|
43
|
-
// server 7.75.3 起 `text_end.content` 经脱敏器而 `text_delta` 仍逐字,不动缓冲 = 未脱敏字节
|
|
44
|
-
// committed 进本地转录;替换语义见 `adapt/textStream.ts` 的 `replaceAnswerSegment` 头注。
|
|
45
27
|
'text_end',
|
|
46
28
|
'prompt_suggestions',
|
|
47
29
|
'retry_status',
|
|
48
30
|
'task_progress',
|
|
49
|
-
// ⚠️ ADAPT-F10 事实纠正(2026-08-02):括注原写「不铸 tool_result」,而 B5 起这条臂**正是**
|
|
50
|
-
// 铸卡本体的地方(`arms.ts` tool_end 臂 → `cards.close()` → `toolCards.ts` yield 一条
|
|
51
|
-
// `{type:'user', content:[{type:'tool_result'…}]}`)。pure 门只按子串断言臂名在场,对括注里的
|
|
52
|
-
// 假话全盲 —— 存量假话不是本窗引入的,但它就长在本域文件上,顺手纠。
|
|
53
31
|
'tool_end_result(label 补位 + 关卡 settle + response-id 复位 + 开卡台账出栈 + 经 cards.close 铸 tool_result)',
|
|
54
32
|
],
|
|
55
|
-
/** 已落码臂产出的 transcript 消息类目(差分守卫的比对域)。 */
|
|
56
33
|
transcriptKinds: [
|
|
57
34
|
'assistant_text',
|
|
58
35
|
'assistant_thinking',
|
|
@@ -61,7 +38,6 @@ export const ADAPTER_COVERAGE = {
|
|
|
61
38
|
'user_task_notification',
|
|
62
39
|
'system_passthrough',
|
|
63
40
|
],
|
|
64
|
-
/** B3(0.5.0)新落码的臂/半场 —— 从 todo 移过来的,别再在 todo 里留同名条目。 */
|
|
65
41
|
b3: [
|
|
66
42
|
'T38 三清第三清 + T57 第五处断闸:prompt_suggestions(turn 开场作废 + 子流断闸)',
|
|
67
43
|
'T40 IDLE-FLUSH 1.5s 竞速(需 ctx.setTimer;缺席=不启用)',
|
|
@@ -69,7 +45,6 @@ export const ADAPTER_COVERAGE = {
|
|
|
69
45
|
'T59 abort 半场(ctx.signal;中断后不产终答)',
|
|
70
46
|
'T60 无 result 收尾腿(泄尾增量 → 清 liveness → 尾思考 → 尾文本段)',
|
|
71
47
|
],
|
|
72
|
-
/** B4(0.6.0)新落码的臂/半场 —— A 层收官批,同样别再在 todo 里留同名条目。 */
|
|
73
48
|
b4: [
|
|
74
49
|
'A 层第 14 臂 task_progress:workflow lane 三级门 + 判据④ belt 回植 + C1 alias + bindTaskCard(显式父/FIFO/含糊即 unbound)+ inline stats + T50 双形读 + SubagentStart + #6 resident 台账 + 面板 tick',
|
|
75
50
|
'settlePanelTasks 三处 sweep 全接线(tool_end 显式关卡带报告 / result 防御 sweep / turn 末 + abort sweep)',
|
|
@@ -77,7 +52,6 @@ export const ADAPTER_COVERAGE = {
|
|
|
77
52
|
'task_notification 的两件宿主义务收回库内自持:dropQueuedNotificationsForRun + clearEnginePanelTaskResident;stop hook 的 if-started 门由库解',
|
|
78
53
|
'T8 flattenWireOutput 提为独立导出(A 层 settle 报告与 B 层卡体同一份)',
|
|
79
54
|
],
|
|
80
|
-
/** B5(0.7.0)新落码的臂/半场 —— B/D/E 层收批,同样别再在 todo 里留同名条目。 */
|
|
81
55
|
b5: [
|
|
82
56
|
'B 层 structuredToToolUseResult 14 case(ask-user-question/bash/edit/create/update/text/grep/glob/notebook-edit/cron-create/cron-delete/cron-list/agent/task-output)+ workflow-run 登记副作用',
|
|
83
57
|
'D 层 wireOutputToBody 3 臂(bash / taskoutput / 泛化);structured 白名单在场时 T11+T14 正则退位,缺席保回落',
|
|
@@ -86,13 +60,11 @@ export const ADAPTER_COVERAGE = {
|
|
|
86
60
|
'task/task-list structured → chrome task_ledger_sync{source:"structured"}(判定归一在库、落盘留宿主)',
|
|
87
61
|
'T7 诚实缺席(§8-4:不搬 mock 合成器,改 degraded 标记)· T20 diff hunks 进包(src/diff/patch.ts)',
|
|
88
62
|
],
|
|
89
|
-
/** 如实留白——写不动/依赖未搬运资产的臂,#52b 起分批接。 */
|
|
90
63
|
todo: [
|
|
91
64
|
'T13 的 **D 层** 半场(taskoutput block content)未随 structured 退位:退位会改 block content 形状(cli 那里是裸对象 = 件1 隐患),属行为面改动,无真实需求驱动 ⇒ 见 DIVERGENCE-8',
|
|
92
65
|
'macrotask 让渡(cli 在提交前让出宏任务给 Ink;宿主渲染策略,不进库)',
|
|
93
66
|
],
|
|
94
67
|
};
|
|
95
|
-
/** 本批**已知的、有意的**行为分歧(差分守卫显式登记,绝不当等价) */
|
|
96
68
|
export const ADAPTER_DIVERGENCES = [
|
|
97
69
|
'DIVERGENCE-1:`user` 帧透传——cli 的 switch 无 user 臂(default 丢弃),adapt 原样透传。' +
|
|
98
70
|
'现役 wire 不产 user 帧(eventToSdkMessage 无该出口),故对真流是惰性的;保留是为了 desktop 重放存量转录。',
|
|
@@ -132,33 +104,18 @@ export const ADAPTER_DIVERGENCES = [
|
|
|
132
104
|
'DIVERGENCE-9(B5):`tool_result` 消息的 uuid —— cli 在缺 `eventId` 时铸随机 v4,本包派生 ' +
|
|
133
105
|
'`wtc_<toolUseId>`(DIVERGENCE-2 同族:同流重放 ⇒ 同 id 序列,[1653])。守卫按别名结构比,不比字面。',
|
|
134
106
|
];
|
|
135
|
-
/**
|
|
136
|
-
* 适配器实例 —— **台账**(通知去重/跨通道记账)挂实例,`adapt()` 每 turn 调一次,turn 级状态在
|
|
137
|
-
* 调用内。跨 turn 语义(进程级去重)因此靠「同一个实例贯穿 session」保证,重启靠 import/export。
|
|
138
|
-
*/
|
|
139
107
|
class WireToCcAdapterImpl {
|
|
140
|
-
/**
|
|
141
|
-
* 三个**实例级** Set 的持有者(A 族 FIX-05:收成一个显式对象,消 `self.`/`this.` 双路径)——
|
|
142
|
-
* renderedNotifications / seenWorkflowToolCallIds / firedSubagentStartHookTaskIds,
|
|
143
|
-
* 逐条语义见 adapt/instanceLedger.ts 头注(含 DIVERGENCE-6 的实例级 vs module 级分界)。
|
|
144
|
-
* 🔴 B5 ①:`notifiedRuns` / `cardEnqueuedRuns` **不在实例上** —— 它们的配对半场(清账的
|
|
145
|
-
* dropQueuedNotificationsForRun、记账的两个 enqueue、idle watcher)全在 notifications.ts 的
|
|
146
|
-
* module 台账上,放实例 = 前提不共享 = 双卡/零显示/模型二收(0.6.0 真缺口,[1857])。
|
|
147
|
-
* 适配器一律经 notifications.ts 的四个口读写,别在这里再长一份影子副本。
|
|
148
|
-
*/
|
|
149
108
|
ledger = createAdapterInstanceLedger();
|
|
150
109
|
exportLedger() {
|
|
151
110
|
return {
|
|
152
111
|
version: 1,
|
|
153
112
|
renderedNotifications: this.ledger.listRenderedNotifications(),
|
|
154
|
-
// B5 ①:这两项是 module 台账的快照(不是实例私有),跨实例一致。
|
|
155
113
|
notifiedRuns: listNotifiedRuns(),
|
|
156
114
|
cardEnqueuedRuns: listWorkflowCompletionCardsEnqueued(),
|
|
157
115
|
};
|
|
158
116
|
}
|
|
159
117
|
importLedger(state) {
|
|
160
118
|
let n = 0;
|
|
161
|
-
/** B5 ①:module 台账那两项经真源写口回植(has 判重 = 与实例台账那条同样只数新增)。 */
|
|
162
119
|
const takeModule = (v, has, add) => {
|
|
163
120
|
if (!Array.isArray(v))
|
|
164
121
|
return;
|
|
@@ -170,7 +127,6 @@ class WireToCcAdapterImpl {
|
|
|
170
127
|
}
|
|
171
128
|
};
|
|
172
129
|
const s = state;
|
|
173
|
-
// 单次快照(对抗复审 #2 收货修):拆分前这里对 `renderedNotifications` 恰一次属性读。
|
|
174
130
|
const rendered = s.renderedNotifications;
|
|
175
131
|
if (Array.isArray(rendered))
|
|
176
132
|
n += this.ledger.takeRenderedNotifications(rendered);
|
|
@@ -178,38 +134,18 @@ class WireToCcAdapterImpl {
|
|
|
178
134
|
takeModule(s.cardEnqueuedRuns, isWorkflowCompletionCardEnqueued, noteWorkflowCompletionCardEnqueued);
|
|
179
135
|
return n;
|
|
180
136
|
}
|
|
181
|
-
/**
|
|
182
|
-
* #63 —— completion inbox 是 at-least-once 而去重面纯内存,重启即蒸发;「通知 user-turn 已落盘、
|
|
183
|
-
* ack 未落」的 crash 窗口重放 = 同一完成二次喂模型。落盘转录里的 `<task-notification>` 块携
|
|
184
|
-
* task-id/status/type="external",恰可重建**无 seq 键形**;Monitor 的 `:seq` 批键形不同,绝不误伤。
|
|
185
|
-
*/
|
|
186
137
|
importLedgerFromTranscript(messages) {
|
|
187
|
-
// 🔴 B7(T3):解析半场收成 `notifications.parseTranscriptNotificationSeeds`(**唯一一份**)。
|
|
188
|
-
// 此前本方法与 cli `seedEngineTaskNotificationDedupFromTranscript` 各写了一遍同样的
|
|
189
|
-
// XML 反解 —— 两份手写解析里任何一份漂了,resume 回植就在那一侧静默失效(而两边代码
|
|
190
|
-
// 看着都对)。壳侧 shim 化后两个入口都落到同一个解析器上。
|
|
191
138
|
const { renderedKeys, notifiedKeys, seeded } = parseTranscriptNotificationSeeds(messages);
|
|
192
139
|
for (const k of renderedKeys)
|
|
193
140
|
this.ledger.addRenderedNotification(k);
|
|
194
141
|
for (const taskId of notifiedKeys) {
|
|
195
|
-
// cli seedEngineTaskNotificationDedupFromTranscript 同位:回植走 module 台账
|
|
196
|
-
// (outstanding 药丸 / idle watcher 收摊那半场读的就是它)。
|
|
197
142
|
markEngineWorkflowNotified(taskId);
|
|
198
143
|
}
|
|
199
144
|
return seeded;
|
|
200
145
|
}
|
|
201
146
|
noteCardEnqueued(runId) {
|
|
202
|
-
// B5 ①:写 module 台账(与 dropQueuedNotificationsForRun 的清账半场共享前提)。
|
|
203
|
-
// 壳 B4 的队列端口回钩仍可调它 —— 三条入队链本来就写同一个集合,回钩因此变成幂等 no-op。
|
|
204
147
|
noteWorkflowCompletionCardEnqueued(runId);
|
|
205
148
|
}
|
|
206
|
-
/**
|
|
207
|
-
* CC-01(0.68.2):`adapt()` 的**出口单点** —— 每条产出过境时由 M1 盖段身份
|
|
208
|
-
* ({@link TextStream.stampSegmentIdentity};只盖 committed assistant 文本行,其余原样)。
|
|
209
|
-
* 放在出口而不放在各铸点:durable 整条消息(`assistant` 臂)与流式分段(M1 提交口)是两条腿,
|
|
210
|
-
* 归属键必须两条腿都盖,而「过境」是它们唯一的公共点(壳此前也正是在自己的过境口盖的)。
|
|
211
|
-
* 🔴 只包一层转发,不改内层的手动 `next()` 竞速与 abort 语义(T40/T58 全在内层)。
|
|
212
|
-
*/
|
|
213
149
|
async *adapt(frames, ctx) {
|
|
214
150
|
const slot = {};
|
|
215
151
|
for await (const out of this.adaptUnstamped(frames, ctx, slot)) {
|
|
@@ -217,48 +153,26 @@ class WireToCcAdapterImpl {
|
|
|
217
153
|
}
|
|
218
154
|
}
|
|
219
155
|
async *adaptUnstamped(frames, ctx, slot) {
|
|
220
|
-
// FIX-05:实例台账走**唯一一条**显式路径(拆分前是 `self.` / `this.` 两条)。
|
|
221
156
|
const inst = this.ledger;
|
|
222
157
|
const turnStartAt = ctx.now();
|
|
223
|
-
// ── id 派生(实现落 adapt/ids.ts;工厂形只为把 ctx 绑进去)────────────────────────────────
|
|
224
158
|
const idOf = makeIdOf(ctx);
|
|
225
|
-
// ── M1 流合并器(矩阵 §1.1 的 12 行状态整体落 adapt/textStream.ts)────────────────────────
|
|
226
159
|
const text = createTextStream(ctx, idOf);
|
|
227
160
|
slot.text = text;
|
|
228
|
-
// ── M2 工具卡台账(矩阵 §1.2 的 3 行状态整体落 adapt/toolCards.ts)────────────────────────
|
|
229
161
|
const cards = createToolCardLedger(ctx, idOf);
|
|
230
|
-
// ── M3 面板行台账(矩阵 §1.3 的 6 行状态 + 五个闭包整体落 adapt/panelTasks.ts)──────────
|
|
231
|
-
// 依赖只有两件:M2 的**只读**开卡视图、实例台账。反过来 M2 不依赖 M3(单向边)。
|
|
232
162
|
const panel = createPanelTaskLedger(ctx, cards, inst);
|
|
233
|
-
// ── M6a 响应度量 + M6b 重试覆盖层(两个小状态机;矩阵 §3.3:必须连驱动壳那一半一起搬)────
|
|
234
163
|
const flags = createTurnFlags(ctx, turnStartAt);
|
|
235
|
-
/** 臂表的注入面 —— 矩阵 §3.5 的六件 **+ `flags`(七件,理由见 `ArmDeps` 头注 / ADAPT-F7)**,
|
|
236
|
-
* 不做全量注入(全量注入 = 封闭性声明失去判别力)。 */
|
|
237
164
|
const deps = { ctx, idOf, text, cards, panel, flags, inst };
|
|
238
|
-
// turn 开场卫生(T38 三清,cli 逐条同序):清上一 turn 的 retry 覆盖层 + **上一轮的建议批** +
|
|
239
|
-
// 思考活动行,再发 request-start(T39)。三清缺一都是"上一轮的东西挂着不掉"。
|
|
240
165
|
yield chrome({ kind: 'retry_status', laneProof: mainLane(), status: null });
|
|
241
166
|
yield chrome({ kind: 'prompt_suggestions', laneProof: mainLane(), suggestions: null });
|
|
242
167
|
yield chrome({ kind: 'thinking_activity', laneProof: mainLane(), active: false });
|
|
243
168
|
yield chrome({ kind: 'request_start', laneProof: mainLane() });
|
|
244
|
-
// ── T40/T58/T59:手动 iterator + IDLE-FLUSH 竞速 + abort 断流 ────────────────────────────────
|
|
245
|
-
// `for await` 换成手动 next():① 才能与 idle 计时器 race(T40);② 才能在 abort 时立刻停;
|
|
246
|
-
// 代价是失去 for-await 的隐式 cleanup ⇒ finally 里手动 return()(T58,少了它 = SSE 不拆)。
|
|
247
169
|
const iterator = frames[Symbol.asyncIterator]();
|
|
248
170
|
let iteratorDone = false;
|
|
249
171
|
try {
|
|
250
172
|
for (;;) {
|
|
251
173
|
const nextPromise = iterator.next();
|
|
252
174
|
let step;
|
|
253
|
-
// 🔴 件 A 跟修的**留钉**(2026-08-25,一次证伪留档,免得下一棒再走一遍):判据收紧后同一个
|
|
254
|
-
// `nextPromise` 会被 race **多圈**(判据没过就让位),曾疑心「每圈现造的派生 promise 没人
|
|
255
|
-
// await ⇒ 上游 reject 时 unhandledRejection」。**实测证伪**:`Promise.race` 会给每个入参
|
|
256
|
-
// 挂反应,让位那些圈的派生 promise 因此都是 handled 的;上游的错照常经这一圈 await 抛出去。
|
|
257
|
-
// 对应常驻断言 = pure 门 B3 T40「上游 reject 照常抛给调用方」。所以这里**不改**(改成
|
|
258
|
-
// 只派生一次是纯分配面的微优化,零行为差,不值一处 diff)。
|
|
259
175
|
while (step === undefined) {
|
|
260
|
-
// 缓冲全空 ⇒ 零开销路径;宿主没给定时器 ⇒ 竞速整条不启用(绝不 setTimeout 兜底)。
|
|
261
|
-
// 判据本体(四项 or)已随 12 行状态收进 M1 —— 这里读的是它的具名形。
|
|
262
176
|
if (!text.hasPendingContent() || ctx.setTimer === undefined) {
|
|
263
177
|
step = await nextPromise;
|
|
264
178
|
break;
|
|
@@ -278,96 +192,63 @@ class WireToCcAdapterImpl {
|
|
|
278
192
|
else {
|
|
279
193
|
if (ctx.signal?.aborted)
|
|
280
194
|
break;
|
|
281
|
-
// Idle ≥1.5s 且有已生成未提交的内容:现在就上屏(活体预览在前,再按 思考→文本 的
|
|
282
|
-
// committed 序 —— 与工具卡前的边界 flush 逐字同序,只是提前发生)。
|
|
283
195
|
yield* text.drainLive();
|
|
284
196
|
yield* text.takeThinking();
|
|
285
|
-
// 🔴 件 A(#323 症状①,2026-08-25):文本段走**专用入口** `takeAnswerSegmentOnIdle`
|
|
286
|
-
// (每段一刀 + 只在句末/段末提交),不是通用的 `takeAnswerSegment`。
|
|
287
|
-
// 病:慢模型每 1.5s 一卡顿 = 一刀,一轮回复被切成 N 条 assistant 消息(屏上 N 个 ⏺)。
|
|
288
|
-
// 适用域:本竞速的原意只是「大 Write 的静默窗别把已生成的开场白押着」,不是
|
|
289
|
-
// 「每停 1.5s 就切一段」。终局 flush(工具卡前 / turn 收口)那条路**零改动**。
|
|
290
197
|
yield* text.takeAnswerSegmentOnIdle();
|
|
291
|
-
// 缓冲(可能)已空 ⇒ 下一圈直接 plain-await;判据没过时段缓冲还在,下一拍再race。
|
|
292
198
|
}
|
|
293
199
|
}
|
|
294
200
|
if (step === undefined)
|
|
295
|
-
break;
|
|
201
|
+
break;
|
|
296
202
|
if (step.done) {
|
|
297
203
|
iteratorDone = true;
|
|
298
204
|
break;
|
|
299
205
|
}
|
|
300
206
|
const rawFrame = step.value;
|
|
301
|
-
// T59 — 信号一跳就停止投影(后续任何臂都不再渲染)。
|
|
302
207
|
if (ctx.signal?.aborted)
|
|
303
208
|
break;
|
|
304
209
|
const m = rawFrame;
|
|
305
210
|
if (m === null || typeof m !== 'object')
|
|
306
211
|
continue;
|
|
307
|
-
// ── 帧前置(M6a/M6b 两个小状态机的驱动壳那一半;两半同文件,见 turnFlags.ts 头注)──
|
|
308
|
-
// ① R1 重试覆盖层「恢复即清」;② 首个 stream_event 的 TTFT 起拍。次序与拆分前逐字一致。
|
|
309
212
|
yield* flags.onFrameBeforeDispatch(m);
|
|
310
|
-
// 持久臂之前先把活体增量泄干净(活体预览恒先于它 settle 成的 committed 消息)。
|
|
311
|
-
// 🔴 矩阵 §2.4(a)留钉:`result` 臂**自己不带 drainLive**,靠的就是这一拍 ——
|
|
312
|
-
// 臂表化时若把「非 stream_event 先泄活体」的责任也挪进臂里,result 会漏泄。
|
|
313
213
|
if (m.type !== 'stream_event')
|
|
314
214
|
yield* text.drainLive();
|
|
315
|
-
// ── 分派(拆分前是一个 600 行的 switch;`default:` 空臂 = 表里查不到,行为同)────────────
|
|
316
|
-
// 单读快照(对抗复审 #1 收货修):旧 switch 对 `m.type` 恰一次属性读,`typeof m.type
|
|
317
|
-
// ? m.type` 是两读 —— 对 accessor 形帧可观测,降回一读。
|
|
318
215
|
const rawType = m.type;
|
|
319
216
|
const armKey = typeof rawType === 'string' ? rawType : undefined;
|
|
320
217
|
const arm = armKey !== undefined ? ARMS.get(armKey) : undefined;
|
|
321
218
|
if (arm !== undefined)
|
|
322
219
|
yield* arm(m, deps);
|
|
323
|
-
// COALESCER 节拍尾(判据 + lastFlushAt 已收进 M1;`ctx.now()` 仍**只在 stream_event 那一拍**
|
|
324
|
-
// 取,与拆分前逐字同一处时钟读点)。
|
|
325
220
|
if (m.type === 'stream_event')
|
|
326
221
|
yield* text.maybeFlushOnBeat(ctx.now());
|
|
327
222
|
}
|
|
328
223
|
}
|
|
329
224
|
finally {
|
|
330
|
-
// T58 — 手动 iterator 没有 for-await 的隐式 cleanup:early break(abort)或抛错都必须关上游
|
|
331
|
-
// 生成器(SSE 拆链)。正常跑完(done)不用关,上游自己结束了。
|
|
332
225
|
if (!iteratorDone) {
|
|
333
226
|
try {
|
|
334
227
|
void iterator.return?.();
|
|
335
228
|
}
|
|
336
229
|
catch {
|
|
337
|
-
// best-effort close — 绝不遮蔽原本的退出路径
|
|
338
230
|
}
|
|
339
231
|
}
|
|
340
232
|
}
|
|
341
|
-
// T59 — abort 后到此为止:不发合成终答、不做兜底(这个 turn 被打断了;CC 自己的 abort 路径
|
|
342
|
-
// 渲 InterruptedByUser chrome,那是宿主的事)。但**瞬态覆盖层必须收干净**,否则 Esc 之后
|
|
343
|
-
// 上一轮的 retry 行/思考活动行会一直挂着。
|
|
344
233
|
if (ctx.signal?.aborted) {
|
|
345
234
|
yield chrome({ kind: 'retry_status', laneProof: mainLane(), status: null });
|
|
346
235
|
yield chrome({ kind: 'thinking_activity', laneProof: mainLane(), active: false });
|
|
347
|
-
// 复审修 #2a:被打断的 turn 也**必须**结掉自己的面板行,否则 Esc 之后 footer 药丸永远
|
|
348
|
-
// 显示 "1 local agent"(sweep 点 3/4;四点各有正控,见 pure 门 SPLIT 段钉①)。
|
|
349
236
|
yield* panel.settle(null, false);
|
|
350
237
|
ctx.log?.('debug', 'turn aborted (Esc) — no terminal answer emitted');
|
|
351
238
|
return;
|
|
352
239
|
}
|
|
353
|
-
// T60 —— turn 收口(cli 尾部同序,覆盖"流结束了但没有 result 臂"的路径):
|
|
354
|
-
// 泄尾增量 → 清 liveness → 提交尾思考 → 提交尾文本段。
|
|
355
240
|
yield* text.drainLive();
|
|
356
241
|
yield chrome({ kind: 'retry_status', laneProof: mainLane(), status: null });
|
|
357
|
-
// 复审修 #2a 孪生:没有 `result` 臂的收尾路径同样 sweep(sweep 点 4/4)。
|
|
358
242
|
yield* panel.settle(null, false);
|
|
359
|
-
// B5:无 `result` 收尾腿同样关掉还开着的卡(cli 同位;abort 路径**不做**,见上)。
|
|
360
243
|
yield* cards.sweep();
|
|
361
244
|
yield* text.takeThinking();
|
|
362
245
|
yield* text.takeAnswerSegment();
|
|
363
246
|
ctx.log?.('debug', `turn done · emittedAssistantText=${text.emittedAssistantText} answerLen=${text.answerLength}`);
|
|
364
247
|
}
|
|
365
248
|
}
|
|
366
|
-
/** 造一个带台账的适配器实例(**一个 session 一个**——跨 turn 去重靠实例存活,重启靠 import/export)。 */
|
|
367
249
|
export function createWireToCcAdapter() {
|
|
368
250
|
return new WireToCcAdapterImpl();
|
|
369
251
|
}
|
|
370
|
-
/** 一次性(无跨 turn 台账)投影:`frames → AdapterOutput`。多 turn 请用 createWireToCcAdapter()。 */
|
|
371
252
|
export function adapt(frames, ctx) {
|
|
372
253
|
return createWireToCcAdapter().adapt(frames, ctx);
|
|
373
254
|
}
|