@cotal-ai/core 0.17.0 → 0.19.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 (112) hide show
  1. package/dist/acls.d.ts +0 -7
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +10 -7
  4. package/dist/acls.js.map +1 -1
  5. package/dist/agui-kind.d.ts +71 -0
  6. package/dist/agui-kind.d.ts.map +1 -0
  7. package/dist/agui-kind.js +95 -0
  8. package/dist/agui-kind.js.map +1 -0
  9. package/dist/endpoint-action.d.ts +3 -3
  10. package/dist/endpoint-action.js +4 -4
  11. package/dist/endpoint-action.js.map +1 -1
  12. package/dist/endpoint-binding.d.ts +48 -5
  13. package/dist/endpoint-binding.d.ts.map +1 -1
  14. package/dist/endpoint-binding.js +82 -6
  15. package/dist/endpoint-binding.js.map +1 -1
  16. package/dist/endpoint-cluster.d.ts +20 -0
  17. package/dist/endpoint-cluster.d.ts.map +1 -1
  18. package/dist/endpoint-cluster.js +47 -0
  19. package/dist/endpoint-cluster.js.map +1 -1
  20. package/dist/endpoint-contract-store.d.ts +6 -0
  21. package/dist/endpoint-contract-store.d.ts.map +1 -1
  22. package/dist/endpoint-contract-store.js +21 -2
  23. package/dist/endpoint-contract-store.js.map +1 -1
  24. package/dist/endpoint-effects.d.ts +73 -0
  25. package/dist/endpoint-effects.d.ts.map +1 -0
  26. package/dist/endpoint-effects.js +46 -0
  27. package/dist/endpoint-effects.js.map +1 -0
  28. package/dist/endpoint-envelope.d.ts +32 -1
  29. package/dist/endpoint-envelope.d.ts.map +1 -1
  30. package/dist/endpoint-envelope.js +56 -2
  31. package/dist/endpoint-envelope.js.map +1 -1
  32. package/dist/endpoint-epname.d.ts +62 -0
  33. package/dist/endpoint-epname.d.ts.map +1 -0
  34. package/dist/endpoint-epname.js +273 -0
  35. package/dist/endpoint-epname.js.map +1 -0
  36. package/dist/endpoint-error.d.ts +155 -1
  37. package/dist/endpoint-error.d.ts.map +1 -1
  38. package/dist/endpoint-error.js +114 -2
  39. package/dist/endpoint-error.js.map +1 -1
  40. package/dist/endpoint-goaleff.d.ts +56 -0
  41. package/dist/endpoint-goaleff.d.ts.map +1 -0
  42. package/dist/endpoint-goaleff.js +212 -0
  43. package/dist/endpoint-goaleff.js.map +1 -0
  44. package/dist/endpoint-grants.d.ts +46 -0
  45. package/dist/endpoint-grants.d.ts.map +1 -1
  46. package/dist/endpoint-grants.js +68 -0
  47. package/dist/endpoint-grants.js.map +1 -1
  48. package/dist/endpoint-invoke.d.ts +1 -1
  49. package/dist/endpoint-invoke.d.ts.map +1 -1
  50. package/dist/endpoint-invoke.js +162 -27
  51. package/dist/endpoint-invoke.js.map +1 -1
  52. package/dist/endpoint-journal.d.ts +103 -0
  53. package/dist/endpoint-journal.d.ts.map +1 -1
  54. package/dist/endpoint-journal.js +290 -0
  55. package/dist/endpoint-journal.js.map +1 -1
  56. package/dist/endpoint-records.d.ts.map +1 -1
  57. package/dist/endpoint-records.js +37 -0
  58. package/dist/endpoint-records.js.map +1 -1
  59. package/dist/endpoint-serve.d.ts.map +1 -1
  60. package/dist/endpoint-serve.js +45 -1
  61. package/dist/endpoint-serve.js.map +1 -1
  62. package/dist/endpoint-subjects.d.ts +10 -0
  63. package/dist/endpoint-subjects.d.ts.map +1 -1
  64. package/dist/endpoint-subjects.js +10 -0
  65. package/dist/endpoint-subjects.js.map +1 -1
  66. package/dist/endpoint-verbs.d.ts +12 -3
  67. package/dist/endpoint-verbs.d.ts.map +1 -1
  68. package/dist/endpoint-verbs.js +113 -19
  69. package/dist/endpoint-verbs.js.map +1 -1
  70. package/dist/endpoint.d.ts +170 -6
  71. package/dist/endpoint.d.ts.map +1 -1
  72. package/dist/endpoint.js +472 -37
  73. package/dist/endpoint.js.map +1 -1
  74. package/dist/event-channel.d.ts +107 -0
  75. package/dist/event-channel.d.ts.map +1 -0
  76. package/dist/event-channel.js +139 -0
  77. package/dist/event-channel.js.map +1 -0
  78. package/dist/evict.d.ts +47 -0
  79. package/dist/evict.d.ts.map +1 -1
  80. package/dist/evict.js +191 -59
  81. package/dist/evict.js.map +1 -1
  82. package/dist/identity.d.ts +15 -0
  83. package/dist/identity.d.ts.map +1 -1
  84. package/dist/identity.js +34 -0
  85. package/dist/identity.js.map +1 -1
  86. package/dist/index.d.ts +5 -0
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +5 -0
  89. package/dist/index.js.map +1 -1
  90. package/dist/membership-feed.d.ts.map +1 -1
  91. package/dist/membership-feed.js +35 -12
  92. package/dist/membership-feed.js.map +1 -1
  93. package/dist/parts.d.ts +29 -5
  94. package/dist/parts.d.ts.map +1 -1
  95. package/dist/parts.js +46 -3
  96. package/dist/parts.js.map +1 -1
  97. package/dist/provision.d.ts +19 -7
  98. package/dist/provision.d.ts.map +1 -1
  99. package/dist/provision.js +75 -14
  100. package/dist/provision.js.map +1 -1
  101. package/dist/resolve.d.ts.map +1 -1
  102. package/dist/resolve.js +38 -0
  103. package/dist/resolve.js.map +1 -1
  104. package/dist/streams.d.ts +142 -3
  105. package/dist/streams.d.ts.map +1 -1
  106. package/dist/streams.js +192 -17
  107. package/dist/streams.js.map +1 -1
  108. package/dist/subjects.d.ts +49 -15
  109. package/dist/subjects.d.ts.map +1 -1
  110. package/dist/subjects.js +130 -15
  111. package/dist/subjects.js.map +1 -1
  112. package/package.json +5 -2
@@ -15,7 +15,7 @@
15
15
  import { randomBytes } from "node:crypto";
16
16
  import { spacePrefix } from "./subjects.js";
17
17
  import { epRequestSubject, parseEpSubject, callerTokens, assertLifecycleToken, assertBoundedOwner, } from "./endpoint-subjects.js";
18
- import { EpEnvelopeError, parseEndpointReply, parseEndpointEvent, assertArgsValid, assertOutputValid, } from "./endpoint-envelope.js";
18
+ import { EpEnvelopeError, EP_UNBOUND_RESPONDER, EP_UNANSWERED, EP_REGISTRY_READ_FAILED, EP_BIND_REFUSED, registryReadFailed, bindRefusalMarked, parseEndpointReply, parseEndpointEvent, assertArgsValid, assertOutputValid, } from "./endpoint-envelope.js";
19
19
  import { freezeExpectedSet, registrationReconciler, serviceEpochReader } from "./endpoint-service.js";
20
20
  const nonce = () => randomBytes(24).toString("base64url"); // 32 tokens of [A-Za-z0-9_-], 192 bits
21
21
  function subjectTarget(t) {
@@ -40,6 +40,17 @@ function buildRequest(space, route, op, verb) {
40
40
  // same budget the responder runs, so a request this boundary admits pins digests the
41
41
  // responder can honor or reject, never digests detached from the payload.
42
42
  assertArgsValid(op.contract.input.validate, op.args);
43
+ // The responder refuses these too (§13.3), but a caller that would emit an unservable request
44
+ // should not have to learn it from a round trip: `describe` is what produces a bind, and a
45
+ // scatter addresses every incarnation, so neither can carry one.
46
+ if (op.bind !== undefined) {
47
+ if (op.command === "describe")
48
+ throw new EpEnvelopeError("bad-request", "describe carries no bind: it is the bootstrap that produces one (SPEC 13.3)");
49
+ if (route.mode === "all")
50
+ throw new EpEnvelopeError("bad-request", "a scatter addresses every incarnation; a bind would make every member but one refuse (SPEC 13.5)");
51
+ if (route.mode === "inst" && op.bind.instanceId !== route.instanceId)
52
+ throw new EpEnvelopeError("bad-request", `bind.instanceId "${op.bind.instanceId}" contradicts the inst-rail route's instance "${route.instanceId}" (SPEC 13.2)`);
53
+ }
43
54
  const n = nonce();
44
55
  const subject = epRequestSubject(space, {
45
56
  route, endpoint: op.endpoint, command: op.command,
@@ -60,6 +71,7 @@ function buildRequest(space, route, op, verb) {
60
71
  replyExpected: verb.replyExpected,
61
72
  ...(op.goalId !== undefined ? { goalId: op.goalId } : {}),
62
73
  ...(op.target && op.target.mode !== "self" ? { target: bodyTarget(op.target) } : {}),
74
+ ...(op.bind !== undefined ? { bind: { instanceId: assertLifecycleToken(op.bind.instanceId, "bind instanceId"), epoch: op.bind.epoch } } : {}),
63
75
  ...(op.args !== undefined ? { args: op.args } : {}),
64
76
  from: { id: `${op.caller.owner}.${op.caller.actor}`, name: op.name ?? op.caller.actor },
65
77
  ...(verb.deadlineMs !== undefined ? { deadlineMs: verb.deadlineMs } : {}),
@@ -89,12 +101,12 @@ function isNoRespondersMsg(msg) {
89
101
  }
90
102
  /** Race a caller-supplied read against a bounded budget so a never-settling hook cannot exceed the
91
103
  * operation deadline (SPEC 13.5: deadline mandatory). Clears its timer on either outcome. */
92
- async function raceBounded(read, ms, what) {
104
+ async function raceBounded(read, ms, what, details) {
93
105
  let t;
94
106
  try {
95
107
  return await Promise.race([
96
108
  (async () => read())(),
97
- new Promise((_, reject) => { t = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `${what} did not settle within the ${ms}ms budget (SPEC 13.5)`)), ms); }),
109
+ new Promise((_, reject) => { t = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `${what} did not settle within the ${ms}ms budget (SPEC 13.5)`, details)), ms); }),
98
110
  ]);
99
111
  }
100
112
  finally {
@@ -102,16 +114,55 @@ async function raceBounded(read, ms, what) {
102
114
  clearTimeout(t);
103
115
  }
104
116
  }
117
+ /** The {@link EP_UNANSWERED} detail for `op`: set ONLY where this module observed that nothing
118
+ * answered (the broker's no-responders control frame, or the reply deadline elapsing). */
119
+ const unansweredDetail = (op) => ({ kind: EP_UNANSWERED, endpoint: op.endpoint, command: op.command });
120
+ /** The {@link EP_REGISTRY_READ_FAILED} detail for `op`: set where the scatter's OWN registry read
121
+ * (freeze or reconcile) failed, so the failure is never read as the responders' silence. */
122
+ const registryReadDetail = (op) => ({ kind: EP_REGISTRY_READ_FAILED, endpoint: op.endpoint, command: op.command });
105
123
  /** The caller's per-request reply subscription: its own rail narrowed to exactly this request's
106
124
  * nonce (contained in the §13.9 reply-read grant), so concurrent calls never see each other. */
107
125
  function replySubjectFor(space, caller, n) {
108
126
  return `${spacePrefix(space)}.ep.reply.*.*.*.${callerTokens(caller).join(".")}.${n}`;
109
127
  }
128
+ /** The stale-epoch refusal, worded by DIRECTION and by what the caller's reference epoch IS, and
129
+ * carrying the {@link EP_UNBOUND_RESPONDER} marker. Both rails reach it after an ATTRIBUTED reply:
130
+ * the responder received the request and answered it, at an epoch other than the caller's reference.
131
+ * The reference has two meanings, and the message must not lend one caller's meaning to the other:
132
+ * - `bind`: the epoch this caller's own resolve bound (the `inst` rail's pinned epoch, or the
133
+ * describe-bound default on `one`). `answered > held` means a SUCCESSOR of the bound incarnation
134
+ * answered (a same-root restart, or a supersession): the caller's handle is the stale side, and
135
+ * re-resolving adopts the successor. `answered < held` means a superseded incarnation still
136
+ * connected answered, and its reply is what is rejected.
137
+ * - `registry`: a currency read of the responder's CURRENT registered epoch (epCall's documented
138
+ * `currentEpoch` contract, {@link serviceEpochReader}). Nothing of the caller's is stale here:
139
+ * `answered > current` means the read lags a restart, `answered < current` a superseded
140
+ * incarnation still answering.
141
+ * Either way the marker says what the code alone cannot: a retry is a second attempt. The kind is
142
+ * explicit rather than inferred because a single wording names the wrong stale side on one of the
143
+ * two paths, whichever meaning it picks. */
144
+ function staleEpochRefusal(op, responder, held, reference, rail) {
145
+ const who = `the ${op.endpoint} instance ${responder.instanceId}`;
146
+ const ahead = responder.epoch > held;
147
+ const situation = reference === "bind"
148
+ ? (ahead
149
+ ? `${who} answered at epoch ${responder.epoch}, but this handle resolved against it at epoch ${held}: a SUCCESSOR of the bound incarnation answered (a restart or supersession), so the handle is the stale side; re-resolve to adopt it`
150
+ : `${who} answered at epoch ${responder.epoch}, but this handle resolved against it at epoch ${held}: a SUPERSEDED incarnation still connected answered, and its reply is rejected`)
151
+ : (ahead
152
+ ? `${who} answered at epoch ${responder.epoch}, but a currency read of its registered epoch returned ${held}: the responder is ahead of the registry read (the read lags a restart), so its reply is rejected until the read catches up; nothing of this caller's is stale`
153
+ : `${who} answered at epoch ${responder.epoch}, but a currency read of its registered epoch returned ${held}: a SUPERSEDED incarnation still connected answered, and its reply is rejected`);
154
+ const detail = {
155
+ kind: EP_UNBOUND_RESPONDER, endpoint: op.endpoint, command: op.command, answeredBy: responder.instanceId,
156
+ ...(reference === "bind" ? { boundTo: responder.instanceId } : {}),
157
+ answeredEpoch: responder.epoch, heldEpoch: held, reference, pinned: rail === "inst",
158
+ };
159
+ return new EpEnvelopeError("expired", `${situation}. THIS SAYS NOTHING ABOUT WHETHER THE COMMAND RAN: ${responder.instanceId} received the request and answered it, so if "${op.command}" mutates, that effect may already have landed; verify the outcome ('ps'/'inspect'/roster) before re-issuing (SPEC 13.2, the stale-reply rejection rule)`, [detail]);
160
+ }
110
161
  function parseAttributedReply(space, subject, data, requestId, op, expect) {
111
162
  const parsed = parseEpSubject(subject);
112
163
  if (!parsed || parsed.plane !== "reply")
113
164
  throw new EpEnvelopeError("internal", `a message on the caller's reply rail does not parse as a reply subject: ${subject}`);
114
- // §13.2 (:1173-1189): ACCEPTANCE binds the subject-borne attribution to the INVOKED identity.
165
+ // SPEC §13.2: ACCEPTANCE binds the subject-borne attribution to the INVOKED identity.
115
166
  // Reading the endpoint/instance/epoch off the subject is not the same as checking them against the
116
167
  // invocation: a truthfully-attributed reply from a DIFFERENT endpoint (or a stale/other instance)
117
168
  // is not the requested responder, and nonce possession is addressing, not authorization. A stale
@@ -121,7 +172,7 @@ function parseAttributedReply(space, subject, data, requestId, op, expect) {
121
172
  if (expect?.instanceId !== undefined && parsed.instanceId !== expect.instanceId)
122
173
  throw new EpEnvelopeError("internal", `reply instance "${parsed.instanceId}" is not the addressed instance "${expect.instanceId}" (SPEC 13.2)`);
123
174
  if (expect?.epoch !== undefined && parsed.epoch !== expect.epoch)
124
- throw new EpEnvelopeError("expired", `reply epoch ${parsed.epoch} is not the addressed epoch ${expect.epoch}; a superseded incarnation's reply is rejected (SPEC 13.2:1187-1189)`);
175
+ throw staleEpochRefusal(op, { instanceId: parsed.instanceId, epoch: parsed.epoch }, expect.epoch, "bind", "inst");
125
176
  // §13.3: an unparseable body is THIS boundary's own structured refusal — the documented catalog
126
177
  // (`internal`) holds; a raw SyntaxError must never escape the verb (the watch path already wraps
127
178
  // its decode the same way).
@@ -146,20 +197,24 @@ function parseAttributedReply(space, subject, data, requestId, op, expect) {
146
197
  * Call one command and await its reply within `deadlineMs`: on the `one` (queue-group anycast) or
147
198
  * `inst` (stable incarnation) rail with `replyExpected: true`, subscribe the caller's own
148
199
  * nonce-scoped reply subject BEFORE publishing, and resolve the first attributed reply — BOUND to
149
- * the invoked identity (§13.2:1187-1189: "callers reject" stale-process replies), on BOTH rails:
200
+ * the invoked identity (§13.2, the stale-reply rejection rule: "callers reject" stale-process replies), on BOTH rails:
150
201
  * - `inst` pins the addressed `(instanceId, epoch)` incarnation up front; a stale-epoch reply is
151
202
  * `expired` and a wrong-instance reply `internal`.
152
203
  * - `one` cannot pin an instance up front (the queue picks the responder), so the caller MUST supply
153
204
  * `currentEpoch(instanceId)`: after the reply lands, the answering incarnation's epoch is checked
154
205
  * against its current registry epoch, and a superseded-but-still-connected queue member's reply is
155
206
  * `expired`. The queue winner is NOT implicitly current — that is a check, not an assumption.
207
+ * `currencyReference` says what that hook returns, for the refusal's wording and marker: the
208
+ * documented `registry` read (default), or `bind` when a caller supplies its own resolve's epoch
209
+ * instead (the describe-bound default in {@link invokeCommand}), where a responder ahead of it is
210
+ * a successor and the caller's handle is the stale side.
156
211
  *
157
212
  * Application-level failure is NOT a throw: the resolved `reply` carries `ok: false` with the
158
213
  * responder's structured error (§13.3). This boundary throws only for its own refusals: invalid args
159
214
  * `bad-request`; an unparseable/mis-echoed/mis-attributed reply `internal` (a raw decode error never
160
215
  * escapes); a throwing `currentEpoch` hook `internal` and a garbled (non-integer/negative) currency
161
216
  * value `failed-precondition` (the read's own failure, never mislabeled staleness); a stale reply `expired`;
162
- * NO responder `unavailable` (SPEC 13.5:1484 — the broker's no-responders 503 lands on a reply-to that
217
+ * NO responder `unavailable` (SPEC 13.5, the broker no-responders answer — the broker's no-responders 503 lands on a reply-to that
163
218
  * sits on THIS caller's own rail, so a manual, fully-disposed probe distinguishes it from a slow
164
219
  * responder without leaving a lingering request); a failed reply subscription `unavailable`; the
165
220
  * elapsed budget `deadline-exceeded`. Every subscription and timer is released in the `finally`.
@@ -167,7 +222,7 @@ function parseAttributedReply(space, subject, data, requestId, op, expect) {
167
222
  export async function epCall(nc, space, route, op, opts) {
168
223
  const deadlineMs = assertDeadline(opts.deadlineMs);
169
224
  if (route.mode === "one" && opts.currentEpoch === undefined)
170
- throw new EpEnvelopeError("bad-request", "epCall on the `one` rail requires opts.currentEpoch: the queue winner is not implicitly current, and a superseded-but-connected member's reply must be rejected (SPEC 13.2:1187-1189)");
225
+ throw new EpEnvelopeError("bad-request", "epCall on the `one` rail requires opts.currentEpoch: the queue winner is not implicitly current, and a superseded-but-connected member's reply must be rejected (SPEC 13.2, the stale-reply rejection rule)");
171
226
  const req = buildRequest(space, route, op, { replyExpected: true, deadlineMs });
172
227
  const expect = route.mode === "inst" ? { instanceId: route.instanceId, epoch: route.epoch } : undefined;
173
228
  // A no-responders reply-to that lands on THIS caller's OWN rail (within its §13.9 read grant, no
@@ -194,7 +249,7 @@ export async function epCall(nc, space, route, op, opts) {
194
249
  // the broker-control path.
195
250
  if (msg.subject === noRespReplyTo) {
196
251
  if (isNoRespondersMsg(msg)) {
197
- reject(new EpEnvelopeError("unavailable", `no responder for ${op.endpoint}.${op.command} (SPEC 13.5)`));
252
+ reject(new EpEnvelopeError("unavailable", `no responder for ${op.endpoint}.${op.command} (SPEC 13.5)`, [unansweredDetail(op)]));
198
253
  return;
199
254
  }
200
255
  reject(new EpEnvelopeError("internal", `a non-503 message reached the reserved no-responders sentinel for ${op.endpoint}.${op.command}; nothing but the broker control frame is addressable there`));
@@ -205,11 +260,46 @@ export async function epCall(nc, space, route, op, opts) {
205
260
  });
206
261
  });
207
262
  nc.publish(req.subject, req.body, { reply: noRespReplyTo });
208
- const timeout = new Promise((_, reject) => { timer = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `no reply to ${op.endpoint}.${op.command} within the ${deadlineMs}ms budget (SPEC 13.5)`)), deadlineMs); });
263
+ const timeout = new Promise((_, reject) => { timer = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `no reply to ${op.endpoint}.${op.command} within the ${deadlineMs}ms budget (SPEC 13.5)`, [unansweredDetail(op)])), deadlineMs); });
209
264
  const msg = await Promise.race([outcome, timeout]);
210
265
  const attributed = parseAttributedReply(space, msg.subject, msg.data, req.requestId, op, expect);
266
+ // Taken BEFORE the currency check below, because a responder that fenced on the bind settled
267
+ // the same question better: it knows it did not run the command, where the check can only
268
+ // observe that the answer came from elsewhere. Returning the refusal keeps it an ordinary
269
+ // application-level failure (§13.5) that tells the caller a retry is safe, instead of a throw
270
+ // that says nothing about whether the command ran. Cross-checked against the SUBJECT first: a
271
+ // reply attributed to the very incarnation the caller bound cannot coherently claim it is not
272
+ // that incarnation (§13.3).
273
+ // Gated on the marker's PRESENCE, not on the outcome. Whether the caller may act on this
274
+ // refusal is a separate question, settled downstream by `replyRefusedBeforeEffect`; whether the
275
+ // reply is coherent is settled here, and a reply that omits the outcome is no less obliged to
276
+ // agree with its own attribution. Gating both on the same predicate let a refusal buy its way
277
+ // out of the checks by leaving a field off.
278
+ if (attributed.reply.ok === false && bindRefusalMarked(attributed.reply.error)) {
279
+ if (op.bind === undefined)
280
+ throw new EpEnvelopeError("internal", `${op.endpoint}.${op.command} replied with a bind refusal to a request that carried no bind`);
281
+ const r = attributed.responder;
282
+ if (r.instanceId === op.bind.instanceId && r.epoch === op.bind.epoch)
283
+ throw new EpEnvelopeError("internal", `${op.endpoint} instance ${r.instanceId} refused ${op.command} as the wrong incarnation, but the reply subject attributes it to exactly the bound one (${op.bind.instanceId} epoch ${op.bind.epoch}); the body does not get to contradict its own attribution (SPEC 13.3)`);
284
+ // AND THE REFUSAL MUST BE AN ANSWER TO *THIS* REQUEST, FROM *THIS* RESPONDER. THREE CHECKS ARE
285
+ // JOINTLY REQUIRED here — the subject check above, plus `boundTo` and `servedBy` below — and
286
+ // removing any one of them accepts a "did not run" the caller cannot derive. A caller acts on
287
+ // this marker by re-issuing a command it would otherwise never repeat, so it is checked rather
288
+ // than believed: a fence computes it from the request's own bind against its own identity, so
289
+ // both halves are DERIVABLE. A `boundTo` that is not the block this request carried was not
290
+ // computed from this request; a `servedBy` disagreeing with the reply subject is a body
291
+ // contradicting its own attribution. Both are `internal`, not a retry.
292
+ const refusal = (attributed.reply.error?.details ?? []).find((d) => d.kind === EP_BIND_REFUSED);
293
+ if (refusal === undefined)
294
+ throw new EpEnvelopeError("internal", `${op.endpoint}.${op.command} came back marked ${EP_BIND_REFUSED} with no such detail to derive it from (SPEC 13.3)`);
295
+ if (refusal.boundTo.instanceId !== op.bind.instanceId || refusal.boundTo.epoch !== op.bind.epoch)
296
+ throw new EpEnvelopeError("internal", `${op.endpoint} refused ${op.command} against bind ${refusal.boundTo.instanceId} epoch ${refusal.boundTo.epoch}, but this request carried ${op.bind.instanceId} epoch ${op.bind.epoch}; a refusal computed from another request proves nothing about this one (SPEC 13.3)`);
297
+ if (refusal.servedBy.instanceId !== r.instanceId || refusal.servedBy.epoch !== r.epoch)
298
+ throw new EpEnvelopeError("internal", `${op.endpoint} refused ${op.command} claiming to be served by ${refusal.servedBy.instanceId} epoch ${refusal.servedBy.epoch}, but the reply subject attributes it to ${r.instanceId} epoch ${r.epoch}; the body does not get to contradict its own attribution (SPEC 13.3)`);
299
+ return attributed;
300
+ }
211
301
  if (route.mode === "one") {
212
- // §13.2:1187-1189 currency for the queue winner, bounded by the REMAINING budget so the whole
302
+ // §13.2, the stale-reply rejection rule currency for the queue winner, bounded by the REMAINING budget so the whole
213
303
  // call stays within ONE `deadlineMs` (deliberately NOT a second dedicated budget like scatter's
214
304
  // `reconcileDeadlineMs`: a call's reply usually arrives well before T, leaving room to verify,
215
305
  // whereas scatter's gather deterministically eats its whole deadline). The consequence is a
@@ -235,7 +325,7 @@ export async function epCall(nc, space, route, op, opts) {
235
325
  if (!Number.isSafeInteger(cur) || cur < 0)
236
326
  throw new EpEnvelopeError("failed-precondition", `the \`one\` currency read returned a non-integer/negative epoch ${String(cur)}; a garbled currency read is refused as the read's own failure, never reported as responder staleness (SPEC 13.2)`);
237
327
  if (attributed.responder.epoch !== cur)
238
- throw new EpEnvelopeError("expired", `the \`one\` responder ${attributed.responder.instanceId} answered at epoch ${attributed.responder.epoch}, not its current ${cur}; a superseded incarnation's reply is rejected (SPEC 13.2:1187-1189)`);
328
+ throw staleEpochRefusal(op, attributed.responder, cur, opts.currencyReference ?? "registry", "one");
239
329
  }
240
330
  return attributed;
241
331
  }
@@ -473,19 +563,23 @@ export async function epScatter(nc, space, op, opts) {
473
563
  }
474
564
  });
475
565
  // Reconcile shortly after T, bounded by its OWN explicit budget (not a second full `deadlineMs`):
476
- // a never-settling read is `unavailable`, an unreadable registry `failed-precondition`.
566
+ // a never-settling read is `unavailable`, an unreadable registry `failed-precondition`. Only the
567
+ // bound's own MARKED refusal passes through as is: the hook is untrusted caller-supplied code,
568
+ // so whatever it throws is the read failing and is normalized and marked here. Keying the
569
+ // pass-through on the code instead would let a hook's bare `unavailable` escape unmarked, and an
570
+ // unmarked refusal is what a consumer cannot classify.
477
571
  let current;
478
572
  let reconcileTimer;
479
573
  try {
480
574
  current = await Promise.race([
481
575
  opts.reconcileRegistration(),
482
- new Promise((_, reject) => { reconcileTimer = setTimeout(() => reject(new EpEnvelopeError("unavailable", `the scatter registration reconcile did not settle within its ${reconcileDeadlineMs}ms bound (SPEC 13.5: deadline mandatory, never a hung scatter)`)), reconcileDeadlineMs); }),
576
+ new Promise((_, reject) => { reconcileTimer = setTimeout(() => reject(new EpEnvelopeError("unavailable", `the scatter registration reconcile did not settle within its ${reconcileDeadlineMs}ms bound (SPEC 13.5: deadline mandatory, never a hung scatter)`, [registryReadDetail(op)])), reconcileDeadlineMs); }),
483
577
  ]);
484
578
  }
485
579
  catch (e) {
486
- if (e instanceof EpEnvelopeError && e.code === "unavailable")
487
- throw e; // the reconcile bound
488
- throw new EpEnvelopeError("failed-precondition", `the scatter registration reconcile is unreadable; an unreadable registry is failed-precondition, never an empty success (SPEC 13.5): ${failMsg(e)}`);
580
+ if (registryReadFailed(e))
581
+ throw e; // the reconcile bound above
582
+ throw new EpEnvelopeError("failed-precondition", `the scatter registration reconcile is unreadable; an unreadable registry is failed-precondition, never an empty success (SPEC 13.5): ${failMsg(e)}`, [registryReadDetail(op)]);
489
583
  }
490
584
  finally {
491
585
  if (reconcileTimer !== undefined)
@@ -556,10 +650,10 @@ export async function epScatterService(nc, jsm, space, op, opts) {
556
650
  // its budget, and the gather runs on the REMAINING budget.
557
651
  const deadlineMs = assertDeadline(opts.deadlineMs);
558
652
  const started = Date.now();
559
- const expected = await raceBounded(() => freezeExpectedSet(jsm, space, op.endpoint), deadlineMs, `the scatter freeze for ${op.endpoint}`);
653
+ const expected = await raceBounded(() => freezeExpectedSet(jsm, space, op.endpoint), deadlineMs, `the scatter freeze for ${op.endpoint}`, [registryReadDetail(op)]);
560
654
  const remaining = deadlineMs - (Date.now() - started);
561
655
  if (remaining <= 0)
562
- throw new EpEnvelopeError("deadline-exceeded", `the scatter freeze for ${op.endpoint} consumed the whole ${deadlineMs}ms budget; no time left to gather (SPEC 13.5)`);
656
+ throw new EpEnvelopeError("deadline-exceeded", `the scatter freeze for ${op.endpoint} consumed the whole ${deadlineMs}ms budget; no time left to gather (SPEC 13.5)`, [registryReadDetail(op)]);
563
657
  return epScatter(nc, space, op, { ...opts, deadlineMs: remaining, expected, reconcileRegistration: registrationReconciler(jsm, space, op.endpoint, expected) });
564
658
  }
565
659
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-verbs.js","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-verbs.js","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
@@ -249,17 +249,33 @@ export declare class CotalEndpoint extends EventEmitter {
249
249
  private readonly owner;
250
250
  /** This endpoint's actor token (principal half 2) — the connection id in the dev default. */
251
251
  private readonly actor;
252
+ /** True when {@link actor} was SELF-MINTED at construction — a fresh random token, because the
253
+ * card declared no actor and no id and no creds named one. Such a principal differs on every
254
+ * restart, so nothing can be granted to it in advance and nothing durable may be keyed on it.
255
+ * Exposed via {@link actorIsEphemeral} so a caller deriving a per-agent resource name can refuse
256
+ * the mode instead of silently keying on a value that will not survive the process. */
257
+ readonly actorIsEphemeral: boolean;
252
258
  /** This incarnation's lifecycle UID (opts.lifecycleUid) — see {@link EndpointOptions.lifecycleUid}. */
253
259
  private readonly ownLifecycleUid?;
254
260
  /** Per-endpoint-name {@link resolveService} cache for {@link invokeService} — dropped on a
255
261
  * `failed-precondition` currency refusal (the described incarnation was superseded). */
256
262
  private readonly resolvedServices;
263
+ /** How many calls {@link invokeService} has silently recovered from a bind refusal (§13.2) — the
264
+ * class-queue splits this endpoint hit and survived.
265
+ *
266
+ * Counted because it is recovered: handling the split is what makes it invisible, so this is the
267
+ * only evidence the split rate exists. Always on, never behind a flag — a counter you have to
268
+ * enable is not there when the thing you needed it for happened. */
269
+ private splitsRecovered;
257
270
  /** This endpoint's wire principal (owner + actor tokens, §13.2) — what its minted grant rows
258
271
  * pin. Public so a caller can build owner-mode target blocks for {@link invokeService}. */
259
272
  get principal(): {
260
273
  owner: string;
261
274
  actor: string;
262
275
  };
276
+ /** Class-queue splits this endpoint has hit and silently survived ({@link splitsRecovered}).
277
+ * Pull it, or listen for `split-recovered` — the event can be missed, the count cannot. */
278
+ get splitRecoveryCount(): number;
263
279
  /** The endpoint's own lifecycle UID, REQUIRED for every lifecycle-keyed messaging resource; absent
264
280
  * ⇒ loud refusal naming the operation (the hard cut of SPEC §13.1 — no alias-keyed fallback). */
265
281
  private requireLifecycleUid;
@@ -428,6 +444,112 @@ export declare class CotalEndpoint extends EventEmitter {
428
444
  contextId?: string;
429
445
  mentions?: string[];
430
446
  }): Promise<CotalMessage>;
447
+ /** The broker's live `max_payload` — the CEILING a frame is measured against, not a budget for a
448
+ * caller's own payload.
449
+ *
450
+ * Exposed because the connection is private and callers outside core (a connector assembling a
451
+ * batched payload) otherwise have no way to learn the ceiling except by failing a publish.
452
+ * Throws rather than guessing a default: a wrong ceiling is worse than none, because it splits
453
+ * either too eagerly or too late and both look like working code.
454
+ *
455
+ * THIS ALONE CANNOT SIZE A MESSAGE. The envelope this endpoint adds after the publish call, and
456
+ * the client's own headers, are charged against the same ceiling and the caller never sees them.
457
+ * Use {@link encodedSize}, which measures what will actually be sent. */
458
+ get maxPayload(): number;
459
+ /**
460
+ * Verify the PRECONDITION {@link multicastExpecting} depends on: that the chat stream evaluates
461
+ * the subject expectation BEFORE the `Nats-Msg-Id` dedup cache. **Throws if it cannot be
462
+ * guaranteed.** Call before the first serialized append on a given endpoint.
463
+ *
464
+ * **The ordering follows the stream's REPLICATION FACTOR, not the deployment.** A standalone R1
465
+ * stream and an R1 stream inside a real 3-node cluster both refuse a stale expectation with a CAS
466
+ * error; only an R3 stream evaluates dedup first and answers a retry with `duplicate: true`. A
467
+ * check written against cluster size would pass on exactly the deployment that breaks.
468
+ *
469
+ * Every stream Cotal creates is `num_replicas: 1`, from the same canonical config the restore path
470
+ * uses, so the property holds by construction today. This exists because "by construction" is an
471
+ * observation until something checks it: nothing in the wire contract reserves the replica factor.
472
+ * A caller appending under a stale assumption does not fail loudly; it accepts a retry as success
473
+ * and drops a message.
474
+ *
475
+ * Evidence is `smoke:cas-preflight-cluster`, which records the server version it measured against
476
+ * rather than naming one here — the suites resolve `nats-server` from `PATH`, so a hardcoded
477
+ * provenance ages into a claim about a machine that no longer exists.
478
+ *
479
+ * @throws if the stream is unreadable (no `STREAM.INFO` grant, or absent) or reports more than
480
+ * one replica. Never degrades to a warning: the failure it prevents is silent.
481
+ */
482
+ assertExpectationSemantics(): Promise<void>;
483
+ /** The envelope {@link multicastExpecting} publishes, built in ONE place so that a frame and any
484
+ * measurement of that frame cannot describe different messages. The fields this adds — `ts`,
485
+ * `space`, `from`, `channel` and the normalized `mentions` — are exactly the ones a caller
486
+ * holding only its parts cannot account for. */
487
+ private casEnvelope;
488
+ /**
489
+ * The bytes this frame will ACTUALLY put on the wire, to compare against {@link maxPayload}.
490
+ *
491
+ * Caller-side arithmetic is wrong in the dangerous direction: a split sized against the caller's
492
+ * own payload produces a frame the broker REJECTS, and a rejected truncation makes the loss silent
493
+ * again — the failure splitting exists to prevent.
494
+ *
495
+ * It lives on the surface that BUILDS the envelope so measurement and construction cannot drift
496
+ * apart unnoticed: it shares {@link casEnvelope} with the publish path, sets the same two headers,
497
+ * and lets the client's own encoder encode them rather than re-implementing the wire format.
498
+ * `frame-size.smoke.ts` binary-searches a real broker's ceiling and requires this number to land
499
+ * on it exactly.
500
+ *
501
+ * `expectedLastSubjectSeq` is a parameter because it is a header VALUE: sizing at 0 and publishing
502
+ * at 123456 differ by five bytes.
503
+ *
504
+ * Residual: `ts` is re-stamped at publish, so the two differ in value — not in length until
505
+ * epoch-millis needs a 14th digit.
506
+ */
507
+ encodedSize(opts: {
508
+ channel: string;
509
+ parts: Part[];
510
+ id: string;
511
+ expectedLastSubjectSeq: number;
512
+ mentions?: string[];
513
+ replyTo?: string;
514
+ contextId?: string;
515
+ }): number;
516
+ /**
517
+ * Multicast with an OPTIMISTIC-CONCURRENCY expectation and a caller-chosen dedup id, returning
518
+ * the `PubAck` fields instead of discarding them. The serialized-append primitive: two writers
519
+ * racing one subject cannot interleave, because the loser's expectation no longer holds.
520
+ *
521
+ * **Why a separate method rather than options on {@link multicast}.** `multicast` mints a fresh
522
+ * `id` per call and drops the ack; both are right for ordinary chat and both are fatal to a
523
+ * caller that must retry an append idempotently. Keeping them apart means no existing caller
524
+ * changes behaviour, and the stricter validation below applies only where a caller opted in.
525
+ *
526
+ * - `id` becomes the JetStream `Nats-Msg-Id`, so the SAME id may be republished on retry and the
527
+ * server dedups it within the stream's duplicate window. It is validated rather than trusted:
528
+ * it lands in a wire header, and the dedup cache is **stream-wide**, so a caller-supplied id is
529
+ * both an injection surface and a way to suppress another publisher's message.
530
+ * - `expectedLastSubjectSeq` is the sequence this publisher believes is the subject's tip; `0`
531
+ * means "the subject must be empty". A mismatch throws, and the throw stays classifiable by the
532
+ * already-public {@link isCasLoss} — the error is deliberately **not wrapped**, since wrapping
533
+ * would hide the `err_code` that classification reads.
534
+ *
535
+ * @throws if the endpoint is not live, the channel is not concrete, `id` is malformed, `parts` is
536
+ * empty, or `expectedLastSubjectSeq` is not a non-negative safe integer.
537
+ */
538
+ multicastExpecting(opts: {
539
+ channel: string;
540
+ parts: Part[];
541
+ id: string;
542
+ expectedLastSubjectSeq: number;
543
+ mentions?: string[];
544
+ replyTo?: string;
545
+ contextId?: string;
546
+ }): Promise<{
547
+ message: CotalMessage;
548
+ ack: {
549
+ seq: number;
550
+ duplicate: boolean;
551
+ };
552
+ }>;
431
553
  /** Unicast: direct message to one specific instance. */
432
554
  unicast(instanceId: string, text: string, opts?: {
433
555
  parts?: Part[];
@@ -484,11 +606,22 @@ export declare class CotalEndpoint extends EventEmitter {
484
606
  /** GENERIC v0.4 service invoke over this endpoint's own connection (P2 item 1, 1c.2b): resolve
485
607
  * the named endpoint's registered surface — describe, §13.7 store fetch, digest-verified
486
608
  * recompile ({@link resolveService}; cached per endpoint name) — and invoke one command. The
487
- * resolve is describe-bound currency: when a DIFFERENT instance answers a later invoke
488
- * (`failed-precondition`, a restart/supersede), the cache is dropped and resolved ONCE more
489
- * against the current incarnation. Errors from the responder come back structurally on the
490
- * attributed reply (`reply.ok === false`); transport/validation refusals throw
491
- * {@link EpEnvelopeError}. */
609
+ * resolve is describe-bound currency, and a call that reaches the wrong incarnation is recovered
610
+ * two ways depending on WHO caught it — the difference between knowing the command did not run
611
+ * and only knowing someone answered:
612
+ * - the RESPONDER fenced it on the request's `bind` (§13.2, an `ok:false` reply marked
613
+ * {@link replyRefusedBeforeEffect}): the command did not run, so the bind is dropped and the
614
+ * call re-issued ONCE for any command. If that re-issue cannot be resolved, the refusal
615
+ * surfaces — still saying the command did not run — naming the resolve failure as why the
616
+ * repair could not be attempted.
617
+ * - this CLIENT caught it on the reply ({@link respondedButUnbound}: a different instance,
618
+ * `failed-precondition`; the same instance at any other epoch, `expired`), which is what a
619
+ * responder too old to know the field produces. A live instance received and answered it, so
620
+ * the bind is dropped but the call is re-issued only for a command on the
621
+ * {@link isRepeatSafeCommand} allowlist; anything else surfaces, since a second attempt could
622
+ * duplicate its effect.
623
+ * Errors from the responder come back structurally on the attributed reply
624
+ * (`reply.ok === false`); transport/validation refusals throw {@link EpEnvelopeError}. */
492
625
  invokeService(endpoint: string, command: string, args?: Record<string, unknown>, opts?: {
493
626
  target?: EpVerbTarget;
494
627
  deadlineMs?: number;
@@ -702,7 +835,7 @@ export declare class CotalEndpoint extends EventEmitter {
702
835
  */
703
836
  provisionDmInbox(owner: string, actor: string, lifecycleUid: string): Promise<void>;
704
837
  /** Idempotent-PER-LIFECYCLE create of a `dm_<o>-<a>-<uid>` durable with its ACTIVATION FRONTIER
705
- * (SPEC :467). Info-first: an existing durable (a manager-restart re-provision of the SAME uid, or
838
+ * (SPEC §8). Info-first: an existing durable (a manager-restart re-provision of the SAME uid, or
706
839
  * the same lifecycle's own restart) is kept as-is, preserving the ORIGINAL frontier — the
707
840
  * activation moment never moves. A fresh lifecycle captures the DM stream's current `last_seq` and
708
841
  * starts delivery at frontier+1, so a same-alias successor inherits none of the predecessor's
@@ -808,6 +941,16 @@ export declare class CotalEndpoint extends EventEmitter {
808
941
  /** Renew THIS instance's held key (CAS update against `revision`) before the bucket TTL expires it.
809
942
  * Throws if the revision moved (lost the lease). Returns the new revision. */
810
943
  renewManagerLease(info: Omit<ManagerLeaseInfo, "since">, revision: number): Promise<number>;
944
+ /** Read THIS instance's OWN lease key, keyed (not the `lease.*` sweep {@link readManagerLease} does).
945
+ *
946
+ * `undefined` means the key IS NOT THERE — a definite absence, established by a completed read.
947
+ * A read that could not be completed THROWS instead, so a caller can tell "it is gone" from "I could
948
+ * not find out". That distinction is the whole point of the method: a renew that got no answer has
949
+ * proved nothing, and only a definite answer here may be acted on. */
950
+ readOwnManagerLease(instanceId: string): Promise<{
951
+ info: ManagerLeaseInfo;
952
+ revision: number;
953
+ } | undefined>;
811
954
  /** Release THIS instance's key on clean shutdown so a same-id restart re-acquires immediately. CAS-guarded
812
955
  * by `revision`: if we already LOST it (renew gap) the stored revision has moved, the conditional delete
813
956
  * no-ops. Keyed per instance, so a release NEVER touches a sibling manager's key (security pin 6). */
@@ -889,6 +1032,7 @@ export declare class CotalEndpoint extends EventEmitter {
889
1032
  reloadMembershipCreds?: (expected?: string) => Promise<unknown>;
890
1033
  evictPrincipal?: (principal: string) => Promise<unknown>;
891
1034
  planeConnLiveness?: (query: unknown) => Promise<unknown>;
1035
+ principalLiveness?: (principal: string) => Promise<unknown>;
892
1036
  }): Promise<void>;
893
1037
  /** Serve one runtime durable-membership control request (the server-side delivery daemon). The caller
894
1038
  * id is the authenticated subject sender ({@link serveControl} fail-closes on a mismatch). Validation
@@ -1152,6 +1296,26 @@ interface AuthOpts {
1152
1296
  * "service down". Unwraps a wrapped `cause` and falls back to the server's error text, since
1153
1297
  * a denied publish can surface either as the typed error or inside a request rejection. */
1154
1298
  export declare function isPermissionDenied(e: unknown): boolean;
1299
+ /** True ONLY for a denial on a **publish** — the single case that proves the message was never
1300
+ * ACCEPTED or stored. (Not "never reached the server": the server necessarily received enough of
1301
+ * it to reject it. The distinction matters precisely here, because this helper exists to separate
1302
+ * provably-not-stored from possibly-stored, and the looser phrasing overstates the very thing
1303
+ * being measured.) {@link isPermissionDenied} deliberately does not look at the operation: it exists to
1304
+ * separate "denied" from "service down", and that answer is the same either way. The operation
1305
+ * matters enormously to a caller that reports *delivery*, because a JetStream publish is
1306
+ * request/PubAck and the subscription half is the reply inbox — a denial THERE rejects
1307
+ * `js.publish()` while the stream may already hold the message. Verified against a live broker: a
1308
+ * user allowed to publish but denied its `_INBOX` subscription got
1309
+ * `Permissions Violation for Subscription to "_INBOX.….*"` back from `js.publish()`, and an
1310
+ * unrestricted observer then read `messages: 1` off the stream.
1311
+ *
1312
+ * Note what is deliberately NOT accepted: the untyped text fallback above. A permission-shaped
1313
+ * message string carries no operation, so it cannot prove non-delivery, and guessing "publish"
1314
+ * from wording would reintroduce exactly the false certainty this exists to prevent. Anything not
1315
+ * provably a publish denial is unknown, and a caller reporting delivery must fail toward
1316
+ * "I could not confirm" rather than toward "it did not happen" — the costly mistake is telling
1317
+ * someone to re-send a message that was in fact stored. */
1318
+ export declare function isPublishPermissionDenied(e: unknown): boolean;
1155
1319
  /** Whether a NATS server is *running* at `servers`. With NO creds this is a SILENT plaintext
1156
1320
  * liveness check ({@link tcpInfoProbe}): it reads the server's pre-auth `INFO` greeting and closes
1157
1321
  * WITHOUT authenticating, so a live broker (open OR auth — INFO precedes auth) returns true while