@sema-agent/client-core 0.94.0 → 0.96.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 +521 -0
- package/README.md +104 -57
- package/dist/adapt/arms.js +12 -7
- package/dist/adapt/panelTasks.js +4 -10
- package/dist/adapt/toolCards.d.ts +1 -0
- package/dist/adapt/toolCards.js +18 -5
- package/dist/adapt/wireShapes.js +5 -24
- package/dist/adapter/activeRunSelfHeal.d.ts +12 -3
- package/dist/adapter/activeRunSelfHeal.js +50 -16
- package/dist/adapter/downstream/eventToSdkMessage.js +33 -18
- package/dist/adapter/downstream/terminalToSdkResult.js +19 -12
- package/dist/adapter/runStream.js +30 -46
- package/dist/adapter/types.d.ts +7 -0
- package/dist/adapter/types.js +15 -0
- package/dist/agentSession/backgroundView.js +5 -1
- package/dist/agentSession/engineAgentRegistryRead.js +7 -5
- package/dist/agentSession/engineSessionBackgroundStop.js +25 -17
- package/dist/agentsWireCaps.d.ts +2 -0
- package/dist/agentsWireCaps.js +13 -2
- package/dist/approvalDecidedByCapability.d.ts +0 -1
- package/dist/approvalDecidedByCapability.js +2 -7
- package/dist/approvalsStreamLiveCapability.d.ts +0 -1
- package/dist/approvalsStreamLiveCapability.js +2 -6
- package/dist/atMostOnce.d.ts +8 -0
- package/dist/atMostOnce.js +36 -0
- package/dist/attachmentSeatCapability.d.ts +0 -1
- package/dist/attachmentSeatCapability.js +0 -3
- package/dist/attachmentsWireCaps.js +11 -6
- package/dist/bashExitReading.d.ts +10 -0
- package/dist/bashExitReading.js +12 -0
- package/dist/callerCwdCapability.d.ts +0 -5
- package/dist/callerCwdCapability.js +2 -13
- package/dist/centerWiringCapability.d.ts +1 -7
- package/dist/centerWiringCapability.js +18 -27
- package/dist/classifierStatus.js +4 -4
- package/dist/classifierVerdictWire.js +4 -16
- package/dist/clientSlice.js +1 -1
- package/dist/cloudConfigWireCaps.d.ts +3 -3
- package/dist/cloudConfigWireCaps.js +85 -43
- package/dist/compensations.js +1 -1
- package/dist/coreValuePorts.d.ts +11 -7
- package/dist/coreValuePorts.js +5 -8
- package/dist/credentialProvenance.d.ts +28 -0
- package/dist/credentialProvenance.js +76 -0
- package/dist/cycleOrder.d.ts +15 -0
- package/dist/cycleOrder.js +45 -0
- package/dist/decideFailureNote.js +7 -2
- package/dist/decideReceipt.d.ts +2 -1
- package/dist/decideReceipt.js +39 -14
- package/dist/declared/supportFloorDeclared.d.ts +1 -0
- package/dist/declared/supportFloorDeclared.js +5 -0
- package/dist/deviceExecutorManagementCapability.d.ts +0 -1
- package/dist/deviceExecutorManagementCapability.js +7 -16
- package/dist/deviceRebind.d.ts +88 -0
- package/dist/deviceRebind.js +242 -0
- package/dist/displayUntrusted.d.ts +8 -3
- package/dist/displayUntrusted.js +661 -63
- package/dist/engineAgentAbsence.d.ts +2 -2
- package/dist/engineAgentPanelStore.d.ts +8 -18
- package/dist/engineAgentPanelStore.js +19 -537
- package/dist/engineCapReader.d.ts +6 -6
- package/dist/engineCapReader.js +30 -43
- package/dist/engineCapsCache.d.ts +13 -2
- package/dist/engineCapsCache.js +276 -44
- package/dist/engineCredentialRequirement.d.ts +9 -0
- package/dist/engineCredentialRequirement.js +23 -0
- package/dist/engineDirectory.d.ts +79 -0
- package/dist/engineDirectory.js +186 -0
- package/dist/engineEnvSourcing.d.ts +53 -0
- package/dist/engineEnvSourcing.js +81 -0
- package/dist/engineErrorCodes.d.ts +28 -4
- package/dist/engineErrorCodes.js +68 -25
- package/dist/engineIdentity.js +2 -0
- package/dist/engineNoticeCodes.d.ts +17 -0
- package/dist/engineNoticeCodes.js +57 -3
- package/dist/engineWireSdk.js +2 -2
- package/dist/engineWordRenames.d.ts +8 -0
- package/dist/engineWordRenames.js +13 -0
- package/dist/executionLaneCapability.d.ts +2 -3
- package/dist/executionLaneCapability.js +18 -23
- package/dist/fileHistoryCaptureCapability.d.ts +14 -1
- package/dist/fileHistoryCaptureCapability.js +72 -6
- package/dist/fileHistoryLegNotice.d.ts +3 -2
- package/dist/fileHistoryLegNotice.js +51 -2
- package/dist/fleet/bgSubagentRow.d.ts +15 -0
- package/dist/fleet/bgSubagentRow.js +67 -0
- package/dist/fleet/fleetLedger.d.ts +3 -0
- package/dist/fleet/fleetLedger.js +153 -122
- package/dist/fleet/fleetProjection.d.ts +1 -3
- package/dist/fleet/fleetProjection.js +19 -19
- package/dist/fleetAgentPanelProjection.d.ts +4 -17
- package/dist/fleetAgentPanelProjection.js +7 -197
- package/dist/fleetAgentRowLike.d.ts +16 -0
- package/dist/fleetAgentRowLike.js +1 -0
- package/dist/fleetTaskDesc.js +4 -17
- package/dist/gateOutcome.d.ts +12 -1
- package/dist/gateOutcome.js +87 -18
- package/dist/gateVocabulary.d.ts +7 -2
- package/dist/gateVocabulary.js +5 -1
- package/dist/generated/engineAskFaceTables.js +1 -1
- package/dist/generated/engineFactTables.d.ts +5 -3
- package/dist/generated/engineFactTables.js +17 -4
- package/dist/generated/engineNoticeTables.js +12 -3
- package/dist/generated/sdkFactTables.d.ts +2 -0
- package/dist/generated/sdkFactTables.js +17 -0
- package/dist/generated/settingsSchemaFns.d.ts +13 -0
- package/dist/generated/settingsSchemaFns.js +75 -0
- package/dist/generated/toolNameTables.d.ts +1 -0
- package/dist/generated/toolNameTables.js +1 -0
- package/dist/headlessPermissionModeWire.d.ts +1 -1
- package/dist/headlessPermissionModeWire.js +1 -1
- package/dist/headlessReconnectWire.js +49 -20
- package/dist/hitl/allowRuleShadow.d.ts +1 -1
- package/dist/hitl/allowRuleShadow.js +49 -8
- package/dist/hitl/approvalCompleteParked.d.ts +1 -0
- package/dist/hitl/approvalCompleteParked.js +14 -0
- package/dist/hitl/approvalEndingCause.d.ts +7 -0
- package/dist/hitl/approvalEndingCause.js +71 -0
- package/dist/hitl/approvalHolds.d.ts +12 -2
- package/dist/hitl/approvalHolds.js +53 -2
- package/dist/hitl/approvalsFeed.js +23 -11
- package/dist/hitl/askGateWire.d.ts +2 -1
- package/dist/hitl/askGateWire.js +26 -1
- package/dist/hitl/askParkRowRouting.js +1 -1
- package/dist/hitl/automaticAnswerVerdict.d.ts +1 -1
- package/dist/hitl/automaticAnswerVerdict.js +15 -10
- package/dist/hitl/crashConverged.js +2 -0
- package/dist/hitl/decisionConflict.d.ts +3 -0
- package/dist/hitl/decisionConflict.js +41 -0
- package/dist/hitl/decisionRefusal.d.ts +12 -0
- package/dist/hitl/decisionRefusal.js +63 -4
- package/dist/hitl/frameRouter.d.ts +0 -1
- package/dist/hitl/frameRouter.js +32 -57
- package/dist/hitl/gateLedger.d.ts +5 -0
- package/dist/hitl/gateLedger.js +21 -0
- package/dist/hitl/hitlBridge.d.ts +17 -2
- package/dist/hitl/hitlBridge.js +91 -55
- package/dist/hitl/hitlHostSurface.js +3 -11
- package/dist/hitl/livePendingAsk.d.ts +16 -6
- package/dist/hitl/livePendingAsk.js +36 -4
- package/dist/hitl/localAllowRule.d.ts +1 -0
- package/dist/hitl/localAllowRule.js +2 -2
- package/dist/hitl/noAllowCause.d.ts +2 -1
- package/dist/hitl/noAllowCause.js +3 -2
- package/dist/hitl/parkExpiryJudgements.d.ts +19 -0
- package/dist/hitl/parkExpiryJudgements.js +46 -0
- package/dist/hitl/parkResolver.d.ts +4 -7
- package/dist/hitl/parkResolver.js +12 -34
- package/dist/hitl/parkRowBirthWait.d.ts +1 -0
- package/dist/hitl/parkRowBirthWait.js +2 -2
- package/dist/hitl/persistedRulesWire.js +5 -1
- package/dist/hitl/planReviewWire.d.ts +3 -2
- package/dist/hitl/planReviewWire.js +154 -50
- package/dist/hitl/replayedApproval.d.ts +9 -0
- package/dist/hitl/replayedApproval.js +139 -10
- package/dist/hitl/resumeRunningCard.d.ts +2 -0
- package/dist/hitl/resumeRunningCard.js +15 -4
- package/dist/hitl/sessionPolicyDeliverable.js +8 -6
- package/dist/hitl/standingRows.d.ts +18 -0
- package/dist/hitl/standingRows.js +127 -0
- package/dist/hitl/toolApprovalWire.d.ts +39 -7
- package/dist/hitl/toolApprovalWire.js +351 -61
- package/dist/hookMatcherVerdict.d.ts +1 -9
- package/dist/hookMatcherVerdict.js +21 -61
- package/dist/hooksWireCaps.js +40 -8
- package/dist/host.d.ts +5 -0
- package/dist/host.js +3 -1
- package/dist/hostCallbackGuard.d.ts +2 -0
- package/dist/hostCallbackGuard.js +31 -0
- package/dist/index.d.ts +48 -17
- package/dist/index.js +36 -15
- package/dist/interactiveInterrupt.d.ts +8 -0
- package/dist/interactiveInterrupt.js +54 -0
- package/dist/limitsWire.d.ts +5 -0
- package/dist/limitsWire.js +49 -3
- package/dist/liveModelCatalog.d.ts +95 -0
- package/dist/liveModelCatalog.js +297 -32
- package/dist/mcpEngineLeg.d.ts +25 -0
- package/dist/mcpEngineLeg.js +71 -15
- package/dist/mcpPanel.js +2 -1
- package/dist/mcpProbeCapability.d.ts +0 -5
- package/dist/mcpProbeCapability.js +2 -12
- package/dist/mcpReconnect.d.ts +1 -3
- package/dist/mcpReconnect.js +10 -5
- package/dist/memoryComplianceCapability.d.ts +0 -5
- package/dist/memoryComplianceCapability.js +2 -12
- package/dist/memoryOriginCapability.d.ts +0 -5
- package/dist/memoryOriginCapability.js +2 -12
- package/dist/memorySpecWire.js +2 -2
- package/dist/memoryVerbsWire.d.ts +1 -1
- package/dist/memoryVerbsWire.js +4 -0
- package/dist/model/liveCatalogShape.d.ts +14 -0
- package/dist/model/liveCatalogShape.js +71 -0
- package/dist/model/modelSupplyRules.d.ts +1 -0
- package/dist/model/modelSupplyRules.js +30 -9
- package/dist/model/modelsPolicy.d.ts +21 -0
- package/dist/model/modelsPolicy.js +90 -0
- package/dist/modelIdentityResolvability.d.ts +2 -2
- package/dist/modelIdentityResolvability.js +14 -12
- package/dist/modelSwitchFallback.d.ts +69 -0
- package/dist/modelSwitchFallback.js +206 -0
- package/dist/noticePresentation.d.ts +68 -0
- package/dist/noticePresentation.js +247 -0
- package/dist/notifications.js +12 -11
- package/dist/outputStyleSeatCapability.d.ts +0 -2
- package/dist/outputStyleSeatCapability.js +2 -10
- package/dist/ownKey.d.ts +8 -0
- package/dist/ownKey.js +66 -0
- package/dist/panelReduce.d.ts +114 -0
- package/dist/panelReduce.js +1135 -0
- package/dist/panelStateHolder.d.ts +17 -0
- package/dist/panelStateHolder.js +201 -0
- package/dist/peerFrames.js +13 -9
- package/dist/peerLaneCapability.d.ts +0 -1
- package/dist/peerLaneCapability.js +2 -6
- package/dist/permissionModesCapability.d.ts +0 -5
- package/dist/permissionModesCapability.js +5 -16
- package/dist/permissionRuleIssue.js +0 -3
- package/dist/permissionRulesWriteCapability.d.ts +0 -1
- package/dist/permissionRulesWriteCapability.js +2 -6
- package/dist/permissionsAllowGrantCapability.d.ts +0 -1
- package/dist/permissionsAllowGrantCapability.js +3 -9
- package/dist/permissionsDeclaration.d.ts +8 -0
- package/dist/permissionsDeclaration.js +101 -41
- package/dist/printPermissionOutcome.d.ts +12 -0
- package/dist/printPermissionOutcome.js +50 -0
- package/dist/printToolResultFrame.d.ts +1 -0
- package/dist/printToolResultFrame.js +5 -17
- package/dist/promptBlockedCopy.d.ts +5 -0
- package/dist/promptBlockedCopy.js +35 -0
- package/dist/promptDelivery.js +0 -8
- package/dist/protocolSegment.d.ts +9 -6
- package/dist/protocolSegment.js +31 -21
- package/dist/providerRejection.d.ts +4 -0
- package/dist/providerRejection.js +75 -14
- package/dist/replayBody.d.ts +12 -0
- package/dist/replayBody.js +25 -0
- package/dist/resumeRefusalCopy.d.ts +18 -1
- package/dist/resumeRefusalCopy.js +127 -32
- package/dist/retryStatus.d.ts +9 -1
- package/dist/retryStatus.js +9 -2
- package/dist/rewindArchiveCapability.d.ts +5 -14
- package/dist/rewindArchiveCapability.js +18 -61
- package/dist/rewindArchiveReading.d.ts +15 -0
- package/dist/rewindArchiveReading.js +56 -0
- package/dist/rewindEngineAction.d.ts +21 -0
- package/dist/rewindEngineAction.js +36 -0
- package/dist/rewindWireCaps.d.ts +2 -1
- package/dist/rewindWireCaps.js +1 -0
- package/dist/ruleCompileVerdict.d.ts +9 -1
- package/dist/ruleCompileVerdict.js +29 -4
- package/dist/runTerminal.d.ts +15 -12
- package/dist/runTerminal.js +60 -35
- package/dist/sandboxWire.js +13 -0
- package/dist/sdkRegistryTransit.d.ts +2 -1
- package/dist/sdkRegistryTransit.js +1 -0
- package/dist/sealedKeyCapability.d.ts +0 -5
- package/dist/sealedKeyCapability.js +3 -15
- package/dist/seam.js +4 -2
- package/dist/seatContract.d.ts +125 -34
- package/dist/seatContract.js +583 -179
- package/dist/sessionIdSegment.d.ts +1 -0
- package/dist/sessionIdSegment.js +11 -0
- package/dist/sessionMemoryErase.d.ts +1 -1
- package/dist/sessionMemoryErase.js +6 -1
- package/dist/sessionMemoryStatus.js +3 -2
- package/dist/sessionPolicyCapability.d.ts +0 -1
- package/dist/sessionPolicyCapability.js +2 -6
- package/dist/sessionReadRedactionCapability.d.ts +0 -5
- package/dist/sessionReadRedactionCapability.js +2 -13
- package/dist/sessionSyncFileHistory.d.ts +4 -0
- package/dist/sessionSyncFileHistory.js +66 -0
- package/dist/sessionSyncFileHistoryCapability.d.ts +0 -2
- package/dist/sessionSyncFileHistoryCapability.js +2 -9
- package/dist/skillToolListsCapability.d.ts +0 -2
- package/dist/skillToolListsCapability.js +2 -9
- package/dist/skillsWireCaps.d.ts +4 -0
- package/dist/skillsWireCaps.js +66 -1
- package/dist/sqlEngineCapability.d.ts +0 -1
- package/dist/sqlEngineCapability.js +9 -14
- package/dist/steerPriorityCapability.d.ts +0 -2
- package/dist/steerPriorityCapability.js +3 -12
- package/dist/storePostureCapability.d.ts +1 -5
- package/dist/storePostureCapability.js +16 -22
- package/dist/streamDrainingLegs.d.ts +6 -0
- package/dist/streamDrainingLegs.js +23 -0
- package/dist/subagent/engineCompactWire.js +13 -38
- package/dist/subagent/engineDelegatedPrompt.js +10 -6
- package/dist/subagent/engineSubagentOutput.d.ts +0 -1
- package/dist/subagent/engineSubagentOutput.js +5 -20
- package/dist/subagent/engineSubagentSteer.js +7 -5
- package/dist/subagent/engineSubagentTail.d.ts +0 -1
- package/dist/subagent/engineSubagentTail.js +7 -32
- package/dist/subagentContentStore.js +7 -18
- package/dist/supportFloor.d.ts +1 -0
- package/dist/supportFloor.js +15 -14
- package/dist/systemReminderTag.d.ts +1 -0
- package/dist/systemReminderTag.js +8 -0
- package/dist/terminalStatuses.d.ts +30 -0
- package/dist/terminalStatuses.js +67 -0
- package/dist/toolHistoryMismatch.d.ts +0 -3
- package/dist/toolHistoryMismatch.js +3 -7
- package/dist/toolResult.d.ts +6 -1
- package/dist/toolResult.js +90 -37
- package/dist/toolResultContent.d.ts +2 -0
- package/dist/toolResultContent.js +63 -0
- package/dist/types/engineState.d.ts +2 -1
- package/dist/usageAnalytics.d.ts +146 -0
- package/dist/usageAnalytics.js +335 -0
- package/dist/userInvokedSkillsCapability.d.ts +0 -2
- package/dist/userInvokedSkillsCapability.js +2 -9
- package/dist/webSearchBackendCapability.d.ts +0 -1
- package/dist/webSearchBackendCapability.js +3 -7
- package/dist/webSearchWireCaps.js +3 -11
- package/dist/wireErrorTriage.d.ts +2 -0
- package/dist/wireErrorTriage.js +34 -5
- package/dist/wireFailureShape.d.ts +23 -2
- package/dist/wireFailureShape.js +88 -43
- package/dist/wireRefusalCopy.js +2 -18
- package/dist/workflowClient.js +7 -11
- package/dist/workflowsJournalCapability.d.ts +0 -1
- package/dist/workflowsJournalCapability.js +2 -6
- package/dist/writeProtectionCapability.d.ts +0 -1
- package/dist/writeProtectionCapability.js +5 -10
- package/docs/INTEGRATION-CLIENTS.md +2279 -27
- package/package.json +5 -5
- package/dist/engineCapsGenerationGuard.d.ts +0 -4
- package/dist/engineCapsGenerationGuard.js +0 -19
- package/dist/panelRunningHistory.d.ts +0 -22
- package/dist/panelRunningHistory.js +0 -82
- package/dist/registryConflict.d.ts +0 -3
- package/dist/registryConflict.js +0 -44
package/dist/wireFailureShape.js
CHANGED
|
@@ -1,11 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
export const THROWN_SLOT_UNREADABLE = Symbol('thrown-slot-unreadable');
|
|
2
|
+
export function readThrownSlot(o, key, own = false) {
|
|
2
3
|
try {
|
|
4
|
+
if (own && !Object.hasOwn(o, key))
|
|
5
|
+
return undefined;
|
|
3
6
|
return o[key];
|
|
4
7
|
}
|
|
5
8
|
catch {
|
|
6
|
-
return
|
|
9
|
+
return THROWN_SLOT_UNREADABLE;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function readGuarded(o, key) {
|
|
13
|
+
const v = readThrownSlot(o, key);
|
|
14
|
+
return v === THROWN_SLOT_UNREADABLE ? undefined : v;
|
|
15
|
+
}
|
|
16
|
+
export function thrownIsInstanceOf(e, cls) {
|
|
17
|
+
try {
|
|
18
|
+
return e instanceof cls;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return false;
|
|
7
22
|
}
|
|
8
23
|
}
|
|
24
|
+
export function readThrownExtra(o) {
|
|
25
|
+
if (o === null || o === undefined)
|
|
26
|
+
return { state: 'absent' };
|
|
27
|
+
const slot = readThrownSlot(o, 'extra');
|
|
28
|
+
if (slot === THROWN_SLOT_UNREADABLE)
|
|
29
|
+
return { state: 'unreadable' };
|
|
30
|
+
try {
|
|
31
|
+
if (typeof slot !== 'object' || slot === null || Array.isArray(slot))
|
|
32
|
+
return { state: 'absent' };
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return { state: 'unreadable' };
|
|
36
|
+
}
|
|
37
|
+
return { state: 'object', value: slot };
|
|
38
|
+
}
|
|
9
39
|
function readErrorSlot(obj, key, accept) {
|
|
10
40
|
try {
|
|
11
41
|
const o = obj;
|
|
@@ -18,15 +48,10 @@ function readErrorSlot(obj, key, accept) {
|
|
|
18
48
|
}
|
|
19
49
|
if (accept(top))
|
|
20
50
|
return top;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
extra = o['extra'];
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
extra = undefined;
|
|
27
|
-
}
|
|
28
|
-
if (typeof extra !== 'object' || extra === null || Array.isArray(extra))
|
|
51
|
+
const reading = readThrownExtra(obj);
|
|
52
|
+
if (reading.state !== 'object')
|
|
29
53
|
return undefined;
|
|
54
|
+
const extra = reading.value;
|
|
30
55
|
let fromExtra;
|
|
31
56
|
try {
|
|
32
57
|
fromExtra = Object.hasOwn(extra, key) ? extra[key] : undefined;
|
|
@@ -83,28 +108,25 @@ export function readErrorStrictStringList(o, key) {
|
|
|
83
108
|
return undefined;
|
|
84
109
|
}
|
|
85
110
|
}
|
|
111
|
+
export const WIRE_FAILURE_UNRENDERABLE_TEXT = 'the call failed with an error this client could not render';
|
|
112
|
+
function userFacingReasonOf(e, ownMessage) {
|
|
113
|
+
if (ownMessage !== undefined)
|
|
114
|
+
return ownMessage;
|
|
115
|
+
if (typeof e === 'string')
|
|
116
|
+
return e !== '' ? e : WIRE_FAILURE_UNRENDERABLE_TEXT;
|
|
117
|
+
if (typeof e === 'number' || typeof e === 'boolean' || typeof e === 'bigint')
|
|
118
|
+
return String(e);
|
|
119
|
+
return WIRE_FAILURE_UNRENDERABLE_TEXT;
|
|
120
|
+
}
|
|
86
121
|
export function wireFailureShapeOf(e) {
|
|
87
122
|
const o = e ?? {};
|
|
88
123
|
const status = readGuarded(o, 'status');
|
|
89
124
|
const errorCode = readGuarded(o, 'errorCode');
|
|
90
125
|
const rawMessage = readGuarded(o, 'message');
|
|
91
126
|
const retryAfterMs = readGuarded(o, 'retryAfterMs');
|
|
92
|
-
|
|
93
|
-
let extraUnreadable =
|
|
94
|
-
|
|
95
|
-
extra = o['extra'];
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
extraUnreadable = true;
|
|
99
|
-
}
|
|
100
|
-
let extraObj;
|
|
101
|
-
try {
|
|
102
|
-
extraObj = typeof extra === 'object' && extra !== null && !Array.isArray(extra) ? extra : undefined;
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
extraObj = undefined;
|
|
106
|
-
extraUnreadable = true;
|
|
107
|
-
}
|
|
127
|
+
const extraReading = readThrownExtra(e);
|
|
128
|
+
let extraUnreadable = extraReading.state === 'unreadable';
|
|
129
|
+
const extraObj = extraReading.state === 'object' ? extraReading.value : undefined;
|
|
108
130
|
let committedPresent = false;
|
|
109
131
|
let committedRaw;
|
|
110
132
|
if (extraObj !== undefined) {
|
|
@@ -141,13 +163,7 @@ export function wireFailureShapeOf(e) {
|
|
|
141
163
|
const bodyVerdict = ownString('verdict');
|
|
142
164
|
const bodyCurrentName = ownString('currentName');
|
|
143
165
|
const ownMessage = typeof rawMessage === 'string' && rawMessage !== '' ? rawMessage : undefined;
|
|
144
|
-
|
|
145
|
-
try {
|
|
146
|
-
message = ownMessage !== undefined ? ownMessage : String(e);
|
|
147
|
-
}
|
|
148
|
-
catch {
|
|
149
|
-
message = WIRE_FAILURE_UNRENDERABLE_TEXT;
|
|
150
|
-
}
|
|
166
|
+
const message = userFacingReasonOf(e, ownMessage);
|
|
151
167
|
const sec = typeof retryAfterMs === 'number' && Number.isFinite(retryAfterMs) && retryAfterMs >= 0
|
|
152
168
|
? Math.ceil(retryAfterMs / 1000)
|
|
153
169
|
: undefined;
|
|
@@ -168,12 +184,10 @@ export function wireFailureShapeOf(e) {
|
|
|
168
184
|
...(bodyVerdict !== undefined ? { bodyVerdict } : {}),
|
|
169
185
|
...(bodyCurrentName !== undefined ? { bodyCurrentName } : {}),
|
|
170
186
|
message,
|
|
171
|
-
...(ownMessage !== undefined ? { ownMessage } : {}),
|
|
172
187
|
};
|
|
173
188
|
}
|
|
174
|
-
export const WIRE_FAILURE_UNRENDERABLE_TEXT = 'the call failed with an error this client could not render';
|
|
175
189
|
export function wireFailureTextsOf(e) {
|
|
176
|
-
const {
|
|
190
|
+
const { message } = wireFailureShapeOf(e);
|
|
177
191
|
let log;
|
|
178
192
|
try {
|
|
179
193
|
log = String(e).slice(0, 300);
|
|
@@ -181,11 +195,42 @@ export function wireFailureTextsOf(e) {
|
|
|
181
195
|
catch {
|
|
182
196
|
log = '<unprintable thrown value>';
|
|
183
197
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
198
|
+
return { reason: message, log };
|
|
199
|
+
}
|
|
200
|
+
export function readBlockedBy(o) {
|
|
201
|
+
const judge = (v) => (typeof v === 'string' && v.length > 0 ? { kind: 'named', code: v } : { kind: 'unreadable' });
|
|
202
|
+
try {
|
|
203
|
+
const top = o['blockedBy'];
|
|
204
|
+
if (top !== undefined)
|
|
205
|
+
return judge(top);
|
|
206
|
+
const reading = readThrownExtra(o);
|
|
207
|
+
if (reading.state === 'unreadable')
|
|
208
|
+
return { kind: 'unreadable' };
|
|
209
|
+
if (reading.state === 'object' && Object.hasOwn(reading.value, 'blockedBy')) {
|
|
210
|
+
return judge(reading.value['blockedBy']);
|
|
211
|
+
}
|
|
212
|
+
return { kind: 'absent' };
|
|
213
|
+
}
|
|
214
|
+
catch {
|
|
215
|
+
return { kind: 'unreadable' };
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
export function readRefusalField(o) {
|
|
219
|
+
const str = (rec) => {
|
|
220
|
+
let v;
|
|
221
|
+
try {
|
|
222
|
+
v = rec.field;
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
return typeof v === 'string' && v !== '' ? v : undefined;
|
|
228
|
+
};
|
|
229
|
+
const reading = readThrownExtra(o);
|
|
230
|
+
if (reading.state === 'object') {
|
|
231
|
+
const fromExtra = str(reading.value);
|
|
232
|
+
if (fromExtra !== undefined)
|
|
233
|
+
return fromExtra;
|
|
234
|
+
}
|
|
235
|
+
return str(o);
|
|
191
236
|
}
|
package/dist/wireRefusalCopy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { readErrorNumber, readErrorRecord, readErrorStrictStringList, readErrorString, readErrorStringList } from './wireFailureShape.js';
|
|
1
|
+
import { readErrorNumber, readErrorRecord, readErrorStrictStringList, readErrorString, readErrorStringList, readRefusalField } from './wireFailureShape.js';
|
|
2
2
|
import { readOwnNonEmptyString } from './ownKey.js';
|
|
3
|
-
import { ACTIVE_RUN_BUSY_ERROR_CODE, FLEET_LEASE_UNAVAILABLE, REQUEST_AUTONOMY_LANE_REFUSED, REQUEST_FIELD_CONFLICT, RESUME_POLICY_FOLD_CODE, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, USAGE_WINDOW_EXHAUSTED } from './engineErrorCodes.js';
|
|
3
|
+
import { ACTIVE_RUN_BUSY_ERROR_CODE, FLEET_LEASE_UNAVAILABLE, REQUEST_AUTONOMY_LANE_REFUSED, REQUEST_FIELD_CONFLICT, RESUME_OUTCOME_INVALID, RESUME_POLICY_FOLD_CODE, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, USAGE_WINDOW_EXHAUSTED } from './engineErrorCodes.js';
|
|
4
4
|
import { capForDisplay } from './fleetTaskDesc.js';
|
|
5
5
|
import { effectiveWireErrorCode } from './wireErrorTriage.js';
|
|
6
6
|
import { CORE_TOOL_DECLARATION_CODES } from './generated/engineFactTables.js';
|
|
@@ -184,23 +184,7 @@ export function scenarioAssignmentUnknownFromError(err) {
|
|
|
184
184
|
const SETTLED_BY_NOT_IN_PROOF = 'settled_by_not_in_proof';
|
|
185
185
|
const DECIDED_BY_NOT_IN_PROOF = 'decided_by_not_in_proof';
|
|
186
186
|
const RETIRED_DECISION_KEY = 'settledBy';
|
|
187
|
-
const RESUME_OUTCOME_INVALID = 'resume_outcome_invalid';
|
|
188
187
|
const APPROVAL_NON_BINDING_FIELDS = new Set(['hostDecision', 'approver']);
|
|
189
|
-
function readRefusalField(o) {
|
|
190
|
-
let extra;
|
|
191
|
-
try {
|
|
192
|
-
extra = o.extra;
|
|
193
|
-
}
|
|
194
|
-
catch {
|
|
195
|
-
extra = undefined;
|
|
196
|
-
}
|
|
197
|
-
if (typeof extra === 'object' && extra !== null && !Array.isArray(extra)) {
|
|
198
|
-
const fromExtra = readStringField(extra, 'field');
|
|
199
|
-
if (fromExtra !== undefined)
|
|
200
|
-
return fromExtra;
|
|
201
|
-
}
|
|
202
|
-
return readStringField(o, 'field');
|
|
203
|
-
}
|
|
204
188
|
export function denyAttributionRefusalFromError(err, sentAttributionKey) {
|
|
205
189
|
try {
|
|
206
190
|
if (err === null || typeof err !== 'object')
|
package/dist/workflowClient.js
CHANGED
|
@@ -5,7 +5,7 @@ import { makeEngineWireClient } from './engineWireSdk.js';
|
|
|
5
5
|
import { engineWireDebugEnabled } from './engineWireTarget.js';
|
|
6
6
|
import { hostLog } from './host.js';
|
|
7
7
|
import { isReadCredentialRefusal } from './readCredentialRefusal.js';
|
|
8
|
-
import {
|
|
8
|
+
import { createStreamDrainingLegs } from './streamDrainingLegs.js';
|
|
9
9
|
function coerceRunStatus(s) {
|
|
10
10
|
switch (s) {
|
|
11
11
|
case 'completed':
|
|
@@ -585,11 +585,10 @@ async function consumeWorkflowActivity(l, cfg) {
|
|
|
585
585
|
emitActivityTick(l);
|
|
586
586
|
return;
|
|
587
587
|
}
|
|
588
|
-
|
|
588
|
+
const drains = createStreamDrainingLegs();
|
|
589
589
|
while (!l.closed && !l.abort.signal.aborted) {
|
|
590
590
|
let sawFrame = false;
|
|
591
591
|
let threw = false;
|
|
592
|
-
let lastDrainEnd;
|
|
593
592
|
try {
|
|
594
593
|
const stream = client.workflows.stream(l.workflowId, {
|
|
595
594
|
signal: l.abort.signal,
|
|
@@ -600,12 +599,8 @@ async function consumeWorkflowActivity(l, cfg) {
|
|
|
600
599
|
return;
|
|
601
600
|
sawFrame = true;
|
|
602
601
|
l.connected = true;
|
|
603
|
-
if (
|
|
604
|
-
lastDrainEnd = frame;
|
|
602
|
+
if (drains.see(frame))
|
|
605
603
|
continue;
|
|
606
|
-
}
|
|
607
|
-
lastDrainEnd = undefined;
|
|
608
|
-
drainEnds = 0;
|
|
609
604
|
try {
|
|
610
605
|
foldWorkflowActivityFrame(l, frame);
|
|
611
606
|
}
|
|
@@ -624,6 +619,7 @@ async function consumeWorkflowActivity(l, cfg) {
|
|
|
624
619
|
}
|
|
625
620
|
}
|
|
626
621
|
l.connected = false;
|
|
622
|
+
const drained = drains.legEnded(threw ? 'threw' : 'returned');
|
|
627
623
|
if (!sawFrame && !threw) {
|
|
628
624
|
l.closed = true;
|
|
629
625
|
l.closedReason = 'terminal';
|
|
@@ -642,8 +638,8 @@ async function consumeWorkflowActivity(l, cfg) {
|
|
|
642
638
|
}
|
|
643
639
|
}
|
|
644
640
|
let waitMs = WORKFLOW_ACTIVITY_RECONNECT_MS;
|
|
645
|
-
if (
|
|
646
|
-
const decision =
|
|
641
|
+
if (drained !== undefined) {
|
|
642
|
+
const decision = drained;
|
|
647
643
|
if ('giveUp' in decision) {
|
|
648
644
|
l.closed = true;
|
|
649
645
|
l.closedReason = 'error';
|
|
@@ -798,8 +794,8 @@ export function createLiveWorkflowSource(config) {
|
|
|
798
794
|
connected = false;
|
|
799
795
|
unauthorized = isReadCredentialRefusal(err);
|
|
800
796
|
if (err instanceof APIError) {
|
|
801
|
-
code = err.status;
|
|
802
797
|
degraded = err.status === 501 || err.status === 404;
|
|
798
|
+
code = degraded ? err.status : null;
|
|
803
799
|
lastError = `${err.status} ${err.message}`;
|
|
804
800
|
}
|
|
805
801
|
else {
|
|
@@ -14,5 +14,4 @@ export declare function noteEngineCapsForWorkflowsJournal(baseUrl: string, caps:
|
|
|
14
14
|
export declare function observedWorkflowsJournal(baseUrl?: string | undefined): WorkflowsJournalReading;
|
|
15
15
|
export declare function workflowsJournalAvailable(reading: WorkflowsJournalReading): 'yes' | 'no' | 'unknown';
|
|
16
16
|
export declare function workflowsJournalDoctorDetail(reading: WorkflowsJournalReading): string;
|
|
17
|
-
export declare function forgetWorkflowsJournalReading(baseUrl: string | undefined): void;
|
|
18
17
|
export declare function __resetWorkflowsJournalReadingsForTests(): void;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { engineWireTarget } from './engineWireTarget.js';
|
|
2
2
|
import { createEngineCapReader } from './engineCapReader.js';
|
|
3
|
+
import { ownDataField } from './ownKey.js';
|
|
3
4
|
export function projectWorkflowsJournalCapability(caps) {
|
|
4
5
|
try {
|
|
5
6
|
if (caps === null || typeof caps !== 'object' || Array.isArray(caps))
|
|
6
7
|
return undefined;
|
|
7
|
-
|
|
8
|
-
return { kind: 'not_reported' };
|
|
9
|
-
const v = caps.workflowsJournal;
|
|
8
|
+
const v = ownDataField(caps, 'workflowsJournal');
|
|
10
9
|
if (v === undefined)
|
|
11
10
|
return { kind: 'not_reported' };
|
|
12
11
|
if (typeof v !== 'boolean')
|
|
@@ -47,9 +46,6 @@ export function workflowsJournalDoctorDetail(reading) {
|
|
|
47
46
|
return 'workflow journal on — a workflow’s execution journal can be read';
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
|
-
export function forgetWorkflowsJournalReading(baseUrl) {
|
|
51
|
-
reader.forget(baseUrl);
|
|
52
|
-
}
|
|
53
49
|
export function __resetWorkflowsJournalReadingsForTests() {
|
|
54
50
|
reader.__resetForTests();
|
|
55
51
|
}
|
|
@@ -28,5 +28,4 @@ export declare function noteEngineCapsForWriteProtection(baseUrl: string, caps:
|
|
|
28
28
|
export declare function observedWriteProtection(baseUrl?: string | undefined): WriteProtectionReading;
|
|
29
29
|
export declare function writeProtectionDoctorDetail(reading: WriteProtectionReading): string;
|
|
30
30
|
export declare function writeProtectionPostureDetail(posture: WriteProtectionPostureView): string;
|
|
31
|
-
export declare function forgetWriteProtectionReading(baseUrl: string | undefined): void;
|
|
32
31
|
export declare function __resetWriteProtectionReadingsForTests(): void;
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import { capForDisplay } from './fleetTaskDesc.js';
|
|
2
2
|
import { engineWireTarget } from './engineWireTarget.js';
|
|
3
3
|
import { createEngineCapReader } from './engineCapReader.js';
|
|
4
|
+
import { ownDataField } from './ownKey.js';
|
|
4
5
|
export function projectWriteProtectionCapability(caps) {
|
|
5
6
|
try {
|
|
6
7
|
if (caps === null || typeof caps !== 'object')
|
|
7
8
|
return undefined;
|
|
8
9
|
if (caps === null || typeof caps !== 'object' || Array.isArray(caps))
|
|
9
10
|
return undefined;
|
|
10
|
-
|
|
11
|
-
return { kind: 'not_reported' };
|
|
12
|
-
const wp = caps.writeProtection;
|
|
11
|
+
const wp = ownDataField(caps, 'writeProtection');
|
|
13
12
|
if (wp === null)
|
|
14
13
|
return { kind: 'none' };
|
|
15
14
|
if (wp === undefined)
|
|
16
15
|
return { kind: 'not_reported' };
|
|
17
16
|
if (typeof wp !== 'object' || Array.isArray(wp))
|
|
18
17
|
return undefined;
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const rows = w.rows;
|
|
18
|
+
const armed = ownDataField(wp, 'armed');
|
|
19
|
+
const replaced = ownDataField(wp, 'replaced');
|
|
20
|
+
const rows = ownDataField(wp, 'rows');
|
|
23
21
|
if (typeof armed !== 'boolean')
|
|
24
22
|
return undefined;
|
|
25
23
|
if (typeof replaced !== 'boolean')
|
|
@@ -114,9 +112,6 @@ export function writeProtectionPostureDetail(posture) {
|
|
|
114
112
|
: '';
|
|
115
113
|
return `source ${source} · ${String(posture.rows.length)} ${posture.rows.length === 1 ? 'name' : 'names'}: ${shown}${more}${dropped}`;
|
|
116
114
|
}
|
|
117
|
-
export function forgetWriteProtectionReading(baseUrl) {
|
|
118
|
-
reader.forget(baseUrl);
|
|
119
|
-
}
|
|
120
115
|
export function __resetWriteProtectionReadingsForTests() {
|
|
121
116
|
reader.__resetForTests();
|
|
122
117
|
}
|