@cotal-ai/core 0.52.1 → 0.54.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.
Files changed (47) hide show
  1. package/dist/auth-provider.d.ts +10 -1
  2. package/dist/auth-provider.d.ts.map +1 -1
  3. package/dist/auth-provider.js.map +1 -1
  4. package/dist/endpoint-grants.d.ts +7 -2
  5. package/dist/endpoint-grants.d.ts.map +1 -1
  6. package/dist/endpoint-grants.js +11 -4
  7. package/dist/endpoint-grants.js.map +1 -1
  8. package/dist/endpoint-invoke.d.ts +22 -11
  9. package/dist/endpoint-invoke.d.ts.map +1 -1
  10. package/dist/endpoint-invoke.js +254 -84
  11. package/dist/endpoint-invoke.js.map +1 -1
  12. package/dist/endpoint-reconcile.d.ts +101 -0
  13. package/dist/endpoint-reconcile.d.ts.map +1 -0
  14. package/dist/endpoint-reconcile.js +203 -0
  15. package/dist/endpoint-reconcile.js.map +1 -0
  16. package/dist/endpoint-service.d.ts +12 -0
  17. package/dist/endpoint-service.d.ts.map +1 -1
  18. package/dist/endpoint-service.js +1 -1
  19. package/dist/endpoint-service.js.map +1 -1
  20. package/dist/endpoint-verbs.d.ts +1 -0
  21. package/dist/endpoint-verbs.d.ts.map +1 -1
  22. package/dist/endpoint-verbs.js +14 -6
  23. package/dist/endpoint-verbs.js.map +1 -1
  24. package/dist/endpoint.d.ts +33 -1
  25. package/dist/endpoint.d.ts.map +1 -1
  26. package/dist/endpoint.js +144 -13
  27. package/dist/endpoint.js.map +1 -1
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/provision.d.ts +3 -1
  33. package/dist/provision.d.ts.map +1 -1
  34. package/dist/provision.js +45 -1
  35. package/dist/provision.js.map +1 -1
  36. package/dist/remote-manager-authority.d.ts +36 -0
  37. package/dist/remote-manager-authority.d.ts.map +1 -1
  38. package/dist/remote-manager-authority.js.map +1 -1
  39. package/dist/run-driver-grants.d.ts +8 -7
  40. package/dist/run-driver-grants.d.ts.map +1 -1
  41. package/dist/run-driver-grants.js +12 -10
  42. package/dist/run-driver-grants.js.map +1 -1
  43. package/dist/secret-store.d.ts +39 -0
  44. package/dist/secret-store.d.ts.map +1 -1
  45. package/dist/secret-store.js +24 -0
  46. package/dist/secret-store.js.map +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,101 @@
1
+ import type { KV } from "@nats-io/kv";
2
+ /** Which guard refused. The command prints this verbatim, and the smoke asserts on it, so a refusal
3
+ * can never be confused with a different refusal — the failure mode where an operator reads
4
+ * "refused" and force-retries the wrong thing. */
5
+ export type GateReconcileCondition =
6
+ /** No gate row at the coordinate — nothing to reconcile (a typo'd endpoint/instanceId). */
7
+ "no-gate"
8
+ /** The gate is `open` or `retired`: this repairs a frozen gate only. */
9
+ | "not-frozen"
10
+ /** Frozen under a takeover/activation/retirement op — this completes a REGISTRATION's obligation. */
11
+ | "wrong-op-kind"
12
+ /** The freeze-holder still holds a live connection. The freeze is protecting a live op. */
13
+ | "holder-alive"
14
+ /** The sweep under-reported (no responder, truncation, unproven single-server mode). May be live. */
15
+ | "holder-unknown"
16
+ /** The oracle could not be consulted at all, or answered unusably (unreachable, unprovisioned,
17
+ * garbled, or a reply that did not echo the principal asked about). */
18
+ | "liveness-unestablishable"
19
+ /** A holder's eviction was not VERIFIED gone — the barrier's own fail-closed step. */
20
+ | "eviction-unverified"
21
+ /** The token-pinned reopen lost its CAS: a newer barrier moved the gate. Re-observe. */
22
+ | "raced";
23
+ /** A refusal, carrying the condition as DATA rather than only as prose. */
24
+ export declare class GateReconcileRefused extends Error {
25
+ readonly condition: GateReconcileCondition;
26
+ constructor(condition: GateReconcileCondition, message: string);
27
+ }
28
+ /** The freeze-holder liveness verdict as the reconciler consumes it. `unestablishable` is kept
29
+ * DISTINCT from `unknown`: both refuse, but they tell the operator to fix different things (start
30
+ * the daemon vs. re-observe a mesh that could not be swept completely). */
31
+ export type HolderLiveness = {
32
+ state: "live";
33
+ detail: string;
34
+ } | {
35
+ state: "gone";
36
+ detail: string;
37
+ } | {
38
+ state: "unknown";
39
+ detail: string;
40
+ } | {
41
+ state: "unestablishable";
42
+ detail: string;
43
+ };
44
+ /** What the reconciliation found and did — returned on success, and logged either way. */
45
+ export interface GateReconcileReport {
46
+ endpoint: string;
47
+ instanceId: string;
48
+ holderPrincipal: string;
49
+ opId: string;
50
+ freezeToken: number;
51
+ /** The coordinate before the repair. */
52
+ before: {
53
+ generation: number;
54
+ processEpoch: number;
55
+ registrationRevision: number;
56
+ nameAuthorityRevision: number;
57
+ };
58
+ /** After reopen: generation always +1. A committed spec also adopts its revision and may advance processEpoch. */
59
+ after: {
60
+ generation: number;
61
+ processEpoch: number;
62
+ registrationRevision: number;
63
+ nameAuthorityRevision: number;
64
+ };
65
+ liveness: HolderLiveness;
66
+ familyRows: number;
67
+ revoked: string[];
68
+ evicted: string[];
69
+ /** Distinct holders this freeze must verify-evict (sorted). */
70
+ holders: string[];
71
+ /** Durable verified set at the start of this attempt (skipped). */
72
+ holdersVerifiedBeforeAttempt: string[];
73
+ /** Holders verify-evicted during this attempt. */
74
+ holdersVerifiedThisAttempt: string[];
75
+ /** Holders still required after this attempt (empty on success). */
76
+ holdersRemaining: string[];
77
+ /** Cleanup is best-effort after reopen. A retained cursor cannot match a later gate revision. */
78
+ repairCursorCleanup: "deleted" | "retained";
79
+ reopenedAtGeneration: number;
80
+ }
81
+ /**
82
+ * Reconcile ONE frozen gate. Every seam the guard depends on is injected, so the command wires the
83
+ * real ones and the smoke drives the real barrier against an ephemeral broker.
84
+ *
85
+ * `probeHolder` is the AFFIRMATIVE check. It must return `gone` only on a proven-absent verdict;
86
+ * everything else — including any form of "we did not hear back" — must be `unknown` or
87
+ * `unestablishable`. It is a parameter and not an inlined call so that this ordering (probe, then
88
+ * refuse, THEN mutate) is structural: the barrier is not even constructed until the probe passed.
89
+ */
90
+ export declare function reconcileEndpointGate(opts: {
91
+ kv: KV;
92
+ space: string;
93
+ endpoint: string;
94
+ instanceId: string;
95
+ probeHolder: (principal: string) => Promise<HolderLiveness>;
96
+ evict: (holderPrincipal: string) => Promise<boolean>;
97
+ log: (line: string) => void;
98
+ /** Records store: same-op Phase-3 completion reads the spec key. Required so a missing store cannot silently abort-reopen a committed write. */
99
+ recordsKv: KV;
100
+ }): Promise<GateReconcileReport>;
101
+ //# sourceMappingURL=endpoint-reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-reconcile.d.ts","sourceRoot":"","sources":["../src/endpoint-reconcile.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC;;mDAEmD;AACnD,MAAM,MAAM,sBAAsB;AAChC,2FAA2F;AACzF,SAAS;AACX,wEAAwE;GACtE,YAAY;AACd,qGAAqG;GACnG,eAAe;AACjB,2FAA2F;GACzF,cAAc;AAChB,qGAAqG;GACnG,gBAAgB;AAClB;wEACwE;GACtE,0BAA0B;AAC5B,sFAAsF;GACpF,qBAAqB;AACvB,wFAAwF;GACtF,OAAO,CAAC;AAEZ,2EAA2E;AAC3E,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,SAAS,EAAE,sBAAsB;gBAAjC,SAAS,EAAE,sBAAsB,EAC1C,OAAO,EAAE,MAAM;CAKlB;AAED;;4EAE4E;AAC5E,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAClH,kHAAkH;IAClH,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IACjH,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,kDAAkD;IAClD,0BAA0B,EAAE,MAAM,EAAE,CAAC;IACrC,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iGAAiG;IACjG,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,gJAAgJ;IAChJ,SAAS,EAAE,EAAE,CAAC;CACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkL/B"}
@@ -0,0 +1,203 @@
1
+ /**
2
+ * GUARDED RECONCILIATION of an endpoint issuance gate left FROZEN by a crashed re-registration
3
+ * (SPEC §13.1 "the gate is left frozen for reconciliation").
4
+ *
5
+ * THE STATE THIS REPAIRS, and the only one it accepts: a manager restart was killed between the
6
+ * barrier's freeze and the successor's completion. The gate is `frozen` under a `registration` op
7
+ * whose holder no longer exists, so the freeze token's owner can never resume. Fail-closed is
8
+ * correct and stays correct — but in THAT state the freeze protects nothing while blocking every
9
+ * restart, and before this the operator's only exits were hand-driving internals or discarding
10
+ * state.
11
+ *
12
+ * The repair itself is not new: it is the SHIPPED composition (`endpointRegistrationBarrier` +
13
+ * a verified evictor), driven in the §13.1 order, with no raw writes. What is new is the GUARD in
14
+ * front of it, which is the whole point of the command:
15
+ *
16
+ * 1. VERIFY THE HOLDER IS GONE, AFFIRMATIVELY. Not "the holder did not answer", not "a timeout
17
+ * elapsed" — a COMPLETE, single-server-proven CONNZ sweep that PROVES no connection attributes
18
+ * to the freeze-holder. Absence of evidence is `unknown`, and `unknown` REFUSES.
19
+ * 2. LOG WHAT WAS FOUND, before mutating anything.
20
+ * 3. REFUSE LOUD, NAMING WHICH CONDITION FAILED — an operator staring at a wedged mesh needs to
21
+ * know whether the holder is alive, whether liveness could not be established, or whether the
22
+ * gate simply is not in the state this repairs. "It refused" is not actionable.
23
+ *
24
+ * The probe sits ON TOP OF the barrier's own fail-closed eviction, never in place of it: BOTH must
25
+ * pass. There is deliberately NO force flag and no path that discards gate state — a recovery path
26
+ * whose failure mode is killing a live manager does not get an override.
27
+ */
28
+ import { endpointRegistrationBarrier, loadEndpointRepairCursor, saveEndpointRepairCursor, deleteEndpointRepairCursor, repairCursorMatches, } from "./endpoint-serve-kv.js";
29
+ import { epgateKey, parseEndpointGate } from "./lifecycle-state.js";
30
+ import { completeFrozenRegistrationFromSpec } from "./endpoint-service.js";
31
+ /** A refusal, carrying the condition as DATA rather than only as prose. */
32
+ export class GateReconcileRefused extends Error {
33
+ condition;
34
+ constructor(condition, message) {
35
+ super(message);
36
+ this.condition = condition;
37
+ this.name = "GateReconcileRefused";
38
+ }
39
+ }
40
+ /**
41
+ * Reconcile ONE frozen gate. Every seam the guard depends on is injected, so the command wires the
42
+ * real ones and the smoke drives the real barrier against an ephemeral broker.
43
+ *
44
+ * `probeHolder` is the AFFIRMATIVE check. It must return `gone` only on a proven-absent verdict;
45
+ * everything else — including any form of "we did not hear back" — must be `unknown` or
46
+ * `unestablishable`. It is a parameter and not an inlined call so that this ordering (probe, then
47
+ * refuse, THEN mutate) is structural: the barrier is not even constructed until the probe passed.
48
+ */
49
+ export async function reconcileEndpointGate(opts) {
50
+ const { kv, space, endpoint, instanceId, log, recordsKv } = opts;
51
+ // ---- 1. Observe the gate RAW: the freeze token IS the row revision, and the dead op's opId is
52
+ // on the row. Both are needed to complete that op's obligation rather than start a new one.
53
+ const key = epgateKey(endpoint, instanceId);
54
+ const entry = await kv.get(key);
55
+ if (!entry || entry.operation !== "PUT")
56
+ throw new GateReconcileRefused("no-gate", `no endpoint gate at ${key} — nothing to reconcile (check the endpoint and instanceId)`);
57
+ const row = parseEndpointGate(entry.value, key);
58
+ const freezeToken = entry.revision;
59
+ log(`gate ${key}: state=${row.state} generation=${row.generation} processEpoch=${row.processEpoch} registrationRevision=${row.registrationRevision} nameAuthorityRevision=${row.nameAuthorityRevision} op=${JSON.stringify(row.op ?? null)} holder=${row.principal} revision=${freezeToken}`);
60
+ if (row.state !== "frozen")
61
+ throw new GateReconcileRefused("not-frozen", `the gate at ${key} is "${row.state}", not "frozen" — this reconciles a frozen gate only, and an open gate needs no repair`);
62
+ if (row.op?.kind !== "registration")
63
+ throw new GateReconcileRefused("wrong-op-kind", `the gate at ${key} is frozen under a "${row.op?.kind}" op, not a registration — this completes a crashed REGISTRATION's §13.1 obligation only; refusing to reinterpret another op's intent`);
64
+ const opId = row.op.opId;
65
+ // ---- 2. THE GUARD. Affirmative liveness, before anything is mutated.
66
+ const liveness = await opts.probeHolder(row.principal);
67
+ log(`freeze-holder ${row.principal}: ${liveness.state} — ${liveness.detail}`);
68
+ if (liveness.state === "live")
69
+ throw new GateReconcileRefused("holder-alive", `the freeze-holder "${row.principal}" is ALIVE (${liveness.detail}) — the freeze is protecting an op that is still running. Refusing: reconciling here would revoke and evict a live incarnation's credential family. Stop that process first, then re-run.`);
70
+ if (liveness.state === "unknown")
71
+ throw new GateReconcileRefused("holder-unknown", `the liveness of freeze-holder "${row.principal}" is UNKNOWN (${liveness.detail}) — the sweep could not prove it absent, and absence of evidence is not evidence of absence. Refusing: a holder that may still be live is treated as live.`);
72
+ if (liveness.state === "unestablishable")
73
+ throw new GateReconcileRefused("liveness-unestablishable", `liveness for freeze-holder "${row.principal}" CANNOT BE ESTABLISHED (${liveness.detail}) — without the oracle this repair has no affirmative check to stand on, and it will not infer death from silence.`);
74
+ // ---- 3. Only now: the shipped composition, in the §13.1 order, over the DEAD op's own id.
75
+ const barrier = endpointRegistrationBarrier(kv, space, { endpoint, instanceId, opId, evict: opts.evict });
76
+ const rows = await barrier.enumerate();
77
+ log(`family: ${rows.length} ledger row(s)`);
78
+ const revoked = [];
79
+ for (const r of rows) {
80
+ if (r.state === "active") {
81
+ await barrier.revoke(r); // deny-new BEFORE kill-live — the precondition eviction's name carries
82
+ revoked.push(r.credentialId);
83
+ log(` revoked ${r.credentialId} (${r.holderPrincipal})`);
84
+ }
85
+ else
86
+ log(` ${r.state}: ${r.credentialId} (${r.holderPrincipal})`);
87
+ }
88
+ // Evict every distinct family holder, and the freeze-holder itself even when it staged no rows —
89
+ // the probe proved it gone, and the barrier's verify is what makes that durable rather than a
90
+ // snapshot. An unverified eviction aborts and LEAVES THE GATE FROZEN (unchanged §13.1 posture).
91
+ const holders = [...new Set([row.principal, ...rows.map((r) => r.holderPrincipal)])];
92
+ const boundHolders = [...holders].sort();
93
+ const binding = { opId, freezeToken, holders: boundHolders };
94
+ const stored = await loadEndpointRepairCursor(kv, endpoint, instanceId);
95
+ let cursor;
96
+ let cursorRevision;
97
+ if (stored && repairCursorMatches(stored.cursor, binding)) {
98
+ cursor = stored.cursor;
99
+ cursorRevision = stored.revision;
100
+ log(`repair cursor: resume op=${opId} freezeToken=${freezeToken} verified=${cursor.verified.length}/${boundHolders.length}`);
101
+ }
102
+ else {
103
+ cursor = { v: 1, opId, freezeToken, holders: boundHolders, verified: [] };
104
+ cursorRevision = stored ? stored.revision : null;
105
+ cursorRevision = await saveEndpointRepairCursor(kv, endpoint, instanceId, cursor, cursorRevision);
106
+ log(`repair cursor: restart op=${opId} freezeToken=${freezeToken} holders=${boundHolders.length} (prior cursor discarded)`);
107
+ }
108
+ const skipped = new Set(cursor.verified);
109
+ const holdersVerifiedBeforeAttempt = [...cursor.verified];
110
+ const evicted = [];
111
+ for (const h of boundHolders) {
112
+ if (skipped.has(h)) {
113
+ log(` already verified (durable): ${h}`);
114
+ continue;
115
+ }
116
+ let verified;
117
+ try {
118
+ verified = await barrier.evict(h);
119
+ }
120
+ catch (e) {
121
+ throw new GateReconcileRefused("eviction-unverified", `eviction verification for "${h}" was interrupted — the gate stays frozen (fail-closed, SPEC 13.1). Durable progress: ${cursor.verified.length} completed, ${boundHolders.length - cursor.verified.length} remaining. Cause: ${e?.message ?? String(e)}`);
122
+ }
123
+ if (!verified)
124
+ throw new GateReconcileRefused("eviction-unverified", `eviction of "${h}" was NOT verified gone — the gate stays frozen (fail-closed, SPEC 13.1). Nothing was reopened; the revocations above are deny-new and safe to leave. Durable progress: ${cursor.verified.length} completed, ${boundHolders.length - cursor.verified.length} remaining.`);
125
+ evicted.push(h);
126
+ cursor = { ...cursor, verified: [...new Set([...cursor.verified, h])].sort() };
127
+ cursorRevision = await saveEndpointRepairCursor(kv, endpoint, instanceId, cursor, cursorRevision);
128
+ log(` verified evicted: ${h} (${cursor.verified.length}/${boundHolders.length})`);
129
+ }
130
+ const holdersRemaining = boundHolders.filter((h) => !cursor.verified.includes(h));
131
+ if (holdersRemaining.length !== 0)
132
+ throw new GateReconcileRefused("eviction-unverified", `repair of ${key} still has ${holdersRemaining.length} unverified holder(s) — the gate stays frozen.`);
133
+ // ---- 4. Token-pinned reopen. If the dead op's spec write committed, finish THAT op
134
+ // (promote + reopen at the committed registrationRevision, advancing processEpoch for a
135
+ // re-registration). Only a definite no-commit abort-reopens at the unchanged coordinate.
136
+ const reopenedAtGeneration = row.generation + 1;
137
+ let processEpochAfter = row.processEpoch;
138
+ let registrationRevisionAfter = row.registrationRevision;
139
+ let finished;
140
+ try {
141
+ finished = await completeFrozenRegistrationFromSpec(recordsKv, {
142
+ endpoint, instanceId, barrier, freezeToken,
143
+ gate: {
144
+ generation: row.generation, processEpoch: row.processEpoch,
145
+ registrationRevision: row.registrationRevision, nameAuthorityRevision: row.nameAuthorityRevision,
146
+ },
147
+ });
148
+ }
149
+ catch (e) {
150
+ const msg = e?.message ?? String(e);
151
+ if (/reopen did not complete|lost its freeze token/.test(msg))
152
+ throw new GateReconcileRefused("raced", `the token-pinned reopen of ${key} lost its CAS — a newer barrier moved the gate while this repair ran. Nothing was reopened; re-observe before retrying.`);
153
+ throw e;
154
+ }
155
+ if (finished.completed) {
156
+ processEpochAfter = finished.processEpoch;
157
+ registrationRevisionAfter = finished.registrationRevision;
158
+ log(`same-op spec recovery: committed registrationRevision=${registrationRevisionAfter} processEpoch=${processEpochAfter}`);
159
+ }
160
+ if (processEpochAfter === row.processEpoch && registrationRevisionAfter === row.registrationRevision) {
161
+ const ok = await barrier.reopen(freezeToken, {
162
+ generation: reopenedAtGeneration,
163
+ processEpoch: row.processEpoch,
164
+ registrationRevision: row.registrationRevision,
165
+ nameAuthorityRevision: row.nameAuthorityRevision,
166
+ });
167
+ if (!ok)
168
+ throw new GateReconcileRefused("raced", `the token-pinned reopen of ${key} lost its CAS — a newer barrier moved the gate while this repair ran. Nothing was reopened; re-observe before retrying.`);
169
+ }
170
+ // The gate is already open, so cleanup cannot be a correctness precondition. Delete with the
171
+ // cursor's own revision; if it fails, retain the row and rely on its exact freeze-token binding.
172
+ // A later freeze necessarily has a different gate revision and overwrites it with empty progress
173
+ // before any holder can be skipped.
174
+ let repairCursorCleanup = "deleted";
175
+ try {
176
+ await deleteEndpointRepairCursor(kv, endpoint, instanceId, cursorRevision);
177
+ log(`repair cursor: deleted after reopen`);
178
+ }
179
+ catch (e) {
180
+ repairCursorCleanup = "retained";
181
+ log(`repair cursor: cleanup retained a safely freeze-bound cursor: ${e?.message ?? String(e)}`);
182
+ }
183
+ log(`✓ gate ${key} reopened at generation=${reopenedAtGeneration}, processEpoch=${processEpochAfter}, registrationRevision=${registrationRevisionAfter}; family revoked this attempt (${revoked.length}), verify-evicted this attempt (${evicted.length}), durable verified ${cursor.verified.length}/${boundHolders.length}, cursor cleanup ${repairCursorCleanup}`);
184
+ return {
185
+ endpoint, instanceId, holderPrincipal: row.principal, opId, freezeToken,
186
+ before: {
187
+ generation: row.generation, processEpoch: row.processEpoch,
188
+ registrationRevision: row.registrationRevision, nameAuthorityRevision: row.nameAuthorityRevision,
189
+ },
190
+ after: {
191
+ generation: reopenedAtGeneration, processEpoch: processEpochAfter,
192
+ registrationRevision: registrationRevisionAfter, nameAuthorityRevision: row.nameAuthorityRevision,
193
+ },
194
+ liveness, familyRows: rows.length, revoked, evicted,
195
+ holders: boundHolders,
196
+ holdersVerifiedBeforeAttempt,
197
+ holdersVerifiedThisAttempt: evicted,
198
+ holdersRemaining,
199
+ repairCursorCleanup,
200
+ reopenedAtGeneration,
201
+ };
202
+ }
203
+ //# sourceMappingURL=endpoint-reconcile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-reconcile.js","sourceRoot":"","sources":["../src/endpoint-reconcile.ts"],"names":[],"mappings":"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"}
@@ -283,6 +283,18 @@ export interface FrozenInstance {
283
283
  * loud (`internal`, §13.9: readers fail loud on invalid mediated-writer state). The read grant
284
284
  * this runs under is a §13.9 matrix row. */
285
285
  export declare function freezeExpectedSet(jsm: JetStreamManager, space: string, endpoint: string): Promise<FrozenInstance[]>;
286
+ /** A LEADER-SERVED read of one `svc` record key (§13.1: every authority currency read is a
287
+ * leader-served `STREAM.MSG.GET`, never a follower/mirror Direct Get — independent of how a KV
288
+ * handle was opened, so the public reader seams do not depend on a caller passing a bind-only KV).
289
+ * `svc` records, unlike the never-deleted lifecycle families, MAY be deleted on deregistration
290
+ * (§13.5: a deleted spec is an explicit deregistration), so a DELETE/PURGE marker is reported as
291
+ * `{ deleted: true }`, never a corruption throw. Absent → `undefined`; malformed → loud. */
292
+ export declare function readSvcRecordLeader(jsm: JetStreamManager, space: string, key: string): Promise<{
293
+ value: unknown;
294
+ revision: number;
295
+ } | {
296
+ deleted: true;
297
+ } | undefined>;
286
298
  /** The PRODUCTION `reconcileRegistration` hook for {@link epScatter} (§13.5): a bounded post-T
287
299
  * LEADER-SERVED read of every frozen slot's CURRENT `svc….spec` key (the same §13.9 read class as
288
300
  * the freeze). Per slot: a live spec is `{ registered: true, registrationRevision }` (the key's
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-service.d.ts","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-service.d.ts","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
@@ -1071,7 +1071,7 @@ export async function freezeExpectedSet(jsm, space, endpoint) {
1071
1071
  * `svc` records, unlike the never-deleted lifecycle families, MAY be deleted on deregistration
1072
1072
  * (§13.5: a deleted spec is an explicit deregistration), so a DELETE/PURGE marker is reported as
1073
1073
  * `{ deleted: true }`, never a corruption throw. Absent → `undefined`; malformed → loud. */
1074
- async function readSvcRecordLeader(jsm, space, key) {
1074
+ export async function readSvcRecordLeader(jsm, space, key) {
1075
1075
  const bucket = recordsBucket(space);
1076
1076
  let m;
1077
1077
  try {