@githolon/runtime 0.110.0 → 0.110.1
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/dist/RUNTIME-SOURCES.sha256 +4 -4
- package/dist/nomos-native-runtime.js +114 -71
- package/dist/nomos-runner.js +127 -90
- package/package.json +1 -1
- package/runner/node-entry.mjs +114 -71
package/dist/nomos-runner.js
CHANGED
|
@@ -19623,6 +19623,15 @@
|
|
|
19623
19623
|
}
|
|
19624
19624
|
if (result.stillAhead || result.pushFailed || result.directOfferDeferred || result.reconnectRequired) {
|
|
19625
19625
|
if (result.directOfferDeferred) {
|
|
19626
|
+
if (!result.reconnectRequired) {
|
|
19627
|
+
__privateGet(this, _desk).transition(result.workspace, {
|
|
19628
|
+
case: ReplicaFollowEventKind.Failed,
|
|
19629
|
+
nowUnixMillis,
|
|
19630
|
+
failure: "remote workspace opening; retrying",
|
|
19631
|
+
retryWithinMillis: 5e3
|
|
19632
|
+
});
|
|
19633
|
+
return delayUntilDue(__privateGet(this, _desk).get(result.workspace), nowUnixMillis);
|
|
19634
|
+
}
|
|
19626
19635
|
__privateGet(this, _desk).transition(result.workspace, {
|
|
19627
19636
|
case: ReplicaFollowEventKind.DependencyDeferred,
|
|
19628
19637
|
nowUnixMillis,
|
|
@@ -21619,6 +21628,34 @@
|
|
|
21619
21628
|
init_shims();
|
|
21620
21629
|
var CUSTODY_OFFER_MEDIA_TYPE = "application/vnd.nomos.custody-offer-batch+protobuf";
|
|
21621
21630
|
var CUSTODY_OFFER_RESULT_MEDIA_TYPE = "application/vnd.nomos.custody-offer-result+protobuf";
|
|
21631
|
+
function settleCustodyOfferExchange(awaiting, response) {
|
|
21632
|
+
if (response.status === 202 && response.contentType?.includes("application/json")) {
|
|
21633
|
+
try {
|
|
21634
|
+
const pending = JSON.parse(new TextDecoder().decode(response.body));
|
|
21635
|
+
if (pending?.retryable === true && typeof pending.preparing === "string") {
|
|
21636
|
+
return { case: "maintenance", kind: pending.preparing };
|
|
21637
|
+
}
|
|
21638
|
+
} catch {
|
|
21639
|
+
}
|
|
21640
|
+
}
|
|
21641
|
+
if (!response.contentType?.includes(CUSTODY_OFFER_RESULT_MEDIA_TYPE)) {
|
|
21642
|
+
return {
|
|
21643
|
+
case: "unexpected",
|
|
21644
|
+
status: response.status,
|
|
21645
|
+
...response.contentType === void 0 ? {} : { contentType: response.contentType }
|
|
21646
|
+
};
|
|
21647
|
+
}
|
|
21648
|
+
const verdict = decodeCustodyOffer(response.body, awaiting.requestId);
|
|
21649
|
+
const receipt = custodyOfferReceipt(awaiting.requestId, verdict);
|
|
21650
|
+
switch (verdict.case) {
|
|
21651
|
+
case "admission":
|
|
21652
|
+
return { case: "admission", value: verdict.value, receipt, status: response.status };
|
|
21653
|
+
case "failure":
|
|
21654
|
+
return { case: "failure", value: verdict.value, receipt, status: response.status };
|
|
21655
|
+
case "blocked":
|
|
21656
|
+
return { case: "blocked", value: verdict.value, receipt, status: response.status };
|
|
21657
|
+
}
|
|
21658
|
+
}
|
|
21622
21659
|
function encodeInlineCustodyOffer(args) {
|
|
21623
21660
|
return toBinary(CustodyOfferBatchRequestSchema, create(CustodyOfferBatchRequestSchema, {
|
|
21624
21661
|
protocolVersion: 2,
|
|
@@ -21745,6 +21782,7 @@
|
|
|
21745
21782
|
var PLACEMENT_REF3 = "refs/nomos/placement";
|
|
21746
21783
|
var LAW_PRODUCTS_MEDIA_TYPE = "application/vnd.nomos.export-law-products-response+protobuf";
|
|
21747
21784
|
var WorkspaceSyncPhase = Object.freeze({
|
|
21785
|
+
Idle: "idle",
|
|
21748
21786
|
Probe: "probe",
|
|
21749
21787
|
Offer: "offer",
|
|
21750
21788
|
Lease: "lease",
|
|
@@ -21766,7 +21804,7 @@
|
|
|
21766
21804
|
const finished = clock.monotonicNanoseconds();
|
|
21767
21805
|
return finished >= started ? Number(finished - started) / 1e6 : 0;
|
|
21768
21806
|
};
|
|
21769
|
-
var _kernel16, _credentials4, _clock13, _mount, _binding, _route2, _rediscover, _reroute,
|
|
21807
|
+
var _kernel16, _credentials4, _clock13, _mount, _binding, _route2, _rediscover, _reroute, _discoveredFrontier, _observePlacement, _recheckPlacement, _directoryAnswered, _placementFetched, _leased, _command2, _requestId4, _started, _state, _localHead, _offerHead, _previousHead, _pushMillis, _pushBytes, _desiredHead, _returnedPackHead, _candidateDurable, _admissionSummary, _offerReceipt, _pushError, _current3, _lastReceiptEffectId2, _lastStep2, _probeOnly, _establishedBase, _receiveState, _completeHistory, _lawProductsImported, _shallowMounted, _fetchedLawProducts, _beforeConverge, _needsReconciliation, _offerAfterConverge, _rebaseFrom, _rebases, _parkedLocal, _replaceLocalHead, _repairMissingCommit, _WorkspaceSyncWork_instances, openRound_fn, offerOrReconcile_fn, establishBase_fn, noCommonBase_fn, noCommonBaseResult_fn, holdsLocalWork_fn, pullBeforeOffer_fn, leaseEffect_fn, beginOffer_fn, acceptOffer_fn, acceptLease_fn, placementFrontier_fn, placementOnly_fn, acceptDiscovery_fn, providerCustody_fn, beginMainFetch_fn, acceptFetch_fn, mountFetched_fn, lawProductsAlongside_fn, acceptLawProducts_fn, providerCustodyMounted_fn, importLawProducts_fn, converge_fn2, unrelatedLineageRefusal_fn, replaceLocal_fn, converged_fn, offerAfterRebase_fn, preservedCopy_fn, alreadyJudged_fn, rememberJudgment_fn, forgetJudgment_fn, present_fn, finishOfferOutcome_fn, transportFailure_fn, remember_fn4, finish_fn2, cloudBase_fn, offerEndpoint_fn, workspaceEndpoint_fn, authToken_fn;
|
|
21770
21808
|
var WorkspaceSyncWork = class {
|
|
21771
21809
|
constructor(args) {
|
|
21772
21810
|
__privateAdd(this, _WorkspaceSyncWork_instances);
|
|
@@ -21781,7 +21819,6 @@
|
|
|
21781
21819
|
__privateAdd(this, _rediscover);
|
|
21782
21820
|
/** The route the directory's answer yields, recomputed once that answer is observed. */
|
|
21783
21821
|
__privateAdd(this, _reroute);
|
|
21784
|
-
__privateAdd(this, _placementFetch);
|
|
21785
21822
|
__privateAdd(this, _discoveredFrontier);
|
|
21786
21823
|
__privateAdd(this, _observePlacement);
|
|
21787
21824
|
/** Ask the directory for the provider's current placement frontier this round although a
|
|
@@ -21790,19 +21827,14 @@
|
|
|
21790
21827
|
__privateAdd(this, _directoryAnswered);
|
|
21791
21828
|
__privateAdd(this, _placementFetched);
|
|
21792
21829
|
/** A round which converged without leasing, finishing once placement alone is fetched. */
|
|
21793
|
-
__privateAdd(this, _afterPlacement);
|
|
21794
21830
|
__privateAdd(this, _leased, false);
|
|
21795
|
-
__privateAdd(this, _lease);
|
|
21796
21831
|
__privateAdd(this, _command2);
|
|
21797
21832
|
__privateAdd(this, _requestId4);
|
|
21798
21833
|
__privateAdd(this, _started);
|
|
21799
|
-
__privateAdd(this,
|
|
21834
|
+
__privateAdd(this, _state, { phase: WorkspaceSyncPhase.Idle });
|
|
21800
21835
|
__privateAdd(this, _localHead);
|
|
21801
21836
|
__privateAdd(this, _offerHead);
|
|
21802
21837
|
__privateAdd(this, _previousHead);
|
|
21803
|
-
__privateAdd(this, _fetchStarted);
|
|
21804
|
-
__privateAdd(this, _offerStarted);
|
|
21805
|
-
__privateAdd(this, _offerRequestId);
|
|
21806
21838
|
__privateAdd(this, _pushMillis, 0);
|
|
21807
21839
|
__privateAdd(this, _pushBytes, 0n);
|
|
21808
21840
|
__privateAdd(this, _desiredHead);
|
|
@@ -21896,7 +21928,7 @@
|
|
|
21896
21928
|
throw new Error(`replica '${__privateGet(this, _binding).replicaId}' has no custody remote`);
|
|
21897
21929
|
}
|
|
21898
21930
|
if (__privateGet(this, _rediscover) || __privateGet(this, _recheckPlacement) || !__privateGet(this, _route2)?.placementObserved && !__privateGet(this, _route2)?.placementFrontier && !__privateGet(this, _kernel16).resolveRef(__privateGet(this, _mount), __privateGet(this, _requestId4), PLACEMENT_REF3)) {
|
|
21899
|
-
__privateSet(this,
|
|
21931
|
+
__privateSet(this, _state, { phase: WorkspaceSyncPhase.Discover });
|
|
21900
21932
|
return __privateMethod(this, _WorkspaceSyncWork_instances, remember_fn4).call(this, {
|
|
21901
21933
|
case: "pending",
|
|
21902
21934
|
value: create(CorrespondencePendingSchema, {
|
|
@@ -21930,24 +21962,26 @@
|
|
|
21930
21962
|
`workspace sync '${this.workId}' expected effect '${expected}', received '${receipt.effectId}'`
|
|
21931
21963
|
);
|
|
21932
21964
|
}
|
|
21965
|
+
const state = __privateGet(this, _state);
|
|
21933
21966
|
const previousReceipt = __privateGet(this, _lastReceiptEffectId2);
|
|
21934
21967
|
__privateSet(this, _lastReceiptEffectId2, receipt.effectId);
|
|
21935
21968
|
try {
|
|
21936
21969
|
if (receipt.outcome.case === "failure") {
|
|
21937
|
-
if (
|
|
21970
|
+
if (state.phase === WorkspaceSyncPhase.Discover) return __privateMethod(this, _WorkspaceSyncWork_instances, openRound_fn).call(this);
|
|
21938
21971
|
return __privateMethod(this, _WorkspaceSyncWork_instances, transportFailure_fn).call(this, receipt.outcome.value.message, receipt.outcome.value.reason === PeerEffectFailureReason.OFFLINE);
|
|
21939
21972
|
}
|
|
21940
|
-
if (
|
|
21941
|
-
|
|
21942
|
-
|
|
21943
|
-
if (
|
|
21944
|
-
|
|
21945
|
-
|
|
21973
|
+
if (state.phase === WorkspaceSyncPhase.Offer || state.phase === WorkspaceSyncPhase.Probe) {
|
|
21974
|
+
return __privateMethod(this, _WorkspaceSyncWork_instances, acceptOffer_fn).call(this, receipt, state);
|
|
21975
|
+
}
|
|
21976
|
+
if (state.phase === WorkspaceSyncPhase.Lease) return __privateMethod(this, _WorkspaceSyncWork_instances, acceptLease_fn).call(this, receipt, state);
|
|
21977
|
+
if (state.phase === WorkspaceSyncPhase.Discover) return __privateMethod(this, _WorkspaceSyncWork_instances, acceptDiscovery_fn).call(this, receipt);
|
|
21978
|
+
if (state.phase === WorkspaceSyncPhase.Placement) {
|
|
21979
|
+
state.transfer.accept(receipt);
|
|
21946
21980
|
(_a = __privateGet(this, _placementFetched)) == null ? void 0 : _a.call(this);
|
|
21947
|
-
if (
|
|
21948
|
-
return __privateMethod(this, _WorkspaceSyncWork_instances, beginMainFetch_fn).call(this,
|
|
21981
|
+
if (state.afterPlacement) return __privateMethod(this, _WorkspaceSyncWork_instances, finish_fn2).call(this, state.afterPlacement);
|
|
21982
|
+
return __privateMethod(this, _WorkspaceSyncWork_instances, beginMainFetch_fn).call(this, state.lease);
|
|
21949
21983
|
}
|
|
21950
|
-
if (
|
|
21984
|
+
if (state.phase === WorkspaceSyncPhase.Fetch) return __privateMethod(this, _WorkspaceSyncWork_instances, acceptFetch_fn).call(this, receipt, state);
|
|
21951
21985
|
throw new Error(`workspace sync '${this.workId}' is already complete`);
|
|
21952
21986
|
} catch (error) {
|
|
21953
21987
|
__privateSet(this, _lastReceiptEffectId2, previousReceipt);
|
|
@@ -21963,25 +21997,19 @@
|
|
|
21963
21997
|
_route2 = new WeakMap();
|
|
21964
21998
|
_rediscover = new WeakMap();
|
|
21965
21999
|
_reroute = new WeakMap();
|
|
21966
|
-
_placementFetch = new WeakMap();
|
|
21967
22000
|
_discoveredFrontier = new WeakMap();
|
|
21968
22001
|
_observePlacement = new WeakMap();
|
|
21969
22002
|
_recheckPlacement = new WeakMap();
|
|
21970
22003
|
_directoryAnswered = new WeakMap();
|
|
21971
22004
|
_placementFetched = new WeakMap();
|
|
21972
|
-
_afterPlacement = new WeakMap();
|
|
21973
22005
|
_leased = new WeakMap();
|
|
21974
|
-
_lease = new WeakMap();
|
|
21975
22006
|
_command2 = new WeakMap();
|
|
21976
22007
|
_requestId4 = new WeakMap();
|
|
21977
22008
|
_started = new WeakMap();
|
|
21978
|
-
|
|
22009
|
+
_state = new WeakMap();
|
|
21979
22010
|
_localHead = new WeakMap();
|
|
21980
22011
|
_offerHead = new WeakMap();
|
|
21981
22012
|
_previousHead = new WeakMap();
|
|
21982
|
-
_fetchStarted = new WeakMap();
|
|
21983
|
-
_offerStarted = new WeakMap();
|
|
21984
|
-
_offerRequestId = new WeakMap();
|
|
21985
22013
|
_pushMillis = new WeakMap();
|
|
21986
22014
|
_pushBytes = new WeakMap();
|
|
21987
22015
|
_desiredHead = new WeakMap();
|
|
@@ -22012,13 +22040,13 @@
|
|
|
22012
22040
|
openRound_fn = function() {
|
|
22013
22041
|
if (__privateGet(this, _receiveState) || __privateGet(this, _replaceLocalHead) !== void 0) return __privateMethod(this, _WorkspaceSyncWork_instances, leaseEffect_fn).call(this);
|
|
22014
22042
|
if (!__privateGet(this, _localHead)) return __privateMethod(this, _WorkspaceSyncWork_instances, leaseEffect_fn).call(this);
|
|
22015
|
-
|
|
22043
|
+
const requestId = `${__privateGet(this, _binding).replicaId}:${__privateGet(this, _requestId4)}:${this.workId}:frontier`;
|
|
22016
22044
|
return __privateMethod(this, _WorkspaceSyncWork_instances, beginOffer_fn).call(this, encodeInlineCustodyOffer({
|
|
22017
22045
|
session: __privateGet(this, _binding).replicaId,
|
|
22018
|
-
requestId
|
|
22046
|
+
requestId,
|
|
22019
22047
|
observedHead: __privateGet(this, _localHead),
|
|
22020
22048
|
intents: []
|
|
22021
|
-
}), true);
|
|
22049
|
+
}), { case: "awaiting", requestId }, true);
|
|
22022
22050
|
};
|
|
22023
22051
|
offerOrReconcile_fn = function() {
|
|
22024
22052
|
if (__privateGet(this, _command2).admit && __privateGet(this, _localHead) && __privateGet(this, _localHead) !== __privateGet(this, _previousHead)) {
|
|
@@ -22039,13 +22067,13 @@
|
|
|
22039
22067
|
throw new Error(`kernel did not classify transport for intent '${unspecified.intentId}'`);
|
|
22040
22068
|
}
|
|
22041
22069
|
if (suffix.length > 0) {
|
|
22042
|
-
|
|
22043
|
-
|
|
22070
|
+
const requestId2 = `${__privateGet(this, _binding).replicaId}:${__privateGet(this, _requestId4)}:${this.workId}`;
|
|
22071
|
+
const startedAt = __privateGet(this, _clock13).monotonicNanoseconds();
|
|
22044
22072
|
__privateSet(this, _offerAfterConverge, true);
|
|
22045
22073
|
__privateSet(this, _rebaseFrom, __privateGet(this, _previousHead));
|
|
22046
22074
|
return __privateMethod(this, _WorkspaceSyncWork_instances, beginOffer_fn).call(this, encodeInlineCustodyOffer({
|
|
22047
22075
|
session: __privateGet(this, _binding).replicaId,
|
|
22048
|
-
requestId:
|
|
22076
|
+
requestId: requestId2,
|
|
22049
22077
|
...__privateGet(this, _previousHead) === void 0 ? {} : { baseHead: __privateGet(this, _previousHead) },
|
|
22050
22078
|
observedHead: __privateGet(this, _localHead),
|
|
22051
22079
|
intents: suffix,
|
|
@@ -22056,17 +22084,17 @@
|
|
|
22056
22084
|
__privateGet(this, _previousHead)
|
|
22057
22085
|
) : void 0,
|
|
22058
22086
|
fastForwardOnly: true
|
|
22059
|
-
}));
|
|
22087
|
+
}), { case: "awaiting", requestId: requestId2, startedAt });
|
|
22060
22088
|
}
|
|
22061
22089
|
}
|
|
22062
|
-
|
|
22090
|
+
const requestId = `${__privateGet(this, _binding).replicaId}:${__privateGet(this, _requestId4)}:${this.workId}:reconcile`;
|
|
22063
22091
|
return __privateMethod(this, _WorkspaceSyncWork_instances, beginOffer_fn).call(this, encodeInlineCustodyOffer({
|
|
22064
22092
|
session: __privateGet(this, _binding).replicaId,
|
|
22065
|
-
requestId
|
|
22093
|
+
requestId,
|
|
22066
22094
|
baseHead: __privateGet(this, _previousHead),
|
|
22067
22095
|
observedHead: __privateGet(this, _localHead),
|
|
22068
22096
|
intents: []
|
|
22069
|
-
}));
|
|
22097
|
+
}), { case: "awaiting", requestId });
|
|
22070
22098
|
};
|
|
22071
22099
|
/**
|
|
22072
22100
|
* NO COMMON BASE — a round that cannot converge, and must not pay for history to find out.
|
|
@@ -22137,18 +22165,18 @@
|
|
|
22137
22165
|
pullBeforeOffer_fn = function() {
|
|
22138
22166
|
__privateSet(this, _offerAfterConverge, true);
|
|
22139
22167
|
__privateSet(this, _rebaseFrom, __privateGet(this, _previousHead));
|
|
22140
|
-
|
|
22168
|
+
const requestId = `${__privateGet(this, _binding).replicaId}:${__privateGet(this, _requestId4)}:${this.workId}:pull-${__privateGet(this, _rebases)}`;
|
|
22141
22169
|
return __privateMethod(this, _WorkspaceSyncWork_instances, beginOffer_fn).call(this, encodeInlineCustodyOffer({
|
|
22142
22170
|
session: __privateGet(this, _binding).replicaId,
|
|
22143
|
-
requestId
|
|
22171
|
+
requestId,
|
|
22144
22172
|
...__privateGet(this, _previousHead) === void 0 ? {} : { baseHead: __privateGet(this, _previousHead) },
|
|
22145
22173
|
observedHead: __privateGet(this, _localHead),
|
|
22146
22174
|
intents: []
|
|
22147
|
-
}));
|
|
22175
|
+
}), { case: "awaiting", requestId });
|
|
22148
22176
|
};
|
|
22149
|
-
leaseEffect_fn = function() {
|
|
22177
|
+
leaseEffect_fn = function(afterPlacement) {
|
|
22150
22178
|
const token = __privateMethod(this, _WorkspaceSyncWork_instances, authToken_fn).call(this);
|
|
22151
|
-
__privateSet(this,
|
|
22179
|
+
__privateSet(this, _state, { phase: WorkspaceSyncPhase.Lease, ...afterPlacement ? { afterPlacement } : {} });
|
|
22152
22180
|
return __privateMethod(this, _WorkspaceSyncWork_instances, remember_fn4).call(this, {
|
|
22153
22181
|
case: "pending",
|
|
22154
22182
|
value: create(CorrespondencePendingSchema, {
|
|
@@ -22166,8 +22194,9 @@
|
|
|
22166
22194
|
})
|
|
22167
22195
|
});
|
|
22168
22196
|
};
|
|
22169
|
-
beginOffer_fn = function(body, probe = false) {
|
|
22170
|
-
|
|
22197
|
+
beginOffer_fn = function(body, exchange, probe = false) {
|
|
22198
|
+
const phase = probe ? WorkspaceSyncPhase.Probe : WorkspaceSyncPhase.Offer;
|
|
22199
|
+
__privateSet(this, _state, { phase, exchange });
|
|
22171
22200
|
const token = __privateMethod(this, _WorkspaceSyncWork_instances, authToken_fn).call(this);
|
|
22172
22201
|
__privateSet(this, _pushBytes, __privateGet(this, _pushBytes) + BigInt(body.byteLength));
|
|
22173
22202
|
return __privateMethod(this, _WorkspaceSyncWork_instances, remember_fn4).call(this, {
|
|
@@ -22177,7 +22206,7 @@
|
|
|
22177
22206
|
effect: {
|
|
22178
22207
|
case: "http",
|
|
22179
22208
|
value: create(PeerHttpEffectSchema, {
|
|
22180
|
-
effectId: `${this.workId}:${
|
|
22209
|
+
effectId: `${this.workId}:${phase}`,
|
|
22181
22210
|
method: PeerHttpMethod.POST,
|
|
22182
22211
|
url: __privateMethod(this, _WorkspaceSyncWork_instances, offerEndpoint_fn).call(this),
|
|
22183
22212
|
contentType: CUSTODY_OFFER_MEDIA_TYPE,
|
|
@@ -22194,28 +22223,30 @@
|
|
|
22194
22223
|
})
|
|
22195
22224
|
});
|
|
22196
22225
|
};
|
|
22197
|
-
acceptOffer_fn = function(receipt) {
|
|
22198
|
-
|
|
22226
|
+
acceptOffer_fn = function(receipt, state) {
|
|
22227
|
+
const exchange = state.exchange;
|
|
22228
|
+
__privateSet(this, _pushMillis, exchange.startedAt === void 0 ? 0 : elapsedMillis(__privateGet(this, _clock13), exchange.startedAt));
|
|
22199
22229
|
if (receipt.outcome.case !== "response") {
|
|
22200
22230
|
throw new Error("platform returned the wrong receipt for a custody offer");
|
|
22201
22231
|
}
|
|
22202
|
-
const
|
|
22203
|
-
if (
|
|
22232
|
+
const outcome = settleCustodyOfferExchange(exchange, receipt.outcome.value);
|
|
22233
|
+
if (outcome.case === "maintenance") {
|
|
22234
|
+
return __privateMethod(this, _WorkspaceSyncWork_instances, finishOfferOutcome_fn).call(this, true, false);
|
|
22235
|
+
}
|
|
22236
|
+
if (outcome.case === "unexpected") {
|
|
22204
22237
|
__privateSet(this, _pushError, create(RuntimeTransportFailureSchema, {
|
|
22205
22238
|
endpoint: __privateMethod(this, _WorkspaceSyncWork_instances, offerEndpoint_fn).call(this),
|
|
22206
|
-
status:
|
|
22239
|
+
status: outcome.status,
|
|
22207
22240
|
refused: false,
|
|
22208
|
-
message: `Sync received an unexpected server response (HTTP ${
|
|
22241
|
+
message: `Sync received an unexpected server response (HTTP ${outcome.status}; ${outcome.contentType || "no content type"}). No custody receipt was returned.`
|
|
22209
22242
|
}));
|
|
22210
22243
|
return __privateMethod(this, _WorkspaceSyncWork_instances, finishOfferOutcome_fn).call(this, false);
|
|
22211
22244
|
}
|
|
22212
|
-
|
|
22213
|
-
const outcome = decodeCustodyOffer(response.body, __privateGet(this, _offerRequestId));
|
|
22214
|
-
__privateSet(this, _offerReceipt, custodyOfferReceipt(__privateGet(this, _offerRequestId), outcome));
|
|
22245
|
+
__privateSet(this, _offerReceipt, outcome.receipt);
|
|
22215
22246
|
if (outcome.case === "failure") {
|
|
22216
22247
|
__privateSet(this, _pushError, create(RuntimeTransportFailureSchema, {
|
|
22217
22248
|
endpoint: __privateMethod(this, _WorkspaceSyncWork_instances, offerEndpoint_fn).call(this),
|
|
22218
|
-
status:
|
|
22249
|
+
status: outcome.status,
|
|
22219
22250
|
refused: false,
|
|
22220
22251
|
message: `${outcome.value.code}: ${outcome.value.message}`
|
|
22221
22252
|
}));
|
|
@@ -22224,12 +22255,12 @@
|
|
|
22224
22255
|
if (outcome.case === "blocked") {
|
|
22225
22256
|
return __privateMethod(this, _WorkspaceSyncWork_instances, finishOfferOutcome_fn).call(this, true);
|
|
22226
22257
|
}
|
|
22227
|
-
if (
|
|
22258
|
+
if (outcome.status < 200 || outcome.status >= 300) {
|
|
22228
22259
|
__privateSet(this, _pushError, create(RuntimeTransportFailureSchema, {
|
|
22229
22260
|
endpoint: __privateMethod(this, _WorkspaceSyncWork_instances, offerEndpoint_fn).call(this),
|
|
22230
|
-
status:
|
|
22231
|
-
refused:
|
|
22232
|
-
message: `custody offer returned an admission verdict with HTTP ${
|
|
22261
|
+
status: outcome.status,
|
|
22262
|
+
refused: outcome.status === 422,
|
|
22263
|
+
message: `custody offer returned an admission verdict with HTTP ${outcome.status}`
|
|
22233
22264
|
}));
|
|
22234
22265
|
return __privateMethod(this, _WorkspaceSyncWork_instances, finishOfferOutcome_fn).call(this, false);
|
|
22235
22266
|
}
|
|
@@ -22237,7 +22268,7 @@
|
|
|
22237
22268
|
__privateSet(this, _desiredHead, admission.main || void 0);
|
|
22238
22269
|
if (!__privateGet(this, _desiredHead)) return __privateMethod(this, _WorkspaceSyncWork_instances, transportFailure_fn).call(this, "resident peer returned no admitted frontier", false);
|
|
22239
22270
|
__privateSet(this, _candidateDurable, admission.sealedMain === __privateGet(this, _desiredHead));
|
|
22240
|
-
if (
|
|
22271
|
+
if (state.phase === WorkspaceSyncPhase.Probe && __privateGet(this, _desiredHead) !== __privateGet(this, _localHead)) {
|
|
22241
22272
|
if (!__privateMethod(this, _WorkspaceSyncWork_instances, establishBase_fn).call(this, __privateGet(this, _desiredHead))) return __privateMethod(this, _WorkspaceSyncWork_instances, noCommonBaseResult_fn).call(this);
|
|
22242
22273
|
if (__privateMethod(this, _WorkspaceSyncWork_instances, alreadyJudged_fn).call(this, __privateGet(this, _desiredHead))) {
|
|
22243
22274
|
return __privateMethod(this, _WorkspaceSyncWork_instances, finish_fn2).call(this, create(SyncWorkspaceResponseSchema, {
|
|
@@ -22299,7 +22330,7 @@
|
|
|
22299
22330
|
if (admission.recoveryRequired !== false) return __privateMethod(this, _WorkspaceSyncWork_instances, leaseEffect_fn).call(this);
|
|
22300
22331
|
return __privateMethod(this, _WorkspaceSyncWork_instances, transportFailure_fn).call(this, "resident peer supplied neither the missing delta nor a history gap", false);
|
|
22301
22332
|
};
|
|
22302
|
-
acceptLease_fn = function(receipt) {
|
|
22333
|
+
acceptLease_fn = function(receipt, state) {
|
|
22303
22334
|
if (receipt.outcome.case !== "response") {
|
|
22304
22335
|
throw new Error("platform returned the wrong receipt for a Git read lease");
|
|
22305
22336
|
}
|
|
@@ -22311,21 +22342,25 @@
|
|
|
22311
22342
|
__privateSet(this, _leased, true);
|
|
22312
22343
|
const frontier = __privateMethod(this, _WorkspaceSyncWork_instances, placementFrontier_fn).call(this);
|
|
22313
22344
|
if (frontier) {
|
|
22314
|
-
|
|
22345
|
+
const transfer = new PlacementFetch(
|
|
22315
22346
|
__privateGet(this, _kernel16),
|
|
22316
22347
|
__privateGet(this, _mount),
|
|
22317
22348
|
__privateGet(this, _requestId4),
|
|
22318
22349
|
this.workId,
|
|
22319
22350
|
frontier
|
|
22320
|
-
)
|
|
22321
|
-
const pending =
|
|
22351
|
+
);
|
|
22352
|
+
const pending = transfer.start(lease);
|
|
22322
22353
|
if (pending) {
|
|
22323
|
-
__privateSet(this,
|
|
22324
|
-
|
|
22354
|
+
__privateSet(this, _state, {
|
|
22355
|
+
phase: WorkspaceSyncPhase.Placement,
|
|
22356
|
+
transfer,
|
|
22357
|
+
lease,
|
|
22358
|
+
...state.afterPlacement ? { afterPlacement: state.afterPlacement } : {}
|
|
22359
|
+
});
|
|
22325
22360
|
return __privateMethod(this, _WorkspaceSyncWork_instances, remember_fn4).call(this, { case: "pending", value: pending });
|
|
22326
22361
|
}
|
|
22327
22362
|
}
|
|
22328
|
-
if (
|
|
22363
|
+
if (state.afterPlacement) return __privateMethod(this, _WorkspaceSyncWork_instances, finish_fn2).call(this, state.afterPlacement);
|
|
22329
22364
|
return __privateMethod(this, _WorkspaceSyncWork_instances, beginMainFetch_fn).call(this, lease);
|
|
22330
22365
|
};
|
|
22331
22366
|
/** The provider's placement frontier as this round knows it: what the directory named in this
|
|
@@ -22345,8 +22380,7 @@
|
|
|
22345
22380
|
if (!new PlacementFetch(__privateGet(this, _kernel16), __privateGet(this, _mount), __privateGet(this, _requestId4), this.workId, frontier).wanted()) {
|
|
22346
22381
|
return void 0;
|
|
22347
22382
|
}
|
|
22348
|
-
|
|
22349
|
-
return __privateMethod(this, _WorkspaceSyncWork_instances, leaseEffect_fn).call(this);
|
|
22383
|
+
return __privateMethod(this, _WorkspaceSyncWork_instances, leaseEffect_fn).call(this, presented);
|
|
22350
22384
|
};
|
|
22351
22385
|
acceptDiscovery_fn = function(receipt) {
|
|
22352
22386
|
var _a, _b;
|
|
@@ -22371,9 +22405,11 @@
|
|
|
22371
22405
|
return __privateGet(this, _replaceLocalHead) !== void 0 || __privateGet(this, _localHead) === void 0 && __privateGet(this, _previousHead) === void 0;
|
|
22372
22406
|
};
|
|
22373
22407
|
beginMainFetch_fn = function(lease) {
|
|
22374
|
-
__privateSet(this, _phase2, WorkspaceSyncPhase.Fetch);
|
|
22375
22408
|
const lawProducts = __privateMethod(this, _WorkspaceSyncWork_instances, lawProductsAlongside_fn).call(this);
|
|
22376
|
-
__privateSet(this,
|
|
22409
|
+
__privateSet(this, _state, {
|
|
22410
|
+
phase: WorkspaceSyncPhase.Fetch,
|
|
22411
|
+
startedAt: __privateGet(this, _clock13).monotonicNanoseconds()
|
|
22412
|
+
});
|
|
22377
22413
|
const haves = __privateGet(this, _replaceLocalHead) !== void 0 ? __privateGet(this, _repairMissingCommit) ? [] : [__privateGet(this, _kernel16).resolveRef(__privateGet(this, _mount), __privateGet(this, _requestId4), deferredRemote)].filter(
|
|
22378
22414
|
(head) => !!head
|
|
22379
22415
|
) : [...new Set([
|
|
@@ -22404,7 +22440,7 @@
|
|
|
22404
22440
|
})
|
|
22405
22441
|
});
|
|
22406
22442
|
};
|
|
22407
|
-
acceptFetch_fn = function(receipt) {
|
|
22443
|
+
acceptFetch_fn = function(receipt, state) {
|
|
22408
22444
|
if (receipt.outcome.case !== "gitFetch") {
|
|
22409
22445
|
throw new Error("platform returned the wrong receipt for a Git object fetch");
|
|
22410
22446
|
}
|
|
@@ -22414,7 +22450,7 @@
|
|
|
22414
22450
|
if (fetched.pack.byteLength > 0) {
|
|
22415
22451
|
__privateGet(this, _kernel16).applyPack(__privateGet(this, _mount), __privateGet(this, _requestId4), fetched.pack, fetched.head, fetched.shallow);
|
|
22416
22452
|
}
|
|
22417
|
-
const prefetchMillis =
|
|
22453
|
+
const prefetchMillis = elapsedMillis(__privateGet(this, _clock13), state.startedAt);
|
|
22418
22454
|
const candidateHead = __privateGet(this, _receiveState) ? __privateGet(this, _kernel16).resolveStatePosition?.(__privateGet(this, _mount), __privateGet(this, _requestId4), fetched.head, __privateGet(this, _receiveState)) : fetched.head;
|
|
22419
22455
|
if (!candidateHead) {
|
|
22420
22456
|
return __privateMethod(this, _WorkspaceSyncWork_instances, finish_fn2).call(this, create(SyncWorkspaceResponseSchema, {
|
|
@@ -22739,11 +22775,11 @@
|
|
|
22739
22775
|
pushBytes: __privateGet(this, _pushBytes),
|
|
22740
22776
|
pullBytes: BigInt(receivedBytes),
|
|
22741
22777
|
serverMillis: __privateGet(this, _admissionSummary)?.serverMillis ?? 0,
|
|
22742
|
-
offerInPush: __privateGet(this,
|
|
22778
|
+
offerInPush: __privateGet(this, _pushBytes) > 0n
|
|
22743
22779
|
})
|
|
22744
22780
|
});
|
|
22745
22781
|
};
|
|
22746
|
-
finishOfferOutcome_fn = function(blocked) {
|
|
22782
|
+
finishOfferOutcome_fn = function(blocked, reconnectRequired = true) {
|
|
22747
22783
|
return __privateMethod(this, _WorkspaceSyncWork_instances, finish_fn2).call(this, create(SyncWorkspaceResponseSchema, {
|
|
22748
22784
|
workspace: __privateGet(this, _mount).workspace,
|
|
22749
22785
|
previousHead: __privateGet(this, _previousHead),
|
|
@@ -22751,7 +22787,7 @@
|
|
|
22751
22787
|
admitted: BigInt(__privateGet(this, _admissionSummary)?.admittedIntentIds.length ?? 0),
|
|
22752
22788
|
refused: BigInt((__privateGet(this, _admissionSummary)?.refusedMessages.length ?? 0) + __privateGet(this, _parkedLocal)),
|
|
22753
22789
|
deferred: BigInt(__privateGet(this, _admissionSummary) ? __privateGet(this, _admissionSummary).blockedMessages.length + __privateGet(this, _admissionSummary).deadLetteredMessages.length + __privateGet(this, _admissionSummary).quarantinedMessages.length + __privateGet(this, _admissionSummary).deferredMessages.length : blocked ? 1 : 0),
|
|
22754
|
-
reconnectRequired
|
|
22790
|
+
reconnectRequired,
|
|
22755
22791
|
stillAhead: __privateGet(this, _localHead) !== __privateGet(this, _previousHead),
|
|
22756
22792
|
directOfferDeferred: blocked,
|
|
22757
22793
|
offerReceipt: __privateGet(this, _offerReceipt),
|
|
@@ -22765,15 +22801,16 @@
|
|
|
22765
22801
|
}));
|
|
22766
22802
|
};
|
|
22767
22803
|
transportFailure_fn = function(message, offline, status = -1) {
|
|
22768
|
-
const
|
|
22804
|
+
const state = __privateGet(this, _state);
|
|
22805
|
+
const pushFailed = state.phase === WorkspaceSyncPhase.Offer;
|
|
22769
22806
|
const failedEndpoint = __privateMethod(this, _WorkspaceSyncWork_instances, offerEndpoint_fn).call(this);
|
|
22770
22807
|
const failure = create(RuntimeTransportFailureSchema, {
|
|
22771
22808
|
endpoint: pushFailed ? failedEndpoint : __privateGet(this, _binding).cloud ?? "",
|
|
22772
22809
|
status,
|
|
22773
22810
|
message
|
|
22774
22811
|
});
|
|
22775
|
-
if (
|
|
22776
|
-
__privateSet(this, _pushMillis,
|
|
22812
|
+
if (state.phase === WorkspaceSyncPhase.Offer) {
|
|
22813
|
+
__privateSet(this, _pushMillis, state.exchange.startedAt === void 0 ? 0 : elapsedMillis(__privateGet(this, _clock13), state.exchange.startedAt));
|
|
22777
22814
|
__privateSet(this, _pushError, failure);
|
|
22778
22815
|
}
|
|
22779
22816
|
return __privateMethod(this, _WorkspaceSyncWork_instances, finish_fn2).call(this, create(SyncWorkspaceResponseSchema, {
|
|
@@ -22790,7 +22827,7 @@
|
|
|
22790
22827
|
pushMillis: __privateGet(this, _pushMillis),
|
|
22791
22828
|
pushBytes: __privateGet(this, _pushBytes),
|
|
22792
22829
|
prefetchMillis: elapsedMillis(__privateGet(this, _clock13), __privateGet(this, _started)),
|
|
22793
|
-
offerInPush: __privateGet(this,
|
|
22830
|
+
offerInPush: __privateGet(this, _pushBytes) > 0n
|
|
22794
22831
|
})
|
|
22795
22832
|
}));
|
|
22796
22833
|
};
|
|
@@ -22800,7 +22837,7 @@
|
|
|
22800
22837
|
return step;
|
|
22801
22838
|
};
|
|
22802
22839
|
finish_fn2 = function(value) {
|
|
22803
|
-
__privateSet(this,
|
|
22840
|
+
__privateSet(this, _state, { phase: WorkspaceSyncPhase.Done });
|
|
22804
22841
|
__privateSet(this, _current3, void 0);
|
|
22805
22842
|
return __privateMethod(this, _WorkspaceSyncWork_instances, remember_fn4).call(this, { case: "synced", value });
|
|
22806
22843
|
};
|
|
@@ -23226,7 +23263,7 @@
|
|
|
23226
23263
|
millis: 150,
|
|
23227
23264
|
quanta: 64
|
|
23228
23265
|
});
|
|
23229
|
-
var _command3, _source3, _target2, _checkpointSecret, _clock15, _kernel17, _requestId5,
|
|
23266
|
+
var _command3, _source3, _target2, _checkpointSecret, _clock15, _kernel17, _requestId5, _phase2, _offers, _attempted2, _delivered, _refused, _retryable, _lastRetry, _recipientRefused, _activeOffer, _nextDueAtMillis, _appliedThisTurn, _preparationPending, _targetHead, _sourceOutcomeRecorded, _budget, _turnStartedMillis, _quanta, _WorkspaceEffectDelivery_instances, retry_fn2, outboxCall_fn, acceptOutbox_fn, acceptApply_fn, nextApplyOrDone_fn;
|
|
23230
23267
|
var WorkspaceEffectDelivery = class {
|
|
23231
23268
|
constructor(args) {
|
|
23232
23269
|
__privateAdd(this, _WorkspaceEffectDelivery_instances);
|
|
@@ -23237,7 +23274,7 @@
|
|
|
23237
23274
|
__privateAdd(this, _clock15);
|
|
23238
23275
|
__privateAdd(this, _kernel17);
|
|
23239
23276
|
__privateAdd(this, _requestId5);
|
|
23240
|
-
__privateAdd(this,
|
|
23277
|
+
__privateAdd(this, _phase2, WorkspaceEffectDeliveryPhase.Start);
|
|
23241
23278
|
__privateAdd(this, _offers, []);
|
|
23242
23279
|
__privateAdd(this, _attempted2, 0n);
|
|
23243
23280
|
__privateAdd(this, _delivered, 0n);
|
|
@@ -23272,17 +23309,17 @@
|
|
|
23272
23309
|
return __privateGet(this, _recipientRefused);
|
|
23273
23310
|
}
|
|
23274
23311
|
next(response, settlement) {
|
|
23275
|
-
if (__privateGet(this,
|
|
23312
|
+
if (__privateGet(this, _phase2) === WorkspaceEffectDeliveryPhase.Start) {
|
|
23276
23313
|
if (response !== void 0) throw new Error("delivery received a response before its outbox call");
|
|
23277
23314
|
__privateSet(this, _turnStartedMillis, __privateGet(this, _clock15).currentMillis());
|
|
23278
23315
|
return __privateMethod(this, _WorkspaceEffectDelivery_instances, outboxCall_fn).call(this);
|
|
23279
23316
|
}
|
|
23280
|
-
if (__privateGet(this,
|
|
23317
|
+
if (__privateGet(this, _phase2) === WorkspaceEffectDeliveryPhase.Outbox) {
|
|
23281
23318
|
if (!response) throw new Error("delivery requires the source outbox response");
|
|
23282
23319
|
if (__privateMethod(this, _WorkspaceEffectDelivery_instances, acceptOutbox_fn).call(this, response)) return __privateMethod(this, _WorkspaceEffectDelivery_instances, outboxCall_fn).call(this);
|
|
23283
23320
|
return __privateMethod(this, _WorkspaceEffectDelivery_instances, nextApplyOrDone_fn).call(this);
|
|
23284
23321
|
}
|
|
23285
|
-
if (__privateGet(this,
|
|
23322
|
+
if (__privateGet(this, _phase2) === WorkspaceEffectDeliveryPhase.Apply) {
|
|
23286
23323
|
if (!response) throw new Error("delivery requires the target admission response");
|
|
23287
23324
|
__privateMethod(this, _WorkspaceEffectDelivery_instances, acceptApply_fn).call(this, response, settlement);
|
|
23288
23325
|
return __privateMethod(this, _WorkspaceEffectDelivery_instances, nextApplyOrDone_fn).call(this);
|
|
@@ -23297,7 +23334,7 @@
|
|
|
23297
23334
|
_clock15 = new WeakMap();
|
|
23298
23335
|
_kernel17 = new WeakMap();
|
|
23299
23336
|
_requestId5 = new WeakMap();
|
|
23300
|
-
|
|
23337
|
+
_phase2 = new WeakMap();
|
|
23301
23338
|
_offers = new WeakMap();
|
|
23302
23339
|
_attempted2 = new WeakMap();
|
|
23303
23340
|
_delivered = new WeakMap();
|
|
@@ -23320,7 +23357,7 @@
|
|
|
23320
23357
|
__privateSet(this, _lastRetry, { reason, detail: detail.slice(0, RETRY_DETAIL_CHARACTERS) });
|
|
23321
23358
|
};
|
|
23322
23359
|
outboxCall_fn = function() {
|
|
23323
|
-
__privateSet(this,
|
|
23360
|
+
__privateSet(this, _phase2, WorkspaceEffectDeliveryPhase.Outbox);
|
|
23324
23361
|
return {
|
|
23325
23362
|
case: "call",
|
|
23326
23363
|
value: {
|
|
@@ -23362,13 +23399,13 @@
|
|
|
23362
23399
|
}
|
|
23363
23400
|
__privateSet(this, _nextDueAtMillis, now);
|
|
23364
23401
|
__privateSet(this, _preparationPending, true);
|
|
23365
|
-
__privateSet(this,
|
|
23402
|
+
__privateSet(this, _phase2, WorkspaceEffectDeliveryPhase.Apply);
|
|
23366
23403
|
return false;
|
|
23367
23404
|
}
|
|
23368
23405
|
__privateSet(this, _offers, response.outcome.value.offers.filter(
|
|
23369
23406
|
(offer) => offer.route.case === "workspaceRoute" && offer.route.value.workspace === __privateGet(this, _target2).workspace && (__privateGet(this, _command3).sourceCommit === void 0 || offer.sourceCommit === __privateGet(this, _command3).sourceCommit)
|
|
23370
23407
|
));
|
|
23371
|
-
__privateSet(this,
|
|
23408
|
+
__privateSet(this, _phase2, WorkspaceEffectDeliveryPhase.Apply);
|
|
23372
23409
|
return false;
|
|
23373
23410
|
};
|
|
23374
23411
|
acceptApply_fn = function(response, settlement) {
|
|
@@ -23460,7 +23497,7 @@
|
|
|
23460
23497
|
}
|
|
23461
23498
|
};
|
|
23462
23499
|
}
|
|
23463
|
-
__privateSet(this,
|
|
23500
|
+
__privateSet(this, _phase2, WorkspaceEffectDeliveryPhase.Done);
|
|
23464
23501
|
return {
|
|
23465
23502
|
case: "done",
|
|
23466
23503
|
value: create(WorkspaceEffectsDeliveredSchema, {
|
package/package.json
CHANGED