@cotal-ai/core 0.85.0 → 0.87.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 (204) hide show
  1. package/dist/agent-file.d.ts.map +1 -1
  2. package/dist/agent-file.js +10 -3
  3. package/dist/agent-file.js.map +1 -1
  4. package/dist/base64url.d.ts +5 -0
  5. package/dist/base64url.d.ts.map +1 -0
  6. package/dist/base64url.js +14 -0
  7. package/dist/base64url.js.map +1 -0
  8. package/dist/browser-control.d.ts +149 -0
  9. package/dist/browser-control.d.ts.map +1 -0
  10. package/dist/browser-control.js +167 -0
  11. package/dist/browser-control.js.map +1 -0
  12. package/dist/browser-validators-build.d.ts +23 -0
  13. package/dist/browser-validators-build.d.ts.map +1 -0
  14. package/dist/browser-validators-build.js +149 -0
  15. package/dist/browser-validators-build.js.map +1 -0
  16. package/dist/canonical-json.d.ts +14 -0
  17. package/dist/canonical-json.d.ts.map +1 -0
  18. package/dist/canonical-json.js +121 -0
  19. package/dist/canonical-json.js.map +1 -0
  20. package/dist/canonical.d.ts +2 -10
  21. package/dist/canonical.d.ts.map +1 -1
  22. package/dist/canonical.js +2 -108
  23. package/dist/canonical.js.map +1 -1
  24. package/dist/channels.d.ts +4 -0
  25. package/dist/channels.d.ts.map +1 -1
  26. package/dist/channels.js +6 -2
  27. package/dist/channels.js.map +1 -1
  28. package/dist/checkpoint-answer.d.ts.map +1 -1
  29. package/dist/checkpoint-answer.js +3 -4
  30. package/dist/checkpoint-answer.js.map +1 -1
  31. package/dist/connector-setup.d.ts +10 -1
  32. package/dist/connector-setup.d.ts.map +1 -1
  33. package/dist/digest-id.d.ts +4 -0
  34. package/dist/digest-id.d.ts.map +1 -0
  35. package/dist/digest-id.js +7 -0
  36. package/dist/digest-id.js.map +1 -0
  37. package/dist/endpoint-action.d.ts +2 -2
  38. package/dist/endpoint-action.d.ts.map +1 -1
  39. package/dist/endpoint-action.js +6 -44
  40. package/dist/endpoint-action.js.map +1 -1
  41. package/dist/endpoint-auth-digest.d.ts +7 -0
  42. package/dist/endpoint-auth-digest.d.ts.map +1 -0
  43. package/dist/endpoint-auth-digest.js +13 -0
  44. package/dist/endpoint-auth-digest.js.map +1 -0
  45. package/dist/endpoint-call.d.ts +176 -0
  46. package/dist/endpoint-call.d.ts.map +1 -0
  47. package/dist/endpoint-call.js +490 -0
  48. package/dist/endpoint-call.js.map +1 -0
  49. package/dist/endpoint-caller.d.ts +113 -0
  50. package/dist/endpoint-caller.d.ts.map +1 -0
  51. package/dist/endpoint-caller.js +260 -0
  52. package/dist/endpoint-caller.js.map +1 -0
  53. package/dist/endpoint-checkpoint.d.ts.map +1 -1
  54. package/dist/endpoint-checkpoint.js +5 -14
  55. package/dist/endpoint-checkpoint.js.map +1 -1
  56. package/dist/endpoint-envelope.d.ts +0 -6
  57. package/dist/endpoint-envelope.d.ts.map +1 -1
  58. package/dist/endpoint-envelope.js +17 -18
  59. package/dist/endpoint-envelope.js.map +1 -1
  60. package/dist/endpoint-goal-follow.d.ts +37 -0
  61. package/dist/endpoint-goal-follow.d.ts.map +1 -0
  62. package/dist/endpoint-goal-follow.js +328 -0
  63. package/dist/endpoint-goal-follow.js.map +1 -0
  64. package/dist/endpoint-grants.d.ts +0 -4
  65. package/dist/endpoint-grants.d.ts.map +1 -1
  66. package/dist/endpoint-grants.js +1 -7
  67. package/dist/endpoint-grants.js.map +1 -1
  68. package/dist/endpoint-guard.d.ts.map +1 -1
  69. package/dist/endpoint-guard.js +2 -10
  70. package/dist/endpoint-guard.js.map +1 -1
  71. package/dist/endpoint-invoke.d.ts +37 -143
  72. package/dist/endpoint-invoke.d.ts.map +1 -1
  73. package/dist/endpoint-invoke.js +60 -605
  74. package/dist/endpoint-invoke.js.map +1 -1
  75. package/dist/endpoint-publish-denial.d.ts +1 -1
  76. package/dist/endpoint-publish-denial.d.ts.map +1 -1
  77. package/dist/endpoint-publish-denial.js +1 -1
  78. package/dist/endpoint-publish-denial.js.map +1 -1
  79. package/dist/endpoint-receipt.d.ts.map +1 -1
  80. package/dist/endpoint-receipt.js +2 -16
  81. package/dist/endpoint-receipt.js.map +1 -1
  82. package/dist/endpoint-signing.d.ts +1 -1
  83. package/dist/endpoint-signing.d.ts.map +1 -1
  84. package/dist/endpoint-signing.js +1 -1
  85. package/dist/endpoint-signing.js.map +1 -1
  86. package/dist/endpoint-subjects.d.ts +4 -0
  87. package/dist/endpoint-subjects.d.ts.map +1 -1
  88. package/dist/endpoint-subjects.js +6 -0
  89. package/dist/endpoint-subjects.js.map +1 -1
  90. package/dist/endpoint-traits.d.ts.map +1 -1
  91. package/dist/endpoint-traits.js +3 -20
  92. package/dist/endpoint-traits.js.map +1 -1
  93. package/dist/endpoint-verbs.d.ts +18 -151
  94. package/dist/endpoint-verbs.d.ts.map +1 -1
  95. package/dist/endpoint-verbs.js +4 -500
  96. package/dist/endpoint-verbs.js.map +1 -1
  97. package/dist/endpoint-work.d.ts.map +1 -1
  98. package/dist/endpoint-work.js +2 -17
  99. package/dist/endpoint-work.js.map +1 -1
  100. package/dist/endpoint.d.ts +113 -24
  101. package/dist/endpoint.d.ts.map +1 -1
  102. package/dist/endpoint.js +330 -78
  103. package/dist/endpoint.js.map +1 -1
  104. package/dist/goal-result-fact.d.ts +13 -0
  105. package/dist/goal-result-fact.d.ts.map +1 -0
  106. package/dist/goal-result-fact.js +40 -0
  107. package/dist/goal-result-fact.js.map +1 -0
  108. package/dist/index.d.ts +5 -0
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +5 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/issued-accepted.d.ts +27 -0
  113. package/dist/issued-accepted.d.ts.map +1 -0
  114. package/dist/issued-accepted.js +62 -0
  115. package/dist/issued-accepted.js.map +1 -0
  116. package/dist/issued-authority.d.ts +3 -18
  117. package/dist/issued-authority.d.ts.map +1 -1
  118. package/dist/issued-authority.js +4 -55
  119. package/dist/issued-authority.js.map +1 -1
  120. package/dist/jetstream-missing.d.ts +4 -0
  121. package/dist/jetstream-missing.d.ts.map +1 -1
  122. package/dist/jetstream-missing.js +6 -0
  123. package/dist/jetstream-missing.js.map +1 -1
  124. package/dist/kv-scan.d.ts +15 -0
  125. package/dist/kv-scan.d.ts.map +1 -1
  126. package/dist/kv-scan.js +32 -0
  127. package/dist/kv-scan.js.map +1 -1
  128. package/dist/launch-material.d.ts.map +1 -1
  129. package/dist/launch-material.js +6 -2
  130. package/dist/launch-material.js.map +1 -1
  131. package/dist/lease.d.ts +50 -0
  132. package/dist/lease.d.ts.map +1 -1
  133. package/dist/lease.js +71 -0
  134. package/dist/lease.js.map +1 -1
  135. package/dist/lifecycle-state.d.ts +3 -0
  136. package/dist/lifecycle-state.d.ts.map +1 -1
  137. package/dist/lifecycle-state.js +7 -0
  138. package/dist/lifecycle-state.js.map +1 -1
  139. package/dist/manager-caller.d.ts.map +1 -1
  140. package/dist/manager-caller.js +2 -1
  141. package/dist/manager-caller.js.map +1 -1
  142. package/dist/one-line.d.ts +6 -0
  143. package/dist/one-line.d.ts.map +1 -0
  144. package/dist/one-line.js +8 -0
  145. package/dist/one-line.js.map +1 -0
  146. package/dist/peer-label.d.ts +16 -0
  147. package/dist/peer-label.d.ts.map +1 -0
  148. package/dist/peer-label.js +15 -0
  149. package/dist/peer-label.js.map +1 -0
  150. package/dist/permission-denied.d.ts +8 -0
  151. package/dist/permission-denied.d.ts.map +1 -0
  152. package/dist/permission-denied.js +15 -0
  153. package/dist/permission-denied.js.map +1 -0
  154. package/dist/presence-text.d.ts +6 -0
  155. package/dist/presence-text.d.ts.map +1 -0
  156. package/dist/presence-text.js +25 -0
  157. package/dist/presence-text.js.map +1 -0
  158. package/dist/private-tool-results.d.ts +253 -0
  159. package/dist/private-tool-results.d.ts.map +1 -0
  160. package/dist/private-tool-results.js +141 -0
  161. package/dist/private-tool-results.js.map +1 -0
  162. package/dist/provision.d.ts +5 -0
  163. package/dist/provision.d.ts.map +1 -1
  164. package/dist/provision.js +40 -16
  165. package/dist/provision.js.map +1 -1
  166. package/dist/remote-manager-authority.d.ts +17 -0
  167. package/dist/remote-manager-authority.d.ts.map +1 -1
  168. package/dist/remote-manager-authority.js +40 -1
  169. package/dist/remote-manager-authority.js.map +1 -1
  170. package/dist/resolve.d.ts +2 -13
  171. package/dist/resolve.d.ts.map +1 -1
  172. package/dist/resolve.js +2 -12
  173. package/dist/resolve.js.map +1 -1
  174. package/dist/run-driver-grants.d.ts +5 -0
  175. package/dist/run-driver-grants.d.ts.map +1 -1
  176. package/dist/run-driver-grants.js +16 -4
  177. package/dist/run-driver-grants.js.map +1 -1
  178. package/dist/run-journal.d.ts.map +1 -1
  179. package/dist/run-journal.js +1 -6
  180. package/dist/run-journal.js.map +1 -1
  181. package/dist/run-migration.d.ts +21 -0
  182. package/dist/run-migration.d.ts.map +1 -1
  183. package/dist/run-migration.js +2 -27
  184. package/dist/run-migration.js.map +1 -1
  185. package/dist/run-notice.d.ts +20 -0
  186. package/dist/run-notice.d.ts.map +1 -1
  187. package/dist/run-notice.js +3 -28
  188. package/dist/run-notice.js.map +1 -1
  189. package/dist/schema-bounds.d.ts +24 -0
  190. package/dist/schema-bounds.d.ts.map +1 -0
  191. package/dist/schema-bounds.js +74 -0
  192. package/dist/schema-bounds.js.map +1 -0
  193. package/dist/schema-profile.d.ts +11 -24
  194. package/dist/schema-profile.d.ts.map +1 -1
  195. package/dist/schema-profile.js +16 -73
  196. package/dist/schema-profile.js.map +1 -1
  197. package/dist/subjects.d.ts +17 -0
  198. package/dist/subjects.d.ts.map +1 -1
  199. package/dist/subjects.js +30 -2
  200. package/dist/subjects.js.map +1 -1
  201. package/dist/turn-contract.d.ts.map +1 -1
  202. package/dist/turn-contract.js +14 -4
  203. package/dist/turn-contract.js.map +1 -1
  204. package/package.json +14 -1
@@ -1,505 +1,9 @@
1
- /**
2
- * v0.4 caller-side verbs (SPEC §13.5 "Verbs", §13.2 rails, §13.3 envelope) — call, cast, watch,
3
- * and scatter over the endpoint rails. The verb never changes the subject grammar (§13.2): a
4
- * call and a cast publish the same request form; the verb rides `replyExpected`, and only the
5
- * §13.5 gather semantics differ.
6
- *
7
- * Boundary discipline mirrors the serve side: args validate against the COMPILED input contract
8
- * before publish (a caller never emits a request its own contract refuses), the pinned
9
- * invocation digests are DERIVED from each contract's closure digest, and every consumed reply
10
- * or event is runtime-validated at this, its consuming boundary (§13.3) — subject-attributed
11
- * (instance + epoch from the SUBJECT, never the body), id-echoed, and schema-checked under the
12
- * same fixed §13.8 budget the responder ran. Journal-class work never rides these rails: the
13
- * verbs pin `class: "ephemeral"`; submissions go through the `epj` journal machinery (§13.4).
14
- */
15
- import { randomBytes } from "node:crypto";
16
- import { openPublishDenialWatch } from "./endpoint-publish-denial.js";
17
1
  import { spacePrefix } from "./subjects.js";
18
- import { epRequestSubject, parseEpSubject, callerRailTokens, epPlaneTokens, assertIdToken, assertLifecycleToken, assertBoundedOwner, } from "./endpoint-subjects.js";
19
- import { EpEnvelopeError, EP_UNBOUND_RESPONDER, EP_UNANSWERED, EP_REGISTRY_READ_FAILED, EP_UNDECLARED_ARG, EP_BIND_REFUSED, registryReadFailed, bindRefusalMarked, parseEndpointReply, parseEndpointEvent, assertArgsValid, assertOutputValid, } from "./endpoint-envelope.js";
2
+ import { parseEpSubject, assertLifecycleToken } from "./endpoint-subjects.js";
3
+ import { EpEnvelopeError, registryReadFailed, parseEndpointEvent } from "./endpoint-envelope.js";
20
4
  import { freezeExpectedSet, registrationReconciler, serviceEpochReader } from "./endpoint-service.js";
21
- const nonce = () => randomBytes(24).toString("base64url"); // 32 tokens of [A-Za-z0-9_-], 192 bits
22
- function subjectTarget(t) {
23
- if (t.mode === "self")
24
- return { mode: "self" };
25
- if (t.mode === "handle" || t.mode === "exact")
26
- return { mode: t.mode, tOwner: t.owner, tActor: t.actor, tUid: t.lifecycleUid };
27
- return { mode: t.mode, tOwner: t.owner };
28
- }
29
- function bodyTarget(t) {
30
- if (t.mode === "self")
31
- return undefined;
32
- return {
33
- owner: assertBoundedOwner(t.owner, "target owner"),
34
- actor: t.actor,
35
- lifecycleUid: assertLifecycleToken(t.lifecycleUid, "target lifecycleUid"),
36
- ...(t.mappingRevision !== undefined ? { mappingRevision: t.mappingRevision } : {}),
37
- };
38
- }
39
- function buildRequest(space, route, op, verb) {
40
- // §13.7: the caller's own contract gates the args BEFORE publish — the same validator and the
41
- // same budget the responder runs, so a request this boundary admits pins digests the
42
- // responder can honor or reject, never digests detached from the payload. The args are gated as
43
- // the responder will parse them: JSON drops a key whose value is undefined, and validating the
44
- // object itself refused, against an older responder's closed contract, a key that never reaches it.
45
- let args;
46
- try {
47
- args = op.args === undefined ? undefined : JSON.parse(JSON.stringify(op.args));
48
- }
49
- catch (e) {
50
- // A value JSON cannot carry (a BigInt, a cycle, a throwing toJSON) is malformed args that never
51
- // left this caller: a `not-executed` refusal like the contract check below, never an unknown outcome.
52
- throw new EpEnvelopeError("bad-request", `args cannot be sent as JSON: ${e instanceof Error ? e.message : String(e)}`, undefined, "not-executed");
53
- }
54
- try {
55
- assertArgsValid(op.contract.input.validate, args);
56
- }
57
- catch (e) {
58
- if (!(e instanceof EpEnvelopeError))
59
- throw e;
60
- // Nothing was published, so the refusal is `not-executed` (§13.3). A key the contract does not
61
- // declare is marked, so a surface that knows both builds can name the version skew.
62
- const property = op.contract.input.validate.errors?.[0]?.params?.additionalProperty;
63
- throw new EpEnvelopeError(e.code, e.message, typeof property === "string" ? [{ kind: EP_UNDECLARED_ARG, property }] : undefined, "not-executed");
64
- }
65
- // The responder refuses these too (§13.3), but a caller that would emit an unservable request
66
- // should not have to learn it from a round trip: `describe` is what produces a bind, and a
67
- // scatter addresses every incarnation, so neither can carry one.
68
- if (op.bind !== undefined) {
69
- if (op.command === "describe")
70
- throw new EpEnvelopeError("bad-request", "describe carries no bind: it is the bootstrap that produces one (SPEC 13.3)");
71
- if (route.mode === "all")
72
- throw new EpEnvelopeError("bad-request", "a scatter addresses every incarnation; a bind would make every member but one refuse (SPEC 13.5)");
73
- if (route.mode === "inst" && op.bind.instanceId !== route.instanceId)
74
- throw new EpEnvelopeError("bad-request", `bind.instanceId "${op.bind.instanceId}" contradicts the inst-rail route's instance "${route.instanceId}" (SPEC 13.2)`);
75
- }
76
- const n = nonce();
77
- const subject = epRequestSubject(space, {
78
- route, endpoint: op.endpoint, command: op.command,
79
- ...(op.target ? { target: subjectTarget(op.target) } : {}),
80
- caller: op.caller, nonce: n,
81
- });
82
- const requestId = op.id !== undefined ? assertIdToken(op.id, "pinned envelope id") : nonce();
83
- const env = {
84
- v: 1,
85
- id: requestId,
86
- op: {
87
- endpoint: op.endpoint,
88
- command: op.command,
89
- inputDigest: op.contract.input.closureDigest,
90
- outputDigest: op.contract.output.closureDigest,
91
- },
92
- class: "ephemeral", // journal work rides epj submissions, never a rail verb (§13.4/§13.5)
93
- replyExpected: verb.replyExpected,
94
- ...(op.goalId !== undefined ? { goalId: op.goalId } : {}),
95
- ...(op.target && op.target.mode !== "self" ? { target: bodyTarget(op.target) } : {}),
96
- ...(op.bind !== undefined ? { bind: { instanceId: assertLifecycleToken(op.bind.instanceId, "bind instanceId"), epoch: op.bind.epoch } } : {}),
97
- ...(args !== undefined ? { args } : {}),
98
- from: { id: `${op.caller.owner}.${op.caller.actor}`, name: op.name ?? op.caller.actor },
99
- ...(verb.deadlineMs !== undefined ? { deadlineMs: verb.deadlineMs } : {}),
100
- ...(op.correlation !== undefined ? { correlation: op.correlation } : {}),
101
- ...(op.auth !== undefined ? { auth: op.auth } : {}),
102
- };
103
- return { subject, requestId, n, body: new TextEncoder().encode(JSON.stringify(env)) };
104
- }
105
- // Node clamps a `setTimeout` delay beyond 2^31-1 ms (~24.8 days) to 1ms, so an over-large deadline
106
- // would fire IMMEDIATELY (an unbounded budget masquerading as a huge one). Bound every budget to the
107
- // timer range so the deadline the caller passes is the deadline the timer honors.
108
- const MAX_TIMER_MS = 2_147_483_647;
109
- function assertDeadline(deadlineMs, what = "deadlineMs") {
110
- if (!Number.isSafeInteger(deadlineMs) || deadlineMs <= 0 || deadlineMs > MAX_TIMER_MS)
111
- throw new EpEnvelopeError("bad-request", `${what} ${deadlineMs} must be a positive budget within the timer bound ${MAX_TIMER_MS}ms (SPEC 13.3: bounded, never unbounded; a larger setTimeout clamps to 1ms)`);
112
- return deadlineMs;
113
- }
114
- /** A NATS "no responders" control message: the broker answered that the request subject had zero
115
- * subscribers (SPEC 13.5: no responder → unavailable), delivered to the publish reply-to as an empty
116
- * message with a 503 status header — distinct from a responder that exists but missed the deadline.
117
- * A responder CAN attach a 503 header to its own reply, so this header alone is not proof of broker
118
- * authorship: callers must trust it ONLY on the reserved no-responders sentinel subject (which carries
119
- * no responder publish grant), never on a normal reply subject. */
120
- function isNoRespondersMsg(msg) {
121
- const h = msg.headers;
122
- return h != null && (h.code === 503 || h.status === "503");
123
- }
124
- /**
125
- * Ask the BROKER whether one instance still holds a subscription on its own `inst` rail (§13.2).
126
- *
127
- * A serving incarnation subscribes `ep.inst.<endpoint>.<instanceId>.<command>.>` for every command
128
- * it serves, so a request published there with a reply-to only the broker can reach either draws
129
- * the broker's no-responders 503 — an affirmative statement that this instance holds no
130
- * subscription — or draws nothing at all.
131
- *
132
- * NOTHING IS `unknown` BUT A REFUSED PUBLISH, AND NOTHING IS EVER DEATH. A slow broker, a responder
133
- * that receives the request and declines to answer, and a perfectly healthy instance are
134
- * indistinguishable from here, and every one of them must keep the caller waiting. A REFUSED
135
- * PUBLISH IS THE ONE EXCEPTION, and it is a refusal rather than a verdict: `nc.publish` returns
136
- * normally on a violation, so the permission watch (see {@link openPublishDenialWatch}, registered
137
- * before the publish and released in the `finally`) races the budget and settles the probe
138
- * `permission-denied` naming the refused subject as soon as the connection reports it — never a
139
- * silent `unknown` that consumes the full budget on a permission problem. The failure direction is
140
- * otherwise the whole safety argument: because only a 503 says anything, a short probe budget can
141
- * never turn a live instance into a fast `missing` — it can only fail to speed up a dead one.
142
- *
143
- * It rides `describe` because §13.7 makes every endpoint serve it and it carries no effect, and it
144
- * rides as a CAST: the verdict comes from the transport, not from an answer, so nothing is read and
145
- * an instance whose describe is broken still reads as present.
146
- */
147
- export async function epProbeInstanceInterest(nc, space, endpoint, instanceId, caller, opts) {
148
- const deadlineMs = assertDeadline(opts.deadlineMs);
149
- const iId = assertLifecycleToken(instanceId, "instanceId");
150
- const n = nonce();
151
- const subject = epRequestSubject(space, { route: { mode: "inst", instanceId: iId }, endpoint, command: "describe", caller, nonce: n });
152
- const env = {
153
- v: 1, id: nonce(), op: { endpoint, command: "describe" }, class: "ephemeral",
154
- replyExpected: false, from: { id: `${caller.owner}.${caller.actor}`, name: caller.actor },
155
- };
156
- // The SAME reserved sentinel `epCall` uses, for the same reason: no responder holds a publish
157
- // grant for the `_nr._nr._nr` reply subject (§13.9), so a 503 arriving there is the broker's own
158
- // control frame and cannot be forged by a recipient that knows the nonce.
159
- const noRespReplyTo = noRespondersReplyTo(space, caller, n);
160
- // REGISTER THE PERMISSION WATCH BEFORE THE PUBLISH IT IS WATCHING, and race it against the
161
- // budget: a refused publish that expired into `unknown` would read a permission problem as "no
162
- // verdict" and pay the full budget for it — the exact slow masquerade the watch exists to end.
163
- const denialWatch = openPublishDenialWatch(nc, subject, () => new EpEnvelopeError("permission-denied", `the liveness probe for ${endpoint}.${iId} was REFUSED BY THE BROKER, not unanswered: this caller's credential does not authorize publishing to "${subject}" (the instance rail for ${iId}). The instance may be perfectly healthy; the grant is what is missing (SPEC 13.2)`), "probe");
164
- let sub;
165
- let timer;
166
- try {
167
- const verdict = new Promise((resolve) => {
168
- timer = setTimeout(() => resolve("unknown"), deadlineMs);
169
- // A PROBE MUST NEVER BE THE REASON A PROCESS IS STILL RUNNING. Against a LIVE instance no
170
- // answer ever comes back — the request is a cast and §13.5 forbids the responder replying to
171
- // one — so this timer runs its full budget on every healthy instance, every time. Wired into
172
- // `cotal ps` that was measured at 4.0 extra seconds AFTER the last row was printed (12.8s
173
- // with the probe against 8.8s without it, on a healthy two-manager mesh): the gather had long
174
- // since finished, and the only verdict that changes anything is `gone`, which a caller who
175
- // has already gathered can no longer use. Unref makes the timer stop holding the loop open
176
- // WITHOUT changing the probe: it still settles `unknown` at the budget for anyone still
177
- // waiting on it, because the connection this needs is itself an open handle, and a caller
178
- // still using that connection is therefore still running.
179
- timer.unref?.();
180
- sub = nc.subscribe(noRespReplyTo, {
181
- callback: (err, msg) => { resolve(err === null && isNoRespondersMsg(msg) ? "gone" : "unknown"); },
182
- });
183
- nc.publish(subject, new TextEncoder().encode(JSON.stringify(env)), { reply: noRespReplyTo });
184
- });
185
- // The refusal settles the probe INSTEAD of the budget: raced here, it rejects the await as the
186
- // thrown `permission-denied` before the deadline can resolve `unknown`. When the 503 or the
187
- // budget settles first, the finally below releases the watch and a refusal never observed by
188
- // anyone is never raised.
189
- return await Promise.race([verdict, denialWatch.denied]);
190
- }
191
- finally {
192
- sub?.unsubscribe();
193
- if (timer !== undefined)
194
- clearTimeout(timer);
195
- denialWatch.release();
196
- }
197
- }
198
- /** Race a caller-supplied read against a bounded budget so a never-settling hook cannot exceed the
199
- * operation deadline (SPEC 13.5: deadline mandatory). Clears its timer on either outcome. */
200
- async function raceBounded(read, ms, what, details) {
201
- let t;
202
- try {
203
- return await Promise.race([
204
- (async () => read())(),
205
- new Promise((_, reject) => { t = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `${what} did not settle within the ${ms}ms budget (SPEC 13.5)`, details)), ms); }),
206
- ]);
207
- }
208
- finally {
209
- if (t !== undefined)
210
- clearTimeout(t);
211
- }
212
- }
213
- /** The {@link EP_UNANSWERED} detail for `op`: set ONLY where this module observed that nothing
214
- * answered (the broker's no-responders control frame, or the reply deadline elapsing). */
215
- const unansweredDetail = (op) => ({ kind: EP_UNANSWERED, endpoint: op.endpoint, command: op.command, rail: epPlaneTokens(op.caller).join(".") });
216
- /** The {@link EP_REGISTRY_READ_FAILED} detail for `op`: set where the scatter's OWN registry read
217
- * (freeze or reconcile) failed, so the failure is never read as the responders' silence. */
218
- const registryReadDetail = (op) => ({ kind: EP_REGISTRY_READ_FAILED, endpoint: op.endpoint, command: op.command });
219
- /** The caller's per-request reply subscription: its own rail narrowed to exactly this request's
220
- * nonce (contained in the §13.9 reply-read grant), so concurrent calls never see each other. */
221
- function replySubjectFor(space, caller, n) {
222
- return `${spacePrefix(space)}.${epPlaneTokens(caller).join(".")}.reply.*.*.*.${callerRailTokens(caller).join(".")}.${n}`;
223
- }
224
- /** The reserved no-responders sentinel on the caller's OWN rail (SPEC 13.5/13.9): no responder
225
- * holds a publish grant for `_nr._nr._nr`, so only the broker's control frame reaches it. On the
226
- * versioned rail the sentinel carries the generation too, inside the caller's read filter. */
227
- function noRespondersReplyTo(space, caller, n) {
228
- return `${spacePrefix(space)}.${epPlaneTokens(caller).join(".")}.reply._nr._nr._nr.${callerRailTokens(caller).join(".")}.${n}`;
229
- }
230
- /** The stale-epoch refusal, worded by DIRECTION and by what the caller's reference epoch IS, and
231
- * carrying the {@link EP_UNBOUND_RESPONDER} marker. Both rails reach it after an ATTRIBUTED reply:
232
- * the responder received the request and answered it, at an epoch other than the caller's reference.
233
- * The reference has two meanings, and the message must not lend one caller's meaning to the other:
234
- * - `bind`: the epoch this caller's own resolve bound (the `inst` rail's pinned epoch, or the
235
- * describe-bound default on `one`). `answered > held` means a SUCCESSOR of the bound incarnation
236
- * answered (a same-root restart, or a supersession): the caller's handle is the stale side, and
237
- * re-resolving adopts the successor. `answered < held` means a superseded incarnation still
238
- * connected answered, and its reply is what is rejected.
239
- * - `registry`: a currency read of the responder's CURRENT registered epoch (epCall's documented
240
- * `currentEpoch` contract, {@link serviceEpochReader}). Nothing of the caller's is stale here:
241
- * `answered > current` means the read lags a restart, `answered < current` a superseded
242
- * incarnation still answering.
243
- * Either way the marker says what the code alone cannot: a retry is a second attempt. The kind is
244
- * explicit rather than inferred because a single wording names the wrong stale side on one of the
245
- * two paths, whichever meaning it picks. */
246
- function staleEpochRefusal(op, responder, held, reference, rail) {
247
- const who = `the ${op.endpoint} instance ${responder.instanceId}`;
248
- const ahead = responder.epoch > held;
249
- const situation = reference === "bind"
250
- ? (ahead
251
- ? `${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`
252
- : `${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`)
253
- : (ahead
254
- ? `${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`
255
- : `${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`);
256
- const detail = {
257
- kind: EP_UNBOUND_RESPONDER, endpoint: op.endpoint, command: op.command, answeredBy: responder.instanceId,
258
- ...(reference === "bind" ? { boundTo: responder.instanceId } : {}),
259
- answeredEpoch: responder.epoch, heldEpoch: held, reference, pinned: rail === "inst",
260
- };
261
- 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]);
262
- }
263
- function parseAttributedReply(space, subject, data, requestId, op, expect) {
264
- const parsed = parseEpSubject(subject);
265
- if (!parsed || parsed.plane !== "reply")
266
- throw new EpEnvelopeError("internal", `a message on the caller's reply rail does not parse as a reply subject: ${subject}`);
267
- // SPEC §13.2: ACCEPTANCE binds the subject-borne attribution to the INVOKED identity.
268
- // Reading the endpoint/instance/epoch off the subject is not the same as checking them against the
269
- // invocation: a truthfully-attributed reply from a DIFFERENT endpoint (or a stale/other instance)
270
- // is not the requested responder, and nonce possession is addressing, not authorization. A stale
271
- // process "publishes attributably stale replies that callers reject" — so the caller rejects here.
272
- if (parsed.endpoint !== op.endpoint)
273
- throw new EpEnvelopeError("internal", `reply endpoint "${parsed.endpoint}" is not the invoked endpoint "${op.endpoint}" (SPEC 13.2: the caller binds a reply to the requested identity, never trusts the subject alone)`);
274
- if (expect?.instanceId !== undefined && parsed.instanceId !== expect.instanceId)
275
- throw new EpEnvelopeError("internal", `reply instance "${parsed.instanceId}" is not the addressed instance "${expect.instanceId}" (SPEC 13.2)`);
276
- if (expect?.epoch !== undefined && parsed.epoch !== expect.epoch)
277
- throw staleEpochRefusal(op, { instanceId: parsed.instanceId, epoch: parsed.epoch }, expect.epoch, "bind", "inst");
278
- // §13.3: an unparseable body is THIS boundary's own structured refusal — the documented catalog
279
- // (`internal`) holds; a raw SyntaxError must never escape the verb (the watch path already wraps
280
- // its decode the same way).
281
- let rawBody;
282
- try {
283
- rawBody = JSON.parse(new TextDecoder().decode(data));
284
- }
285
- catch (e) {
286
- throw new EpEnvelopeError("internal", `the reply body on the caller's rail is not JSON (${e instanceof Error ? e.message : String(e)}); an unparseable reply is a responder bug surfaced as the caller boundary's structured refusal (SPEC 13.3)`);
287
- }
288
- const reply = parseEndpointReply(rawBody);
289
- if (reply.id !== requestId)
290
- throw new EpEnvelopeError("internal", `reply id "${reply.id}" does not echo the request id "${requestId}" on its nonce-scoped rail (SPEC 13.3)`);
291
- // §13.3: a success payload validates against the pinned output contract at ITS consuming
292
- // boundary, under the same fixed budget; the responder's bug never parses as caller success.
293
- if (reply.ok)
294
- assertOutputValid(op.contract.output.validate, reply.data);
295
- return { reply, responder: { endpoint: parsed.endpoint, instanceId: parsed.instanceId, epoch: parsed.epoch } };
296
- }
297
- // ---- call (§13.5: request/reply, deadline-bounded) ----------------------------------------------
298
- /**
299
- * Call one command and await its reply within `deadlineMs`: on the `one` (queue-group anycast) or
300
- * `inst` (stable incarnation) rail with `replyExpected: true`, subscribe the caller's own
301
- * nonce-scoped reply subject BEFORE publishing, and resolve the first attributed reply — BOUND to
302
- * the invoked identity (§13.2, the stale-reply rejection rule: "callers reject" stale-process replies), on BOTH rails:
303
- * - `inst` pins the addressed `(instanceId, epoch)` incarnation up front; a stale-epoch reply is
304
- * `expired` and a wrong-instance reply `internal`.
305
- * - `one` cannot pin an instance up front (the queue picks the responder), so the caller MUST supply
306
- * `currentEpoch(instanceId)`: after the reply lands, the answering incarnation's epoch is checked
307
- * against its current registry epoch, and a superseded-but-still-connected queue member's reply is
308
- * `expired`. The queue winner is NOT implicitly current — that is a check, not an assumption.
309
- * `currencyReference` says what that hook returns, for the refusal's wording and marker: the
310
- * documented `registry` read (default), or `bind` when a caller supplies its own resolve's epoch
311
- * instead (the describe-bound default in {@link invokeCommand}), where a responder ahead of it is
312
- * a successor and the caller's handle is the stale side.
313
- *
314
- * Application-level failure is NOT a throw: the resolved `reply` carries `ok: false` with the
315
- * responder's structured error (§13.3). This boundary throws only for its own refusals: invalid args
316
- * `bad-request`; an unparseable/mis-echoed/mis-attributed reply `internal` (a raw decode error never
317
- * escapes); a throwing `currentEpoch` hook `internal` and a garbled (non-integer/negative) currency
318
- * value `failed-precondition` (the read's own failure, never mislabeled staleness); a stale reply `expired`;
319
- * NO responder `unavailable` (SPEC 13.5, the broker no-responders answer — the broker's no-responders 503 lands on a reply-to that
320
- * sits on THIS caller's own rail, so a manual, fully-disposed probe distinguishes it from a slow
321
- * responder without leaving a lingering request); a failed reply subscription `unavailable`; a
322
- * broker publish violation `permission-denied` naming the refused subject (the connection-status
323
- * watch that keeps a missing GRANT from reading as an unanswered deadline); the elapsed budget
324
- * `deadline-exceeded`. Every subscription, timer, and status watch is released in the `finally`.
325
- */
326
- export async function epCall(nc, space, route, op, opts) {
327
- opts.signal?.throwIfAborted();
328
- const deadlineMs = assertDeadline(opts.deadlineMs);
329
- if (route.mode === "one" && opts.currentEpoch === undefined)
330
- 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)");
331
- const req = buildRequest(space, route, op, { replyExpected: true, deadlineMs });
332
- const expect = route.mode === "inst" ? { instanceId: route.instanceId, epoch: route.epoch } : undefined;
333
- // A no-responders reply-to that lands on THIS caller's OWN rail (within its §13.9 read grant, no
334
- // inbox prefix needed): responders answer on the DERIVED rail, so this sentinel only ever carries
335
- // the broker's no-responders 503, which our rail subscription observes and disposes with everything
336
- // else in the finally — no ghost request/subscription/timer survives a successful call.
337
- const noRespReplyTo = noRespondersReplyTo(space, op.caller, req.n);
338
- const started = Date.now();
339
- let sub;
340
- let timer;
341
- let denialWatch;
342
- let onAbort;
343
- const cancelled = new Promise((_, reject) => {
344
- onAbort = () => reject(new EpEnvelopeError("unavailable", `${op.endpoint}.${op.command} observation cancelled; the request may have executed`, undefined, "unknown"));
345
- opts.signal?.addEventListener("abort", onAbort, { once: true });
346
- });
347
- try {
348
- // Register denial observation before publishing. Keep subscription and publication in the
349
- // same promise executor: a closed/draining connection must not strand a rejected reply wait.
350
- // The broker dropped the publish, so no responder received the command: `not-executed` (§13.3).
351
- denialWatch = openPublishDenialWatch(nc, req.subject, () => new EpEnvelopeError("permission-denied", `the call for ${op.endpoint}.${op.command} was REFUSED BY THE BROKER, not unanswered: this caller's credential does not authorize publishing to "${req.subject}"${route.mode === "inst" ? ` (the instance rail for ${route.instanceId}: an instance-addressed call needs a credential minted with that instance, not a class-rail one)` : ""}. The responder may be perfectly healthy; the grant is what is missing (SPEC 13.2)`, undefined, "not-executed"), "call");
352
- const outcome = new Promise((resolve, reject) => {
353
- sub = nc.subscribe(replySubjectFor(space, op.caller, req.n), {
354
- callback: (err, msg) => {
355
- if (err) {
356
- reject(new EpEnvelopeError("unavailable", `the caller's reply subscription failed: ${err.message}`));
357
- return;
358
- }
359
- // Broker no-responders is authoritative ONLY on the reserved sentinel reply-to: no responder
360
- // holds a publish grant for the `_nr._nr._nr` subject (§13.9), so only the broker's control
361
- // frame reaches it. A 503 status header on a NORMAL responder subject is just a responder
362
- // frame carrying a status line — a recipient knows the nonce and could forge one to
363
- // impersonate transport absence — so it takes the ordinary attributed-reply path below, never
364
- // the broker-control path.
365
- if (msg.subject === noRespReplyTo) {
366
- if (isNoRespondersMsg(msg)) {
367
- reject(new EpEnvelopeError("unavailable", `no responder for ${op.endpoint}.${op.command} (SPEC 13.5)`, [unansweredDetail(op)]));
368
- return;
369
- }
370
- 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`));
371
- return;
372
- }
373
- resolve({ subject: msg.subject, data: msg.data });
374
- },
375
- });
376
- opts.signal?.throwIfAborted();
377
- nc.publish(req.subject, req.body, { reply: noRespReplyTo });
378
- });
379
- 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); });
380
- const msg = await Promise.race([outcome, timeout, denialWatch.denied, cancelled]);
381
- const attributed = parseAttributedReply(space, msg.subject, msg.data, req.requestId, op, expect);
382
- // Taken BEFORE the currency check below, because a responder that fenced on the bind settled
383
- // the same question better: it knows it did not run the command, where the check can only
384
- // observe that the answer came from elsewhere. Returning the refusal keeps it an ordinary
385
- // application-level failure (§13.5) that tells the caller a retry is safe, instead of a throw
386
- // that says nothing about whether the command ran. Cross-checked against the SUBJECT first: a
387
- // reply attributed to the very incarnation the caller bound cannot coherently claim it is not
388
- // that incarnation (§13.3).
389
- // Gated on the marker's PRESENCE, not on the outcome. Whether the caller may act on this
390
- // refusal is a separate question, settled downstream by `replyRefusedBeforeEffect`; whether the
391
- // reply is coherent is settled here, and a reply that omits the outcome is no less obliged to
392
- // agree with its own attribution. Gating both on the same predicate let a refusal buy its way
393
- // out of the checks by leaving a field off.
394
- if (attributed.reply.ok === false && bindRefusalMarked(attributed.reply.error)) {
395
- if (op.bind === undefined)
396
- throw new EpEnvelopeError("internal", `${op.endpoint}.${op.command} replied with a bind refusal to a request that carried no bind`);
397
- const r = attributed.responder;
398
- if (r.instanceId === op.bind.instanceId && r.epoch === op.bind.epoch)
399
- 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)`);
400
- // AND THE REFUSAL MUST BE AN ANSWER TO *THIS* REQUEST, FROM *THIS* RESPONDER. THREE CHECKS ARE
401
- // JOINTLY REQUIRED here — the subject check above, plus `boundTo` and `servedBy` below — and
402
- // removing any one of them accepts a "did not run" the caller cannot derive. A caller acts on
403
- // this marker by re-issuing a command it would otherwise never repeat, so it is checked rather
404
- // than believed: a fence computes it from the request's own bind against its own identity, so
405
- // both halves are DERIVABLE. A `boundTo` that is not the block this request carried was not
406
- // computed from this request; a `servedBy` disagreeing with the reply subject is a body
407
- // contradicting its own attribution. Both are `internal`, not a retry.
408
- const refusal = (attributed.reply.error?.details ?? []).find((d) => d.kind === EP_BIND_REFUSED);
409
- if (refusal === undefined)
410
- 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)`);
411
- if (refusal.boundTo.instanceId !== op.bind.instanceId || refusal.boundTo.epoch !== op.bind.epoch)
412
- 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)`);
413
- if (refusal.servedBy.instanceId !== r.instanceId || refusal.servedBy.epoch !== r.epoch)
414
- 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)`);
415
- return attributed;
416
- }
417
- if (route.mode === "one") {
418
- // §13.2, the stale-reply rejection rule currency for the queue winner, bounded by the REMAINING budget so the whole
419
- // call stays within ONE `deadlineMs` (deliberately NOT a second dedicated budget like scatter's
420
- // `reconcileDeadlineMs`: a call's reply usually arrives well before T, leaving room to verify,
421
- // whereas scatter's gather deterministically eats its whole deadline). The consequence is a
422
- // deliberate disposition: a VALID reply that lands with no budget left to verify currency is
423
- // `deadline-exceeded`, not the reply — the operation could not complete-and-verify within its
424
- // budget. Recorded for the panel's §13.5 reconciliation (dedicated one-rail currency budget?).
425
- const remaining = deadlineMs - (Date.now() - started);
426
- if (remaining <= 0)
427
- throw new EpEnvelopeError("deadline-exceeded", `no budget left to verify the \`one\` responder's currency within ${deadlineMs}ms (SPEC 13.5)`);
428
- // The hook is an untrusted caller-supplied boundary (same class as scatter's reconcile): its
429
- // own throw is normalized into the documented catalog, and its VALUE is runtime-fenced — a
430
- // NaN/garbled epoch compares unequal to any real epoch and would masquerade as staleness
431
- // (`expired`), mislabeling a valid reply; fail loud as the read's own failure instead.
432
- let cur;
433
- try {
434
- cur = await raceBounded(() => opts.currentEpoch(attributed.responder.instanceId), remaining, `the \`one\` currency read for ${op.endpoint}.${op.command}`);
435
- }
436
- catch (e) {
437
- if (e instanceof EpEnvelopeError)
438
- throw e; // the bound's deadline-exceeded, or the hook's own structured refusal
439
- throw new EpEnvelopeError("internal", `the \`one\` currency read threw (${e instanceof Error ? e.message : String(e)}); the documented error catalog holds at this boundary (SPEC 13.3)`);
440
- }
441
- if (!Number.isSafeInteger(cur) || cur < 0)
442
- 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)`);
443
- if (attributed.responder.epoch !== cur)
444
- throw staleEpochRefusal(op, attributed.responder, cur, opts.currencyReference ?? "registry", "one");
445
- }
446
- return attributed;
447
- }
448
- finally {
449
- sub?.unsubscribe();
450
- if (timer !== undefined)
451
- clearTimeout(timer);
452
- denialWatch?.release();
453
- if (onAbort)
454
- opts.signal?.removeEventListener("abort", onAbort);
455
- }
456
- }
457
- // ---- cast (§13.5: at-most-once, never replied) --------------------------------------------------
458
- /**
459
- * Cast one command: the same request form with `replyExpected: false` — the responder never
460
- * replies, even on failure (§13.5 at-most-once), so this resolves once the request is flushed to
461
- * the broker. `deadlineMs` is optional and advisory for `one`/`inst` (the envelope requires it only
462
- * for calls and journal submissions, §13.3), but MANDATORY for `all`: §13.2's
463
- * `checkRequestSubjectAgreement` refuses an all-rail request without a deadline regardless of
464
- * `replyExpected`, and a cast has no reply on which that refusal could surface — so an all-cast
465
- * without a deadline would be silently dropped by every responder. Fail loud at the caller instead.
466
- *
467
- * A broker publish refusal is NOT a flushed cast: `nc.publish` returns normally on a violation, so
468
- * the permission watch (see {@link openPublishDenialWatch}, registered before the publish and
469
- * released in the `finally`) races the flush, and a refused cast settles `permission-denied`
470
- * naming the refused subject as soon as the connection reports it — never a resolution the caller
471
- * could read as "it was cast". Nothing is added to the healthy path: a permitted publish is
472
- * unaffected and the flush round-trip stands as the settling time.
473
- */
474
- export async function epCast(nc, space, route, op, opts = {}) {
475
- if (route.mode === "all" && opts.deadlineMs === undefined)
476
- throw new EpEnvelopeError("bad-request", "an all-rail cast (scatter) requires deadlineMs (SPEC 13.2: checkRequestSubjectAgreement refuses an all request without a deadline; a cast has no reply to carry that refusal, so it would be silently dropped)");
477
- const req = buildRequest(space, route, op, {
478
- replyExpected: false,
479
- ...(opts.deadlineMs !== undefined ? { deadlineMs: assertDeadline(opts.deadlineMs) } : {}),
480
- });
481
- // REGISTER THE PERMISSION WATCH BEFORE THE PUBLISH IT IS WATCHING, and race it against the
482
- // flush: a refused cast that resolved with the flush would be the exact success masquerade the
483
- // watch exists to eliminate, and the caller has no reply or deadline of its own to notice
484
- // otherwise. The refusal is not wall-clock latency: the broker writes the permission ERROR
485
- // before the PONG that answers the flush, so the violation is already on the connection when
486
- // the flush resolves — but its dispatch to this race rides a longer microtask chain than the
487
- // flush's own continuation, and `Promise.race` would hand the flush the win on arrival order
488
- // alone. Chaining ONE EVENT-LOOP TURN (`setImmediate`, not a timer) after the flush lets that
489
- // chain complete first: a refused publish rejects deterministically, and a permitted one
490
- // settles on the next loop turn — the flush round-trip remains the entire cost.
491
- const denialWatch = openPublishDenialWatch(nc, req.subject, () => new EpEnvelopeError("permission-denied", `the cast for ${op.endpoint}.${op.command} was REFUSED BY THE BROKER, not cast: this caller's credential does not authorize publishing to "${req.subject}". The responder may be perfectly healthy; the grant is what is missing (SPEC 13.2)`), "cast");
492
- try {
493
- nc.publish(req.subject, req.body);
494
- await Promise.race([
495
- nc.flush().then(() => new Promise((resolve) => setImmediate(resolve))),
496
- denialWatch.denied,
497
- ]);
498
- }
499
- finally {
500
- denialWatch.release();
501
- }
502
- }
5
+ import { assertDeadline, buildRequest, epCall, parseAttributedReply, raceBounded, registryReadDetail, replySubjectFor } from "./endpoint-call.js";
6
+ export { epCall, epCast, epProbeInstanceInterest } from "./endpoint-call.js";
503
7
  /**
504
8
  * Watch a granted `epe` subtree LIVE (the event half of §13.5 `watch`; §13.9: the read grant is the
505
9
  * caller's own `sub.allow` row, e.g. the per-goal progress subtree — delivery lands only on this
@@ -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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"}