genesis-mesh-sdk 0.59.1 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,24 @@ Versions align with the [Genesis Mesh release sequence](https://github.com/Genes
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.60.0] - 2026-10-01
11
+
12
+ Coordinated Genesis Mesh v0.60.0 release: client support for the Network
13
+ Authority's optional high availability.
14
+
15
+ - Add `baseUrls`: several NA instances without a load balancer. Idempotent
16
+ requests fail over on transport errors and 502/503/504. Non-idempotent
17
+ requests move only when the connection was never made, and are never
18
+ replayed after it may have been.
19
+ - Add `NetworkError.connectFailed`.
20
+ - Add `client.health`: `liveness()`, `readiness()` (typed `/readyz`, not-ready
21
+ returned as `ready: false` with the failing checks), `health()`, and
22
+ `endpoints()` to probe every configured instance.
23
+ - Add `isRetryableConflict()` and the `HaConflictCode` type for the 409 codes
24
+ an NA instance returns when it loses a race the database decided.
25
+ - Add a live HA test (`tests/e2e-ha.test.ts`): two instances on PostgreSQL
26
+ behind nginx, one killed mid-run. CI runs it against core `main`.
27
+
10
28
  ## [0.59.1] - 2026-10-01
11
29
 
12
30
  Coordinated Genesis Mesh v0.59.1 release: TypeScript support for governed
package/README.md CHANGED
@@ -37,6 +37,7 @@ execution recording, evidence-store queries and offline verification.
37
37
  - [Governed actions and reconciliation](docs/governance.md)
38
38
  - [Evidence store, policies, signers and retries](docs/evidence-store.md)
39
39
  - [Offline verification and integration tests](docs/offline-verification.md)
40
+ - [High availability: failover, readiness and conflicts](docs/high-availability.md)
40
41
 
41
42
  `governedAction` requires verification keys and explicit expected policies. It
42
43
  verifies the signed response and its request context before calling the supplied
@@ -21,8 +21,24 @@ function buildPath(path, query) {
21
21
  const qs = params.toString();
22
22
  return qs ? `${path}?${qs}` : path;
23
23
  }
24
+ const FAILOVER_STATUS = new Set([502, 503, 504]);
25
+ /** Errors meaning no connection was made, so the request was never sent. */
26
+ const CONNECT_FAILURE_CODES = new Set([
27
+ 'ECONNREFUSED', 'ENOTFOUND', 'EHOSTUNREACH', 'ENETUNREACH', 'EAI_AGAIN', 'UND_ERR_CONNECT_TIMEOUT',
28
+ ]);
29
+ function isConnectFailure(err) {
30
+ const cause = err?.cause;
31
+ if (!cause)
32
+ return false;
33
+ if (typeof cause.code === 'string' && CONNECT_FAILURE_CODES.has(cause.code))
34
+ return true;
35
+ return Array.isArray(cause.errors) && cause.errors.length > 0
36
+ && cause.errors.every(e => typeof e?.code === 'string' && CONNECT_FAILURE_CODES.has(e.code));
37
+ }
24
38
  class HttpTransport {
25
- baseUrl;
39
+ /** Every configured NA endpoint, in preference order. */
40
+ baseUrls;
41
+ active = 0;
26
42
  /** Key ID sent in X-Admin-Key-Id. */
27
43
  keyId;
28
44
  signer;
@@ -31,7 +47,14 @@ class HttpTransport {
31
47
  headers;
32
48
  _fetch;
33
49
  constructor(options) {
34
- this.baseUrl = options.baseUrl.replace(/\/$/, '');
50
+ const urls = options.baseUrls ?? (options.baseUrl !== undefined ? [options.baseUrl] : []);
51
+ if (urls.length === 0 || urls.some(u => typeof u !== 'string' || !/^https?:\/\//.test(u))) {
52
+ throw new Error('baseUrl or baseUrls must give at least one http(s) URL');
53
+ }
54
+ if (options.baseUrl !== undefined && options.baseUrls !== undefined) {
55
+ throw new Error('pass either baseUrl or baseUrls, not both');
56
+ }
57
+ this.baseUrls = Object.freeze(urls.map(u => u.replace(/\/$/, '')));
35
58
  this.signer = options.signer
36
59
  ?? (options.signingKeyBase64
37
60
  ? (0, auth_js_1.seedSigner)(options.signingKeyBase64, options.keyId ?? 'operator-local')
@@ -46,6 +69,15 @@ class HttpTransport {
46
69
  this.headers = options.headers ?? {};
47
70
  this._fetch = options.fetch ?? globalThis.fetch.bind(globalThis);
48
71
  }
72
+ /** The endpoint requests currently go to. */
73
+ get baseUrl() {
74
+ return this.baseUrls[this.active];
75
+ }
76
+ /** Move to the next endpoint (no-op with one endpoint). */
77
+ failover() {
78
+ if (this.baseUrls.length > 1)
79
+ this.active = (this.active + 1) % this.baseUrls.length;
80
+ }
49
81
  /** Signed admin POST. Not retried unless `idempotent` is set. */
50
82
  async adminPost(path, body, idempotent = false) {
51
83
  const response = await this._send({ method: 'POST', path, body, admin: true, idempotent });
@@ -73,30 +105,76 @@ class HttpTransport {
73
105
  return this._parse(response);
74
106
  }
75
107
  async _send(spec) {
76
- const attempts = spec.idempotent ? this.retry.attempts : 0;
77
- for (let attempt = 0;; attempt++) {
108
+ // Idempotent requests may try every other endpoint once, plus the
109
+ // configured retries (with backoff). Non-idempotent requests move to
110
+ // another endpoint only when the connection was never established; after
111
+ // any other failure they are not replayed, and the next request starts at
112
+ // another endpoint.
113
+ const failovers = this.baseUrls.length - 1;
114
+ const retries = spec.idempotent ? this.retry.attempts : 0;
115
+ let failoversLeft = failovers;
116
+ let retriesUsed = 0;
117
+ for (;;) {
118
+ let response;
119
+ let error;
78
120
  try {
79
- const response = await this._once(spec);
80
- if (attempt < attempts && RETRYABLE_STATUS.has(response.status)) {
81
- await this._backoff(attempt);
82
- continue;
83
- }
84
- let body;
85
- try {
86
- body = await response.text();
87
- }
88
- catch {
89
- throw new errors_js_1.NetworkError(`Failed to read response body (${spec.method} ${spec.path})`);
90
- }
91
- return { ok: response.ok, status: response.status, text: async () => body };
121
+ response = await this._attempt(spec);
92
122
  }
93
123
  catch (err) {
94
- if (attempt < attempts && err instanceof errors_js_1.NetworkError) {
95
- await this._backoff(attempt);
96
- continue;
97
- }
98
- throw err;
124
+ if (!(err instanceof errors_js_1.NetworkError))
125
+ throw err;
126
+ error = err;
127
+ }
128
+ const failoverWorthy = error !== undefined || (response !== undefined && FAILOVER_STATUS.has(response.status));
129
+ if (failoverWorthy)
130
+ this.failover();
131
+ // A request that may have reached an instance is replayed elsewhere only
132
+ // if it is idempotent; one that never connected can always move on.
133
+ const mayMove = spec.idempotent || (error instanceof errors_js_1.NetworkError && error.connectFailed);
134
+ if (failoverWorthy && mayMove && failoversLeft > 0) {
135
+ failoversLeft -= 1;
136
+ continue;
99
137
  }
138
+ const retryable = error !== undefined || (response !== undefined && RETRYABLE_STATUS.has(response.status));
139
+ if (retryable && retriesUsed < retries) {
140
+ await this._backoff(retriesUsed);
141
+ retriesUsed += 1;
142
+ failoversLeft = failovers;
143
+ continue;
144
+ }
145
+ if (error !== undefined)
146
+ throw error;
147
+ return response;
148
+ }
149
+ }
150
+ /** One request to the active endpoint, with the body fully read (a dropped body is a NetworkError). */
151
+ async _attempt(spec) {
152
+ const res = await this._once(spec);
153
+ let body;
154
+ try {
155
+ body = await res.text();
156
+ }
157
+ catch {
158
+ throw new errors_js_1.NetworkError(`Failed to read response body (${spec.method} ${spec.path})`);
159
+ }
160
+ return { ok: res.ok, status: res.status, text: async () => body };
161
+ }
162
+ /** Unauthenticated GET against one specific endpoint (no failover), e.g. per-instance readiness. */
163
+ async publicGetAt(baseUrl, path) {
164
+ const url = baseUrl.replace(/\/$/, '') + path;
165
+ let response;
166
+ try {
167
+ response = await this._fetch(url, { method: 'GET', headers: { ...this.headers }, signal: AbortSignal.timeout(this.timeout) });
168
+ }
169
+ catch (err) {
170
+ throw new errors_js_1.NetworkError(`GET ${url} failed: ${err.message}`);
171
+ }
172
+ const text = await response.text();
173
+ try {
174
+ return { status: response.status, body: (0, auth_js_1.parseJson)(text) };
175
+ }
176
+ catch {
177
+ throw new errors_js_1.NetworkError(`Failed to parse response body from ${url} (HTTP ${response.status})`);
100
178
  }
101
179
  }
102
180
  async _once(spec) {
@@ -117,7 +195,9 @@ class HttpTransport {
117
195
  return await this._fetch(this.baseUrl + path, init);
118
196
  }
119
197
  catch (err) {
120
- throw new errors_js_1.NetworkError(`${spec.method} ${spec.path} failed: ${err.message}`);
198
+ const error = new errors_js_1.NetworkError(`${spec.method} ${spec.path} failed: ${err.message}`);
199
+ error.connectFailed = isConnectFailure(err);
200
+ throw error;
121
201
  }
122
202
  }
123
203
  _backoff(attempt) {
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.BadRequestError = exports.NetworkError = exports.RateLimitError = exports.NotFoundError = exports.ServiceUnavailableError = exports.ConflictError = exports.ForbiddenError = exports.ValidationError = exports.UnauthorizedError = exports.GenesisMeshError = void 0;
5
5
  exports.fromHttpError = fromHttpError;
6
+ exports.isRetryableConflict = isRetryableConflict;
6
7
  class GenesisMeshError extends Error {
7
8
  code;
8
9
  status;
@@ -70,6 +71,12 @@ class RateLimitError extends GenesisMeshError {
70
71
  }
71
72
  exports.RateLimitError = RateLimitError;
72
73
  class NetworkError extends GenesisMeshError {
74
+ /**
75
+ * True when the connection could not be established (refused, unresolvable,
76
+ * unreachable): the request never reached the NA, so another instance may
77
+ * take it even when it is not idempotent (v0.60).
78
+ */
79
+ connectFailed = false;
73
80
  constructor(message, code = 'network_error') {
74
81
  super(message, code, 0);
75
82
  this.name = 'NetworkError';
@@ -127,3 +134,16 @@ function errorForStatus(status, message, code) {
127
134
  default: return new GenesisMeshError(message, code, status);
128
135
  }
129
136
  }
137
+ const HA_CONFLICT_CODES = new Set([
138
+ 'boundary_policy_activation_conflict',
139
+ 'boundary_policy_version_conflict',
140
+ 'crl_publish_contention',
141
+ 'retention_in_progress',
142
+ ]);
143
+ /**
144
+ * True for a 409 that only means another NA instance won a race the database
145
+ * decided (v0.60). The request changed nothing and can be retried.
146
+ */
147
+ function isRetryableConflict(err) {
148
+ return err instanceof ConflictError && HA_CONFLICT_CODES.has(err.code);
149
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthClient = void 0;
4
+ const errors_js_1 = require("./errors.js");
5
+ function normalise(body, ready) {
6
+ return { ...body, status: ready ? 'ready' : 'not_ready', ready };
7
+ }
8
+ /** Liveness, readiness and health of the Network Authority (v0.60). */
9
+ class HealthClient {
10
+ http;
11
+ constructor(http) {
12
+ this.http = http;
13
+ }
14
+ /** Process liveness only (`GET /healthz`). */
15
+ liveness() {
16
+ return this.http.publicGet('/healthz');
17
+ }
18
+ /**
19
+ * Readiness (`GET /readyz`): database writable at the expected schema, key
20
+ * loaded, shared state in HA mode. A not-ready NA (503 `service_not_ready`)
21
+ * is returned as `ready: false` with the failing checks, not thrown. With
22
+ * several `baseUrls`, a not-ready instance is skipped for the next one.
23
+ */
24
+ async readiness() {
25
+ try {
26
+ return normalise(await this.http.publicGet('/readyz'), true);
27
+ }
28
+ catch (err) {
29
+ if (err instanceof errors_js_1.ServiceUnavailableError && err.code === 'service_not_ready') {
30
+ return normalise(err.details, false);
31
+ }
32
+ throw err;
33
+ }
34
+ }
35
+ /** Network, version, boundary policy health and evidence store mode (`GET /health`). */
36
+ health() {
37
+ return this.http.publicGet('/health');
38
+ }
39
+ /** Probe every configured endpoint's `/readyz` directly, for monitoring an HA deployment. */
40
+ async endpoints() {
41
+ return Promise.all(this.http.baseUrls.map(async (baseUrl) => {
42
+ try {
43
+ const { status, body } = await this.http.publicGetAt(baseUrl, '/readyz');
44
+ if (status === 200)
45
+ return { base_url: baseUrl, reachable: true, ready: true, readiness: normalise(body, true) };
46
+ const details = body?.['error']?.details;
47
+ return {
48
+ base_url: baseUrl, reachable: true, ready: false,
49
+ ...(details ? { readiness: normalise(details, false) } : {}),
50
+ error: `HTTP ${status}`,
51
+ };
52
+ }
53
+ catch (err) {
54
+ return { base_url: baseUrl, reachable: false, ready: false, error: err.message };
55
+ }
56
+ }));
57
+ }
58
+ }
59
+ exports.HealthClient = HealthClient;
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyRetentionCheckpoint = exports.verifyRevocationFeedSignature = exports.verifyJustificationSignature = exports.verifyPolicySignature = exports.verifyAttestationSignature = exports.verifyDecisionSignature = exports.verifyBoundaryDecision = exports.MAX_METADATA_BYTES = exports.SecretMaterialError = exports.checkMetadataOnly = exports.ExecutionRecorder = exports.payloadDigest = exports.entryDigest = exports.checkpointCanonical = exports.justificationCanonical = exports.policySetDigest = exports.policyDigest = exports.policyCanonical = exports.revocationFeedCanonical = exports.attestationDigest = exports.attestationCanonical = exports.executionDigest = exports.executionCanonical = exports.decisionCanonical = exports.RESOURCE_CHAIN_FIELDS = exports.buildAdminHeadersWithSigner = exports.buildAdminHeaders = exports.pythonTimestamp = exports.verifyCanonical = exports.signCanonical = exports.seedSigner = exports.publicKeyFromSeed = exports.verifyBytes = exports.signBytes = exports.sha256Hex = exports.parseJson = exports.canonicalDigest = exports.canonicalJson = exports.buildPath = exports.HttpTransport = exports.DataUsageClient = exports.ConsensusClient = exports.DisclosureClient = exports.AttestationClient = exports.EvidenceStoreClient = exports.EvidenceClient = exports.PolicyClient = exports.BoundaryClient = exports.AgreementClient = exports.GenesisMeshClient = void 0;
4
- exports.BadRequestError = exports.NetworkError = exports.ServiceUnavailableError = exports.RateLimitError = exports.ConflictError = exports.NotFoundError = exports.ValidationError = exports.ForbiddenError = exports.UnauthorizedError = exports.GenesisMeshError = exports.DecisionVerificationError = exports.GovernedActionError = exports.reconcileResources = exports.summarizeDecision = exports.governedAction = exports.parseTimestampMicros = exports.parseExportLines = exports.verifyEvidenceEvents = exports.verifyExecutionSignature = void 0;
3
+ exports.verifyRevocationFeedSignature = exports.verifyJustificationSignature = exports.verifyPolicySignature = exports.verifyAttestationSignature = exports.verifyDecisionSignature = exports.verifyBoundaryDecision = exports.MAX_METADATA_BYTES = exports.SecretMaterialError = exports.checkMetadataOnly = exports.ExecutionRecorder = exports.payloadDigest = exports.entryDigest = exports.checkpointCanonical = exports.justificationCanonical = exports.policySetDigest = exports.policyDigest = exports.policyCanonical = exports.revocationFeedCanonical = exports.attestationDigest = exports.attestationCanonical = exports.executionDigest = exports.executionCanonical = exports.decisionCanonical = exports.RESOURCE_CHAIN_FIELDS = exports.buildAdminHeadersWithSigner = exports.buildAdminHeaders = exports.pythonTimestamp = exports.verifyCanonical = exports.signCanonical = exports.seedSigner = exports.publicKeyFromSeed = exports.verifyBytes = exports.signBytes = exports.sha256Hex = exports.parseJson = exports.canonicalDigest = exports.canonicalJson = exports.buildPath = exports.HttpTransport = exports.DataUsageClient = exports.ConsensusClient = exports.DisclosureClient = exports.AttestationClient = exports.HealthClient = exports.EvidenceStoreClient = exports.EvidenceClient = exports.PolicyClient = exports.BoundaryClient = exports.AgreementClient = exports.GenesisMeshClient = void 0;
4
+ exports.BadRequestError = exports.NetworkError = exports.isRetryableConflict = exports.ServiceUnavailableError = exports.RateLimitError = exports.ConflictError = exports.NotFoundError = exports.ValidationError = exports.ForbiddenError = exports.UnauthorizedError = exports.GenesisMeshError = exports.DecisionVerificationError = exports.GovernedActionError = exports.reconcileResources = exports.summarizeDecision = exports.governedAction = exports.parseTimestampMicros = exports.parseExportLines = exports.verifyEvidenceEvents = exports.verifyExecutionSignature = exports.verifyRetentionCheckpoint = void 0;
5
5
  const client_js_1 = require("./client.js");
6
6
  const agreement_js_1 = require("./agreement.js");
7
7
  const boundary_js_1 = require("./boundary.js");
@@ -12,6 +12,7 @@ const consensus_js_1 = require("./consensus.js");
12
12
  const data_usage_js_1 = require("./data_usage.js");
13
13
  const policy_js_1 = require("./policy.js");
14
14
  const evidence_store_js_1 = require("./evidence_store.js");
15
+ const health_js_1 = require("./health.js");
15
16
  class GenesisMeshClient {
16
17
  agreement;
17
18
  boundary;
@@ -23,6 +24,8 @@ class GenesisMeshClient {
23
24
  disclosure;
24
25
  consensus;
25
26
  dataUsage;
27
+ /** Liveness, readiness and health (v0.60). */
28
+ health;
26
29
  constructor(options) {
27
30
  const http = new client_js_1.HttpTransport(options);
28
31
  this.agreement = new agreement_js_1.AgreementClient(http);
@@ -30,6 +33,7 @@ class GenesisMeshClient {
30
33
  this.policy = new policy_js_1.PolicyClient(http);
31
34
  this.evidence = new evidence_js_1.EvidenceClient(http);
32
35
  this.evidenceStore = new evidence_store_js_1.EvidenceStoreClient(http);
36
+ this.health = new health_js_1.HealthClient(http);
33
37
  this.attestation = new attestation_js_1.AttestationClient(http);
34
38
  this.disclosure = new disclosure_js_1.DisclosureClient(http);
35
39
  this.consensus = new consensus_js_1.ConsensusClient(http);
@@ -48,6 +52,8 @@ var evidence_js_2 = require("./evidence.js");
48
52
  Object.defineProperty(exports, "EvidenceClient", { enumerable: true, get: function () { return evidence_js_2.EvidenceClient; } });
49
53
  var evidence_store_js_2 = require("./evidence_store.js");
50
54
  Object.defineProperty(exports, "EvidenceStoreClient", { enumerable: true, get: function () { return evidence_store_js_2.EvidenceStoreClient; } });
55
+ var health_js_2 = require("./health.js");
56
+ Object.defineProperty(exports, "HealthClient", { enumerable: true, get: function () { return health_js_2.HealthClient; } });
51
57
  var attestation_js_2 = require("./attestation.js");
52
58
  Object.defineProperty(exports, "AttestationClient", { enumerable: true, get: function () { return attestation_js_2.AttestationClient; } });
53
59
  var disclosure_js_2 = require("./disclosure.js");
@@ -127,5 +133,6 @@ Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: functio
127
133
  Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function () { return errors_js_1.ConflictError; } });
128
134
  Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return errors_js_1.RateLimitError; } });
129
135
  Object.defineProperty(exports, "ServiceUnavailableError", { enumerable: true, get: function () { return errors_js_1.ServiceUnavailableError; } });
136
+ Object.defineProperty(exports, "isRetryableConflict", { enumerable: true, get: function () { return errors_js_1.isRetryableConflict; } });
130
137
  Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return errors_js_1.NetworkError; } });
131
138
  Object.defineProperty(exports, "BadRequestError", { enumerable: true, get: function () { return errors_js_1.BadRequestError; } });
@@ -17,8 +17,24 @@ export function buildPath(path, query) {
17
17
  const qs = params.toString();
18
18
  return qs ? `${path}?${qs}` : path;
19
19
  }
20
+ const FAILOVER_STATUS = new Set([502, 503, 504]);
21
+ /** Errors meaning no connection was made, so the request was never sent. */
22
+ const CONNECT_FAILURE_CODES = new Set([
23
+ 'ECONNREFUSED', 'ENOTFOUND', 'EHOSTUNREACH', 'ENETUNREACH', 'EAI_AGAIN', 'UND_ERR_CONNECT_TIMEOUT',
24
+ ]);
25
+ function isConnectFailure(err) {
26
+ const cause = err?.cause;
27
+ if (!cause)
28
+ return false;
29
+ if (typeof cause.code === 'string' && CONNECT_FAILURE_CODES.has(cause.code))
30
+ return true;
31
+ return Array.isArray(cause.errors) && cause.errors.length > 0
32
+ && cause.errors.every(e => typeof e?.code === 'string' && CONNECT_FAILURE_CODES.has(e.code));
33
+ }
20
34
  export class HttpTransport {
21
- baseUrl;
35
+ /** Every configured NA endpoint, in preference order. */
36
+ baseUrls;
37
+ active = 0;
22
38
  /** Key ID sent in X-Admin-Key-Id. */
23
39
  keyId;
24
40
  signer;
@@ -27,7 +43,14 @@ export class HttpTransport {
27
43
  headers;
28
44
  _fetch;
29
45
  constructor(options) {
30
- this.baseUrl = options.baseUrl.replace(/\/$/, '');
46
+ const urls = options.baseUrls ?? (options.baseUrl !== undefined ? [options.baseUrl] : []);
47
+ if (urls.length === 0 || urls.some(u => typeof u !== 'string' || !/^https?:\/\//.test(u))) {
48
+ throw new Error('baseUrl or baseUrls must give at least one http(s) URL');
49
+ }
50
+ if (options.baseUrl !== undefined && options.baseUrls !== undefined) {
51
+ throw new Error('pass either baseUrl or baseUrls, not both');
52
+ }
53
+ this.baseUrls = Object.freeze(urls.map(u => u.replace(/\/$/, '')));
31
54
  this.signer = options.signer
32
55
  ?? (options.signingKeyBase64
33
56
  ? seedSigner(options.signingKeyBase64, options.keyId ?? 'operator-local')
@@ -42,6 +65,15 @@ export class HttpTransport {
42
65
  this.headers = options.headers ?? {};
43
66
  this._fetch = options.fetch ?? globalThis.fetch.bind(globalThis);
44
67
  }
68
+ /** The endpoint requests currently go to. */
69
+ get baseUrl() {
70
+ return this.baseUrls[this.active];
71
+ }
72
+ /** Move to the next endpoint (no-op with one endpoint). */
73
+ failover() {
74
+ if (this.baseUrls.length > 1)
75
+ this.active = (this.active + 1) % this.baseUrls.length;
76
+ }
45
77
  /** Signed admin POST. Not retried unless `idempotent` is set. */
46
78
  async adminPost(path, body, idempotent = false) {
47
79
  const response = await this._send({ method: 'POST', path, body, admin: true, idempotent });
@@ -69,30 +101,76 @@ export class HttpTransport {
69
101
  return this._parse(response);
70
102
  }
71
103
  async _send(spec) {
72
- const attempts = spec.idempotent ? this.retry.attempts : 0;
73
- for (let attempt = 0;; attempt++) {
104
+ // Idempotent requests may try every other endpoint once, plus the
105
+ // configured retries (with backoff). Non-idempotent requests move to
106
+ // another endpoint only when the connection was never established; after
107
+ // any other failure they are not replayed, and the next request starts at
108
+ // another endpoint.
109
+ const failovers = this.baseUrls.length - 1;
110
+ const retries = spec.idempotent ? this.retry.attempts : 0;
111
+ let failoversLeft = failovers;
112
+ let retriesUsed = 0;
113
+ for (;;) {
114
+ let response;
115
+ let error;
74
116
  try {
75
- const response = await this._once(spec);
76
- if (attempt < attempts && RETRYABLE_STATUS.has(response.status)) {
77
- await this._backoff(attempt);
78
- continue;
79
- }
80
- let body;
81
- try {
82
- body = await response.text();
83
- }
84
- catch {
85
- throw new NetworkError(`Failed to read response body (${spec.method} ${spec.path})`);
86
- }
87
- return { ok: response.ok, status: response.status, text: async () => body };
117
+ response = await this._attempt(spec);
88
118
  }
89
119
  catch (err) {
90
- if (attempt < attempts && err instanceof NetworkError) {
91
- await this._backoff(attempt);
92
- continue;
93
- }
94
- throw err;
120
+ if (!(err instanceof NetworkError))
121
+ throw err;
122
+ error = err;
123
+ }
124
+ const failoverWorthy = error !== undefined || (response !== undefined && FAILOVER_STATUS.has(response.status));
125
+ if (failoverWorthy)
126
+ this.failover();
127
+ // A request that may have reached an instance is replayed elsewhere only
128
+ // if it is idempotent; one that never connected can always move on.
129
+ const mayMove = spec.idempotent || (error instanceof NetworkError && error.connectFailed);
130
+ if (failoverWorthy && mayMove && failoversLeft > 0) {
131
+ failoversLeft -= 1;
132
+ continue;
95
133
  }
134
+ const retryable = error !== undefined || (response !== undefined && RETRYABLE_STATUS.has(response.status));
135
+ if (retryable && retriesUsed < retries) {
136
+ await this._backoff(retriesUsed);
137
+ retriesUsed += 1;
138
+ failoversLeft = failovers;
139
+ continue;
140
+ }
141
+ if (error !== undefined)
142
+ throw error;
143
+ return response;
144
+ }
145
+ }
146
+ /** One request to the active endpoint, with the body fully read (a dropped body is a NetworkError). */
147
+ async _attempt(spec) {
148
+ const res = await this._once(spec);
149
+ let body;
150
+ try {
151
+ body = await res.text();
152
+ }
153
+ catch {
154
+ throw new NetworkError(`Failed to read response body (${spec.method} ${spec.path})`);
155
+ }
156
+ return { ok: res.ok, status: res.status, text: async () => body };
157
+ }
158
+ /** Unauthenticated GET against one specific endpoint (no failover), e.g. per-instance readiness. */
159
+ async publicGetAt(baseUrl, path) {
160
+ const url = baseUrl.replace(/\/$/, '') + path;
161
+ let response;
162
+ try {
163
+ response = await this._fetch(url, { method: 'GET', headers: { ...this.headers }, signal: AbortSignal.timeout(this.timeout) });
164
+ }
165
+ catch (err) {
166
+ throw new NetworkError(`GET ${url} failed: ${err.message}`);
167
+ }
168
+ const text = await response.text();
169
+ try {
170
+ return { status: response.status, body: parseJson(text) };
171
+ }
172
+ catch {
173
+ throw new NetworkError(`Failed to parse response body from ${url} (HTTP ${response.status})`);
96
174
  }
97
175
  }
98
176
  async _once(spec) {
@@ -113,7 +191,9 @@ export class HttpTransport {
113
191
  return await this._fetch(this.baseUrl + path, init);
114
192
  }
115
193
  catch (err) {
116
- throw new NetworkError(`${spec.method} ${spec.path} failed: ${err.message}`);
194
+ const error = new NetworkError(`${spec.method} ${spec.path} failed: ${err.message}`);
195
+ error.connectFailed = isConnectFailure(err);
196
+ throw error;
117
197
  }
118
198
  }
119
199
  _backoff(attempt) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,12 @@ export class RateLimitError extends GenesisMeshError {
58
58
  }
59
59
  }
60
60
  export class NetworkError extends GenesisMeshError {
61
+ /**
62
+ * True when the connection could not be established (refused, unresolvable,
63
+ * unreachable): the request never reached the NA, so another instance may
64
+ * take it even when it is not idempotent (v0.60).
65
+ */
66
+ connectFailed = false;
61
67
  constructor(message, code = 'network_error') {
62
68
  super(message, code, 0);
63
69
  this.name = 'NetworkError';
@@ -113,4 +119,17 @@ function errorForStatus(status, message, code) {
113
119
  default: return new GenesisMeshError(message, code, status);
114
120
  }
115
121
  }
122
+ const HA_CONFLICT_CODES = new Set([
123
+ 'boundary_policy_activation_conflict',
124
+ 'boundary_policy_version_conflict',
125
+ 'crl_publish_contention',
126
+ 'retention_in_progress',
127
+ ]);
128
+ /**
129
+ * True for a 409 that only means another NA instance won a race the database
130
+ * decided (v0.60). The request changed nothing and can be retried.
131
+ */
132
+ export function isRetryableConflict(err) {
133
+ return err instanceof ConflictError && HA_CONFLICT_CODES.has(err.code);
134
+ }
116
135
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { ServiceUnavailableError } from './errors.js';
2
+ function normalise(body, ready) {
3
+ return { ...body, status: ready ? 'ready' : 'not_ready', ready };
4
+ }
5
+ /** Liveness, readiness and health of the Network Authority (v0.60). */
6
+ export class HealthClient {
7
+ http;
8
+ constructor(http) {
9
+ this.http = http;
10
+ }
11
+ /** Process liveness only (`GET /healthz`). */
12
+ liveness() {
13
+ return this.http.publicGet('/healthz');
14
+ }
15
+ /**
16
+ * Readiness (`GET /readyz`): database writable at the expected schema, key
17
+ * loaded, shared state in HA mode. A not-ready NA (503 `service_not_ready`)
18
+ * is returned as `ready: false` with the failing checks, not thrown. With
19
+ * several `baseUrls`, a not-ready instance is skipped for the next one.
20
+ */
21
+ async readiness() {
22
+ try {
23
+ return normalise(await this.http.publicGet('/readyz'), true);
24
+ }
25
+ catch (err) {
26
+ if (err instanceof ServiceUnavailableError && err.code === 'service_not_ready') {
27
+ return normalise(err.details, false);
28
+ }
29
+ throw err;
30
+ }
31
+ }
32
+ /** Network, version, boundary policy health and evidence store mode (`GET /health`). */
33
+ health() {
34
+ return this.http.publicGet('/health');
35
+ }
36
+ /** Probe every configured endpoint's `/readyz` directly, for monitoring an HA deployment. */
37
+ async endpoints() {
38
+ return Promise.all(this.http.baseUrls.map(async (baseUrl) => {
39
+ try {
40
+ const { status, body } = await this.http.publicGetAt(baseUrl, '/readyz');
41
+ if (status === 200)
42
+ return { base_url: baseUrl, reachable: true, ready: true, readiness: normalise(body, true) };
43
+ const details = body?.['error']?.details;
44
+ return {
45
+ base_url: baseUrl, reachable: true, ready: false,
46
+ ...(details ? { readiness: normalise(details, false) } : {}),
47
+ error: `HTTP ${status}`,
48
+ };
49
+ }
50
+ catch (err) {
51
+ return { base_url: baseUrl, reachable: false, ready: false, error: err.message };
52
+ }
53
+ }));
54
+ }
55
+ }
56
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/health.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,SAAS,SAAS,CAAC,IAA6B,EAAE,KAAc;IAC9D,OAAO,EAAE,GAAI,IAA6B,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;AAC7F,CAAC;AAED,uEAAuE;AACvE,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,8CAA8C;IAC9C,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAqB,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAA0B,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,uBAAuB,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC/E,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAe,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,SAAS;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAA8B,EAAE;YACtF,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAA0B,OAAO,EAAE,SAAS,CAAC,CAAC;gBAClG,IAAI,MAAM,KAAK,GAAG;oBAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACjH,MAAM,OAAO,GAAI,IAAI,EAAE,CAAC,OAAO,CAAuD,EAAE,OAAO,CAAC;gBAChG,OAAO;oBACL,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;oBAChD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,KAAK,EAAE,QAAQ,MAAM,EAAE;iBACxB,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;YAC9F,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
package/dist/esm/index.js CHANGED
@@ -8,6 +8,7 @@ import { ConsensusClient } from './consensus.js';
8
8
  import { DataUsageClient } from './data_usage.js';
9
9
  import { PolicyClient } from './policy.js';
10
10
  import { EvidenceStoreClient } from './evidence_store.js';
11
+ import { HealthClient } from './health.js';
11
12
  export class GenesisMeshClient {
12
13
  agreement;
13
14
  boundary;
@@ -19,6 +20,8 @@ export class GenesisMeshClient {
19
20
  disclosure;
20
21
  consensus;
21
22
  dataUsage;
23
+ /** Liveness, readiness and health (v0.60). */
24
+ health;
22
25
  constructor(options) {
23
26
  const http = new HttpTransport(options);
24
27
  this.agreement = new AgreementClient(http);
@@ -26,6 +29,7 @@ export class GenesisMeshClient {
26
29
  this.policy = new PolicyClient(http);
27
30
  this.evidence = new EvidenceClient(http);
28
31
  this.evidenceStore = new EvidenceStoreClient(http);
32
+ this.health = new HealthClient(http);
29
33
  this.attestation = new AttestationClient(http);
30
34
  this.disclosure = new DisclosureClient(http);
31
35
  this.consensus = new ConsensusClient(http);
@@ -38,6 +42,7 @@ export { BoundaryClient } from './boundary.js';
38
42
  export { PolicyClient } from './policy.js';
39
43
  export { EvidenceClient } from './evidence.js';
40
44
  export { EvidenceStoreClient } from './evidence_store.js';
45
+ export { HealthClient } from './health.js';
41
46
  export { AttestationClient } from './attestation.js';
42
47
  export { DisclosureClient } from './disclosure.js';
43
48
  export { ConsensusClient } from './consensus.js';
@@ -55,5 +60,5 @@ export { verifyBoundaryDecision, verifyDecisionSignature, verifyAttestationSigna
55
60
  // Governed lifecycles
56
61
  export { governedAction, summarizeDecision, reconcileResources, GovernedActionError, DecisionVerificationError, } from './governance.js';
57
62
  // Errors
58
- export { GenesisMeshError, UnauthorizedError, ForbiddenError, ValidationError, NotFoundError, ConflictError, RateLimitError, ServiceUnavailableError, NetworkError, BadRequestError, } from './errors.js';
63
+ export { GenesisMeshError, UnauthorizedError, ForbiddenError, ValidationError, NotFoundError, ConflictError, RateLimitError, ServiceUnavailableError, isRetryableConflict, NetworkError, BadRequestError, } from './errors.js';
59
64
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,OAAO,iBAAiB;IACnB,SAAS,CAAkB;IAC3B,QAAQ,CAAiB;IACzB,MAAM,CAAe;IAC9B,2FAA2F;IAClF,QAAQ,CAAiB;IACzB,aAAa,CAAsB;IACnC,WAAW,CAAoB;IAC/B,UAAU,CAAmB;IAC7B,SAAS,CAAkB;IAC3B,SAAS,CAAkB;IACpC,8CAA8C;IACrC,MAAM,CAAe;IAE9B,YAAY,OAAsB;QAChC,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAU,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAU,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAED,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvD,kEAAkE;AAClE,OAAO,EACL,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,WAAW,CAAC;AAGnB,kDAAkD;AAClD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAG/G,uBAAuB;AACvB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,sBAAsB;AACtB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAczB,SAAS;AACT,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,eAAe,GAChB,MAAM,aAAa,CAAC"}
@@ -11,8 +11,16 @@ export interface RetryOptions {
11
11
  baseDelayMs?: number;
12
12
  }
13
13
  export interface ClientOptions {
14
- /** Base URL of the NA, e.g. "http://127.0.0.1:9443". No trailing slash needed. */
15
- baseUrl: string;
14
+ /** Base URL of the NA (or its load balancer), e.g. "http://127.0.0.1:9443". No trailing slash needed. */
15
+ baseUrl?: string;
16
+ /**
17
+ * Several NA instances sharing one database (v0.60 HA), used without a load
18
+ * balancer. Requests go to one instance; idempotent requests move to the next
19
+ * on a transport failure or 502/503/504. A non-idempotent request moves only
20
+ * when the connection was refused or unreachable (it never reached the NA);
21
+ * otherwise it is not replayed and the next request starts elsewhere.
22
+ */
23
+ baseUrls?: string[];
16
24
  /** Base64-encoded raw Ed25519 seed (32 bytes, from operator.key). Required for admin routes unless `signer` is set. */
17
25
  signingKeyBase64?: string;
18
26
  /** Key ID sent in X-Admin-Key-Id - must match a key registered with the NA. Ignored when `signer` is set. */
@@ -31,7 +39,9 @@ export interface ClientOptions {
31
39
  export type Query = Record<string, string | number | boolean | undefined | null>;
32
40
  export declare function buildPath(path: string, query?: Query): string;
33
41
  export declare class HttpTransport {
34
- readonly baseUrl: string;
42
+ /** Every configured NA endpoint, in preference order. */
43
+ readonly baseUrls: readonly string[];
44
+ private active;
35
45
  /** Key ID sent in X-Admin-Key-Id. */
36
46
  readonly keyId: string;
37
47
  private readonly signer?;
@@ -40,6 +50,10 @@ export declare class HttpTransport {
40
50
  private readonly headers;
41
51
  private readonly _fetch;
42
52
  constructor(options: ClientOptions);
53
+ /** The endpoint requests currently go to. */
54
+ get baseUrl(): string;
55
+ /** Move to the next endpoint (no-op with one endpoint). */
56
+ private failover;
43
57
  /** Signed admin POST. Not retried unless `idempotent` is set. */
44
58
  adminPost<T>(path: string, body: unknown, idempotent?: boolean): Promise<T>;
45
59
  /** Signed admin GET (the NA verifies the signature over an empty body). */
@@ -50,6 +64,13 @@ export declare class HttpTransport {
50
64
  publicPost<T>(path: string, body: unknown, idempotent?: boolean): Promise<T>;
51
65
  publicGet<T>(path: string, query?: Query): Promise<T>;
52
66
  private _send;
67
+ /** One request to the active endpoint, with the body fully read (a dropped body is a NetworkError). */
68
+ private _attempt;
69
+ /** Unauthenticated GET against one specific endpoint (no failover), e.g. per-instance readiness. */
70
+ publicGetAt<T>(baseUrl: string, path: string): Promise<{
71
+ status: number;
72
+ body: T;
73
+ }>;
53
74
  private _once;
54
75
  private _backoff;
55
76
  private _parse;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAG3G,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,uHAAuH;IACvH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6GAA6G;IAC7G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0GAA0G;IAC1G,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAejF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAQ7D;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,OAAO,EAAE,aAAa;IAiBlC,iEAAiE;IAC3D,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAK/E,2EAA2E;IACrE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;IAK1D,6EAA6E;IACvE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAMhE,8FAA8F;IACxF,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAK1E,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;YAK7C,KAAK;YA0BL,KAAK;IAqBnB,OAAO,CAAC,QAAQ;YAKF,MAAM;CAerB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,12 @@ export declare class RateLimitError extends GenesisMeshError {
31
31
  constructor(message?: string, code?: string);
32
32
  }
33
33
  export declare class NetworkError extends GenesisMeshError {
34
+ /**
35
+ * True when the connection could not be established (refused, unresolvable,
36
+ * unreachable): the request never reached the NA, so another instance may
37
+ * take it even when it is not idempotent (v0.60).
38
+ */
39
+ connectFailed: boolean;
34
40
  constructor(message: string, code?: string);
35
41
  }
36
42
  export declare class BadRequestError extends GenesisMeshError {
@@ -43,4 +49,9 @@ export declare class BadRequestError extends GenesisMeshError {
43
49
  * as produced by the Genesis Mesh NA.
44
50
  */
45
51
  export declare function fromHttpError(status: number, body: Record<string, unknown>): GenesisMeshError;
52
+ /**
53
+ * True for a 409 that only means another NA instance won a race the database
54
+ * decided (v0.60). The request changed nothing and can be retried.
55
+ */
56
+ export declare function isRetryableConflict(err: unknown): err is ConflictError;
46
57
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACtC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAEpB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAO1D;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,OAAO,SAAiB,EAAE,IAAI,SAAiB;CAI5D;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;gBACvC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAqB;CAIvD;AAED,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,OAAO,SAAc,EAAE,IAAI,SAAc;CAItD;AAED,sGAAsG;AACtG,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAa;CAI/C;AAED,qBAAa,uBAAwB,SAAQ,gBAAgB;gBAC/C,OAAO,SAAwB,EAAE,IAAI,SAAwB;CAI1E;AAED,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAc;CAIhD;AAED,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,OAAO,SAAwB,EAAE,IAAI,SAAwB;CAI1E;AAED,qBAAa,YAAa,SAAQ,gBAAgB;gBACpC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAkB;CAIpD;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;gBACvC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAgB;CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAwB7F"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACtC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAEpB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAO1D;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,OAAO,SAAiB,EAAE,IAAI,SAAiB;CAI5D;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;gBACvC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAqB;CAIvD;AAED,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,OAAO,SAAc,EAAE,IAAI,SAAc;CAItD;AAED,sGAAsG;AACtG,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAa;CAI/C;AAED,qBAAa,uBAAwB,SAAQ,gBAAgB;gBAC/C,OAAO,SAAwB,EAAE,IAAI,SAAwB;CAI1E;AAED,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAc;CAIhD;AAED,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,OAAO,SAAwB,EAAE,IAAI,SAAwB;CAI1E;AAED,qBAAa,YAAa,SAAQ,gBAAgB;IAChD;;;;OAIG;IACH,aAAa,UAAS;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,SAAkB;CAIpD;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;gBACvC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAgB;CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAwB7F;AAuBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAEtE"}
@@ -0,0 +1,23 @@
1
+ import type { HttpTransport } from './client.js';
2
+ import type { EndpointReadiness, HealthStatus, Readiness } from './types.js';
3
+ /** Liveness, readiness and health of the Network Authority (v0.60). */
4
+ export declare class HealthClient {
5
+ private readonly http;
6
+ constructor(http: HttpTransport);
7
+ /** Process liveness only (`GET /healthz`). */
8
+ liveness(): Promise<{
9
+ status: string;
10
+ }>;
11
+ /**
12
+ * Readiness (`GET /readyz`): database writable at the expected schema, key
13
+ * loaded, shared state in HA mode. A not-ready NA (503 `service_not_ready`)
14
+ * is returned as `ready: false` with the failing checks, not thrown. With
15
+ * several `baseUrls`, a not-ready instance is skipped for the next one.
16
+ */
17
+ readiness(): Promise<Readiness>;
18
+ /** Network, version, boundary policy health and evidence store mode (`GET /health`). */
19
+ health(): Promise<HealthStatus>;
20
+ /** Probe every configured endpoint's `/readyz` directly, for monitoring an HA deployment. */
21
+ endpoints(): Promise<EndpointReadiness[]>;
22
+ }
23
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM7E,uEAAuE;AACvE,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD,8CAA8C;IAC9C,QAAQ,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvC;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAWrC,wFAAwF;IACxF,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAI/B,6FAA6F;IACvF,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAgBhD"}
@@ -8,6 +8,7 @@ import { ConsensusClient } from './consensus.js';
8
8
  import { DataUsageClient } from './data_usage.js';
9
9
  import { PolicyClient } from './policy.js';
10
10
  import { EvidenceStoreClient } from './evidence_store.js';
11
+ import { HealthClient } from './health.js';
11
12
  export declare class GenesisMeshClient {
12
13
  readonly agreement: AgreementClient;
13
14
  readonly boundary: BoundaryClient;
@@ -19,6 +20,8 @@ export declare class GenesisMeshClient {
19
20
  readonly disclosure: DisclosureClient;
20
21
  readonly consensus: ConsensusClient;
21
22
  readonly dataUsage: DataUsageClient;
23
+ /** Liveness, readiness and health (v0.60). */
24
+ readonly health: HealthClient;
22
25
  constructor(options: ClientOptions);
23
26
  }
24
27
  export { AgreementClient } from './agreement.js';
@@ -26,6 +29,7 @@ export { BoundaryClient } from './boundary.js';
26
29
  export { PolicyClient } from './policy.js';
27
30
  export { EvidenceClient } from './evidence.js';
28
31
  export { EvidenceStoreClient } from './evidence_store.js';
32
+ export { HealthClient } from './health.js';
29
33
  export { AttestationClient } from './attestation.js';
30
34
  export { DisclosureClient } from './disclosure.js';
31
35
  export { ConsensusClient } from './consensus.js';
@@ -41,13 +45,14 @@ export { verifyBoundaryDecision, verifyDecisionSignature, verifyAttestationSigna
41
45
  export type { VerifyDecisionOptions, VerifyEvidenceOptions, ExecutorKeyInfo } from './verify.js';
42
46
  export { governedAction, summarizeDecision, reconcileResources, GovernedActionError, DecisionVerificationError, } from './governance.js';
43
47
  export type { ActionReport, DecisionSummary, GateFailure, GovernanceClients, GovernedActionParams, GovernedActionResult, ObservedResource, ReconcileOptions, ReconciliationFinding, ReconciliationStatus, } from './governance.js';
44
- export { GenesisMeshError, UnauthorizedError, ForbiddenError, ValidationError, NotFoundError, ConflictError, RateLimitError, ServiceUnavailableError, NetworkError, BadRequestError, } from './errors.js';
48
+ export { GenesisMeshError, UnauthorizedError, ForbiddenError, ValidationError, NotFoundError, ConflictError, RateLimitError, ServiceUnavailableError, isRetryableConflict, NetworkError, BadRequestError, } from './errors.js';
45
49
  export type * from './types.js';
46
50
  export type * from './agreement.js';
47
51
  export type * from './boundary.js';
48
52
  export type * from './policy.js';
49
53
  export type * from './evidence.js';
50
54
  export type * from './evidence_store.js';
55
+ export type * from './health.js';
51
56
  export type * from './attestation.js';
52
57
  export type * from './disclosure.js';
53
58
  export type * from './consensus.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -612,4 +612,48 @@ export interface RetentionResult {
612
612
  }
613
613
  /** Rejection codes from `POST /evidence/execution` (422, or 409 for `evidence_conflict`). */
614
614
  export type EvidenceRejectionCode = 'evidence_malformed' | 'evidence_unknown_executor' | 'evidence_invalid_signature' | 'evidence_decision_not_found' | 'evidence_decision_denied' | 'evidence_decision_mismatch' | 'evidence_outside_decision_window' | 'evidence_capability_mismatch' | 'evidence_chain_gap' | 'evidence_chain_mismatch' | 'resource_chain_gap' | 'resource_chain_mismatch' | 'evidence_conflict' | 'evidence_secret_material';
615
+ export interface ReadinessDatabase {
616
+ backend: 'sqlite' | 'postgres' | string;
617
+ writable: boolean;
618
+ schema_version?: number;
619
+ expected_schema_version: number;
620
+ /** Present when not ready: e.g. "schema_version_mismatch" or the error type. */
621
+ error?: string;
622
+ }
623
+ export interface ReadinessSigningKey {
624
+ key_id: string;
625
+ provider: 'file' | 'env' | 'azure-keyvault' | string;
626
+ /** SHA-256 (hex) of the NA public key; identical on every instance of one NA. */
627
+ fingerprint: string;
628
+ }
629
+ /** `GET /readyz`, normalised: `ready` is false when the NA answered 503 not ready. */
630
+ export interface Readiness {
631
+ ready: boolean;
632
+ status: 'ready' | 'not_ready';
633
+ instance: string;
634
+ ha_mode: 'on' | 'off' | string;
635
+ database: ReadinessDatabase;
636
+ signing_key: ReadinessSigningKey;
637
+ rate_limiter: 'memory' | 'database' | string;
638
+ /** The SQLite path, or the PostgreSQL URL without its password (ready responses only). */
639
+ db_path?: string;
640
+ }
641
+ /** Readiness of one configured endpoint, probed directly (no failover). */
642
+ export interface EndpointReadiness {
643
+ base_url: string;
644
+ reachable: boolean;
645
+ ready: boolean;
646
+ readiness?: Readiness;
647
+ error?: string;
648
+ }
649
+ export interface HealthStatus {
650
+ status: string;
651
+ network: string;
652
+ version: string;
653
+ boundary_policies: 'healthy' | 'unhealthy' | string;
654
+ boundary_policy_enforcement: string;
655
+ evidence_store: string;
656
+ }
657
+ /** 409 codes for a race another NA instance won (v0.60). Retrying is safe. */
658
+ export type HaConflictCode = 'boundary_policy_activation_conflict' | 'boundary_policy_version_conflict' | 'crl_publish_contention' | 'retention_in_progress';
615
659
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAID,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,cAAc,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,uEAAuE;AACvE,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEjG,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,EAAE,UAAU,GAAG,QAAQ,CAAC;IACzC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,oFAAoF;AACpF,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,4GAA4G;AAC5G,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACtC,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChD,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,iEAAiE;AACjE,MAAM,MAAM,uBAAuB,GAC/B,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,2BAA2B,GAC3B,8BAA8B,CAAC;AAEnC,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;IAC5E,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mBAAmB,EAAE,qBAAqB,CAAC;CAC5C;AAED,MAAM,MAAM,0BAA0B,GAClC,iBAAiB,GACjB,YAAY,GACZ,sCAAsC,GACtC,sCAAsC,GACtC,qCAAqC,GACrC,2BAA2B,GAC3B,mBAAmB,GACnB,kBAAkB,GAClB,mBAAmB,GACnB,yBAAyB,GACzB,mCAAmC,GACnC,kCAAkC,GAClC,uCAAuC,GACvC,yBAAyB,GACzB,wBAAwB,GACxB,gCAAgC,GAChC,8BAA8B,GAC9B,6BAA6B,CAAC;AAElC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,0BAA0B,GAAG,MAAM,CAAC;IAC5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAID,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IACnC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QACnC,MAAM,EAAE,cAAc,CAAC;KACxB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAID,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAID,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnE,uGAAuG;AACvG,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,kGAAkG;AAClG,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,qBAAqB,CAAC;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;IACvC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAID,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAID,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,8BAA8B,EAAE,MAAM,EAAE,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAID,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,WAAW,GAAG,sBAAsB,CAAC;AAE5F,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,cAAc,EAAE,CAAC,CAAC;IAClB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,iHAAiH;AACjH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,iCAAiC,GACzC,uBAAuB,GACvB,yBAAyB,GACzB,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,mBAAmB,GACnB,0BAA0B,GAC1B,kCAAkC,GAClC,8BAA8B,GAC9B,sBAAsB,GACtB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,iCAAiC,GAAG,MAAM,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,2BAA2B,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,EAAE,yBAAyB,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,EAAE,yBAAyB,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACxC;AAED,6FAA6F;AAC7F,MAAM,MAAM,qBAAqB,GAC7B,oBAAoB,GACpB,2BAA2B,GAC3B,4BAA4B,GAC5B,6BAA6B,GAC7B,0BAA0B,GAC1B,4BAA4B,GAC5B,kCAAkC,GAClC,8BAA8B,GAC9B,oBAAoB,GACpB,yBAAyB,GACzB,oBAAoB,GACpB,yBAAyB,GACzB,mBAAmB,GACnB,0BAA0B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ # High availability (v0.60)
2
+
3
+ From v0.60 a Network Authority (NA) can run as several instances on one
4
+ PostgreSQL database. Usually a load balancer sits in front; the SDK then
5
+ needs only `baseUrl` pointing at it. Without a load balancer, give the SDK
6
+ every instance and it fails over itself.
7
+
8
+ ```typescript
9
+ import { GenesisMeshClient, isRetryableConflict } from 'genesis-mesh-sdk';
10
+
11
+ const gm = new GenesisMeshClient({
12
+ baseUrls: ['https://na-a.example', 'https://na-b.example'],
13
+ signer: operatorSigner,
14
+ retry: { attempts: 2, baseDelayMs: 200 },
15
+ });
16
+ ```
17
+
18
+ ## Failover rules
19
+
20
+ Requests go to one instance at a time.
21
+
22
+ - **Idempotent requests** (every GET, public verification and evidence
23
+ submission) move to the next instance on a transport failure or
24
+ 502/503/504, then use `retry` with backoff.
25
+ - **Non-idempotent requests** (evaluate, issue, publish, revoke) move to the
26
+ next instance only when the connection could not be made (refused,
27
+ unresolvable, unreachable), because the request never reached the NA. After
28
+ any other failure they are **not replayed**: a request that may have run
29
+ must not run twice. The error reaches the caller, and the next request
30
+ starts at another instance.
31
+ - The client stays on the instance that last answered.
32
+
33
+ `NetworkError.connectFailed` says whether a failure happened before the
34
+ request was sent.
35
+
36
+ ## Readiness
37
+
38
+ ```typescript
39
+ const r = await gm.health.readiness();
40
+ // { ready, status, instance, ha_mode, rate_limiter,
41
+ // database: { backend, writable, schema_version, expected_schema_version, error? },
42
+ // signing_key: { key_id, provider, fingerprint } }
43
+
44
+ for (const e of await gm.health.endpoints()) {
45
+ console.log(e.base_url, e.reachable, e.ready, e.readiness?.signing_key.fingerprint);
46
+ }
47
+ ```
48
+
49
+ `readiness()` returns a not-ready NA as `ready: false` with the failing checks
50
+ instead of throwing. `endpoints()` probes every configured instance directly.
51
+ It is meant for monitoring and for spotting an instance with a different key:
52
+ every instance of one NA reports the same fingerprint. `liveness()` and
53
+ `health()` wrap `/healthz` and `/health`.
54
+
55
+ ## Conflicts between instances
56
+
57
+ Some operations are decided by the database across instances. The request
58
+ that loses a race gets `409` and changed nothing, so it can be retried:
59
+
60
+ | Code | Meaning |
61
+ |---|---|
62
+ | `boundary_policy_activation_conflict` | another version of the policy was activated at the same moment |
63
+ | `boundary_policy_version_conflict` | concurrent publishes of one policy kept taking the next version |
64
+ | `crl_publish_contention` | concurrent revocations kept taking the next CRL sequence |
65
+ | `retention_in_progress` | evidence retention is already running on another instance |
66
+
67
+ ```typescript
68
+ try {
69
+ await gm.policy.activate(policyId, version);
70
+ } catch (err) {
71
+ if (isRetryableConflict(err)) await gm.policy.activate(policyId, version);
72
+ else throw err;
73
+ }
74
+ ```
75
+
76
+ Evidence submission is already safe to retry: an identical record returns
77
+ `status: 'duplicate'`.
78
+
79
+ ## Testing against a cluster
80
+
81
+ `npm run test:e2e` also runs `tests/e2e-ha.test.ts` when
82
+ `GM_E2E_HA_DATABASE_URL` names an empty PostgreSQL database (C collation)
83
+ and nginx is installed. It starts two NA instances behind nginx with the
84
+ core's cluster harness. It kills one mid-run, then checks that a secret's
85
+ lifecycle continues through the load balancer and through `baseUrls`
86
+ failover, with one unbroken, verified history.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genesis-mesh-sdk",
3
- "version": "0.59.1",
3
+ "version": "0.60.0",
4
4
  "description": "TypeScript client for the Genesis Mesh Network Authority API - sovereign trust, attestation, and capability enforcement",
5
5
  "type": "module",
6
6
  "license": "MIT",