@moltzap/client 2026.1001.0 → 2026.1001.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/endpoint/engine-types.d.ts +1 -1
- package/dist/endpoint/engine-types.d.ts.map +1 -1
- package/dist/endpoint/engine.d.ts.map +1 -1
- package/dist/endpoint/engine.js +39 -22
- package/dist/endpoint/engine.js.map +1 -1
- package/dist/endpoint/router-worker/index.d.ts +6 -2
- package/dist/endpoint/router-worker/index.d.ts.map +1 -1
- package/dist/endpoint/router-worker/index.js +48 -16
- package/dist/endpoint/router-worker/index.js.map +1 -1
- package/dist/endpoint/router-worker/outage.d.ts +87 -0
- package/dist/endpoint/router-worker/outage.d.ts.map +1 -0
- package/dist/endpoint/router-worker/outage.js +178 -0
- package/dist/endpoint/router-worker/outage.js.map +1 -0
- package/dist/endpoint/router-worker/types.d.ts +73 -8
- package/dist/endpoint/router-worker/types.d.ts.map +1 -1
- package/dist/endpoint/router-worker/types.js +50 -3
- package/dist/endpoint/router-worker/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -19,7 +19,7 @@ declare const EngineOutboundError_base: new <A extends Record<string, any> = {}>
|
|
|
19
19
|
} & Readonly<A>;
|
|
20
20
|
/** Sending queued protocol traffic could not complete safely. */
|
|
21
21
|
export declare class EngineOutboundError extends EngineOutboundError_base<{
|
|
22
|
-
readonly reason: "network" | "persistence" | "representation";
|
|
22
|
+
readonly reason: "network" | "persistence" | "representation" | "version";
|
|
23
23
|
}> {
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-types.d.ts","sourceRoot":"","sources":["../../src/endpoint/engine-types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,eAAe,EACrB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACV,OAAO,EACP,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;;;;AAE/D,4EAA4E;AAC5E,qBAAa,yBAA0B,SAAQ,+BAE7C;IACA,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,gBAAgB,CAAC;CAChE,CAAC;CAAG;;;;AAEL,iEAAiE;AACjE,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine-types.d.ts","sourceRoot":"","sources":["../../src/endpoint/engine-types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,eAAe,EACrB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACV,OAAO,EACP,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;;;;AAE/D,4EAA4E;AAC5E,qBAAa,yBAA0B,SAAQ,+BAE7C;IACA,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,gBAAgB,CAAC;CAChE,CAAC;CAAG;;;;AAEL,iEAAiE;AACjE,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC3E,CAAC;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED,wEAAwE;AACxE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,EACpC,QAAQ,CACT,CAAC;AAEF,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CACnC,gBAAgB,EAChB,4BAA4B,CAC7B,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,CACb,UAAU,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;CACjD;AAED,mEAAmE;AACnE,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3D,+EAA+E;AAC/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC;AAED,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,uBAAuB,KAC3B,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAE/C;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACjD,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;CAClD;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,CACb,KAAK,EAAE,eAAe,KACnB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,EAAE,EAAE,mBAAmB,KACpB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,MAAM,CAAC,MAAM,CAC/C,SAAS,oBAAoB,EAAE,EAC/B,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,aAAa,EAAE,aAAa,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IACnD,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,KAC3C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAAC,CAAC;IAC3E,QAAQ,CAAC,qBAAqB,EAAE,CAC9B,OAAO,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,KAC3C,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,CAAC,CAAC;IAC3E,QAAQ,CAAC,uBAAuB,EAAE,CAChC,QAAQ,EAAE,oBAAoB,KAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,qBAAqB,CAAC,CAAC;IAC5E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAChE,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,MAAM,EAAE,yBAAyB,KAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC9D,kBAAkB,CAAC,EAAE,UAAU,CAAC;CACjC;AAED,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,aAAa,EAAE,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B;AAED,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACzD,yBAAyB,EAAE,OAAO,CAAC;IACnC,2BAA2B,EAAE,OAAO,CAAC;IACrC,6BAA6B,EAAE,OAAO,CAAC;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAChD,6EAA6E;IAC7E,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;CAC5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/endpoint/engine.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/endpoint/engine.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,EAGL,MAAM,EAIN,KAAK,KAAK,EAEX,MAAM,QAAQ,CAAC;AAUhB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,yBAAyB,EAM1B,MAAM,mBAAmB,CAAC;AA4B3B,uDAAuD;AACvD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,oEAAoE;AACpE,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC;AAme3B;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UACtB,mBAAmB,KACzB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC,KAAK,CAKvB,CAAC"}
|
package/dist/endpoint/engine.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @file Private addressed-message engine acquisition and daemon seams. */
|
|
2
2
|
import { AgentCard, AgentSigningAuthority } from "@moltzap/identity";
|
|
3
|
-
import { Deferred, Effect, Queue, Schema, SubscriptionRef, } from "effect";
|
|
3
|
+
import { Deferred, Duration, Effect, Queue, Schedule, Schema, SubscriptionRef, } from "effect";
|
|
4
4
|
import { DeliveryAcknowledgeError, InboundMessage, ListenError, SendError, } from "../contract.js";
|
|
5
5
|
import { resumeDisseminationObligations } from "./engine-dissemination.js";
|
|
6
6
|
import { prepareSend, proposeIntent, resolveAddress } from "./engine-send.js";
|
|
@@ -9,6 +9,7 @@ import { resumeEngineFolds } from "./protocol/index.js";
|
|
|
9
9
|
import { installRecoveryBarrier } from "./recovery/barrier.js";
|
|
10
10
|
import { acceptEngineIngressWithRecovery, acceptEngineRecoveryIngressWithRecovery, recoverCertifiedHistory, recoverEngineState, } from "./recovery/index.js";
|
|
11
11
|
import { decodeCanonical, encodeCanonical, PostIntent, RecordHash, } from "./representation.js";
|
|
12
|
+
import { describeRouterWorkerFailure, isTransientRouterWorkerError, routerWorkerReconnectSchedule, } from "./router-worker/index.js";
|
|
12
13
|
/** Closed engine errors used by daemon composition. */
|
|
13
14
|
export { EngineInitializationError, EngineOutboundError, } from "./engine-types.js";
|
|
14
15
|
const initializationReasonByStoreReason = {
|
|
@@ -52,23 +53,22 @@ const resumeDispositionBySendReason = {
|
|
|
52
53
|
"unknown-agent": "fail-representation",
|
|
53
54
|
"version-mismatch": "fail-representation",
|
|
54
55
|
};
|
|
56
|
+
const outboundReasonByTag = {
|
|
57
|
+
RouterWorkerAuthenticationError: "representation",
|
|
58
|
+
RouterWorkerDiscontinuityError: "network",
|
|
59
|
+
RouterWorkerPersistenceError: "persistence",
|
|
60
|
+
RouterWorkerProtocolError: "representation",
|
|
61
|
+
RouterWorkerRecoveryError: "network",
|
|
62
|
+
RouterWorkerTransportError: "network",
|
|
63
|
+
RouterWorkerUnavailableError: "network",
|
|
64
|
+
};
|
|
55
65
|
const outboundFailure = (error) => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return new EngineOutboundError({ reason: "persistence" });
|
|
59
|
-
case "RouterWorkerAuthenticationError":
|
|
60
|
-
case "RouterWorkerProtocolError":
|
|
61
|
-
return new EngineOutboundError({ reason: "representation" });
|
|
62
|
-
case "RouterWorkerDiscontinuityError":
|
|
63
|
-
case "RouterWorkerRecoveryError":
|
|
64
|
-
case "RouterWorkerTransportError":
|
|
65
|
-
case "RouterWorkerUnavailableError":
|
|
66
|
-
return new EngineOutboundError({ reason: "network" });
|
|
67
|
-
default: {
|
|
68
|
-
const exhaustive = error;
|
|
69
|
-
return exhaustive;
|
|
70
|
-
}
|
|
66
|
+
if (error._tag !== "RouterWorkerRejectedError") {
|
|
67
|
+
return new EngineOutboundError({ reason: outboundReasonByTag[error._tag] });
|
|
71
68
|
}
|
|
69
|
+
return new EngineOutboundError({
|
|
70
|
+
reason: error.reason === "version" ? "version" : "representation",
|
|
71
|
+
});
|
|
72
72
|
};
|
|
73
73
|
function outboundSendFailure(error) {
|
|
74
74
|
switch (error.reason) {
|
|
@@ -78,6 +78,8 @@ function outboundSendFailure(error) {
|
|
|
78
78
|
return new SendError({ reason: "network-unavailable" });
|
|
79
79
|
case "representation":
|
|
80
80
|
return new SendError({ reason: "certification-unavailable" });
|
|
81
|
+
case "version":
|
|
82
|
+
return new SendError({ reason: "version-mismatch" });
|
|
81
83
|
default: {
|
|
82
84
|
const exhaustive = error.reason;
|
|
83
85
|
return exhaustive;
|
|
@@ -146,6 +148,13 @@ function representationInitializationFailure() {
|
|
|
146
148
|
function resumeFoldFailure() {
|
|
147
149
|
return new EngineInitializationError({ reason: "persistence" });
|
|
148
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* How long a local send's own drain may run before the send fails as
|
|
153
|
+
* `network-unavailable`. With `ROUTER_ATTACH_TIMEOUT` it stays under the MCP
|
|
154
|
+
* SDK's `DEFAULT_REQUEST_TIMEOUT_MSEC`. The envelope stays queued, so the
|
|
155
|
+
* background drain still delivers it once the Router answers.
|
|
156
|
+
*/
|
|
157
|
+
const LOCAL_DRAIN_TIMEOUT = Duration.seconds(10);
|
|
149
158
|
const peekOutbound = (runtime) => runtime.outboundGate.withPermits(1)(Effect.sync(() => runtime.outbound[0]));
|
|
150
159
|
const shiftOutbound = (runtime, outboundId) => runtime.outboundGate.withPermits(1)(Effect.sync(() => {
|
|
151
160
|
if (runtime.outbound[0] === outboundId) {
|
|
@@ -169,20 +178,28 @@ const shiftOutbound = (runtime, outboundId) => runtime.outboundGate.withPermits(
|
|
|
169
178
|
const drainOutbound = (runtime) => Effect.gen(function* () {
|
|
170
179
|
let outboundId = yield* peekOutbound(runtime);
|
|
171
180
|
while (outboundId !== undefined) {
|
|
172
|
-
yield* runtime.input.routerWorker
|
|
173
|
-
.send(outboundId)
|
|
174
|
-
.pipe(Effect.mapError(outboundFailure));
|
|
181
|
+
yield* runtime.input.routerWorker.send(outboundId);
|
|
175
182
|
yield* shiftOutbound(runtime, outboundId);
|
|
176
183
|
outboundId = yield* peekOutbound(runtime);
|
|
177
184
|
}
|
|
178
185
|
});
|
|
179
186
|
const send = (runtime, input) => Effect.gen(function* () {
|
|
180
187
|
const prepared = yield* prepareSend(runtime, input);
|
|
181
|
-
yield* drainOutbound(runtime).pipe(Effect.mapError(outboundSendFailure))
|
|
188
|
+
yield* drainOutbound(runtime).pipe(Effect.mapError((error) => outboundSendFailure(outboundFailure(error))), Effect.timeoutFail({
|
|
189
|
+
duration: LOCAL_DRAIN_TIMEOUT,
|
|
190
|
+
onTimeout: () => new SendError({ reason: "network-unavailable" }),
|
|
191
|
+
}));
|
|
182
192
|
const recordHash = yield* Deferred.await(prepared.completion);
|
|
183
193
|
return { postId: prepared.postId, recordHash };
|
|
184
194
|
}).pipe(Effect.withSpan("EndpointEngine.send"));
|
|
185
|
-
|
|
195
|
+
/**
|
|
196
|
+
* Drain once the worker is attached, and after a transient worker failure
|
|
197
|
+
* back off, wait for the worker to re-anchor, and drain again. Recovery may
|
|
198
|
+
* have reset the queue meanwhile, so each attempt re-reads its head. A fatal
|
|
199
|
+
* failure is logged with its reason before it ends the daemon.
|
|
200
|
+
*/
|
|
201
|
+
const drainWhenAttached = (runtime) => runtime.input.routerWorker.awaitAnchor.pipe(Effect.zipRight(drainOutbound(runtime)), Effect.retry(routerWorkerReconnectSchedule.pipe(Schedule.whileInput(isTransientRouterWorkerError))), Effect.tapError((error) => Effect.logError(`Outbound drain stopping, daemon exits: ${describeRouterWorkerFailure(error)}`)), Effect.mapError(outboundFailure));
|
|
202
|
+
const runOutbound = (runtime) => Queue.take(runtime.outboundSignal).pipe(Effect.zipRight(drainWhenAttached(runtime)), Effect.forever);
|
|
186
203
|
const readPendingMessages = (runtime) => runtime.input.store.readPendingDeliveries().pipe(Effect.mapError(listenStoreFailure), Effect.flatMap((deliveries) => Effect.forEach(deliveries, (delivery) => Effect.all({
|
|
187
204
|
message: decodeCanonical(InboundMessage, delivery.canonicalMessage),
|
|
188
205
|
recordHash: Schema.decodeUnknown(RecordHash)(delivery.recordHash),
|
|
@@ -280,7 +297,7 @@ const endpointEngine = (runtime) => Object.freeze({
|
|
|
280
297
|
acceptRouterIngress: (ingress) => acceptEngineIngressWithRecovery(runtime, ingress),
|
|
281
298
|
acceptRecoveryIngress: (ingress) => acceptEngineRecoveryIngressWithRecovery(runtime, ingress),
|
|
282
299
|
recoverCertifiedHistory: (recovery) => recoverCertifiedHistory(runtime, recovery),
|
|
283
|
-
drainOutbound: drainOutbound(runtime),
|
|
300
|
+
drainOutbound: drainOutbound(runtime).pipe(Effect.mapError(outboundFailure)),
|
|
284
301
|
runOutbound: runOutbound(runtime),
|
|
285
302
|
abandonVolatileFolds: (reason) => abandonVolatileFolds(runtime, reason),
|
|
286
303
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/endpoint/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/endpoint/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
import { Registry } from "@moltzap/identity/registry";
|
|
3
3
|
import { Router } from "@moltzap/router";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
|
-
import { type RouterWorker, type RouterWorkerInput, RouterWorkerProtocolError, RouterWorkerTransportError } from "./types.js";
|
|
5
|
+
import { type RouterWorker, type RouterWorkerInput, RouterWorkerProtocolError, type RouterWorkerTransportError } from "./types.js";
|
|
6
6
|
/** Router-worker errors used by endpoint composition. */
|
|
7
|
-
export { RouterWorkerAuthenticationError, RouterWorkerDiscontinuityError, RouterWorkerPayloadInvalidError, RouterWorkerPersistenceError, RouterWorkerProtocolError, RouterWorkerRecoveryError, RouterWorkerTransportError, RouterWorkerUnavailableError, } from "./types.js";
|
|
7
|
+
export { RouterWorkerAuthenticationError, RouterWorkerDiscontinuityError, RouterWorkerPayloadInvalidError, RouterWorkerPersistenceError, RouterWorkerProtocolError, RouterWorkerRecoveryError, RouterWorkerRejectedError, RouterWorkerTransportError, RouterWorkerUnavailableError, } from "./types.js";
|
|
8
|
+
/** Why the worker or the outbound drain failed, for logs. */
|
|
9
|
+
export { describeRouterWorkerFailure } from "./outage.js";
|
|
10
|
+
/** Transient-failure policy shared with the endpoint's outbound drain. */
|
|
11
|
+
export { isTransientRouterWorkerError, routerWorkerReconnectSchedule, } from "./types.js";
|
|
8
12
|
/** Router-worker protocol and capability types used by endpoint composition. */
|
|
9
13
|
export type { RouterDiscontinuityReason, RouterIngressDisposition, RouterTailAnchor, RouterWorker, RouterWorkerCallbacks, RouterWorkerIngress, RouterWorkerInput, RouterWorkerRecovery, RouterWorkerRecoverySend, RouterWorkerSendError, } from "./types.js";
|
|
10
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/endpoint/router-worker/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAWnF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,MAAM,EAKP,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EASP,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/endpoint/router-worker/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAWnF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,MAAM,EAKP,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EASP,MAAM,QAAQ,CAAC;AAgBhB,OAAO,EAIL,KAAK,YAAY,EAKjB,KAAK,iBAAiB,EAGtB,yBAAyB,EAWzB,KAAK,0BAA0B,EAGhC,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AACpB,6DAA6D;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,0EAA0E;AAC1E,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,gFAAgF;AAChF,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAu/BpB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,SAC/B,iBAAiB,CAAC,OAAO,CAAC,KAChC,MAAM,CAAC,MAAM,CACd,YAAY,EACZ,0BAA0B,GAAG,yBAAyB,EACtD,QAAQ,GAAG,MAAM,CA2B2B,CAAC"}
|
|
@@ -5,15 +5,17 @@ import { Router, SignedMessageDigest, } from "@moltzap/router";
|
|
|
5
5
|
import { Effect, Encoding, Fiber, Option, Ref, Schedule, Schema, Stream, SubscriptionRef, } from "effect";
|
|
6
6
|
import { createHash, randomBytes } from "node:crypto";
|
|
7
7
|
import { decodeCanonical, encodeCanonical } from "../representation.js";
|
|
8
|
-
import {
|
|
8
|
+
import { detach, isTransportFailure, logRecoveryAfterLoss, logRecoveryComplete, mapRouterFailure, noteRunFailure, pollBlipRetry, reattach, reportUnreachable, } from "./outage.js";
|
|
9
|
+
import { isTransientRouterWorkerError, RouterWorkerAuthenticationError, RouterWorkerDiscontinuityError, RouterWorkerPersistenceError, RouterWorkerProtocolError, routerWorkerReconnectSchedule, routerWorkerRetryAttempts, routerWorkerRetryDelay, RouterWorkerUnavailableError, } from "./types.js";
|
|
9
10
|
/** Router-worker errors used by endpoint composition. */
|
|
10
|
-
export { RouterWorkerAuthenticationError, RouterWorkerDiscontinuityError, RouterWorkerPayloadInvalidError, RouterWorkerPersistenceError, RouterWorkerProtocolError, RouterWorkerRecoveryError, RouterWorkerTransportError, RouterWorkerUnavailableError, } from "./types.js";
|
|
11
|
+
export { RouterWorkerAuthenticationError, RouterWorkerDiscontinuityError, RouterWorkerPayloadInvalidError, RouterWorkerPersistenceError, RouterWorkerProtocolError, RouterWorkerRecoveryError, RouterWorkerRejectedError, RouterWorkerTransportError, RouterWorkerUnavailableError, } from "./types.js";
|
|
12
|
+
/** Why the worker or the outbound drain failed, for logs. */
|
|
13
|
+
export { describeRouterWorkerFailure } from "./outage.js";
|
|
14
|
+
/** Transient-failure policy shared with the endpoint's outbound drain. */
|
|
15
|
+
export { isTransientRouterWorkerError, routerWorkerReconnectSchedule, } from "./types.js";
|
|
11
16
|
const mapAuthenticationError = () => new RouterWorkerAuthenticationError();
|
|
12
|
-
const mapTransportError = () => new RouterWorkerTransportError();
|
|
13
17
|
const mapProtocolError = () => new RouterWorkerProtocolError();
|
|
14
18
|
const mapPersistenceError = () => new RouterWorkerPersistenceError();
|
|
15
|
-
/** Bounded fixed-delay policy for poll-loop retries. */
|
|
16
|
-
const routerWorkerRetrySchedule = Schedule.fixed(routerWorkerRetryDelay).pipe(Schedule.intersect(Schedule.recurs(routerWorkerRetryAttempts - 1)));
|
|
17
19
|
const anchorFromOmittedResult = (result) => result.kind === "batch" && result.signedMessages.length === 0
|
|
18
20
|
? Effect.succeed({
|
|
19
21
|
routerInstanceId: result.routerInstanceId,
|
|
@@ -32,7 +34,7 @@ const pollRouterTail = (services, caller) => services.router
|
|
|
32
34
|
callerAgentId: caller.callerAgentId,
|
|
33
35
|
signingAuthority: caller.signingAuthority,
|
|
34
36
|
})
|
|
35
|
-
.pipe(Effect.
|
|
37
|
+
.pipe(Effect.mapError(mapRouterFailure), Effect.retry(pollBlipRetry), Effect.flatMap(anchorFromOmittedResult), Effect.interruptible);
|
|
36
38
|
const makeRandomMessageId = () => Effect.try({
|
|
37
39
|
try: () => `msg_${randomBytes(16).toString("base64url")}`,
|
|
38
40
|
catch: mapProtocolError,
|
|
@@ -160,8 +162,8 @@ function transmitOuter(runtime, input) {
|
|
|
160
162
|
callerAgentId: runtime.input.callerAgentId,
|
|
161
163
|
signingAuthority: runtime.input.signingAuthority,
|
|
162
164
|
})
|
|
163
|
-
.pipe(Effect.mapError(
|
|
164
|
-
onFailure: (error) => input.attemptsRemaining <= 1
|
|
165
|
+
.pipe(Effect.mapError(mapRouterFailure), Effect.matchEffect({
|
|
166
|
+
onFailure: (error) => !isTransportFailure(error) || input.attemptsRemaining <= 1
|
|
165
167
|
? Effect.fail(error)
|
|
166
168
|
: Effect.sleep(routerWorkerRetryDelay).pipe(Effect.zipRight(transmitOuter(runtime, {
|
|
167
169
|
...input,
|
|
@@ -277,7 +279,7 @@ const pollRecoveringOnce = (runtime, operations, generation) => Effect.gen(funct
|
|
|
277
279
|
callerAgentId: runtime.input.callerAgentId,
|
|
278
280
|
signingAuthority: runtime.input.signingAuthority,
|
|
279
281
|
})
|
|
280
|
-
.pipe(Effect.mapError(
|
|
282
|
+
.pipe(Effect.mapError(mapRouterFailure));
|
|
281
283
|
switch (result.kind) {
|
|
282
284
|
case "batch": {
|
|
283
285
|
if (result.routerInstanceId !== snapshot.anchor.routerInstanceId) {
|
|
@@ -297,7 +299,7 @@ const pollRecoveringOnce = (runtime, operations, generation) => Effect.gen(funct
|
|
|
297
299
|
return yield* Effect.fail(new RouterWorkerProtocolError());
|
|
298
300
|
}
|
|
299
301
|
}).pipe(Effect.interruptible);
|
|
300
|
-
const pumpRecovery = (runtime, operations, recovering) => pollRecoveringOnce(runtime, operations, recovering.generation).pipe(Effect.retry(
|
|
302
|
+
const pumpRecovery = (runtime, operations, recovering) => pollRecoveringOnce(runtime, operations, recovering.generation).pipe(Effect.retry(pollBlipRetry), Effect.forever, Effect.interruptible);
|
|
301
303
|
/**
|
|
302
304
|
* Reconcile certified history while only recovery traffic advances the cursor.
|
|
303
305
|
* @param runtime Worker runtime whose generation is being recovered.
|
|
@@ -328,6 +330,7 @@ const finishRouterRecovery = (runtime, operations, recovering) => Effect.gen(fun
|
|
|
328
330
|
generation: prepared.generation,
|
|
329
331
|
anchor: current.anchor,
|
|
330
332
|
});
|
|
333
|
+
yield* logRecoveryComplete(current);
|
|
331
334
|
}));
|
|
332
335
|
}).pipe(Effect.withSpan("finishRouterRecovery"));
|
|
333
336
|
const seedPinnedCards = (input) => Effect.gen(function* () {
|
|
@@ -432,6 +435,7 @@ function anchorRecovery(runtime, recovering, anchor) {
|
|
|
432
435
|
priorRouterInstanceId: current.priorRouterInstanceId ?? anchor.routerInstanceId,
|
|
433
436
|
volatileFoldsAbandoned: current.reason === reason && current.volatileFoldsAbandoned,
|
|
434
437
|
anchor,
|
|
438
|
+
unreachableSince: Option.none(),
|
|
435
439
|
};
|
|
436
440
|
yield* Ref.set(runtime.state, anchored);
|
|
437
441
|
return anchored;
|
|
@@ -443,7 +447,7 @@ const finishRecovery = (runtime, recovering) => finishRouterRecovery(runtime, {
|
|
|
443
447
|
}, recovering);
|
|
444
448
|
const triggerDiscontinuity = (runtime, reason, observedGeneration) => runtime.recoveryGate.withPermits(1)(Effect.gen(function* () {
|
|
445
449
|
const current = yield* Ref.get(runtime.state);
|
|
446
|
-
if (current.kind
|
|
450
|
+
if (current.kind !== "recovering" &&
|
|
447
451
|
current.generation !== observedGeneration) {
|
|
448
452
|
return;
|
|
449
453
|
}
|
|
@@ -456,8 +460,12 @@ const triggerDiscontinuity = (runtime, reason, observedGeneration) => runtime.re
|
|
|
456
460
|
reason,
|
|
457
461
|
priorRouterInstanceId: current.anchor.routerInstanceId,
|
|
458
462
|
volatileFoldsAbandoned: false,
|
|
463
|
+
unreachableSince: Option.none(),
|
|
459
464
|
};
|
|
460
465
|
yield* runtime.stateGate.withPermits(1)(Ref.set(runtime.state, recovering));
|
|
466
|
+
if (current.kind === "detached") {
|
|
467
|
+
yield* logRecoveryAfterLoss(recovering);
|
|
468
|
+
}
|
|
461
469
|
return yield* finishRecovery(runtime, recovering);
|
|
462
470
|
}));
|
|
463
471
|
const pollActiveOnce = (runtime, snapshot) => runtime.router
|
|
@@ -466,7 +474,7 @@ const pollActiveOnce = (runtime, snapshot) => runtime.router
|
|
|
466
474
|
callerAgentId: runtime.input.callerAgentId,
|
|
467
475
|
signingAuthority: runtime.input.signingAuthority,
|
|
468
476
|
})
|
|
469
|
-
.pipe(Effect.mapError(
|
|
477
|
+
.pipe(Effect.mapError(mapRouterFailure), Effect.retry(pollBlipRetry), Effect.tapErrorTag("RouterWorkerTransportError", () => detach(runtime, snapshot.generation)), Effect.flatMap((result) => {
|
|
470
478
|
switch (result.kind) {
|
|
471
479
|
case "batch":
|
|
472
480
|
if (result.routerInstanceId !== snapshot.anchor.routerInstanceId) {
|
|
@@ -481,9 +489,32 @@ const pollActiveOnce = (runtime, snapshot) => runtime.router
|
|
|
481
489
|
return Effect.fail(new RouterWorkerProtocolError());
|
|
482
490
|
}
|
|
483
491
|
}), Effect.interruptible);
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
492
|
+
/**
|
|
493
|
+
* Reattach a detached worker once the Router answers. The probe is an
|
|
494
|
+
* omitted-cursor poll, which the Router answers at once, whereas a
|
|
495
|
+
* continuation poll may be held for 25 s. The same instance reattaches at the
|
|
496
|
+
* retained anchor and cursor; another instance starts restart recovery.
|
|
497
|
+
* @param runtime Detached worker.
|
|
498
|
+
* @param snapshot Detached state the probe was issued from.
|
|
499
|
+
* @returns Completion once the worker is active again or recovering.
|
|
500
|
+
*/
|
|
501
|
+
const probeDetached = (runtime, snapshot) => pollRouterTail(runtime, runtime.input).pipe(Effect.flatMap((tail) => tail.routerInstanceId === snapshot.anchor.routerInstanceId
|
|
502
|
+
? reattach(runtime, snapshot)
|
|
503
|
+
: triggerDiscontinuity(runtime, "router_restarted", snapshot.generation)), Effect.interruptible);
|
|
504
|
+
const makePollOnce = (runtime) => runtime.pollGate.withPermits(1)(Ref.get(runtime.state).pipe(Effect.flatMap((state) => {
|
|
505
|
+
switch (state.kind) {
|
|
506
|
+
case "active":
|
|
507
|
+
return pollActiveOnce(runtime, state);
|
|
508
|
+
case "detached":
|
|
509
|
+
return probeDetached(runtime, state);
|
|
510
|
+
case "recovering":
|
|
511
|
+
return runtime.recoveryGate.withPermits(1)(finishRecovery(runtime, state));
|
|
512
|
+
default: {
|
|
513
|
+
const exhaustive = state;
|
|
514
|
+
return exhaustive;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
})));
|
|
487
518
|
const makeSend = (runtime, outboundId) => Effect.gen(function* () {
|
|
488
519
|
const result = yield* runtime.recoveryGate.withPermits(1)(Effect.gen(function* () {
|
|
489
520
|
const state = yield* Ref.get(runtime.state);
|
|
@@ -510,7 +541,7 @@ const makeWorker = (runtime) => {
|
|
|
510
541
|
// never ends, so an empty head is a defect rather than a failure.
|
|
511
542
|
awaitAnchor: runtime.state.changes.pipe(Stream.filterMap(activeAnchor), Stream.runHead, Effect.flatMap(Effect.orDie)),
|
|
512
543
|
pollOnce,
|
|
513
|
-
run: pollOnce.pipe(Effect.retry(
|
|
544
|
+
run: Effect.zipRight(reportUnreachable(runtime), pollOnce.pipe(Effect.tapError((error) => noteRunFailure(runtime, error)), Effect.retry(routerWorkerReconnectSchedule.pipe(Schedule.whileInput(isTransientRouterWorkerError))), Effect.forever), { concurrent: true }).pipe(Effect.interruptible),
|
|
514
545
|
send: (outboundId) => makeSend(runtime, outboundId),
|
|
515
546
|
});
|
|
516
547
|
};
|
|
@@ -537,6 +568,7 @@ export const makeRouterWorker = (input) => Effect.gen(function* () {
|
|
|
537
568
|
generation: 0,
|
|
538
569
|
reason: "router_restarted",
|
|
539
570
|
volatileFoldsAbandoned: false,
|
|
571
|
+
unreachableSince: Option.none(),
|
|
540
572
|
}),
|
|
541
573
|
pollGate: yield* Effect.makeSemaphore(1),
|
|
542
574
|
stateGate: yield* Effect.makeSemaphore(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/endpoint/router-worker/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/endpoint/router-worker/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,EACL,SAAS,EAET,SAAS,EACT,aAAa,GAId,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,MAAM,EAIN,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EACN,GAAG,EACH,QAAQ,EACR,MAAM,EACN,MAAM,EACN,eAAe,GAChB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,QAAQ,EACR,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,EAK5B,+BAA+B,EAE/B,8BAA8B,EAE9B,4BAA4B,EAE5B,yBAAyB,EACzB,6BAA6B,EAG7B,yBAAyB,EACzB,sBAAsB,EAOtB,4BAA4B,GAE7B,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AACpB,6DAA6D;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,0EAA0E;AAC1E,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AAepB,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,IAAI,+BAA+B,EAAE,CAAC;AAC3E,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,yBAAyB,EAAE,CAAC;AAC/D,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC;AAErE,MAAM,uBAAuB,GAAG,CAC9B,MAAwB,EACoC,EAAE,CAC9D,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;IAC3D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;IACJ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CACrB,QAA8B,EAC9B,MAGC,EAID,EAAE,CACF,QAAQ,CAAC,MAAM;KACZ,IAAI,CAAC;IACJ,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,MAAM,CAAC,aAAa;IACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;CAC1C,CAAC;KACD,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACjC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAC3B,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EACvC,MAAM,CAAC,aAAa,CACrB,CAAC;AAEN,MAAM,mBAAmB,GAAG,GAG1B,EAAE,CACF,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;IACzD,KAAK,EAAE,gBAAgB;CACxB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC3B,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAC7C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAClC,CACF,CACF,CAAC;AAEJ,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAE,KAAiB,EAAW,EAAE;IAClE,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,IAAuB,EACvB,KAAwB,EACf,EAAE,CACX,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;IAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAE3D,MAAM,kBAAkB,GAAG,CACzB,OAAqC,EACrC,aAAiC,EACjC,SAAoB,EAC0C,EAAE,CAChE,aAAa,CAAC,IAAI,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe;IACxC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB;IAChD,iBAAiB,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAC3D,SAAS;IACT,IAAI,EAAE,aAAa,CAAC,IAAI;CACzB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE7C,MAAM,iBAAiB,GAAG,CACxB,QAA4B,EAC5B,IAAwB,EACsC,EAAE;IAChE,MAAM,mBAAmB,GACvB,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;QAC7C,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC;IACxC,MAAM,iBAAiB,GACrB,eAAe,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC;QACnE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,mBAAmB,IAAI,iBAAiB;QAC7C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,OAAqC,EACrC,aAAiC,EAC6B,EAAE,CAChE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,aAAa,KAAK,SAAS;QAClD,CAAC,CAAC,mBAAmB,EAAE;QACvB,CAAC,CAAC,aAAa,EAAE,CAAC;IACpB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,cAAc,KAAK,SAAS;QACnD,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC;QACvD,CAAC,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,CAAC,iBAAiB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAeL,MAAM,YAAY,GAAG,CACnB,OAAqC,EACrC,KAAoB,EAC4C,EAAE;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,sBAAsB,GAAG,KAAK,CAAC,CAAC,eAAe,CACnD,aAAa,EACb,OAAO,CACR,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAyB;YACxC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;YAC7C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,sBAAsB;SACvB,CAAC;QACF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;aACzC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC;aAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;aACxC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;aAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,IACE,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YACjD,CAAC,UAAU,CACT,OAAO,CAAC,QAAQ,CAAC,sBAAsB,EACvC,QAAQ,CAAC,sBAAsB,CAChC,EACD,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE;YACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,SAAS;YACf,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,SAAS,4BAA4B,CACnC,sBAAkC;IAElC,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,MAAM,EAAE;QACvE,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,EACjE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,EACzD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAqC,EACrC,KAAoB,EACpB,MAAgE;IAEhE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,IAAI,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,4BAA4B,CACxD,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CACtC,CAAC;QACF,IAAI,MAAM,CAAC,mBAAmB,KAAK,cAAc,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;aACxB,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;aAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,mBAAmB,GAAG,CAC1B,OAAqC,EACrC,KAAoB,EACpB,MAAwB,EACwC,EAAE;IAClE,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,KAAK,kBAAkB;YACrB,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/C,KAAK,wBAAwB;YAC3B,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,KAAK,sBAAsB,CAAC;QAC5B,KAAK,iBAAiB;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QACtD,SAAS,CAAC;YACR,MAAM,UAAU,GAAU,MAAM,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,SAAS,aAAa,CACpB,OAAqC,EACrC,KAAoB;IAEpB,OAAO,OAAO,CAAC,MAAM;SAClB,IAAI,CAAC;QACJ,OAAO,EAAE;YACP,wBAAwB,EAAE,KAAK,CAAC,QAAQ;YACxC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,aAAa,EAAE,KAAK,CAAC,OAAO;SAC7B;QACD,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;QAC1C,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB;KACjD,CAAC;SACD,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACjC,MAAM,CAAC,WAAW,CAAC;QACjB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC;YACxD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CACb,aAAa,CAAC,OAAO,EAAE;gBACrB,GAAG,KAAK;gBACR,IAAI,EAAE,OAAO;gBACb,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC;aAC/C,CAAC,CACH,CACF;QACP,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;KACnE,CAAC,EACF,MAAM,CAAC,aAAa,CACrB,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAA+B;IAE/B,OAAO,eAAe,CAAC,aAAa,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACjC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACtC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CACjD,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,OAAqC,EACrC,UAAkB,EAClB,QAA0B;IAE1B,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CACxD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EACpC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACzB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,UAAU;gBACb,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAW,CAAC,CAAC;YACvD,KAAK,SAAS;gBACZ,OAAO,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,KAAK,CAAC,aAAa;oBACnD,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE;wBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,OAAO;wBACP,QAAQ;wBACR,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,iBAAiB,EAAE,yBAAyB;qBAC7C,CAAC;oBACJ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CACjD,CACF,CAAC;YACJ,SAAS,CAAC;gBACR,MAAM,UAAU,GAAU,OAAO,CAAC;gBAClC,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAC9B,OAAqC,EACrC,KAA+B,EAC/B,QAA0B;IAE1B,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,sBAAsB,GAAG,KAAK,CAAC,CAAC,eAAe,CACnD,aAAa,EACb,KAAK,CAAC,OAAO,CACd,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;aACzC,eAAe,CAAC;YACf,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YAClC,sBAAsB;SACvB,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC;AAwBD,MAAM,eAAe,GAAG,CACtB,KAAwB,EACxB,UAAkB,EAClB,gBAAkC,EACA,EAAE,CACpC,KAAK,CAAC,IAAI,KAAK,YAAY;IAC3B,KAAK,CAAC,UAAU,KAAK,UAAU;IAC/B,KAAK,CAAC,MAAM,EAAE,gBAAgB,KAAK,gBAAgB,CAAC;AAEtD,MAAM,gBAAgB,GAAG,CACvB,OAAqC,EACrC,UAAkB,EACsD,EAAE,CAC1E,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACzB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,CAAC,IAAI,KAAK,YAAY;IAC3B,KAAK,CAAC,UAAU,KAAK,UAAU;IAC/B,KAAK,CAAC,MAAM,KAAK,SAAS;IACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CACtD,CACF,CAAC;AAEJ,MAAM,mBAAmB,GAAG,CAC1B,OAAqC,EACrC,UAA8B,EAC9B,QAAiC,EACjC,KAAoB,EAC+B,EAAE,CACrD,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,IACE,CAAC,eAAe,CACd,OAAO,EACP,QAAQ,CAAC,UAAU,EACnB,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAC9B,EACD,CAAC;QACD,OAAO;IACT,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,KAAK,CAAC,QAAQ,EACd,CAAC,OAAO,EAAE,EAAE,CACV,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACnE,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC;IACF,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;QAC5B,GAAG,OAAO;QACV,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;KACnE,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,YAAY,GAAG,CACnB,OAAqC,EACrC,KAA+B,EACa,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,uBAAuB,CAC5C,OAAO,EACP,KAAK,EACL,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAC9B,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,cAAc,GAAG,CACrB,OAAqC,EACrC,UAAkB,EAC0B,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,gBAAgB,CACrC,OAAO,EACP,UAAU,EACV,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAC9B,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,CACzB,OAAqC,EACrC,UAA8B,EAC9B,UAAkB,EAC0B,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM;SACjC,IAAI,CAAC;QACJ,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;QACnD,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;QAC1C,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB;KACjD,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO,EAAE,CAAC;YACb,IAAI,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACtE,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;gBACxD,MAAM;gBACN,QAAQ;aACT,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB;YACnB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;QAClE;YACE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEhC,MAAM,YAAY,GAAG,CACnB,OAAqC,EACrC,UAA8B,EAC9B,UAAuC,EACM,EAAE,CAC/C,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CACjE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAC3B,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,aAAa,CACrB,CAAC;AAEJ;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,CAC3B,OAAqC,EACrC,UAA8B,EAC9B,UAAuC,EACK,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3D,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CACpB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC;QAC9C,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC;QAC3D,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;KAClD,CAAC,EACF,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAC3C;QACE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACzB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAC7B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvD,CACF,CAAC;IACF,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,IACE,CAAC,eAAe,CACd,OAAO,EACP,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CACjC,EACD,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAEnD,MAAM,eAAe,GAAG,CACtB,KAAiC,EAC0C,EAAE,CAC7E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IACpD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAC/D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAC1B,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,CACjC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAC7C,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9B,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CACpD,KAAK,CAAC,eAAe,CACtB,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAC1B,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,CACjC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAC7C,CACF,CAAC;IACF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,CAAC,KAG3B,EAAyE,EAAE,CAC1E,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,CACxB,OAAqC,EACrC,OAAgB,EAIhB,EAAE;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EACvC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO;QAC7D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,+BAA+B,EAAE,CAAC,CACvD,EACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,EACjD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EACzE,MAAM,CAAC,aAAa,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,OAAqC,EACrC,aAAiC,EAIjC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,iBAAiB,CACzC,OAAO,EACP,aAAa,CAAC,aAAa,CAC5B,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,IAAI,kBAAkB,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IACxE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,MAAM,WAAW,GAAG,CAClB,OAAqC,EACrC,QAAuC,EAIvC,EAAE,CACF,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;IACnE,WAAW,EAAE,CAAC;CACf,CAAC,CAAC;AAEL,MAAM,cAAc,GAAG,CACrB,OAAqC,EACrC,OAAoC,EACpC,gBAAkC,EAClC,KAAK,GAA4B,QAAQ,EACU,EAAE,CACrD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CACzD,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,KAAK,KAAK,QAAQ;IAChB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;QACpC,GAAG,OAAO;QACV,OAAO;QACP,gBAAgB;KACjB,CAAC;IACJ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC;QAC5C,GAAG,OAAO;QACV,OAAO;QACP,gBAAgB;KACjB,CAAC,CACP,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACtE,CAAC;AAEJ,MAAM,YAAY,GAAG,CACnB,KAAwB,EACxB,UAAkB,EAClB,gBAAkC,EACA,EAAE,CACpC,KAAK,CAAC,IAAI,KAAK,QAAQ;IACvB,KAAK,CAAC,UAAU,KAAK,UAAU;IAC/B,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,gBAAgB,CAAC;AAErD,MAAM,WAAW,GAAG,CAClB,OAAqC,EACrC,QAAiC,EACjC,MAA6D,EAC7D,QAAgD,EACG,EAAE,CACrD,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,IACE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC,EACpE,CAAC;QACD,OAAO;IACT,CAAC;IACD,uEAAuE;IACvE,6DAA6D;IAC7D,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,EACtE,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC;IACF,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;QAC5B,GAAG,OAAO;QACV,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;KAC7D,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEJ,SAAS,eAAe,CACtB,OAAqC,EACrC,UAAmC;IAEnC,IAAI,UAAU,CAAC,sBAAsB,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,QAAQ,CACb,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,IACE,OAAO,CAAC,IAAI,KAAK,YAAY;YAC7B,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU;YAC5C,OAAO,CAAC,MAAM,KAAK,SAAS,EAC5B,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,QAAQ,GAA4B;YACxC,GAAG,OAAO;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,sBAAsB,EAAE,IAAI;SAC7B,CAAC;QACF,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CACH,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,OAAqC,EACrC,UAAuC,EACvC,MAAwB;IAExB,OAAO,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,IACE,OAAO,CAAC,IAAI,KAAK,YAAY;YAC7B,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,EAC5C,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,MAAM,GACV,OAAO,CAAC,qBAAqB,KAAK,SAAS;YAC3C,OAAO,CAAC,qBAAqB,KAAK,MAAM,CAAC,gBAAgB;YACvD,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACrB,MAAM,QAAQ,GAA4B;YACxC,GAAG,OAAO;YACV,MAAM;YACN,qBAAqB,EACnB,OAAO,CAAC,qBAAqB,IAAI,MAAM,CAAC,gBAAgB;YAC1D,sBAAsB,EACpB,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,sBAAsB;YAC7D,MAAM;YACN,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE;SAChC,CAAC;QACF,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,OAAqC,EACrC,UAAuC,EACK,EAAE,CAC9C,oBAAoB,CAClB,OAAO,EACP;IACE,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;IACzD,cAAc,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAC5C,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC;CACnE,EACD,UAAU,CACX,CAAC;AAEJ,MAAM,oBAAoB,GAAG,CAC3B,OAAqC,EACrC,MAAiC,EACjC,kBAA0B,EACkB,EAAE,CAC9C,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CACjC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,IACE,OAAO,CAAC,IAAI,KAAK,YAAY;QAC7B,OAAO,CAAC,UAAU,KAAK,kBAAkB,EACzC,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,UAAU,GAAgC;QAC9C,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC;QAClC,MAAM;QACN,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB;QACtD,sBAAsB,EAAE,KAAK;QAC7B,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE;KAChC,CAAC;IACF,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CACrC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CACnC,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,cAAc,GAAG,CACrB,OAAqC,EACrC,QAAiC,EACW,EAAE,CAC9C,OAAO,CAAC,MAAM;KACX,IAAI,CAAC;IACJ,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;IACnD,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;IAC1C,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB;CACjD,CAAC;KACD,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACjC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAC3B,MAAM,CAAC,WAAW,CAAC,4BAA4B,EAAE,GAAG,EAAE,CACpD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CACrC,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO;YACV,IAAI,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACjE,OAAO,oBAAoB,CACzB,OAAO,EACP,kBAAkB,EAClB,QAAQ,CAAC,UAAU,CACpB,CAAC;YACJ,CAAC;YACD,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CACjD,CACF,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,oBAAoB,CACzB,OAAO,EACP,UAAU,EACV,QAAQ,CAAC,UAAU,CACpB,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,oBAAoB,CACzB,OAAO,EACP,gBAAgB,EAChB,QAAQ,CAAC,UAAU,CACpB,CAAC;QACJ;YACE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC,CAAC,EACF,MAAM,CAAC,aAAa,CACrB,CAAC;AAEN;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,CACpB,OAAqC,EACrC,QAAmC,EACS,EAAE,CAC9C,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACzC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CAAC,MAAM,CAAC,gBAAgB;IACxD,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7B,CAAC,CAAC,oBAAoB,CAClB,OAAO,EACP,kBAAkB,EAClB,QAAQ,CAAC,UAAU,CACpB,CACN,EACD,MAAM,CAAC,aAAa,CACrB,CAAC;AAEJ,MAAM,YAAY,GAAG,CACnB,OAAqC,EACO,EAAE,CAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAC7B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACzB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IACvB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,KAAK,UAAU;YACb,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvC,KAAK,YAAY;YACf,OAAO,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CACxC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAC/B,CAAC;QACJ,SAAS,CAAC;YACR,MAAM,UAAU,GAAU,KAAK,CAAC;YAChC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CACH,CACF,CAAC;AAEJ,MAAM,QAAQ,GAAG,CACf,OAAqC,EACrC,UAAkB,EAC0B,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CACvD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,gBAAgB,CACrC,OAAO,EACP,UAAU,EACV,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAC9B,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IACnD,CAAC,CAAC,CACH,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACxC,KAAK,CAAC,CAAC,oBAAoB,CACzB,OAAO,EACP,kBAAkB,EAClB,MAAM,CAAC,UAAU,CAClB,CAAC;QACF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,YAAY,GAAG,CACnB,KAAwB,EACS,EAAE,CACnC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAEtE,MAAM,UAAU,GAAG,CACjB,OAAqC,EACvB,EAAE;IAChB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,CAAC,IAAI,KAAK,QAAQ;YACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,EAAE,CAAC,CACpD,CACF;QACD,yEAAyE;QACzE,uEAAuE;QACvE,kEAAkE;QAClE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CACrC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAC9B,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B;QACD,QAAQ;QACR,GAAG,EAAE,MAAM,CAAC,QAAQ,CAClB,iBAAiB,CAAC,OAAO,CAAC,EAC1B,QAAQ,CAAC,IAAI,CACX,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAC1D,MAAM,CAAC,KAAK,CACV,6BAA6B,CAAC,IAAI,CAChC,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAClD,CACF,EACD,MAAM,CAAC,OAAO,CACf,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC5D,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAiC,EAKjC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM;QACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ;KAC1B,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAiC;QAC5C,GAAG,QAAQ;QACX,KAAK;QACL,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAoB;YACpD,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,kBAAkB;YAC1B,sBAAsB,EAAE,KAAK;YAC7B,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE;SAChC,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACxC,SAAS,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACzC,YAAY,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;KAC7C,CAAC;IACF,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Router outage handling: classifying Router client failures as outages
|
|
3
|
+
* or rejections, and the worker's detachment, reattachment, and warnings.
|
|
4
|
+
*/
|
|
5
|
+
import { Effect, Schedule } from "effect";
|
|
6
|
+
import { type RouterWorkerDetachedState, type RouterWorkerPollError, type RouterWorkerRecoveringState, RouterWorkerRejectedError, type RouterWorkerRuntime, type RouterWorkerSendError, type RouterWorkerServices, RouterWorkerTransportError } from "./types.js";
|
|
7
|
+
/** Every failure the Router client raises; poll and send share one union. */
|
|
8
|
+
type RouterCallError = Effect.Effect.Error<ReturnType<RouterWorkerServices["router"]["poll"]>>;
|
|
9
|
+
/** Any tagged worker failure. */
|
|
10
|
+
type TaggedFailure = Readonly<{
|
|
11
|
+
_tag: string;
|
|
12
|
+
}>;
|
|
13
|
+
/** Worker failure a Router call maps to. */
|
|
14
|
+
export type RouterCallFailure = RouterWorkerTransportError | RouterWorkerRejectedError;
|
|
15
|
+
/**
|
|
16
|
+
* Classify one Router client failure as an outage or a rejection.
|
|
17
|
+
* @param error Failure the Router client raised.
|
|
18
|
+
* @returns The worker failure it maps to.
|
|
19
|
+
*/
|
|
20
|
+
export declare const mapRouterFailure: (error: RouterCallError) => RouterCallFailure;
|
|
21
|
+
/**
|
|
22
|
+
* Whether a worker failure is a Router outage rather than a rejection.
|
|
23
|
+
* @param error Any tagged worker failure.
|
|
24
|
+
* @returns True for `RouterWorkerTransportError`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const isTransportFailure: (error: TaggedFailure) => boolean;
|
|
27
|
+
/** Quick retries of one Router poll, for transport failures only. */
|
|
28
|
+
export declare const pollBlipRetry: Schedule.Schedule<[import("effect/Duration").Duration, number], Readonly<{
|
|
29
|
+
_tag: string;
|
|
30
|
+
}>, never>;
|
|
31
|
+
/**
|
|
32
|
+
* Mark the worker detached after a poll issued at `generation` lost the
|
|
33
|
+
* Router through its quick retries, so sends and the outbound drain wait for
|
|
34
|
+
* the next answered poll instead of transmitting. A generation that recovery
|
|
35
|
+
* has since replaced stays as it is.
|
|
36
|
+
* @param runtime Worker whose poll lost the Router.
|
|
37
|
+
* @param generation Generation the failed poll was issued from.
|
|
38
|
+
* @returns Completion once a matching active state is detached.
|
|
39
|
+
*/
|
|
40
|
+
export declare const detach: <Payload>(runtime: RouterWorkerRuntime<Payload>, generation: number) => Effect.Effect<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Repeat a warning every `routerWorkerDetachedReportInterval` for as long as
|
|
43
|
+
* the worker waits on an unreachable Router, detached or recovering, so an
|
|
44
|
+
* outage is never silent however long it lasts.
|
|
45
|
+
* @param runtime Worker whose state is watched.
|
|
46
|
+
* @returns A watcher that runs for the worker's lifetime.
|
|
47
|
+
*/
|
|
48
|
+
export declare const reportUnreachable: <Payload>(runtime: RouterWorkerRuntime<Payload>) => Effect.Effect<void>;
|
|
49
|
+
/**
|
|
50
|
+
* One line naming why the worker or the outbound drain failed; a Router
|
|
51
|
+
* rejection names what the Router refused.
|
|
52
|
+
* @param error Poll or send failure.
|
|
53
|
+
* @returns Human-readable reason for the log.
|
|
54
|
+
*/
|
|
55
|
+
export declare const describeRouterWorkerFailure: (error: RouterWorkerPollError | RouterWorkerSendError) => string;
|
|
56
|
+
/**
|
|
57
|
+
* Report a failed poll-loop step before the loop retries or ends: a fatal
|
|
58
|
+
* failure logs why the daemon exits, and a failed recovery attempt warns and
|
|
59
|
+
* marks when the Router was first unreachable.
|
|
60
|
+
* @param runtime Worker whose step failed.
|
|
61
|
+
* @param error The step's failure.
|
|
62
|
+
* @returns Completion once the failure is logged and recorded.
|
|
63
|
+
*/
|
|
64
|
+
export declare const noteRunFailure: <Payload>(runtime: RouterWorkerRuntime<Payload>, error: RouterWorkerPollError) => Effect.Effect<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Warn that a worker that had lost the Router now recovers from a
|
|
67
|
+
* discontinuity its first answered probe revealed.
|
|
68
|
+
* @param state The new recovering state.
|
|
69
|
+
* @returns Completion once logged.
|
|
70
|
+
*/
|
|
71
|
+
export declare const logRecoveryAfterLoss: (state: RouterWorkerRecoveringState) => Effect.Effect<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Note that certified-history recovery finished and the worker is active.
|
|
74
|
+
* @param state The recovering state recovery completed.
|
|
75
|
+
* @returns Completion once logged.
|
|
76
|
+
*/
|
|
77
|
+
export declare const logRecoveryComplete: (state: RouterWorkerRecoveringState) => Effect.Effect<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Mark a detached worker active again at its retained anchor, unless another
|
|
80
|
+
* generation replaced it meanwhile.
|
|
81
|
+
* @param runtime Worker whose probe the Router answered.
|
|
82
|
+
* @param snapshot Detached state the probe was issued from.
|
|
83
|
+
* @returns Completion once the worker is active or left as it was.
|
|
84
|
+
*/
|
|
85
|
+
export declare const reattach: <Payload>(runtime: RouterWorkerRuntime<Payload>, snapshot: RouterWorkerDetachedState) => Effect.Effect<void>;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=outage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outage.d.ts","sourceRoot":"","sources":["../../../src/endpoint/router-worker/outage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAS,MAAM,EAAe,QAAQ,EAAU,MAAM,QAAQ,CAAC;AACtE,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAEzB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,6EAA6E;AAC7E,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACxC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CACnD,CAAC;AAEF,iCAAiC;AACjC,KAAK,aAAa,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhD,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GACzB,0BAA0B,GAC1B,yBAAyB,CAAC;AA+B9B;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAW,eAAe,KAAG,iBACxB,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UAAW,aAAa,KAAG,OACb,CAAC;AAE9C,qEAAqE;AACrE,eAAO,MAAM,aAAa;UArDY,MAAM;UAuD3C,CAAC;AAgCF;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,WACnB,mBAAmB,CAAC,OAAO,CAAC,cACzB,MAAM,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CA4BlB,CAAC;AA0DJ;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAC9B,mBAAmB,CAAC,OAAO,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAgBlB,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,UAC/B,qBAAqB,GAAG,qBAAqB,KACnD,MAGa,CAAC;AA4BjB;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,WAC3B,mBAAmB,CAAC,OAAO,CAAC,SAC9B,qBAAqB,KAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAcd,CAAC;AAER;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UACxB,2BAA2B,KACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAG0C,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,UACvB,2BAA2B,KACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAGlB,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,WACrB,mBAAmB,CAAC,OAAO,CAAC,YAC3B,yBAAyB,KAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAclB,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Router outage handling: classifying Router client failures as outages
|
|
3
|
+
* or rejections, and the worker's detachment, reattachment, and warnings.
|
|
4
|
+
*/
|
|
5
|
+
import { Clock, Effect, Option, Ref, Schedule, Stream } from "effect";
|
|
6
|
+
import { isTransientRouterWorkerError, routerWorkerBlipSchedule, routerWorkerDetachedReportInterval, RouterWorkerRejectedError, RouterWorkerTransportError, } from "./types.js";
|
|
7
|
+
const transportFailure = () => new RouterWorkerTransportError();
|
|
8
|
+
const rejectedFailure = (reason) => () => new RouterWorkerRejectedError({ reason });
|
|
9
|
+
/**
|
|
10
|
+
* Outage-shaped Router failures (unreachable, timed out, 429, 5xx) are
|
|
11
|
+
* transport failures the worker waits out. A refusal of the request itself
|
|
12
|
+
* (401, 412 version mismatch, other 4xx, an undecodable answer, or a local
|
|
13
|
+
* signing failure) cannot succeed on retry and is a rejection.
|
|
14
|
+
*/
|
|
15
|
+
const routerFailureByTag = {
|
|
16
|
+
AgentSigningError: rejectedFailure("signing"),
|
|
17
|
+
AuthenticationFailedError: rejectedFailure("authentication"),
|
|
18
|
+
InternalServerError: transportFailure,
|
|
19
|
+
MalformedRequestError: rejectedFailure("request"),
|
|
20
|
+
MethodNotAllowedError: rejectedFailure("request"),
|
|
21
|
+
OverloadedError: transportFailure,
|
|
22
|
+
PayloadTooLargeError: rejectedFailure("request"),
|
|
23
|
+
RouteNotFoundError: rejectedFailure("request"),
|
|
24
|
+
RouterConnectionError: transportFailure,
|
|
25
|
+
RouterInvalidResponseError: rejectedFailure("response"),
|
|
26
|
+
RouterRequestTimeoutError: transportFailure,
|
|
27
|
+
UnavailableError: transportFailure,
|
|
28
|
+
UnsupportedMediaTypeError: rejectedFailure("request"),
|
|
29
|
+
VersionMismatchError: rejectedFailure("version"),
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Classify one Router client failure as an outage or a rejection.
|
|
33
|
+
* @param error Failure the Router client raised.
|
|
34
|
+
* @returns The worker failure it maps to.
|
|
35
|
+
*/
|
|
36
|
+
export const mapRouterFailure = (error) => routerFailureByTag[error._tag]();
|
|
37
|
+
/**
|
|
38
|
+
* Whether a worker failure is a Router outage rather than a rejection.
|
|
39
|
+
* @param error Any tagged worker failure.
|
|
40
|
+
* @returns True for `RouterWorkerTransportError`.
|
|
41
|
+
*/
|
|
42
|
+
export const isTransportFailure = (error) => error._tag === "RouterWorkerTransportError";
|
|
43
|
+
/** Quick retries of one Router poll, for transport failures only. */
|
|
44
|
+
export const pollBlipRetry = routerWorkerBlipSchedule.pipe(Schedule.whileInput(isTransportFailure));
|
|
45
|
+
const secondsSince = (since) => Clock.currentTimeMillis.pipe(Effect.map((now) => Math.round((now - since) / 1000)));
|
|
46
|
+
const logDetached = (state) => Effect.logWarning("Router unreachable: worker detached; sends wait until it answers").pipe(Effect.annotateLogs({
|
|
47
|
+
generation: state.generation,
|
|
48
|
+
routerInstanceId: state.anchor.routerInstanceId,
|
|
49
|
+
}));
|
|
50
|
+
const logReattached = (state) => secondsSince(state.detachedAt).pipe(Effect.flatMap((seconds) => Effect.logInfo(`Router answered: worker reattached after ${String(seconds)} s`).pipe(Effect.annotateLogs({
|
|
51
|
+
generation: state.generation,
|
|
52
|
+
routerInstanceId: state.anchor.routerInstanceId,
|
|
53
|
+
detachedSeconds: seconds,
|
|
54
|
+
}))));
|
|
55
|
+
/**
|
|
56
|
+
* Mark the worker detached after a poll issued at `generation` lost the
|
|
57
|
+
* Router through its quick retries, so sends and the outbound drain wait for
|
|
58
|
+
* the next answered poll instead of transmitting. A generation that recovery
|
|
59
|
+
* has since replaced stays as it is.
|
|
60
|
+
* @param runtime Worker whose poll lost the Router.
|
|
61
|
+
* @param generation Generation the failed poll was issued from.
|
|
62
|
+
* @returns Completion once a matching active state is detached.
|
|
63
|
+
*/
|
|
64
|
+
export const detach = (runtime, generation) => Clock.currentTimeMillis.pipe(Effect.flatMap((detachedAt) => runtime.stateGate.withPermits(1)(Ref.modify(runtime.state, (state) => {
|
|
65
|
+
if (state.kind !== "active" || state.generation !== generation) {
|
|
66
|
+
return [Option.none(), state];
|
|
67
|
+
}
|
|
68
|
+
const detached = {
|
|
69
|
+
...state,
|
|
70
|
+
kind: "detached",
|
|
71
|
+
detachedAt,
|
|
72
|
+
};
|
|
73
|
+
return [Option.some(detached), detached];
|
|
74
|
+
}))), Effect.flatMap(Option.match({ onNone: () => Effect.void, onSome: logDetached })));
|
|
75
|
+
const stallOf = (state) => {
|
|
76
|
+
switch (state.kind) {
|
|
77
|
+
case "active":
|
|
78
|
+
return Option.none();
|
|
79
|
+
case "detached":
|
|
80
|
+
return Option.some({
|
|
81
|
+
kind: "detached",
|
|
82
|
+
generation: state.generation,
|
|
83
|
+
since: state.detachedAt,
|
|
84
|
+
});
|
|
85
|
+
case "recovering":
|
|
86
|
+
return Option.map(state.unreachableSince, (since) => ({
|
|
87
|
+
kind: "recovering",
|
|
88
|
+
generation: state.generation,
|
|
89
|
+
since,
|
|
90
|
+
}));
|
|
91
|
+
default: {
|
|
92
|
+
const exhaustive = state;
|
|
93
|
+
return exhaustive;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
const sameStall = Option.getEquivalence((left, right) => left.kind === right.kind &&
|
|
98
|
+
left.generation === right.generation &&
|
|
99
|
+
left.since === right.since);
|
|
100
|
+
const stallText = {
|
|
101
|
+
detached: "worker detached",
|
|
102
|
+
recovering: "recovery waiting",
|
|
103
|
+
};
|
|
104
|
+
const logStillStalled = (stall) => secondsSince(stall.since).pipe(Effect.flatMap((seconds) => Effect.logWarning(`Router still unreachable: ${stallText[stall.kind]} for ${String(seconds)} s`).pipe(Effect.annotateLogs({
|
|
105
|
+
generation: stall.generation,
|
|
106
|
+
unreachableSeconds: seconds,
|
|
107
|
+
}))));
|
|
108
|
+
/**
|
|
109
|
+
* Repeat a warning every `routerWorkerDetachedReportInterval` for as long as
|
|
110
|
+
* the worker waits on an unreachable Router, detached or recovering, so an
|
|
111
|
+
* outage is never silent however long it lasts.
|
|
112
|
+
* @param runtime Worker whose state is watched.
|
|
113
|
+
* @returns A watcher that runs for the worker's lifetime.
|
|
114
|
+
*/
|
|
115
|
+
export const reportUnreachable = (runtime) => runtime.state.changes.pipe(Stream.map(stallOf), Stream.changesWith(sameStall), Stream.flatMap(Option.match({
|
|
116
|
+
onNone: () => Stream.empty,
|
|
117
|
+
onSome: (stall) => Stream.tick(routerWorkerDetachedReportInterval).pipe(Stream.drop(1), Stream.mapEffect(() => logStillStalled(stall))),
|
|
118
|
+
}), { switch: true }), Stream.runDrain);
|
|
119
|
+
/**
|
|
120
|
+
* One line naming why the worker or the outbound drain failed; a Router
|
|
121
|
+
* rejection names what the Router refused.
|
|
122
|
+
* @param error Poll or send failure.
|
|
123
|
+
* @returns Human-readable reason for the log.
|
|
124
|
+
*/
|
|
125
|
+
export const describeRouterWorkerFailure = (error) => error._tag === "RouterWorkerRejectedError"
|
|
126
|
+
? `the Router rejected this endpoint's ${error.reason}`
|
|
127
|
+
: error._tag;
|
|
128
|
+
const markUnreachable = (state, error, now) => state.kind === "recovering" &&
|
|
129
|
+
isTransportFailure(error) &&
|
|
130
|
+
Option.isNone(state.unreachableSince)
|
|
131
|
+
? { ...state, unreachableSince: Option.some(now) }
|
|
132
|
+
: state;
|
|
133
|
+
const logRecoveryAttemptFailed = (state, error) => state.kind === "recovering"
|
|
134
|
+
? Effect.logWarning(`Router recovery attempt failed, retrying: ${describeRouterWorkerFailure(error)}`).pipe(Effect.annotateLogs({
|
|
135
|
+
generation: state.generation,
|
|
136
|
+
reason: state.reason,
|
|
137
|
+
}))
|
|
138
|
+
: Effect.void;
|
|
139
|
+
/**
|
|
140
|
+
* Report a failed poll-loop step before the loop retries or ends: a fatal
|
|
141
|
+
* failure logs why the daemon exits, and a failed recovery attempt warns and
|
|
142
|
+
* marks when the Router was first unreachable.
|
|
143
|
+
* @param runtime Worker whose step failed.
|
|
144
|
+
* @param error The step's failure.
|
|
145
|
+
* @returns Completion once the failure is logged and recorded.
|
|
146
|
+
*/
|
|
147
|
+
export const noteRunFailure = (runtime, error) => isTransientRouterWorkerError(error)
|
|
148
|
+
? Clock.currentTimeMillis.pipe(Effect.flatMap((now) => runtime.stateGate.withPermits(1)(Ref.updateAndGet(runtime.state, (state) => markUnreachable(state, error, now)))), Effect.flatMap((state) => logRecoveryAttemptFailed(state, error)))
|
|
149
|
+
: Effect.logError(`Router worker stopping, daemon exits: ${describeRouterWorkerFailure(error)}`);
|
|
150
|
+
/**
|
|
151
|
+
* Warn that a worker that had lost the Router now recovers from a
|
|
152
|
+
* discontinuity its first answered probe revealed.
|
|
153
|
+
* @param state The new recovering state.
|
|
154
|
+
* @returns Completion once logged.
|
|
155
|
+
*/
|
|
156
|
+
export const logRecoveryAfterLoss = (state) => Effect.logWarning(`Router answered after a loss with ${state.reason}: recovering`).pipe(Effect.annotateLogs({ generation: state.generation }));
|
|
157
|
+
/**
|
|
158
|
+
* Note that certified-history recovery finished and the worker is active.
|
|
159
|
+
* @param state The recovering state recovery completed.
|
|
160
|
+
* @returns Completion once logged.
|
|
161
|
+
*/
|
|
162
|
+
export const logRecoveryComplete = (state) => Effect.logInfo(`Router recovery complete after ${state.reason}`).pipe(Effect.annotateLogs({ generation: state.generation }));
|
|
163
|
+
/**
|
|
164
|
+
* Mark a detached worker active again at its retained anchor, unless another
|
|
165
|
+
* generation replaced it meanwhile.
|
|
166
|
+
* @param runtime Worker whose probe the Router answered.
|
|
167
|
+
* @param snapshot Detached state the probe was issued from.
|
|
168
|
+
* @returns Completion once the worker is active or left as it was.
|
|
169
|
+
*/
|
|
170
|
+
export const reattach = (runtime, snapshot) => runtime.stateGate.withPermits(1)(Ref.get(runtime.state).pipe(Effect.flatMap((current) => current.kind === "detached" &&
|
|
171
|
+
current.generation === snapshot.generation
|
|
172
|
+
? Ref.set(runtime.state, {
|
|
173
|
+
kind: "active",
|
|
174
|
+
generation: current.generation,
|
|
175
|
+
anchor: current.anchor,
|
|
176
|
+
}).pipe(Effect.zipRight(logReattached(current)))
|
|
177
|
+
: Effect.void)));
|
|
178
|
+
//# sourceMappingURL=outage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outage.js","sourceRoot":"","sources":["../../../src/endpoint/router-worker/outage.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import type { AgentId, AgentSigningAuthority, MessageId, SignedMessage, VerifiedAgentCard, VerifiedSignedMessage } from "@moltzap/identity";
|
|
3
3
|
import type { Registry } from "@moltzap/identity/registry";
|
|
4
4
|
import type { PollCursor, Router, RouterInstanceId } from "@moltzap/router";
|
|
5
|
-
import { type Context, type Effect, type SubscriptionRef } from "effect";
|
|
5
|
+
import { type Context, type Effect, type Option, Schedule, type SubscriptionRef } from "effect";
|
|
6
6
|
import type { DecodedOuterBody } from "../representation.js";
|
|
7
7
|
import type { EndpointStore } from "../store.js";
|
|
8
8
|
declare const RouterWorkerAuthenticationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
@@ -26,7 +26,10 @@ export declare class RouterWorkerPayloadInvalidError extends RouterWorkerPayload
|
|
|
26
26
|
declare const RouterWorkerTransportError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
27
27
|
readonly _tag: "RouterWorkerTransportError";
|
|
28
28
|
} & Readonly<A>;
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* The Router could not be reached, timed out, or answered overloaded,
|
|
31
|
+
* unavailable, or internal error through a bounded run of quick retries.
|
|
32
|
+
*/
|
|
30
33
|
export declare class RouterWorkerTransportError extends RouterWorkerTransportError_base {
|
|
31
34
|
}
|
|
32
35
|
declare const RouterWorkerProtocolError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
@@ -47,10 +50,22 @@ declare const RouterWorkerDiscontinuityError_base: new <A extends Record<string,
|
|
|
47
50
|
/** A caller must resume protocol work from the recovered certified position. */
|
|
48
51
|
export declare class RouterWorkerDiscontinuityError extends RouterWorkerDiscontinuityError_base {
|
|
49
52
|
}
|
|
53
|
+
declare const RouterWorkerRejectedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
54
|
+
readonly _tag: "RouterWorkerRejectedError";
|
|
55
|
+
} & Readonly<A>;
|
|
56
|
+
/**
|
|
57
|
+
* The Router refused this endpoint's request itself: its authentication, its
|
|
58
|
+
* MoltZap version, its representation, or its local signature. Retrying
|
|
59
|
+
* cannot succeed, so the failure is fatal rather than an outage.
|
|
60
|
+
*/
|
|
61
|
+
export declare class RouterWorkerRejectedError extends RouterWorkerRejectedError_base<{
|
|
62
|
+
readonly reason: "authentication" | "version" | "request" | "response" | "signing";
|
|
63
|
+
}> {
|
|
64
|
+
}
|
|
50
65
|
declare const RouterWorkerUnavailableError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
51
66
|
readonly _tag: "RouterWorkerUnavailableError";
|
|
52
67
|
} & Readonly<A>;
|
|
53
|
-
/** A normal send was attempted while
|
|
68
|
+
/** A normal send was attempted while the worker is detached or recovering. */
|
|
54
69
|
export declare class RouterWorkerUnavailableError extends RouterWorkerUnavailableError_base {
|
|
55
70
|
}
|
|
56
71
|
/** Closed reason for abandoning process-local protocol folds. */
|
|
@@ -63,9 +78,9 @@ export interface RouterTailAnchor {
|
|
|
63
78
|
/** A verified protocol input either changed durable state or was conclusively irrelevant. */
|
|
64
79
|
export type RouterIngressDisposition = "accepted" | "ignored";
|
|
65
80
|
/** Closed failures returned by initial and recovery sends. */
|
|
66
|
-
export type RouterWorkerSendError = RouterWorkerAuthenticationError | RouterWorkerPersistenceError | RouterWorkerTransportError | RouterWorkerProtocolError | RouterWorkerRecoveryError | RouterWorkerDiscontinuityError | RouterWorkerUnavailableError;
|
|
81
|
+
export type RouterWorkerSendError = RouterWorkerAuthenticationError | RouterWorkerPersistenceError | RouterWorkerRejectedError | RouterWorkerTransportError | RouterWorkerProtocolError | RouterWorkerRecoveryError | RouterWorkerDiscontinuityError | RouterWorkerUnavailableError;
|
|
67
82
|
/** Closed failures returned by one poll/recovery transition. */
|
|
68
|
-
export type RouterWorkerPollError = RouterWorkerAuthenticationError | RouterWorkerPersistenceError | RouterWorkerTransportError | RouterWorkerProtocolError | RouterWorkerRecoveryError | RouterWorkerDiscontinuityError | RouterWorkerUnavailableError;
|
|
83
|
+
export type RouterWorkerPollError = RouterWorkerAuthenticationError | RouterWorkerPersistenceError | RouterWorkerRejectedError | RouterWorkerTransportError | RouterWorkerProtocolError | RouterWorkerRecoveryError | RouterWorkerDiscontinuityError | RouterWorkerUnavailableError;
|
|
69
84
|
/** Verified outer message and its decoded private Client payload. */
|
|
70
85
|
export interface RouterWorkerIngress<Payload> {
|
|
71
86
|
readonly routerInstanceId: RouterInstanceId;
|
|
@@ -125,11 +140,17 @@ export interface RouterWorker {
|
|
|
125
140
|
readonly currentAnchor: Effect.Effect<RouterTailAnchor, RouterWorkerUnavailableError>;
|
|
126
141
|
/**
|
|
127
142
|
* The active anchor as soon as one exists: the current anchor while the
|
|
128
|
-
* worker is active, otherwise the anchor the next
|
|
129
|
-
* publishes. Callers bound the wait; the worker itself
|
|
143
|
+
* worker is active, otherwise the anchor the next answered poll or
|
|
144
|
+
* completed recovery publishes. Callers bound the wait; the worker itself
|
|
145
|
+
* never gives up.
|
|
130
146
|
*/
|
|
131
147
|
readonly awaitAnchor: Effect.Effect<RouterTailAnchor>;
|
|
132
148
|
readonly pollOnce: Effect.Effect<void, RouterWorkerPollError>;
|
|
149
|
+
/**
|
|
150
|
+
* Polls for the endpoint's lifetime. A transient failure detaches the
|
|
151
|
+
* worker and backs off until the Router answers; only a non-transient
|
|
152
|
+
* failure ends the loop.
|
|
153
|
+
*/
|
|
133
154
|
readonly run: Effect.Effect<never, RouterWorkerPollError>;
|
|
134
155
|
readonly send: (outboundId: string) => Effect.Effect<void, RouterWorkerSendError>;
|
|
135
156
|
}
|
|
@@ -147,9 +168,26 @@ export interface RouterWorkerRecoveringState {
|
|
|
147
168
|
readonly priorRouterInstanceId?: RouterInstanceId;
|
|
148
169
|
readonly volatileFoldsAbandoned: boolean;
|
|
149
170
|
readonly anchor?: RouterTailAnchor;
|
|
171
|
+
/**
|
|
172
|
+
* Clock epoch milliseconds when a recovery attempt first lost the Router;
|
|
173
|
+
* none once the Router answers the recovery's tail poll.
|
|
174
|
+
*/
|
|
175
|
+
readonly unreachableSince: Option.Option<number>;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Volatile cursor state while the Router stops answering an active worker.
|
|
179
|
+
* The next answered poll either reattaches at the same anchor or starts
|
|
180
|
+
* recovery, so no send runs until the Router's instance is known again.
|
|
181
|
+
*/
|
|
182
|
+
export interface RouterWorkerDetachedState {
|
|
183
|
+
readonly kind: "detached";
|
|
184
|
+
readonly generation: number;
|
|
185
|
+
readonly anchor: RouterTailAnchor;
|
|
186
|
+
/** Epoch milliseconds of the Clock when the worker detached. */
|
|
187
|
+
readonly detachedAt: number;
|
|
150
188
|
}
|
|
151
189
|
/** Closed volatile lifecycle of the Router worker. */
|
|
152
|
-
export type RouterWorkerState = RouterWorkerActiveState | RouterWorkerRecoveringState;
|
|
190
|
+
export type RouterWorkerState = RouterWorkerActiveState | RouterWorkerDetachedState | RouterWorkerRecoveringState;
|
|
153
191
|
/** Resolved public capabilities consumed by private worker mechanics. */
|
|
154
192
|
export interface RouterWorkerServices {
|
|
155
193
|
readonly router: Context.Tag.Service<typeof Router>;
|
|
@@ -179,5 +217,32 @@ export type RouterWorkerSendOutcome = Readonly<{
|
|
|
179
217
|
export declare const routerWorkerRetryAttempts = 3;
|
|
180
218
|
/** Fixed interruptible spacing between bounded attempts. */
|
|
181
219
|
export declare const routerWorkerRetryDelay = "25 millis";
|
|
220
|
+
/**
|
|
221
|
+
* Quick retries of one poll before a transport failure detaches the worker,
|
|
222
|
+
* spanning about 350 ms, so a connection reset or a single overloaded answer
|
|
223
|
+
* does not block sends.
|
|
224
|
+
*/
|
|
225
|
+
export declare const routerWorkerBlipSchedule: Schedule.Schedule<[import("effect/Duration").Duration, number], unknown, never>;
|
|
226
|
+
/**
|
|
227
|
+
* Backoff for work that waits out an unreachable or re-anchoring Router: the
|
|
228
|
+
* poll loop and the outbound drain. Delays grow from 100 ms to a 5 s cap and
|
|
229
|
+
* are jittered so endpoints do not return in lockstep after a Router restart.
|
|
230
|
+
* It never ends, because a Router outage halts progress rather than failing
|
|
231
|
+
* the endpoint.
|
|
232
|
+
*/
|
|
233
|
+
export declare const routerWorkerReconnectSchedule: Schedule.Schedule<[import("effect/Duration").Duration, number], unknown, never>;
|
|
234
|
+
/**
|
|
235
|
+
* How often a worker that cannot reach the Router, detached or recovering,
|
|
236
|
+
* repeats its warning.
|
|
237
|
+
*/
|
|
238
|
+
export declare const routerWorkerDetachedReportInterval = "60 seconds";
|
|
239
|
+
/**
|
|
240
|
+
* Whether a worker failure ends once the Router answers and the worker
|
|
241
|
+
* re-anchors. Every other failure is a protocol, persistence, recovery, or
|
|
242
|
+
* Router-rejection fault that stays fatal.
|
|
243
|
+
* @param error Poll or send failure; both unions share these tags.
|
|
244
|
+
* @returns True for transport loss, a pending recovery, or a discontinuity.
|
|
245
|
+
*/
|
|
246
|
+
export declare const isTransientRouterWorkerError: (error: RouterWorkerPollError | RouterWorkerSendError) => boolean;
|
|
182
247
|
export {};
|
|
183
248
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/endpoint/router-worker/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/endpoint/router-worker/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** @file Private Router worker contracts shared by orchestration and transport. */
|
|
2
|
-
import { Data } from "effect";
|
|
2
|
+
import { Data, Schedule, } from "effect";
|
|
3
3
|
/** An outer sender card could not be resolved, pinned, or authenticated. */
|
|
4
4
|
export class RouterWorkerAuthenticationError extends Data.TaggedError("RouterWorkerAuthenticationError") {
|
|
5
5
|
}
|
|
@@ -9,7 +9,10 @@ export class RouterWorkerPersistenceError extends Data.TaggedError("RouterWorker
|
|
|
9
9
|
/** An authenticated outer body is not one closed Client protocol value. */
|
|
10
10
|
export class RouterWorkerPayloadInvalidError extends Data.TaggedError("RouterWorkerPayloadInvalidError") {
|
|
11
11
|
}
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* The Router could not be reached, timed out, or answered overloaded,
|
|
14
|
+
* unavailable, or internal error through a bounded run of quick retries.
|
|
15
|
+
*/
|
|
13
16
|
export class RouterWorkerTransportError extends Data.TaggedError("RouterWorkerTransportError") {
|
|
14
17
|
}
|
|
15
18
|
/** A Router outcome or local envelope violated the private worker contract. */
|
|
@@ -21,11 +24,55 @@ export class RouterWorkerRecoveryError extends Data.TaggedError("RouterWorkerRec
|
|
|
21
24
|
/** A caller must resume protocol work from the recovered certified position. */
|
|
22
25
|
export class RouterWorkerDiscontinuityError extends Data.TaggedError("RouterWorkerDiscontinuityError") {
|
|
23
26
|
}
|
|
24
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The Router refused this endpoint's request itself: its authentication, its
|
|
29
|
+
* MoltZap version, its representation, or its local signature. Retrying
|
|
30
|
+
* cannot succeed, so the failure is fatal rather than an outage.
|
|
31
|
+
*/
|
|
32
|
+
export class RouterWorkerRejectedError extends Data.TaggedError("RouterWorkerRejectedError") {
|
|
33
|
+
}
|
|
34
|
+
/** A normal send was attempted while the worker is detached or recovering. */
|
|
25
35
|
export class RouterWorkerUnavailableError extends Data.TaggedError("RouterWorkerUnavailableError") {
|
|
26
36
|
}
|
|
27
37
|
/** Complete number of attempts for one ambiguous transport operation. */
|
|
28
38
|
export const routerWorkerRetryAttempts = 3;
|
|
29
39
|
/** Fixed interruptible spacing between bounded attempts. */
|
|
30
40
|
export const routerWorkerRetryDelay = "25 millis";
|
|
41
|
+
/**
|
|
42
|
+
* Quick retries of one poll before a transport failure detaches the worker,
|
|
43
|
+
* spanning about 350 ms, so a connection reset or a single overloaded answer
|
|
44
|
+
* does not block sends.
|
|
45
|
+
*/
|
|
46
|
+
export const routerWorkerBlipSchedule = Schedule.exponential("50 millis").pipe(Schedule.intersect(Schedule.recurs(3)));
|
|
47
|
+
/**
|
|
48
|
+
* Backoff for work that waits out an unreachable or re-anchoring Router: the
|
|
49
|
+
* poll loop and the outbound drain. Delays grow from 100 ms to a 5 s cap and
|
|
50
|
+
* are jittered so endpoints do not return in lockstep after a Router restart.
|
|
51
|
+
* It never ends, because a Router outage halts progress rather than failing
|
|
52
|
+
* the endpoint.
|
|
53
|
+
*/
|
|
54
|
+
export const routerWorkerReconnectSchedule = Schedule.exponential("100 millis").pipe(Schedule.union(Schedule.spaced("5 seconds")), Schedule.jittered);
|
|
55
|
+
/**
|
|
56
|
+
* How often a worker that cannot reach the Router, detached or recovering,
|
|
57
|
+
* repeats its warning.
|
|
58
|
+
*/
|
|
59
|
+
export const routerWorkerDetachedReportInterval = "60 seconds";
|
|
60
|
+
const transientByTag = {
|
|
61
|
+
RouterWorkerAuthenticationError: false,
|
|
62
|
+
RouterWorkerDiscontinuityError: true,
|
|
63
|
+
RouterWorkerPersistenceError: false,
|
|
64
|
+
RouterWorkerProtocolError: false,
|
|
65
|
+
RouterWorkerRecoveryError: false,
|
|
66
|
+
RouterWorkerRejectedError: false,
|
|
67
|
+
RouterWorkerTransportError: true,
|
|
68
|
+
RouterWorkerUnavailableError: true,
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Whether a worker failure ends once the Router answers and the worker
|
|
72
|
+
* re-anchors. Every other failure is a protocol, persistence, recovery, or
|
|
73
|
+
* Router-rejection fault that stays fatal.
|
|
74
|
+
* @param error Poll or send failure; both unions share these tags.
|
|
75
|
+
* @returns True for transport loss, a pending recovery, or a discontinuity.
|
|
76
|
+
*/
|
|
77
|
+
export const isTransientRouterWorkerError = (error) => transientByTag[error._tag];
|
|
31
78
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/endpoint/router-worker/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAYnF,OAAO,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/endpoint/router-worker/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAYnF,OAAO,EAEL,IAAI,EAGJ,QAAQ,GAET,MAAM,QAAQ,CAAC;AAIhB,4EAA4E;AAC5E,MAAM,OAAO,+BAAgC,SAAQ,IAAI,CAAC,WAAW,CACnE,iCAAiC,CAClC;CAAG;AAEJ,2EAA2E;AAC3E,MAAM,OAAO,4BAA6B,SAAQ,IAAI,CAAC,WAAW,CAChE,8BAA8B,CAC/B;CAAG;AAEJ,2EAA2E;AAC3E,MAAM,OAAO,+BAAgC,SAAQ,IAAI,CAAC,WAAW,CACnE,iCAAiC,CAClC;CAAG;AAEJ;;;GAGG;AACH,MAAM,OAAO,0BAA2B,SAAQ,IAAI,CAAC,WAAW,CAC9D,4BAA4B,CAC7B;CAAG;AAEJ,+EAA+E;AAC/E,MAAM,OAAO,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CAC7D,2BAA2B,CAC5B;CAAG;AAEJ,+EAA+E;AAC/E,MAAM,OAAO,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CAC7D,2BAA2B,CAC5B;CAAG;AAEJ,gFAAgF;AAChF,MAAM,OAAO,8BAA+B,SAAQ,IAAI,CAAC,WAAW,CAClE,gCAAgC,CACjC;CAAG;AAEJ;;;;GAIG;AACH,MAAM,OAAO,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CAC7D,2BAA2B,CAQ3B;CAAG;AAEL,8EAA8E;AAC9E,MAAM,OAAO,4BAA6B,SAAQ,IAAI,CAAC,WAAW,CAChE,8BAA8B,CAC/B;CAAG;AAuNJ,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAC5E,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC,WAAW,CAC/D,YAAY,CACb,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,YAAY,CAAC;AAE/D,MAAM,cAAc,GAAG;IACrB,+BAA+B,EAAE,KAAK;IACtC,8BAA8B,EAAE,IAAI;IACpC,4BAA4B,EAAE,KAAK;IACnC,yBAAyB,EAAE,KAAK;IAChC,yBAAyB,EAAE,KAAK;IAChC,yBAAyB,EAAE,KAAK;IAChC,0BAA0B,EAAE,IAAI;IAChC,4BAA4B,EAAE,IAAI;CACyC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,KAAoD,EAC3C,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moltzap/client",
|
|
3
|
-
"version": "2026.1001.
|
|
3
|
+
"version": "2026.1001.1",
|
|
4
4
|
"description": "MoltZap endpoint runtime and harness boundary",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -86,8 +86,8 @@
|
|
|
86
86
|
"@modelcontextprotocol/server": "2.0.0-beta.5",
|
|
87
87
|
"canonicalize": "3.0.0",
|
|
88
88
|
"effect": "^3.22.0",
|
|
89
|
-
"@moltzap/identity": "2026.1001.
|
|
90
|
-
"@moltzap/router": "2026.1001.
|
|
89
|
+
"@moltzap/identity": "2026.1001.1",
|
|
90
|
+
"@moltzap/router": "2026.1001.1"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"@typescript/native": "npm:typescript@7.0.2",
|