@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
@@ -17,8 +17,9 @@
17
17
  * the schema the caller validated against.
18
18
  */
19
19
  import { randomBytes } from "node:crypto";
20
+ import { PermissionViolationError } from "@nats-io/transport-node";
20
21
  import { jetstreamManager } from "@nats-io/jetstream";
21
- import { EpEnvelopeError } from "./endpoint-envelope.js";
22
+ import { EpEnvelopeError, EP_UNBOUND_RESPONDER, EP_UNANSWERED } from "./endpoint-envelope.js";
22
23
  import { compileContract } from "./schema-profile.js";
23
24
  import { contractStoreContext, fetchContractClosure, contractRefToHex, contractArtifactDigestHex, } from "./endpoint-contract-store.js";
24
25
  import { parseClusterDocument } from "./endpoint-cluster.js";
@@ -54,7 +55,24 @@ export async function describeEndpoint(nc, space, endpoint, caller, opts = {}) {
54
55
  };
55
56
  let sub;
56
57
  let timer;
58
+ /** The status stream itself, kept because `stop()`, not `return()`, is what releases it. */
59
+ let statusStream;
60
+ let statusIter;
57
61
  try {
62
+ // REGISTER THE PERMISSION WATCH BEFORE THE PUBLISH IT IS WATCHING: `nc.status()` registers its
63
+ // listener at CALL time, so one created after `nc.publish` cannot see a violation dispatched in
64
+ // between, and that dropped event is indistinguishable from the silence this watch exists to
65
+ // eliminate.
66
+ //
67
+ // RELEASE IS `stop()`, NOT `return()`. The stream is a `QueuedIterator` parked on an internal
68
+ // signal await, so a queued `return()` does not run until the NEXT status event — which on a
69
+ // healthy connection may never come, leaking one listener per resolve. `status()` is typed as a
70
+ // bare `AsyncIterable`, so `stop` is reached structurally and its absence fails loud HERE rather
71
+ // than leaking quietly.
72
+ statusStream = nc.status();
73
+ if (typeof statusStream?.stop !== "function")
74
+ throw new EpEnvelopeError("unavailable", "the NATS connection's status() stream does not expose stop(); the describe's permission watch cannot be released and would leak a listener per resolve");
75
+ statusIter = statusStream[Symbol.asyncIterator]();
58
76
  const got = new Promise((resolve, reject) => {
59
77
  sub = nc.subscribe(epCallerReplyFilter(space, caller), {
60
78
  callback: (err, msg) => {
@@ -86,9 +104,38 @@ export async function describeEndpoint(nc, space, endpoint, caller, opts = {}) {
86
104
  });
87
105
  nc.publish(subject, enc.encode(JSON.stringify(env)));
88
106
  });
89
- const timeout = new Promise((_, reject) => { timer = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `no describe reply from ${endpoint} within ${deadlineMs}ms`)), deadlineMs); });
90
- const { body: reply, responder } = await Promise.race([got, timeout]);
107
+ const timeout = new Promise((_, reject) => { timer = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `no describe reply from ${endpoint} within ${deadlineMs}ms`, [{ kind: EP_UNANSWERED, endpoint, command: "describe" }])), deadlineMs); });
108
+ // A REFUSED PUBLISH MUST NOT MASQUERADE AS AN ABSENT RESPONDER. `nc.publish` is fire-and-forget:
109
+ // when the credential lacks the subject the broker answers the CONNECTION asynchronously and the
110
+ // publish returns normally, so the only observable is a deadline that reads as "that endpoint
111
+ // isn't there". The two need opposite responses — mint the grant vs. find the responder.
112
+ //
113
+ // Watch only for OUR subject, and do not race the whole status stream: the connection is shared,
114
+ // and another component's denial or an unrelated transport error must not fail this describe.
115
+ const denied = new Promise((_, reject) => {
116
+ void (async () => {
117
+ // Driven by hand rather than `for await` so the `finally` below can CLOSE it: `nc.status()`
118
+ // is connection-lived, and a `for await` parks on the next event and outlives the describe,
119
+ // leaking one listener per resolve.
120
+ const it = statusIter;
121
+ for (;;) {
122
+ const { value: s, done } = await it.next();
123
+ if (done === true || s === undefined)
124
+ return;
125
+ if (s.type !== "error")
126
+ continue;
127
+ if (s.error instanceof PermissionViolationError && s.error.subject === subject) {
128
+ reject(new EpEnvelopeError("permission-denied", `the describe for ${endpoint} was REFUSED BY THE BROKER, not unanswered: this caller's credential does not authorize publishing to "${subject}"${opts.instanceId !== undefined ? ` (the instance rail for ${opts.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)`));
129
+ return;
130
+ }
131
+ }
132
+ })().catch(() => { });
133
+ });
134
+ const { body: reply, responder } = await Promise.race([got, timeout, denied]);
91
135
  if (reply.ok !== true) {
136
+ // A responder ANSWERED with a refusal: it is rethrown under the responder's own code (which
137
+ // may be `unavailable`) and deliberately without the EP_UNANSWERED marker the deadline above
138
+ // carries, so a consumer keyed on that marker never reads an answering responder as absent.
92
139
  const e = reply.error;
93
140
  throw new EpEnvelopeError(e?.code ?? "unavailable", `describe(${endpoint}) failed: ${e?.message ?? "unknown"}`);
94
141
  }
@@ -98,13 +145,18 @@ export async function describeEndpoint(nc, space, endpoint, caller, opts = {}) {
98
145
  sub?.unsubscribe();
99
146
  if (timer !== undefined)
100
147
  clearTimeout(timer);
148
+ // Release on EVERY exit, success included. `stop()` resolves the generator's signal and its
149
+ // `iterClosed`, which is what the transport splices the listener on; `return()` is kept only to
150
+ // settle the parked `next()` it wakes.
151
+ statusStream?.stop();
152
+ void statusIter?.return?.(undefined);
101
153
  }
102
154
  }
103
155
  /** Fetch + verify ONE cluster document from the store at its closure digest (two-stage §13.7:
104
156
  * the manifest at the closure digest, whose `root` names the document artifact). A cluster
105
157
  * document declares no by-digest child references, so its closure is {root}. */
106
- async function fetchClusterDocument(store, closureDigest) {
107
- const { manifest, artifacts } = await fetchContractClosure(store, closureDigest, () => []);
158
+ async function fetchClusterDocument(store, closureDigest, artifactMemo) {
159
+ const { manifest, artifacts } = await fetchContractClosure(store, closureDigest, () => [], { ...(artifactMemo ? { artifactMemo } : {}) });
108
160
  const rootBytes = artifacts.get(contractRefToHex(manifest.root));
109
161
  if (rootBytes === undefined)
110
162
  throw new EpEnvelopeError("failed-precondition", `the cluster manifest ${closureDigest} names root ${manifest.root} but the root artifact is absent from the fetched closure (SPEC 13.7)`);
@@ -113,11 +165,11 @@ async function fetchClusterDocument(store, closureDigest) {
113
165
  /** Fetch a schema CLOSURE from the store and PROFILE-recompile it, binding every by-digest member.
114
166
  * The recompiled contract's closureDigest MUST equal the digest we fetched at — a store that
115
167
  * served bytes hashing to a different closure is a tamper/bug and fails loud (§13.7). */
116
- async function recompileClosure(store, closureDigest) {
168
+ async function recompileClosure(store, closureDigest, artifactMemo) {
117
169
  // Walk the schema closure, resolving `cotal:sha256:<hex>` refs a document makes (the profile's
118
170
  // reference form) so a multi-document schema bundle rebuilds. A recompiled contract carries the
119
171
  // registered digest, so an equality check below is the tamper boundary.
120
- const { manifest, artifacts } = await fetchContractClosure(store, closureDigest, (bytes) => extractSchemaRefs(bytes));
172
+ const { manifest, artifacts } = await fetchContractClosure(store, closureDigest, (bytes) => extractSchemaRefs(bytes), { ...(artifactMemo ? { artifactMemo } : {}) });
121
173
  const members = {};
122
174
  for (const [hex, bytes] of artifacts)
123
175
  members[`sha256:${hex}`] = JSON.parse(dec.decode(bytes));
@@ -159,6 +211,28 @@ function extractSchemaRefs(bytes) {
159
211
  walk(JSON.parse(dec.decode(bytes)));
160
212
  return refs;
161
213
  }
214
+ /** The most store reads one {@link resolveService} keeps in flight at once. The fan-out width is
215
+ * the RESPONDER's command count (it comes off the describe answer), so leaving it unbounded would
216
+ * let a describing endpoint decide how many concurrent requests its caller opens — a caller-side
217
+ * amplification the rest of §13.7 is careful to bound. Every other limit on this path is explicit;
218
+ * so is this one. High enough that real surfaces overlap freely, low enough to stay a bound. */
219
+ const RESOLVE_MAX_INFLIGHT_READS = 32;
220
+ /** Run `work` over `items` with at most `limit` in flight, preserving RESULT ORDER (the resolved
221
+ * surface must not depend on read timing). Rejects like `Promise.all`: the first failure wins. */
222
+ async function pooled(items, limit, work) {
223
+ const out = new Array(items.length);
224
+ let next = 0;
225
+ const worker = async () => {
226
+ for (;;) {
227
+ const i = next++;
228
+ if (i >= items.length)
229
+ return;
230
+ out[i] = await work(items[i]);
231
+ }
232
+ };
233
+ await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
234
+ return out;
235
+ }
162
236
  /**
163
237
  * DESCRIBE an endpoint and resolve its full invocation surface: send the reserved `describe`
164
238
  * command (untargeted, void args), then for every VISIBLE cluster fetch + verify its document
@@ -171,23 +245,39 @@ function extractSchemaRefs(bytes) {
171
245
  export async function resolveService(nc, space, endpoint, caller, opts = {}) {
172
246
  const { answer, responder } = await describeEndpoint(nc, space, endpoint, caller, opts);
173
247
  const store = await contractStoreContext(nc, space);
174
- const commands = new Map();
175
248
  const visible = new Set(answer.descriptor.clusters.flatMap((cl) => cl.commands));
176
- for (const cluster of answer.descriptor.clusters) {
177
- const doc = await fetchClusterDocument(store, cluster.digest);
178
- for (const cmd of doc.commands) {
179
- if (!visible.has(cmd.name))
180
- continue; // a describe VIEW may narrow a cluster's commands
181
- commands.set(cmd.name, {
182
- command: cmd.name,
183
- contract: { input: await recompileClosure(store, cmd.inputDigest), output: await recompileClosure(store, cmd.outputDigest) },
184
- class: cmd.class,
185
- targeted: cmd.targeted,
186
- modes: cmd.modes ?? [],
187
- capability: cmd.capability,
188
- });
189
- }
190
- }
249
+ // The store reads dominate a resolve's wall time and are all caller->broker round-trips, so they
250
+ // are issued CONCURRENTLY and deduped through one memo rather than queued one behind another (a
251
+ // 17-command surface measured 70 strictly sequential reads, 22 of them re-reads; at a WAN RTT
252
+ // that is the whole latency). Each closure walk is still internally sequential and its §13.7
253
+ // bounds are still counted per walk the concurrency is BETWEEN walks, so no limit is widened.
254
+ const artifactMemo = new Map();
255
+ const docs = await pooled(answer.descriptor.clusters, RESOLVE_MAX_INFLIGHT_READS, (cl) => fetchClusterDocument(store, cl.digest, artifactMemo));
256
+ // Flattened in DOCUMENT ORDER first, then resolved concurrently and inserted in that same order:
257
+ // when two clusters declare one command name, last-in-document-order still wins, exactly as the
258
+ // sequential form did. Concurrency must not make the resolved surface depend on read timing.
259
+ const declared = docs.flatMap((doc) => doc.commands).filter((cmd) => visible.has(cmd.name)); // a describe VIEW may narrow a cluster's commands
260
+ // Each command needs two closures, so the pool runs at half the read bound to keep the in-flight
261
+ // read count under it.
262
+ const resolved = await pooled(declared, Math.max(1, RESOLVE_MAX_INFLIGHT_READS >> 1), async (cmd) => {
263
+ // Each command recompiles its OWN validators (cheap, CPU-only) even when two commands share a
264
+ // closure digest: a compiled contract is not shared, only the artifact bytes behind it are.
265
+ const [input, output] = await Promise.all([
266
+ recompileClosure(store, cmd.inputDigest, artifactMemo),
267
+ recompileClosure(store, cmd.outputDigest, artifactMemo),
268
+ ]);
269
+ return {
270
+ command: cmd.name,
271
+ contract: { input, output },
272
+ class: cmd.class,
273
+ targeted: cmd.targeted,
274
+ modes: cmd.modes ?? [],
275
+ capability: cmd.capability,
276
+ };
277
+ });
278
+ const commands = new Map();
279
+ for (const rc of resolved)
280
+ commands.set(rc.command, rc);
191
281
  return { endpoint: answer.descriptor.endpoint, owner: answer.descriptor.owner, caller, responder, commands, ...(opts.instanceId !== undefined ? { pinnedInstanceId: opts.instanceId } : {}) };
192
282
  }
193
283
  /**
@@ -224,8 +314,30 @@ export async function invokeCommand(nc, space, service, command, args, opts) {
224
314
  if (sendArgs === undefined && !resolved.contract.input.validate(null) && resolved.contract.input.validate({}))
225
315
  sendArgs = {};
226
316
  const describeBound = (instanceId) => {
227
- if (instanceId !== service.responder.instanceId)
228
- throw new EpEnvelopeError("failed-precondition", `the ${service.endpoint} instance ${instanceId} answered but this service handle resolved against ${service.responder.instanceId}; a different queue winner is a superseded-or-split responder - re-resolve the service to adopt it (SPEC 13.2)`);
317
+ if (instanceId !== service.responder.instanceId) {
318
+ // The refusal is unchanged; what it SAYS is not. One message used to cover two situations
319
+ // that call for opposite responses, and it described only the rarer one.
320
+ //
321
+ // PINNED: the caller named an instance and a different one answered. Genuinely wrong.
322
+ //
323
+ // UNPINNED: the caller addressed the CLASS. The describe and the invoke are two independent
324
+ // trips through the same anycast queue, so in a multi-instance space they routinely land on
325
+ // different instances and this fires on an ordinary, correct request - not on a supersession.
326
+ // Calling that "superseded-or-split" sends the reader hunting a restart that never happened.
327
+ // The old text's remedy is also not executable by the surfaces that print it most (`stop`,
328
+ // `despawn` and `attach` have no adopt path and no pin), so it advised an action the caller
329
+ // could not take. Say which case this is, and stop asserting a cause that is usually wrong.
330
+ // The marker, not the prose, is what stops an automatic re-invoke: reaching here means a
331
+ // responder ANSWERED (executed or refused; the reply does not say which), so a retry is a
332
+ // second attempt that may duplicate an effect rather than a repair. Callers that recover
333
+ // from `failed-precondition` by re-resolving must consult `respondedButUnbound`.
334
+ // The remedy is stated in core vocabulary (address one instance), never as a CLI flag: core
335
+ // cannot know whether its caller has one, and most `invokeService` callers (a connector's
336
+ // tools, a manifest deploy) do not. The CLI names its own flag when it renders this.
337
+ throw new EpEnvelopeError("failed-precondition", service.pinnedInstanceId !== undefined
338
+ ? `the ${service.endpoint} instance ${instanceId} answered but this handle is PINNED to ${service.pinnedInstanceId}; a pinned call names its instance and never accepts another. ${instanceId} did receive and answer the request, so if "${command}" mutates, that effect may already have landed - verify before re-issuing (SPEC 13.2)`
339
+ : `the ${service.endpoint} instance ${instanceId} won the class queue but this UNPINNED handle resolved against ${service.responder.instanceId}; the describe and the invoke are separate trips through the same queue, so in a multi-instance space this is an ordinary split and not necessarily a supersession - the handle cannot currently adopt a different winner. THIS SAYS NOTHING ABOUT WHETHER THE COMMAND RAN: ${instanceId} received the request and answered it, possibly after this error was raised. For a read that is harmless and re-issuing is safe; if "${command}" mutates, verify the outcome ('ps'/'inspect'/roster) before re-issuing, because a retry that assumes failure duplicates the effect. A call that addresses one instance does not split (SPEC 13.2)`, [{ kind: EP_UNBOUND_RESPONDER, endpoint: service.endpoint, command, answeredBy: instanceId, boundTo: service.responder.instanceId, pinned: service.pinnedInstanceId !== undefined }]);
340
+ }
229
341
  return service.responder.epoch;
230
342
  };
231
343
  // P2 item 3 `--on`: a PINNED service routes to its exact instance's `inst` rail (the same instance the
@@ -235,11 +347,28 @@ export async function invokeCommand(nc, space, service, command, args, opts) {
235
347
  const route = service.pinnedInstanceId !== undefined
236
348
  ? { mode: "inst", instanceId: service.pinnedInstanceId, epoch: service.responder.epoch }
237
349
  : { mode: "one" };
350
+ // The bind travels WITH the request, so the responder can refuse before running the command
351
+ // rather than leaving `describeBound` to report the split afterwards. It is sent exactly when
352
+ // this handle's own resolve is the currency reference — that is the caller saying "this
353
+ // incarnation or none", and it is the same population the check below already refuses. A caller
354
+ // that supplied its own `currentEpoch` is asking a REGISTRY whether the answerer is current, and
355
+ // deliberately accepts any current member; binding it would refuse calls that succeed today.
356
+ const bind = opts.currentEpoch === undefined
357
+ ? { instanceId: service.pinnedInstanceId ?? service.responder.instanceId, epoch: service.responder.epoch }
358
+ : undefined;
238
359
  return epCall(nc, space, route, {
239
360
  endpoint: service.endpoint, command, contract: resolved.contract, caller,
240
361
  ...(sendArgs !== undefined ? { args: sendArgs } : {}),
241
362
  ...(opts.target ? { target: opts.target } : {}),
242
- }, { deadlineMs: opts.deadlineMs ?? 10_000, currentEpoch: opts.currentEpoch ?? describeBound });
363
+ ...(bind !== undefined ? { bind } : {}),
364
+ }, {
365
+ deadlineMs: opts.deadlineMs ?? 10_000,
366
+ currentEpoch: opts.currentEpoch ?? describeBound,
367
+ // What the currency hook returns decides how a stale-epoch refusal is worded and marked: the
368
+ // describe-bound default is this handle's own bind (a responder ahead of it is a successor and
369
+ // the handle is the stale side); a caller-supplied hook is a registry read by epCall's contract.
370
+ currencyReference: opts.currentEpoch ? "registry" : "bind",
371
+ });
243
372
  }
244
373
  /** Submit an ACTION command and FOLLOW its goal to the terminal (P2 item 2, 2b): since 2a a
245
374
  * spawn/launch reply is the ACCEPTANCE (returned before the agent is live), so a consumer that
@@ -283,7 +412,13 @@ export async function submitAndFollowGoal(nc, space, endpoint, caller, deadlineM
283
412
  waiters.set(goalId, () => { clearTimeout(t); resolve(terminals.get(goalId)); });
284
413
  });
285
414
  if (terminal === undefined)
286
- return { ...attributed, reply: { ...attributed.reply, ok: false, data: undefined, error: { code: "deadline-exceeded", message: `the goal "${goalId}" produced no terminal within ${deadlineMs}ms; read its outcome with 'ps'/'inspect' (SPEC 13.6)` } } };
415
+ // WHAT THIS PROVED: nothing about the goal. The goal was ACCEPTED (the submit above returned
416
+ // ok); only its terminal did not arrive here in time, which a slow runtime or a dropped
417
+ // progress subscription produces just as readily as a real failure. Observed live: seats that
418
+ // reported this had already come up and were messaging peers. So say the deadline is about
419
+ // the WAIT, not the work, and warn about the one action that turns a false negative into real
420
+ // damage: a retry, which submits a SECOND goal and duplicates whatever the first one did.
421
+ return { ...attributed, reply: { ...attributed.reply, ok: false, data: undefined, error: { code: "deadline-exceeded", message: `the goal "${goalId}" was accepted but produced no terminal within ${deadlineMs}ms; this is a timeout on the WAIT, not evidence the goal failed - it may already have succeeded, and may still succeed. Read its outcome with 'ps'/'inspect' before acting; do NOT retry on this alone, a retry submits a second goal and duplicates the effect (SPEC 13.6)` } } };
287
422
  if (terminal.state === "succeeded")
288
423
  return { ...attributed, reply: { ...attributed.reply, ok: true, ...(terminal.data !== undefined ? { data: terminal.data } : { data: undefined }), error: undefined } };
289
424
  const d = (terminal.data ?? {});
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-invoke.js","sourceRoot":"","sources":["../src/endpoint-invoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-invoke.js","sourceRoot":"","sources":["../src/endpoint-invoke.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,11 @@ export declare function epfEffectSubject(space: string, endpoint: string, caller
35
35
  * decision-fact retention, never by a clock: the create-only CAS returns the recorded decision
36
36
  * for exactly as long as the fact exists. */
37
37
  export declare const IDEMPOTENCY_HORIZON_MS_DEFAULT: number;
38
+ /** §13.6 item 5: a goal's full terminal payload is retained at least this long (default 24 h). */
39
+ export declare const RESULT_RETENTION_MS_DEFAULT: number;
40
+ /** §13.10: receipt retention, default **90 d** — the largest term in the §13.12 EPF floor by two
41
+ * orders of magnitude, and the one a floor written against the horizon alone silently drops. */
42
+ export declare const RECEIPT_RETENTION_MS_DEFAULT: number;
38
43
  /** Build the §13.4 fingerprint for a PARSEABLE submission: the effect-defining subset it
39
44
  * carries — absent optional fields are OMITTED, never `null`, so two implementations digest
40
45
  * identical bytes; an incomplete envelope fingerprints the subset it has. The caller identity
@@ -46,6 +51,104 @@ export declare function submissionFingerprint(raw: unknown, subject: ParsedEpReq
46
51
  object: Record<string, unknown>;
47
52
  fingerprint: string;
48
53
  };
54
+ /** Why a submission was quarantined. CLOSED and mutually exclusive: a reader branches on the
55
+ * cause without knowing the order the canonicalizer evaluated its checks in.
56
+ *
57
+ * `no-usable-id` is deliberately DISTINCT from the three ceiling causes. Both end in quarantine,
58
+ * but they are different facts about the submission — one says "you sent more than this endpoint
59
+ * admits", the other says "these bytes name no request at all" — and an operator who cannot tell
60
+ * them apart cannot tell a misconfigured caller from a corrupt one. */
61
+ export type AdmissionQuarantineCause = "submission-too-large" | "submission-too-deep" | "submission-too-many-items" | "no-canonical-form" | "no-usable-id";
62
+ /** The closed set of admission outcomes. Exactly three, and the third is the only one that
63
+ * produces a caller-addressed decision fact: a quarantine has no fingerprint to address one
64
+ * with, which is the whole reason the two paths differ. */
65
+ export type AdmissionOutcome = {
66
+ outcome: "quarantine";
67
+ cause: AdmissionQuarantineCause;
68
+ detail: string;
69
+ } | {
70
+ outcome: "reject";
71
+ code: "resource-exhausted";
72
+ detail: string;
73
+ fingerprint: string;
74
+ object: Record<string, unknown>;
75
+ } | {
76
+ outcome: "admit";
77
+ fingerprint: string;
78
+ object: Record<string, unknown>;
79
+ };
80
+ /**
81
+ * Duplicate object names in the RAW bytes, which no post-parse check can see.
82
+ *
83
+ * `JSON.parse('{"id":"a","id":"b"}')` yields `{id:"b"}` and reports nothing. So a submission that
84
+ * two conforming implementations could read DIFFERENTLY — one taking the first name, one the last —
85
+ * arrives at the decision looking perfectly ordinary. That is the precise failure the declared ceiling
86
+ * exists to prevent: two implementations deciding the same bytes differently and DURABLY.
87
+ *
88
+ * The module has claimed duplicate names as a `no-canonical-form` cause since it was written, and
89
+ * the case was UNREACHABLE — not untested, unrepresentable, because the seam handed the decision a
90
+ * value from which the duplicate had already been erased. Found by a reviewer, not by any of the
91
+ * mutants aimed at this file.
92
+ *
93
+ * A scanner, not a regex: strings can contain braces, colons and escaped quotes, and a recogniser
94
+ * that succeeds on a prefix is a parser that lies. This walks the bytes once and tracks a name set
95
+ * per open object. It runs only on input already inside the byte ceiling.
96
+ */
97
+ export declare function hasDuplicateNames(text: string): {
98
+ duplicate: true;
99
+ name: string;
100
+ } | {
101
+ duplicate: false;
102
+ };
103
+ /**
104
+ * Out-of-range numbers in the RAW bytes — the fourth I-JSON condition SPEC §13.4 names
105
+ * ("unparseable, duplicate object names, lone surrogate, out-of-range number") and the only one
106
+ * this module did not enforce.
107
+ *
108
+ * WHY RAW BYTES, and why no mutant could ever have found this. `JSON.parse('12345678901234567890')`
109
+ * yields `12345678901234567000` and reports nothing: the caller sent one number and the durable
110
+ * decision binds a different one. After the parse the information is GONE, so a mutant aimed at a
111
+ * post-parse branch would have SURVIVED and read as a suite hole. This class is not reachable by
112
+ * mutation by construction; it is reached by asking what the SPEC names and whether the code can
113
+ * produce it at all.
114
+ *
115
+ * THE PREDICATE IS ROUND-TRIP STABILITY, not a safe-integer test, and the difference is not
116
+ * academic: `1e-400` parses to exactly `0`, and `Number.isSafeInteger(0)` is `true` — the underflow
117
+ * case does not merely escape a safe-integer test, it passes one AFFIRMATIVELY while the value it
118
+ * came from has been destroyed. Stability is also the right criterion on its own terms: RFC 8785
119
+ * canonicalises from the double, so two implementations agree exactly when the literal survives
120
+ * text → double → text. `0.1` is therefore fine (it is not exactly representable, but its shortest
121
+ * round-trip form is `0.1` in every conforming reader); `12345678901234567890` is not.
122
+ *
123
+ * A scanner for the same reason `hasDuplicateNames` is one: digits inside a string are not numbers,
124
+ * and a recogniser that succeeds on a prefix is a parser that lies.
125
+ */
126
+ export declare function hasOutOfRangeNumber(text: string): {
127
+ outOfRange: true;
128
+ literal: string;
129
+ reads: string;
130
+ } | {
131
+ outOfRange: false;
132
+ };
133
+ /** Decide ONE submission against the command's DECLARED `admissionCeiling`.
134
+ *
135
+ * The ceiling is a parameter and never a constant, because two conforming implementations must
136
+ * not be able to decide the same bytes differently and durably. That is also why nothing here
137
+ * reads a clock: the outcome is a function of the bytes and the declaration alone, so a
138
+ * redelivery of the same submission reaches the same durable answer however long any worker
139
+ * took. A watchdog may re-deliver; it may never decide.
140
+ *
141
+ * ORDER IS PART OF THE CONTRACT, and the reason is the fingerprint. The raw-byte ceiling is
142
+ * evaluated BEFORE parsing, because parsing is the work the ceiling exists to refuse. Everything
143
+ * that fails before a fingerprint exists quarantines, because there is no caller-addressed
144
+ * subject to write a decision to. Once a fingerprint EXISTS the caller is addressable, so a
145
+ * breach becomes a REJECTION — a durable, caller-visible answer rather than a message they never
146
+ * hear about. */
147
+ export declare function decideAdmission(rawBytes: Uint8Array, parsedBody: unknown, subject: ParsedEpRequest, ceiling: {
148
+ maxBytes: number;
149
+ maxDepth: number;
150
+ maxItems: number;
151
+ }): AdmissionOutcome;
49
152
  export interface FactCaller {
50
153
  id: string;
51
154
  lifecycleUid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-journal.d.ts","sourceRoot":"","sources":["../src/endpoint-journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-journal.d.ts","sourceRoot":"","sources":["../src/endpoint-journal.ts"],"names":[],"mappings":"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"}