@cotal-ai/core 0.15.0 → 0.17.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 (146) hide show
  1. package/dist/acls.d.ts +21 -0
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +75 -12
  4. package/dist/acls.js.map +1 -1
  5. package/dist/artifact.d.ts +45 -0
  6. package/dist/artifact.d.ts.map +1 -0
  7. package/dist/artifact.js +82 -0
  8. package/dist/artifact.js.map +1 -0
  9. package/dist/backup-config.d.ts +9 -2
  10. package/dist/backup-config.d.ts.map +1 -1
  11. package/dist/backup-config.js +6 -2
  12. package/dist/backup-config.js.map +1 -1
  13. package/dist/broker-tls.d.ts +70 -0
  14. package/dist/broker-tls.d.ts.map +1 -0
  15. package/dist/broker-tls.js +195 -0
  16. package/dist/broker-tls.js.map +1 -0
  17. package/dist/canonical.d.ts +14 -1
  18. package/dist/canonical.d.ts.map +1 -1
  19. package/dist/canonical.js +21 -1
  20. package/dist/canonical.js.map +1 -1
  21. package/dist/channels.d.ts.map +1 -1
  22. package/dist/channels.js +18 -9
  23. package/dist/channels.js.map +1 -1
  24. package/dist/endpoint-action.d.ts +108 -3
  25. package/dist/endpoint-action.d.ts.map +1 -1
  26. package/dist/endpoint-action.js +209 -20
  27. package/dist/endpoint-action.js.map +1 -1
  28. package/dist/endpoint-binding.d.ts +138 -8
  29. package/dist/endpoint-binding.d.ts.map +1 -1
  30. package/dist/endpoint-binding.js +233 -26
  31. package/dist/endpoint-binding.js.map +1 -1
  32. package/dist/endpoint-contract-store.d.ts +24 -1
  33. package/dist/endpoint-contract-store.d.ts.map +1 -1
  34. package/dist/endpoint-contract-store.js +79 -27
  35. package/dist/endpoint-contract-store.js.map +1 -1
  36. package/dist/endpoint-envelope.d.ts +15 -37
  37. package/dist/endpoint-envelope.d.ts.map +1 -1
  38. package/dist/endpoint-envelope.js +93 -44
  39. package/dist/endpoint-envelope.js.map +1 -1
  40. package/dist/endpoint-error.d.ts +33 -0
  41. package/dist/endpoint-error.d.ts.map +1 -0
  42. package/dist/endpoint-error.js +34 -0
  43. package/dist/endpoint-error.js.map +1 -0
  44. package/dist/endpoint-grants.d.ts +48 -7
  45. package/dist/endpoint-grants.d.ts.map +1 -1
  46. package/dist/endpoint-grants.js +97 -9
  47. package/dist/endpoint-grants.js.map +1 -1
  48. package/dist/endpoint-invoke.d.ts +138 -0
  49. package/dist/endpoint-invoke.d.ts.map +1 -0
  50. package/dist/endpoint-invoke.js +340 -0
  51. package/dist/endpoint-invoke.js.map +1 -0
  52. package/dist/endpoint-records.d.ts.map +1 -1
  53. package/dist/endpoint-records.js +17 -0
  54. package/dist/endpoint-records.js.map +1 -1
  55. package/dist/endpoint-serve-kv.d.ts +97 -0
  56. package/dist/endpoint-serve-kv.d.ts.map +1 -0
  57. package/dist/endpoint-serve-kv.js +336 -0
  58. package/dist/endpoint-serve-kv.js.map +1 -0
  59. package/dist/endpoint-serve.d.ts.map +1 -1
  60. package/dist/endpoint-serve.js +21 -1
  61. package/dist/endpoint-serve.js.map +1 -1
  62. package/dist/endpoint-service.d.ts +1 -1
  63. package/dist/endpoint-service.d.ts.map +1 -1
  64. package/dist/endpoint-service.js +34 -10
  65. package/dist/endpoint-service.js.map +1 -1
  66. package/dist/endpoint-session-rail.d.ts +127 -0
  67. package/dist/endpoint-session-rail.d.ts.map +1 -0
  68. package/dist/endpoint-session-rail.js +325 -0
  69. package/dist/endpoint-session-rail.js.map +1 -0
  70. package/dist/endpoint-session.d.ts +1 -115
  71. package/dist/endpoint-session.d.ts.map +1 -1
  72. package/dist/endpoint-session.js +4 -316
  73. package/dist/endpoint-session.js.map +1 -1
  74. package/dist/endpoint-subjects.d.ts +10 -1
  75. package/dist/endpoint-subjects.d.ts.map +1 -1
  76. package/dist/endpoint-subjects.js +10 -1
  77. package/dist/endpoint-subjects.js.map +1 -1
  78. package/dist/endpoint-verbs.d.ts +1 -2
  79. package/dist/endpoint-verbs.d.ts.map +1 -1
  80. package/dist/endpoint-verbs.js +6 -6
  81. package/dist/endpoint-verbs.js.map +1 -1
  82. package/dist/endpoint.d.ts +169 -15
  83. package/dist/endpoint.d.ts.map +1 -1
  84. package/dist/endpoint.js +491 -43
  85. package/dist/endpoint.js.map +1 -1
  86. package/dist/identity.d.ts +19 -0
  87. package/dist/identity.d.ts.map +1 -1
  88. package/dist/identity.js +12 -0
  89. package/dist/identity.js.map +1 -1
  90. package/dist/index.d.ts +9 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +9 -0
  93. package/dist/index.js.map +1 -1
  94. package/dist/kv-scan.d.ts +105 -0
  95. package/dist/kv-scan.d.ts.map +1 -0
  96. package/dist/kv-scan.js +192 -0
  97. package/dist/kv-scan.js.map +1 -0
  98. package/dist/lease.d.ts +12 -5
  99. package/dist/lease.d.ts.map +1 -1
  100. package/dist/lease.js.map +1 -1
  101. package/dist/lifecycle-saga.d.ts +174 -0
  102. package/dist/lifecycle-saga.d.ts.map +1 -0
  103. package/dist/lifecycle-saga.js +418 -0
  104. package/dist/lifecycle-saga.js.map +1 -0
  105. package/dist/lifecycle-state.d.ts +202 -0
  106. package/dist/lifecycle-state.d.ts.map +1 -0
  107. package/dist/lifecycle-state.js +347 -0
  108. package/dist/lifecycle-state.js.map +1 -0
  109. package/dist/members.d.ts +8 -4
  110. package/dist/members.d.ts.map +1 -1
  111. package/dist/members.js +19 -9
  112. package/dist/members.js.map +1 -1
  113. package/dist/parts.d.ts +13 -0
  114. package/dist/parts.d.ts.map +1 -0
  115. package/dist/parts.js +17 -0
  116. package/dist/parts.js.map +1 -0
  117. package/dist/provision.d.ts +106 -9
  118. package/dist/provision.d.ts.map +1 -1
  119. package/dist/provision.js +506 -110
  120. package/dist/provision.js.map +1 -1
  121. package/dist/schema-profile.d.ts +3 -2
  122. package/dist/schema-profile.d.ts.map +1 -1
  123. package/dist/schema-profile.js +242 -18
  124. package/dist/schema-profile.js.map +1 -1
  125. package/dist/session-browser.d.ts +15 -0
  126. package/dist/session-browser.d.ts.map +1 -0
  127. package/dist/session-browser.js +14 -0
  128. package/dist/session-browser.js.map +1 -0
  129. package/dist/session-terminal-frames.d.ts +36 -0
  130. package/dist/session-terminal-frames.d.ts.map +1 -0
  131. package/dist/session-terminal-frames.js +149 -0
  132. package/dist/session-terminal-frames.js.map +1 -0
  133. package/dist/spaces.d.ts.map +1 -1
  134. package/dist/spaces.js +6 -1
  135. package/dist/spaces.js.map +1 -1
  136. package/dist/streams.d.ts +53 -1
  137. package/dist/streams.d.ts.map +1 -1
  138. package/dist/streams.js +135 -8
  139. package/dist/streams.js.map +1 -1
  140. package/dist/subjects.d.ts +32 -26
  141. package/dist/subjects.d.ts.map +1 -1
  142. package/dist/subjects.js +38 -25
  143. package/dist/subjects.js.map +1 -1
  144. package/dist/types.d.ts +27 -1
  145. package/dist/types.d.ts.map +1 -1
  146. package/package.json +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * The §13.6 SESSION RAILS: the framed protocol + bounded credit window over the two epoch-pinned
3
+ * eps subjects (cast-in / watch-out). SPLIT out of endpoint-session.ts (P2 item 6) so it carries
4
+ * ZERO node-only dependencies (no node:crypto) and can be BUNDLED into the browser console session
5
+ * client — the SAME core flow-control code runs in-browser. The grant mint/verify/redeem + the KV
6
+ * ledger (node:crypto, KV) stay in endpoint-session.ts, which RE-EXPORTS this module so no
7
+ * consumer's import path changes. Pure mechanical split: zero signature/behavior change.
8
+ */
9
+ import type { NatsConnection } from "@nats-io/transport-node";
10
+ import type { SessionGrant } from "./endpoint-session.js";
11
+ /** The bounded flow window (§13.6: declared in the grant; overflow is `resource-exhausted`). */
12
+ export declare const SESSION_WINDOW_DEFAULT = 64;
13
+ export declare const SESSION_WINDOW_MAX = 1024;
14
+ /** Validate a flow window (1..MAX). Exported so the grant mint/verify in endpoint-session.ts share
15
+ * the single definition (it lives here, the browser-safe module). */
16
+ export declare function assertWindow(v: unknown): number;
17
+ /** The composite's own tiny framed protocol; `data` is OPAQUE (any JSON value — binary rides
18
+ * the application's own encoding). `credit`/`close` are CONTROL frames, EXEMPT from the data
19
+ * window (a full data window must never block the credits that reopen it, else instant
20
+ * deadlock). `ack` is an ABSOLUTE cumulative watermark (the sender's contiguous-received count
21
+ * on the OTHER rail): a data frame PIGGYBACKS it, so a lost dedicated credit self-heals on the
22
+ * next reverse data frame, and any deeper loss recovers on the keepalive re-emit; absolute
23
+ * (not delta) so any single credit re-advertises the whole position and a duplicate is
24
+ * harmless. The in-band `close` is advisory (§13.6): revocation authority is the ledger,
25
+ * never this frame. */
26
+ export type SessionFrame = {
27
+ t: "f";
28
+ seq: number;
29
+ data: unknown;
30
+ ack?: number;
31
+ } | {
32
+ t: "credit";
33
+ ack: number;
34
+ } | {
35
+ t: "close";
36
+ };
37
+ export declare function encodeSessionFrame(frame: SessionFrame): Uint8Array;
38
+ /** Fail-loud frame parse (closed schema): a garbled frame is a PROTOCOL error the rail
39
+ * surfaces via `onProtocolError` — never silently skipped, never a crash. */
40
+ export declare function parseSessionFrame(bytes: Uint8Array): SessionFrame;
41
+ /** Which rail each role sends on (§13.6: `in` = caller → endpoint; `out` = the reverse). */
42
+ export type SessionRole = "caller" | "serving";
43
+ export interface SessionRailOpts {
44
+ nc: NatsConnection;
45
+ grant: Pick<SessionGrant, "space" | "endpoint" | "sessionId" | "window"> & {
46
+ serving: {
47
+ epoch: number;
48
+ };
49
+ };
50
+ role: SessionRole;
51
+ /** Delivered in-order for CONTIGUOUS frames, and the application accepts FIRST: the handler
52
+ * may be async — it is AWAITED, and the watermark advances and credit emits only after it
53
+ * RESOLVES, so credit means the receiver's buffer actually freed (back-pressure) and a
54
+ * rejection refuses the frame exactly like a synchronous throw: the rail breaks (`handler`)
55
+ * and the refused frame is neither counted delivered nor credited. Acceptance is SERIALIZED
56
+ * in seq order (one handler in flight; NATS does not serialize callback promises); frames
57
+ * arriving while a handler is pending queue up to the grant WINDOW — past it the rail breaks
58
+ * (`flood`), never an unbounded backlog. A handler wedged forever stalls credit, so the
59
+ * SENDER's window fills and its stall watchdog surfaces the fault. A gap surfaces via
60
+ * onProtocolError("gap"). */
61
+ onData(data: unknown, seq: number): void | Promise<void>;
62
+ /** The peer's advisory close frame arrived (authoritative close is the ledger's). The local
63
+ * subscription and timer are torn down before this fires. */
64
+ onClose?(): void;
65
+ /** The session is broken — close and re-establish. `reason` is one of `garbled-frame` |
66
+ * `gap` | `credit-overrun` | `flood` | `subscription` | `stall` | `handler` | `publish` |
67
+ * `seq-exhausted`. The rail's subscription and timer are torn down before this fires (a
68
+ * broken rail holds no resources). */
69
+ onProtocolError?(reason: string, detail?: unknown): void;
70
+ /** Broker payload ceiling for the SEND preflight (like assertFactFits). Default 1 MiB. */
71
+ maxPayloadBytes?: number;
72
+ /** Keepalive credit re-emit interval (ms): while this side has delivered ANY data and the
73
+ * peer has gone quiet, re-advertise the absolute watermark every tick — including
74
+ * watermarks already advertised, because this side cannot observe whether an emitted
75
+ * credit ARRIVED (gating on "newer than last emitted" turns loss of the advertisement
76
+ * itself into a permanent stall). Absolute acks are idempotent, so the honest recovery is
77
+ * repetition; the cost is one control frame per quiet tick. 0 disables. Default 1000. */
78
+ idleCreditMs?: number;
79
+ /** Sender stall watchdog (ms): if the data window stays full this long with NO ack advance
80
+ * (sustained credit loss or a dead peer), the rail breaks with a DETECTABLE `stall` fault —
81
+ * TIMER-driven, so a sender that stops calling send() still learns its peer is gone; the
82
+ * send path double-checks as a belt. 0 disables. Default 30000. */
83
+ stallTimeoutMs?: number;
84
+ /** Injectable clock (testability); default Date.now. */
85
+ now?: () => number;
86
+ /** Injectable interval timer (testability); defaults to Node setInterval/clearInterval. */
87
+ setIntervalFn?: (fn: () => void, ms: number) => {
88
+ unref?: () => void;
89
+ };
90
+ clearIntervalFn?: (h: unknown) => void;
91
+ }
92
+ export interface SessionRail {
93
+ /** Send one opaque data frame (piggybacking this side's absolute reverse-rail watermark).
94
+ * Throws `resource-exhausted` when the window is full (no buffering, §13.6), `contract-invalid`
95
+ * when the encoded frame exceeds the payload ceiling, and `failed-precondition` once the rail
96
+ * is closed/broken (including a detected stall or a failed publish). Returns the frame's seq. */
97
+ send(data: unknown): number;
98
+ /** Send the advisory close frame and stop the rail locally. Idempotent. */
99
+ close(): void;
100
+ /** In-memory window state (observability + smoke assertions). */
101
+ stats(): {
102
+ sent: number;
103
+ ackedThrough: number;
104
+ delivered: number;
105
+ inFlight: number;
106
+ };
107
+ }
108
+ /**
109
+ * Open one side of an established session over its two core rails. The credentials the
110
+ * redemption released confine each side to exactly its pub/sub pair; this helper only speaks
111
+ * the framed protocol and enforces the bounded window — it grants nothing.
112
+ *
113
+ * FLOW CONTROL (panel-locked): the data window is bounded and per-direction; control frames
114
+ * (`credit`, `close`) are EXEMPT (a full window never blocks the credits that reopen it).
115
+ * RECEIVE-side acceptance is serialized and the (possibly async) handler AWAITED — credit
116
+ * emits only for frames the application actually accepted — and the pending-frame queue is
117
+ * bounded by the same window (`flood` past it), so neither side ever buffers unboundedly.
118
+ * Credits carry an ABSOLUTE cumulative watermark, PIGGYBACKED on reverse data frames, so a lost
119
+ * dedicated credit self-heals on the next reverse traffic; ANY deeper loss (including loss of
120
+ * already-emitted threshold credits) recovers on the KEEPALIVE re-emit; sustained loss or a
121
+ * dead peer surfaces the TIMER-driven `stall` fault (never a silent hang, even for a sender
122
+ * that stopped calling send). A dropped DATA frame is unrecoverable at this transport (EPS is
123
+ * at-most-once, core-only) and shows as a seq gap the app reacts to — reliability layers
124
+ * inside `data` or uses the journal/checkpoint composites.
125
+ */
126
+ export declare function openSessionRail(opts: SessionRailOpts): SessionRail;
127
+ //# sourceMappingURL=endpoint-session-rail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-session-rail.d.ts","sourceRoot":"","sources":["../src/endpoint-session-rail.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AAG5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAO1D,gGAAgG;AAChG,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;sEACsE;AACtE,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAI/C;AAID;;;;;;;;wBAQwB;AACxB,MAAM,MAAM,YAAY,GACpB;IAAE,CAAC,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnB,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAElE;AAED;8EAC8E;AAC9E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CA0BjE;AAED,4FAA4F;AAC5F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,cAAc,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC,GAAG;QAAE,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC1G,IAAI,EAAE,WAAW,CAAC;IAClB;;;;;;;;;kCAS8B;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;kEAC8D;IAC9D,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;;2CAGuC;IACvC,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzD,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;8FAK0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;wEAGoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK;QAAE,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACvE,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B;;;sGAGkG;IAClG,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,KAAK,IAAI,IAAI,CAAC;IACd,iEAAiE;IACjE,KAAK,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACtF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CA4OlE"}
@@ -0,0 +1,325 @@
1
+ import { EpEnvelopeError } from "./endpoint-error.js";
2
+ import { epsSubject } from "./endpoint-subjects.js";
3
+ const isRec = (v) => v !== null && typeof v === "object" && !Array.isArray(v);
4
+ function invalid(what) {
5
+ throw new EpEnvelopeError("contract-invalid", `${what} (SPEC 13.6 session)`);
6
+ }
7
+ /** The bounded flow window (§13.6: declared in the grant; overflow is `resource-exhausted`). */
8
+ export const SESSION_WINDOW_DEFAULT = 64;
9
+ export const SESSION_WINDOW_MAX = 1024;
10
+ /** Validate a flow window (1..MAX). Exported so the grant mint/verify in endpoint-session.ts share
11
+ * the single definition (it lives here, the browser-safe module). */
12
+ export function assertWindow(v) {
13
+ if (typeof v !== "number" || !Number.isSafeInteger(v) || v < 1 || v > SESSION_WINDOW_MAX)
14
+ invalid(`window ${String(v)} is not an integer in 1..${SESSION_WINDOW_MAX}`);
15
+ return v;
16
+ }
17
+ export function encodeSessionFrame(frame) {
18
+ return new TextEncoder().encode(JSON.stringify(frame));
19
+ }
20
+ /** Fail-loud frame parse (closed schema): a garbled frame is a PROTOCOL error the rail
21
+ * surfaces via `onProtocolError` — never silently skipped, never a crash. */
22
+ export function parseSessionFrame(bytes) {
23
+ let raw;
24
+ try {
25
+ raw = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
26
+ }
27
+ catch {
28
+ invalid("session frame is not UTF-8 JSON");
29
+ }
30
+ if (!isRec(raw))
31
+ invalid("session frame is not an object");
32
+ const o = raw;
33
+ if (o.t === "f") {
34
+ for (const k of Object.keys(o))
35
+ if (k !== "t" && k !== "seq" && k !== "data" && k !== "ack")
36
+ invalid(`data frame carries unknown field "${k}"`);
37
+ if (typeof o.seq !== "number" || !Number.isSafeInteger(o.seq) || o.seq < 1)
38
+ invalid("data frame seq is not a positive integer");
39
+ if (!("data" in o))
40
+ invalid("data frame carries no data");
41
+ if (o.ack !== undefined && (typeof o.ack !== "number" || !Number.isSafeInteger(o.ack) || o.ack < 0))
42
+ invalid("data frame ack is not a non-negative integer");
43
+ return { t: "f", seq: o.seq, data: o.data, ...(o.ack !== undefined ? { ack: o.ack } : {}) };
44
+ }
45
+ if (o.t === "credit") {
46
+ for (const k of Object.keys(o))
47
+ if (k !== "t" && k !== "ack")
48
+ invalid(`credit frame carries unknown field "${k}"`);
49
+ if (typeof o.ack !== "number" || !Number.isSafeInteger(o.ack) || o.ack < 0)
50
+ invalid("credit frame ack is not a non-negative integer");
51
+ return { t: "credit", ack: o.ack };
52
+ }
53
+ if (o.t === "close") {
54
+ for (const k of Object.keys(o))
55
+ if (k !== "t")
56
+ invalid(`close frame carries unknown field "${k}"`);
57
+ return { t: "close" };
58
+ }
59
+ invalid(`unknown session frame type ${String(o.t)}`);
60
+ }
61
+ /**
62
+ * Open one side of an established session over its two core rails. The credentials the
63
+ * redemption released confine each side to exactly its pub/sub pair; this helper only speaks
64
+ * the framed protocol and enforces the bounded window — it grants nothing.
65
+ *
66
+ * FLOW CONTROL (panel-locked): the data window is bounded and per-direction; control frames
67
+ * (`credit`, `close`) are EXEMPT (a full window never blocks the credits that reopen it).
68
+ * RECEIVE-side acceptance is serialized and the (possibly async) handler AWAITED — credit
69
+ * emits only for frames the application actually accepted — and the pending-frame queue is
70
+ * bounded by the same window (`flood` past it), so neither side ever buffers unboundedly.
71
+ * Credits carry an ABSOLUTE cumulative watermark, PIGGYBACKED on reverse data frames, so a lost
72
+ * dedicated credit self-heals on the next reverse traffic; ANY deeper loss (including loss of
73
+ * already-emitted threshold credits) recovers on the KEEPALIVE re-emit; sustained loss or a
74
+ * dead peer surfaces the TIMER-driven `stall` fault (never a silent hang, even for a sender
75
+ * that stopped calling send). A dropped DATA frame is unrecoverable at this transport (EPS is
76
+ * at-most-once, core-only) and shows as a seq gap the app reacts to — reliability layers
77
+ * inside `data` or uses the journal/checkpoint composites.
78
+ */
79
+ export function openSessionRail(opts) {
80
+ const { grant, role } = opts;
81
+ const window = assertWindow(grant.window);
82
+ const maxPayload = opts.maxPayloadBytes ?? 1024 * 1024;
83
+ const idleCreditMs = opts.idleCreditMs ?? 1000;
84
+ const stallTimeoutMs = opts.stallTimeoutMs ?? 30_000;
85
+ const now = opts.now ?? (() => Date.now());
86
+ const setIntervalFn = opts.setIntervalFn ?? ((fn, ms) => setInterval(fn, ms));
87
+ const clearIntervalFn = opts.clearIntervalFn ?? ((h) => clearInterval(h));
88
+ const egressDir = role === "caller" ? "in" : "out";
89
+ const ingressDir = role === "caller" ? "out" : "in";
90
+ const egress = epsSubject(grant.space, grant.endpoint, grant.sessionId, grant.serving.epoch, egressDir);
91
+ const ingress = epsSubject(grant.space, grant.endpoint, grant.sessionId, grant.serving.epoch, ingressDir);
92
+ let seq = 0; // last sent
93
+ let ackedThrough = 0; // peer's contiguous ack for OUR egress (absolute)
94
+ let windowFullSince = 0; // when the window became full with no ack advance (0 = not blocked)
95
+ let expected = 1; // next ingress data seq we can deliver contiguously
96
+ let deliveredSinceCredit = 0;
97
+ let dataSinceIdleTick = false; // did ingress data arrive since the last idle tick?
98
+ let delivered = 0;
99
+ let closed = false;
100
+ let broken = false;
101
+ let tornDown = false;
102
+ let idleTimer;
103
+ let sub;
104
+ const creditEvery = Math.max(1, Math.ceil(window / 2));
105
+ // EXACTLY-ONCE local cleanup, whoever triggers it (local close, PEER close, or a protocol
106
+ // fault): a remote peer must never be able to leave this side holding a dangling
107
+ // subscription + interval per session (a remotely triggerable resource leak).
108
+ const teardown = () => {
109
+ if (tornDown)
110
+ return;
111
+ tornDown = true;
112
+ if (idleTimer)
113
+ clearIntervalFn(idleTimer);
114
+ sub?.unsubscribe();
115
+ };
116
+ const protocolError = (reason, detail) => {
117
+ broken = true;
118
+ teardown(); // a broken rail holds no resources
119
+ opts.onProtocolError?.(reason, detail);
120
+ };
121
+ // Absorb an absolute watermark from a credit frame OR a piggybacked data ack. Monotonic — a
122
+ // stale/duplicated advertisement never narrows the window; an ack past what we ever sent is a
123
+ // protocol violation (fail-loud, never silently widen).
124
+ const applyAck = (ack) => {
125
+ if (ack > seq) {
126
+ protocolError("credit-overrun", { ack, sent: seq });
127
+ return;
128
+ }
129
+ if (ack > ackedThrough) {
130
+ ackedThrough = ack;
131
+ windowFullSince = 0; // progress — reset the stall watchdog
132
+ }
133
+ };
134
+ const emitCredit = () => {
135
+ try {
136
+ opts.nc.publish(egress, encodeSessionFrame({ t: "credit", ack: expected - 1 }));
137
+ }
138
+ catch (e) {
139
+ protocolError("publish", e?.message ?? String(e));
140
+ }
141
+ };
142
+ // SERIALIZED data acceptance: the application accepts FIRST and may be ASYNC — NATS does not
143
+ // serialize callback promises, so the callback only enqueues and this single drain loop runs
144
+ // one handler at a time in seq order. The watermark advances and credit emits only after the
145
+ // handler RESOLVES (credit == the receiver's buffer actually freed: the §13.6 back-pressure
146
+ // semantic), so an async rejection refuses the frame exactly like a synchronous throw. The
147
+ // HEAD frame stays queued while its handler runs, so the window bound below counts it; a
148
+ // handler that resolves into a rail that closed or broke meanwhile advances NOTHING.
149
+ const ingressQueue = [];
150
+ let draining = false;
151
+ const drain = async () => {
152
+ if (draining)
153
+ return;
154
+ draining = true;
155
+ try {
156
+ while (!closed && !broken && ingressQueue.length > 0) {
157
+ const head = ingressQueue[0];
158
+ try {
159
+ await opts.onData(head.data, head.seq);
160
+ }
161
+ catch (e) {
162
+ // A rejection landing in a rail that closed or broke DURING the await reports
163
+ // NOTHING: the rail is already terminal (its fault, if any, was already surfaced),
164
+ // and a second protocolError would double-fault a dead rail.
165
+ if (closed || broken)
166
+ return;
167
+ protocolError("handler", e?.message ?? String(e));
168
+ return;
169
+ }
170
+ if (closed || broken)
171
+ return;
172
+ ingressQueue.shift();
173
+ expected++;
174
+ delivered++;
175
+ deliveredSinceCredit++;
176
+ if (deliveredSinceCredit >= creditEvery) {
177
+ deliveredSinceCredit = 0;
178
+ emitCredit();
179
+ }
180
+ }
181
+ }
182
+ finally {
183
+ draining = false;
184
+ }
185
+ };
186
+ sub = opts.nc.subscribe(ingress, {
187
+ callback: (err, msg) => {
188
+ if (closed || broken)
189
+ return;
190
+ if (err) {
191
+ protocolError("subscription", err.message);
192
+ return;
193
+ }
194
+ let frame;
195
+ try {
196
+ frame = parseSessionFrame(msg.data);
197
+ }
198
+ catch (e) {
199
+ protocolError("garbled-frame", e.message);
200
+ return;
201
+ }
202
+ if (frame.t === "credit") {
203
+ applyAck(frame.ack);
204
+ return;
205
+ }
206
+ if (frame.t === "close") {
207
+ closed = true;
208
+ teardown();
209
+ opts.onClose?.();
210
+ return;
211
+ }
212
+ // Data. Its piggybacked ack refreshes OUR credit first (self-heals a lost dedicated
213
+ // credit) — and an OVERRUNNING piggyback breaks the rail BEFORE the frame's data can
214
+ // reach the application: a protocol-invalid frame must have no application effect.
215
+ if (frame.ack !== undefined) {
216
+ applyAck(frame.ack);
217
+ if (broken)
218
+ return;
219
+ }
220
+ dataSinceIdleTick = true;
221
+ // Contiguity is judged against the queue's tail (the head may still be in its handler):
222
+ // a peer sending in order while an earlier handler is pending is NOT a gap.
223
+ const nextIngress = expected + ingressQueue.length;
224
+ if (frame.seq < nextIngress)
225
+ return; // duplicate — idempotent drop
226
+ if (frame.seq > nextIngress) {
227
+ protocolError("gap", { expected: nextIngress, got: frame.seq });
228
+ return;
229
+ }
230
+ // The ingress queue is bounded by the grant WINDOW (an honest peer can never have more
231
+ // unacknowledged frames in flight): a peer that ignores flow control while a handler is
232
+ // pending cannot pile promises here — the rail breaks instead (§13.6: never unbounded).
233
+ if (ingressQueue.length >= window) {
234
+ protocolError("flood", { queued: ingressQueue.length, window });
235
+ return;
236
+ }
237
+ ingressQueue.push({ seq: frame.seq, data: frame.data });
238
+ void drain();
239
+ },
240
+ });
241
+ // One tick drives BOTH recovery legs:
242
+ // - the KEEPALIVE credit re-emit: while this side has delivered anything and the peer went
243
+ // quiet, re-advertise the absolute watermark — deliberately NOT gated on what was already
244
+ // advertised (see idleCreditMs docs: the double-credit-loss counterexample).
245
+ // - the STALL WATCHDOG: a window that stays full past stallTimeoutMs with no ack advance
246
+ // breaks the rail with a DETECTABLE fault even if the sender never calls send() again.
247
+ if (idleCreditMs > 0 || stallTimeoutMs > 0) {
248
+ idleTimer = setIntervalFn(() => {
249
+ if (closed || broken)
250
+ return;
251
+ if (stallTimeoutMs > 0 && windowFullSince !== 0) {
252
+ const blockedMs = now() - windowFullSince;
253
+ if (blockedMs > stallTimeoutMs) {
254
+ protocolError("stall", { window, ackedThrough, sent: seq, blockedMs });
255
+ return;
256
+ }
257
+ }
258
+ if (idleCreditMs > 0 && !dataSinceIdleTick && expected > 1)
259
+ emitCredit();
260
+ dataSinceIdleTick = false;
261
+ }, idleCreditMs > 0 ? idleCreditMs : 1000);
262
+ idleTimer.unref?.();
263
+ }
264
+ return {
265
+ send(data) {
266
+ if (closed || broken)
267
+ throw new EpEnvelopeError("failed-precondition", "session rail is closed/broken; establish a new session (SPEC 13.6)");
268
+ if (seq >= Number.MAX_SAFE_INTEGER - 1) {
269
+ protocolError("seq-exhausted", { seq });
270
+ throw new EpEnvelopeError("failed-precondition", "session rail exhausted its sequence space; establish a new session (SPEC 13.6)");
271
+ }
272
+ if (seq - ackedThrough >= window) {
273
+ // The window is full. The timer is the primary stall detector; this path double-checks
274
+ // (belt for a caller running with timers disabled) and otherwise refuses TRANSIENTLY.
275
+ const t = now();
276
+ if (windowFullSince === 0)
277
+ windowFullSince = t;
278
+ else if (stallTimeoutMs > 0 && t - windowFullSince > stallTimeoutMs) {
279
+ protocolError("stall", { window, ackedThrough, sent: seq, blockedMs: t - windowFullSince });
280
+ throw new EpEnvelopeError("failed-precondition", `session rail stalled: the window stayed full ${t - windowFullSince}ms with no credit; the peer is unreachable, re-establish (SPEC 13.6)`);
281
+ }
282
+ throw new EpEnvelopeError("resource-exhausted", `session window is full (${window} unacknowledged frames); the flow window is bounded and nothing buffers (SPEC 13.6)`);
283
+ }
284
+ // Piggyback our absolute reverse-rail watermark so a lost dedicated credit self-heals.
285
+ const ack = expected - 1;
286
+ const frame = encodeSessionFrame({ t: "f", seq: seq + 1, data, ...(ack > 0 ? { ack } : {}) });
287
+ if (frame.byteLength > maxPayload)
288
+ throw new EpEnvelopeError("contract-invalid", `session frame is ${frame.byteLength} bytes, over the ${maxPayload}-byte payload ceiling`);
289
+ // Publish BEFORE advancing: a synchronous publish failure must not consume the seq (the
290
+ // peer would otherwise see a permanent gap from a frame that never left this process,
291
+ // and the local stats would count it in flight). A failed publish breaks the rail.
292
+ try {
293
+ opts.nc.publish(egress, frame);
294
+ }
295
+ catch (e) {
296
+ protocolError("publish", e?.message ?? String(e));
297
+ throw new EpEnvelopeError("failed-precondition", `session rail publish failed; the rail is broken, re-establish (SPEC 13.6): ${e?.message ?? String(e)}`);
298
+ }
299
+ seq++;
300
+ // Arm the watchdog the moment the window BECOMES full: a sender that now only waits
301
+ // (never calling send again) is still covered by the timer-driven stall check.
302
+ if (seq - ackedThrough >= window && windowFullSince === 0)
303
+ windowFullSince = now();
304
+ return seq;
305
+ },
306
+ close() {
307
+ if (closed) {
308
+ teardown(); // idempotent; also covers close-after-broken
309
+ return;
310
+ }
311
+ closed = true;
312
+ try {
313
+ opts.nc.publish(egress, encodeSessionFrame({ t: "close" }));
314
+ }
315
+ catch {
316
+ /* advisory only — the ledger is the authority */
317
+ }
318
+ teardown();
319
+ },
320
+ stats() {
321
+ return { sent: seq, ackedThrough, delivered, inFlight: seq - ackedThrough };
322
+ },
323
+ };
324
+ }
325
+ //# sourceMappingURL=endpoint-session-rail.js.map