@cotal-ai/core 0.12.0 → 0.13.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 (152) hide show
  1. package/dist/acls.d.ts +31 -7
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +105 -17
  4. package/dist/acls.js.map +1 -1
  5. package/dist/agent-file.js +1 -1
  6. package/dist/agent-file.js.map +1 -1
  7. package/dist/auth-provider.d.ts +8 -0
  8. package/dist/auth-provider.d.ts.map +1 -1
  9. package/dist/auth-provider.js.map +1 -1
  10. package/dist/backup.d.ts.map +1 -1
  11. package/dist/backup.js +6 -4
  12. package/dist/backup.js.map +1 -1
  13. package/dist/broker-floor.d.ts +34 -0
  14. package/dist/broker-floor.d.ts.map +1 -0
  15. package/dist/broker-floor.js +39 -0
  16. package/dist/broker-floor.js.map +1 -0
  17. package/dist/canonical.d.ts +24 -0
  18. package/dist/canonical.d.ts.map +1 -0
  19. package/dist/canonical.js +159 -0
  20. package/dist/canonical.js.map +1 -0
  21. package/dist/connector.d.ts +4 -0
  22. package/dist/connector.d.ts.map +1 -1
  23. package/dist/endpoint-action.d.ts +424 -0
  24. package/dist/endpoint-action.d.ts.map +1 -0
  25. package/dist/endpoint-action.js +910 -0
  26. package/dist/endpoint-action.js.map +1 -0
  27. package/dist/endpoint-binding.d.ts +344 -0
  28. package/dist/endpoint-binding.d.ts.map +1 -0
  29. package/dist/endpoint-binding.js +753 -0
  30. package/dist/endpoint-binding.js.map +1 -0
  31. package/dist/endpoint-checkpoint.d.ts +292 -0
  32. package/dist/endpoint-checkpoint.d.ts.map +1 -0
  33. package/dist/endpoint-checkpoint.js +818 -0
  34. package/dist/endpoint-checkpoint.js.map +1 -0
  35. package/dist/endpoint-cluster.d.ts +95 -0
  36. package/dist/endpoint-cluster.d.ts.map +1 -0
  37. package/dist/endpoint-cluster.js +194 -0
  38. package/dist/endpoint-cluster.js.map +1 -0
  39. package/dist/endpoint-contract-store.d.ts +90 -0
  40. package/dist/endpoint-contract-store.d.ts.map +1 -0
  41. package/dist/endpoint-contract-store.js +348 -0
  42. package/dist/endpoint-contract-store.js.map +1 -0
  43. package/dist/endpoint-envelope.d.ts +165 -0
  44. package/dist/endpoint-envelope.d.ts.map +1 -0
  45. package/dist/endpoint-envelope.js +346 -0
  46. package/dist/endpoint-envelope.js.map +1 -0
  47. package/dist/endpoint-grants.d.ts +123 -0
  48. package/dist/endpoint-grants.d.ts.map +1 -0
  49. package/dist/endpoint-grants.js +215 -0
  50. package/dist/endpoint-grants.js.map +1 -0
  51. package/dist/endpoint-guard.d.ts +222 -0
  52. package/dist/endpoint-guard.d.ts.map +1 -0
  53. package/dist/endpoint-guard.js +468 -0
  54. package/dist/endpoint-guard.js.map +1 -0
  55. package/dist/endpoint-handle.d.ts +176 -0
  56. package/dist/endpoint-handle.d.ts.map +1 -0
  57. package/dist/endpoint-handle.js +608 -0
  58. package/dist/endpoint-handle.js.map +1 -0
  59. package/dist/endpoint-journal.d.ts +225 -0
  60. package/dist/endpoint-journal.d.ts.map +1 -0
  61. package/dist/endpoint-journal.js +431 -0
  62. package/dist/endpoint-journal.js.map +1 -0
  63. package/dist/endpoint-receipt.d.ts +225 -0
  64. package/dist/endpoint-receipt.d.ts.map +1 -0
  65. package/dist/endpoint-receipt.js +417 -0
  66. package/dist/endpoint-receipt.js.map +1 -0
  67. package/dist/endpoint-records.d.ts +243 -0
  68. package/dist/endpoint-records.d.ts.map +1 -0
  69. package/dist/endpoint-records.js +591 -0
  70. package/dist/endpoint-records.js.map +1 -0
  71. package/dist/endpoint-serve.d.ts +176 -0
  72. package/dist/endpoint-serve.d.ts.map +1 -0
  73. package/dist/endpoint-serve.js +446 -0
  74. package/dist/endpoint-serve.js.map +1 -0
  75. package/dist/endpoint-service.d.ts +518 -0
  76. package/dist/endpoint-service.d.ts.map +1 -0
  77. package/dist/endpoint-service.js +973 -0
  78. package/dist/endpoint-service.js.map +1 -0
  79. package/dist/endpoint-session.d.ts +398 -0
  80. package/dist/endpoint-session.d.ts.map +1 -0
  81. package/dist/endpoint-session.js +834 -0
  82. package/dist/endpoint-session.js.map +1 -0
  83. package/dist/endpoint-signing.d.ts +105 -0
  84. package/dist/endpoint-signing.d.ts.map +1 -0
  85. package/dist/endpoint-signing.js +190 -0
  86. package/dist/endpoint-signing.js.map +1 -0
  87. package/dist/endpoint-subjects.d.ts +222 -0
  88. package/dist/endpoint-subjects.d.ts.map +1 -0
  89. package/dist/endpoint-subjects.js +381 -0
  90. package/dist/endpoint-subjects.js.map +1 -0
  91. package/dist/endpoint-supervisor.d.ts +19 -0
  92. package/dist/endpoint-supervisor.d.ts.map +1 -0
  93. package/dist/endpoint-supervisor.js +12 -0
  94. package/dist/endpoint-supervisor.js.map +1 -0
  95. package/dist/endpoint-traits.d.ts +225 -0
  96. package/dist/endpoint-traits.d.ts.map +1 -0
  97. package/dist/endpoint-traits.js +469 -0
  98. package/dist/endpoint-traits.js.map +1 -0
  99. package/dist/endpoint-verbs.d.ts +277 -0
  100. package/dist/endpoint-verbs.d.ts.map +1 -0
  101. package/dist/endpoint-verbs.js +576 -0
  102. package/dist/endpoint-verbs.js.map +1 -0
  103. package/dist/endpoint-virtual.d.ts +308 -0
  104. package/dist/endpoint-virtual.d.ts.map +1 -0
  105. package/dist/endpoint-virtual.js +440 -0
  106. package/dist/endpoint-virtual.js.map +1 -0
  107. package/dist/endpoint-work.d.ts +304 -0
  108. package/dist/endpoint-work.d.ts.map +1 -0
  109. package/dist/endpoint-work.js +728 -0
  110. package/dist/endpoint-work.js.map +1 -0
  111. package/dist/endpoint.d.ts +66 -22
  112. package/dist/endpoint.d.ts.map +1 -1
  113. package/dist/endpoint.js +289 -89
  114. package/dist/endpoint.js.map +1 -1
  115. package/dist/evict.d.ts +95 -32
  116. package/dist/evict.d.ts.map +1 -1
  117. package/dist/evict.js +193 -3
  118. package/dist/evict.js.map +1 -1
  119. package/dist/index.d.ts +25 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +25 -0
  122. package/dist/index.js.map +1 -1
  123. package/dist/lease.d.ts +4 -0
  124. package/dist/lease.d.ts.map +1 -1
  125. package/dist/lease.js.map +1 -1
  126. package/dist/members.d.ts +4 -4
  127. package/dist/members.d.ts.map +1 -1
  128. package/dist/members.js +12 -12
  129. package/dist/members.js.map +1 -1
  130. package/dist/provision.d.ts +70 -18
  131. package/dist/provision.d.ts.map +1 -1
  132. package/dist/provision.js +194 -33
  133. package/dist/provision.js.map +1 -1
  134. package/dist/safe-pattern.d.ts +33 -0
  135. package/dist/safe-pattern.d.ts.map +1 -0
  136. package/dist/safe-pattern.js +486 -0
  137. package/dist/safe-pattern.js.map +1 -0
  138. package/dist/schema-profile.d.ts +93 -0
  139. package/dist/schema-profile.d.ts.map +1 -0
  140. package/dist/schema-profile.js +284 -0
  141. package/dist/schema-profile.js.map +1 -0
  142. package/dist/streams.d.ts +13 -8
  143. package/dist/streams.d.ts.map +1 -1
  144. package/dist/streams.js +35 -18
  145. package/dist/streams.js.map +1 -1
  146. package/dist/subjects.d.ts +100 -40
  147. package/dist/subjects.d.ts.map +1 -1
  148. package/dist/subjects.js +136 -60
  149. package/dist/subjects.js.map +1 -1
  150. package/dist/types.d.ts +9 -0
  151. package/dist/types.d.ts.map +1 -1
  152. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,398 @@
1
+ import type { NatsConnection } from "@nats-io/transport-node";
2
+ import { type AnchorResolver } from "./endpoint-signing.js";
3
+ /** Grant validity ceiling — a session grant is LIVE-class authority (§13.6 "expiry per the
4
+ * handle rules"; it is one-use and epoch-bound on both sides, never sturdy). */
5
+ export declare const SESSION_GRANT_MAX_TTL_MS: number;
6
+ export declare const SESSION_GRANT_MAX_BYTES: number;
7
+ /** The bounded flow window (§13.6: declared in the grant; overflow is `resource-exhausted`). */
8
+ export declare const SESSION_WINDOW_DEFAULT = 64;
9
+ export declare const SESSION_WINDOW_MAX = 1024;
10
+ /** §13.6 "fresh unguessable sessionId": at least 22 base64url chars (≥128 bits) — enforced on
11
+ * CALLER-SUPPLIED ids too, so a short guessable id cannot ride in through the mint arg. */
12
+ export declare const SESSION_ID_MIN_CHARS = 22;
13
+ /** Mint a fresh unguessable sessionId: 32 CSPRNG bytes, base64url (43 chars, within the
14
+ * bounded id-token grammar the subject builder pins). */
15
+ export declare function mintSessionId(): string;
16
+ /** The §13.6/§13.10 session grant: one-use, holder-bound, epoch-pinned on BOTH sides. */
17
+ export interface SessionGrant {
18
+ v: 1;
19
+ sessionId: string;
20
+ space: string;
21
+ endpoint: string;
22
+ /** BOTH rail subjects, explicit in the signed form AND re-derived at verification. */
23
+ subjects: {
24
+ in: string;
25
+ out: string;
26
+ };
27
+ /** The redeeming caller: live authority — bound to lifecycle AND current process epoch. */
28
+ holder: {
29
+ id: string;
30
+ lifecycleUid: string;
31
+ processEpoch: number;
32
+ };
33
+ /** The serving instance the session is pinned to; the epoch rides the subjects too. */
34
+ serving: {
35
+ instanceId: string;
36
+ epoch: number;
37
+ };
38
+ /** Max in-flight (unacknowledged) data frames per direction. */
39
+ window: number;
40
+ iat: number;
41
+ nbf?: number;
42
+ exp: number;
43
+ /** Freshness/anti-replay token for the establishment exchange (the one-use is the ledger
44
+ * create-CAS; the nonce only disambiguates re-issued grants for the same pair). */
45
+ nonce: string;
46
+ /** Signing key (anchor registry, role `sessions`). */
47
+ issuer: {
48
+ keyId: string;
49
+ };
50
+ sig: string;
51
+ }
52
+ /** Everything {@link mintSessionGrant} needs besides the signing key. */
53
+ export interface MintSessionGrantArgs {
54
+ space: string;
55
+ endpoint: string;
56
+ sessionId?: string;
57
+ holder: {
58
+ id: string;
59
+ lifecycleUid: string;
60
+ processEpoch: number;
61
+ };
62
+ serving: {
63
+ instanceId: string;
64
+ epoch: number;
65
+ };
66
+ window?: number;
67
+ ttlMs: number;
68
+ issuerKeyId: string;
69
+ now?: number;
70
+ }
71
+ /** Build + sign a session grant (the serving side's establishment answer). The rail subjects
72
+ * are DERIVED here — the signature pins them; a verifier re-derives and compares. */
73
+ export declare function mintSessionGrant(args: MintSessionGrantArgs, keyPair: {
74
+ sign(input: Uint8Array): Uint8Array;
75
+ }): SessionGrant;
76
+ /** Parse + verify a presented session grant, D28-exact: the signature verifies over the EXACT
77
+ * raw artifact (sig absent), the parsed projection is for semantics only; the anchor is
78
+ * resolved FRESH (role `sessions`, scope ceiling covers the endpoint); the rail subjects are
79
+ * re-derived and compared; currency is checked at `now`. Fail-closed everywhere; every nested
80
+ * object is a CLOSED schema. */
81
+ export declare function verifySessionGrant(raw: unknown, opts: {
82
+ space: string;
83
+ resolveAnchor: AnchorResolver;
84
+ now?: number;
85
+ }): Promise<SessionGrant>;
86
+ export declare const SESSION_TERMINAL_STATES: readonly ["closed", "expired", "superseded", "retired"];
87
+ export type SessionTerminalState = (typeof SESSION_TERMINAL_STATES)[number];
88
+ export type SessionState = "issuing" | "active" | SessionTerminalState;
89
+ /** The durable revocation authority that survives the serving endpoint (§13.6). Both
90
+ * credential ids are recorded FROM CREATION (the `issuing` write), so a crash at any later
91
+ * point leaves a row that names exactly what the sweep must revoke. The row also pins the
92
+ * ENDPOINT: `instanceId` is unique only within `(space, endpoint)`, so a row without the
93
+ * endpoint could not prove WHICH endpoint's serving party is entitled to retrieve/close. */
94
+ export interface SessionLedgerRow {
95
+ sessionId: string;
96
+ /** The serving endpoint name — with `serving.instanceId`/`epoch` this is the full serving
97
+ * identity every serving-party operation authenticates against. */
98
+ endpoint: string;
99
+ serving: {
100
+ instanceId: string;
101
+ epoch: number;
102
+ };
103
+ holder: {
104
+ principal: string;
105
+ lifecycleUid: string;
106
+ };
107
+ /** The WINNING grant's Ed25519 signature — the full verified-artifact identity (it covers
108
+ * window, holder processEpoch, iat/nbf, nonce, issuer, everything signed). The lost-response
109
+ * retry re-releases ONLY when the presenting grant's signature equals this, so a DIFFERENT
110
+ * signed grant that merely reuses the sessionId + the compared coordinate subset can never
111
+ * re-release the winner's credential (§13.6/§13.10). */
112
+ grantSig: string;
113
+ credCaller: string;
114
+ credServing: string;
115
+ /** Per-credential revocation completion (durable), created all-false: set only when that
116
+ * id's revoke SUCCEEDED, so a swallowed revoke failure anywhere is retried by every later
117
+ * sweep pass instead of silently leaking half a pair. */
118
+ revoked: {
119
+ caller: boolean;
120
+ serving: boolean;
121
+ };
122
+ state: SessionState;
123
+ exp: number;
124
+ }
125
+ /** The auth-store key (`session.<sessionId>`, §13.12). */
126
+ export declare function sessionLedgerKey(sessionId: string): string;
127
+ /** The monotonic state grammar: `issuing → active`, `issuing → terminal` (the sweep collecting
128
+ * a crashed half-issue), `active → terminal`. Terminal states never transition. */
129
+ export declare function assertSessionStateTransition(from: SessionState, to: SessionState): void;
130
+ type MaybePromise<T> = T | Promise<T>;
131
+ /** The auth path's durable half: real implementations back this with the auth-store KV
132
+ * (create-only CAS / revision-pinned update); smokes supply a faithful in-memory fake. */
133
+ export interface SessionLedger {
134
+ /** AUTHORITATIVE row read (leader-served, the §13.9 read-service class): the serving
135
+ * retrieval and the holder's post-finalize retry decide on THIS, never on a caller-supplied
136
+ * projection. `undefined` = no row. */
137
+ read(sessionId: string): MaybePromise<SessionLedgerRow | undefined>;
138
+ /** Create-only CAS of the `issuing` row (naming BOTH credential ids). `"exists"` = the
139
+ * one-use is already burned. */
140
+ createIssuing(row: SessionLedgerRow): MaybePromise<"created" | "exists">;
141
+ /** CAS `issuing → active`. `false` = the row moved under us (a close/sweep/barrier raced the
142
+ * finalize; the redemption LOSES and releases nothing). */
143
+ finalizeActive(sessionId: string): MaybePromise<boolean>;
144
+ /** CAS the row to a terminal state (close/expiry/barrier/abandoned redemption). `false` =
145
+ * already terminal (idempotent for the caller's purposes). */
146
+ transitionTerminal(sessionId: string, to: SessionTerminalState): MaybePromise<boolean>;
147
+ /** Durably mark ONE credential id's revocation as COMPLETED. The sweep's terminal-row retry
148
+ * is real only because the row remembers which halves confirmed. */
149
+ markRevoked(sessionId: string, credentialId: string): MaybePromise<void>;
150
+ }
151
+ /** The two per-session credential IDs (the credential-ledger ids revocation names). Allocated
152
+ * BEFORE the one-use `issuing` create, so the row names both from its first durable write and a
153
+ * crash at any later point leaves the sweep able to revoke the whole pair. */
154
+ export interface SessionCredentialIds {
155
+ credCaller: string;
156
+ credServing: string;
157
+ }
158
+ /** One released per-session credential: the id revocation names, the usable creds bytes, and
159
+ * the credential's OWN expiry — which MUST be ≤ the session row's `exp` (the seam validates
160
+ * and fails loud on a hook that mints past the session's life). A credential is authority
161
+ * ONLY once its session row is `active`; nothing releases usable bytes before finalize. */
162
+ export interface SessionCredential {
163
+ id: string;
164
+ creds: string;
165
+ exp: number;
166
+ }
167
+ /** One OBSERVED lifecycle issuance gate (§13.1): the auth-store gate key plus its revision at
168
+ * the observation (a LEADER-SERVED read). The staged credential writes are PINNED to it — a
169
+ * barrier that moves the gate between the observation and the stage makes the pinned write
170
+ * LOSE. This is what makes the two-gate stage→commit ordering testable in core rather than an
171
+ * opaque promise: the pin is data, and an adversarial probe can move the gate under it. */
172
+ export interface LifecycleGatePin {
173
+ key: string;
174
+ revision: number;
175
+ }
176
+ /** The AUTHENTICATED presenter of a redemption — established by the trusted auth path's own
177
+ * connection/exchange (§9/§10), NEVER read from the grant. {@link redeemSession} refuses
178
+ * unless it equals the grant's holder exactly: possession of a leaked grant releases nothing. */
179
+ export interface SessionPresenter {
180
+ id: string;
181
+ lifecycleUid: string;
182
+ }
183
+ /**
184
+ * Everything {@link redeemSession} needs from the trusted auth path. The LIFECYCLE FENCE is the
185
+ * revision-pinned {@link stagePair} write against both parties' OBSERVED gates (a moved gate
186
+ * makes it LOSE), NOT a boolean read — fresh reads are not fences (§13.1/§13.9). The
187
+ * process-epoch and gate reads ARE fencing/observation reads and MUST be leader-served (the
188
+ * auth bucket `allow_direct=false` → `STREAM.MSG.GET`, per the §13.9 read-service class),
189
+ * never a follower Direct Get. Every hook re-runs FRESH at finalize; a cached answer would
190
+ * reopen the §13.1 window.
191
+ */
192
+ export interface SessionRedemptionHooks {
193
+ ledger: SessionLedger;
194
+ /** Allocate the two credential-ledger ids for this session (bounded ids, NO usable bytes) so
195
+ * the `issuing` row can name both from its first write. */
196
+ allocateCredentialIds(grant: SessionGrant): MaybePromise<SessionCredentialIds>;
197
+ /** The holder's CURRENT process epoch (leader-served read), or undefined when the lifecycle
198
+ * has no live process. */
199
+ holderProcessEpoch(holder: {
200
+ id: string;
201
+ lifecycleUid: string;
202
+ }): MaybePromise<number | undefined>;
203
+ /** The serving instance's CURRENT epoch (leader-served read), or undefined when it is not
204
+ * registered/live. */
205
+ servingEpoch(endpoint: string, instanceId: string): MaybePromise<number | undefined>;
206
+ /** LEADER-SERVED observation of the HOLDER's lifecycle issuance gate (§13.1). Throws when
207
+ * the gate is gone (the lifecycle is retired). */
208
+ observeHolderGate(holder: {
209
+ id: string;
210
+ lifecycleUid: string;
211
+ }): MaybePromise<LifecycleGatePin>;
212
+ /** LEADER-SERVED observation of the SERVING instance's lifecycle issuance gate. */
213
+ observeServingGate(endpoint: string, instanceId: string): MaybePromise<LifecycleGatePin>;
214
+ /** Stage BOTH per-session credential-ledger rows, each write REVISION-PINNED to its party's
215
+ * observed gate (§13.1): caller = pub `in` + sub `out` EXACT, serving = the reverse. A gate
216
+ * that moved since its observation (a barrier retired the lifecycle) makes the pinned write
217
+ * LOSE — THROW; this is the lifecycle fence, a write loss, never a boolean read. The rows
218
+ * are indexed under each lifecycle (a later-winning barrier enumerates and revokes them),
219
+ * but confer NOTHING and release NO usable bytes until finalize. */
220
+ stagePair(grant: SessionGrant, ids: SessionCredentialIds, pins: {
221
+ holder: LifecycleGatePin;
222
+ serving: LifecycleGatePin;
223
+ }): MaybePromise<void>;
224
+ /** After finalize → `active`, release ONE party's usable credential by id. IDEMPOTENT for
225
+ * the row's lifetime: a repeated release of the same id returns the SAME credential bytes
226
+ * (never a re-mint) — that is the authenticated lost-response retry path for BOTH parties.
227
+ * Safe because every release sits behind exact presenter authentication (holder equality at
228
+ * {@link redeemSession}; full serving identity at {@link retrieveServingCredential}), so a
229
+ * repeat delivers no authority the party does not already hold; revocation (a terminal row)
230
+ * is the authority boundary, not a release count. Per-party sinks: no private material ever
231
+ * crosses between the two parties. */
232
+ releaseCredential(sessionId: string, credentialId: string): MaybePromise<SessionCredential>;
233
+ /** Revoke one staged/released credential by id, IDEMPOTENTLY (re-revoking a dead id
234
+ * succeeds — the sweep's terminal-row retry depends on it). */
235
+ revokeCredential(id: string): MaybePromise<void>;
236
+ now?(): number;
237
+ }
238
+ /**
239
+ * Redeem a VERIFIED session grant (§13.6 finalize-CAS ordering), presented by an AUTHENTICATED
240
+ * presenter. The panel-locked order — no half-issued session is ever usable, a redemption
241
+ * racing a close loses its finalize and releases nothing:
242
+ *
243
+ * 0. the presenter must equal the grant's holder EXACTLY (identity before anything —
244
+ * possession of a leaked grant releases nothing, §13.10 holder-binding);
245
+ * 1. allocate both credential ids (no bytes; bounded, distinct);
246
+ * 2. create-CAS the `issuing` row naming BOTH ids (the one-use — a duplicate loses here,
247
+ * EXCEPT the authenticated holder retrying an active row after a lost response, which
248
+ * re-releases the SAME holder credential);
249
+ * 3. observe both lifecycle issuance gates (leader-served) and stage both credential rows
250
+ * REVISION-PINNED to them (the lifecycle FENCE: a moved gate makes the pinned write lose);
251
+ * 4. fresh-check both process epochs (leader-served reads) AND grant expiry;
252
+ * 5. finalize-CAS `issuing → active` (a racing close/barrier wins here);
253
+ * 6. release ONLY the HOLDER's credential (the serving side retrieves its own separately).
254
+ *
255
+ * The caller passes the output of {@link verifySessionGrant} (signature/anchor/currency already
256
+ * enforced there) plus the presenter its OWN authenticated context established. Returns the
257
+ * HOLDER's credential alone — {@link retrieveServingCredential} delivers the serving side's, so
258
+ * no private material crosses between the two parties. A release failure AFTER finalize leaves
259
+ * the row `active` and throws: the authenticated holder retries this same call and lands on the
260
+ * re-release path (release is idempotent for the row's life), so a transient release outage is
261
+ * recoverable without a half-session.
262
+ */
263
+ export declare function redeemSession(grant: SessionGrant, presenter: SessionPresenter, hooks: SessionRedemptionHooks): Promise<SessionCredential>;
264
+ /** The serving instance retrieves ITS OWN credential after the session is `active`, through its
265
+ * own authenticated path (never the holder's redemption response — no private material crosses
266
+ * between the two parties, §13.6 per-party release). The presenter is the AUTHENTICATED serving
267
+ * identity (endpoint + instanceId + epoch, established by the auth path's own context); the row
268
+ * is read AUTHORITATIVELY from the ledger, never accepted as a caller-supplied projection.
269
+ * Release is idempotent for the row's life (lost-response retry), behind the exact identity. */
270
+ export declare function retrieveServingCredential(sessionId: string, presenter: {
271
+ endpoint: string;
272
+ instanceId: string;
273
+ epoch: number;
274
+ }, hooks: Pick<SessionRedemptionHooks, "ledger" | "releaseCredential">): Promise<SessionCredential>;
275
+ /** The expiry sweep's per-row decision (the auth path enumerates `session.>` and calls this):
276
+ * an `issuing` or `active` row past its `exp` (plus the caller's margin) transitions
277
+ * `expired` and BOTH credential ids are revoked by name, each MARKED on success. A TERMINAL
278
+ * row with an UNMARKED id is retried — that retry (not a comment) is what makes every
279
+ * swallowed revoke failure in this module safe: the mark is set only by a revoke that
280
+ * succeeded, so half a pair can never quietly outlive its session. Returns whether this pass
281
+ * did work. Fully-collected terminal rows are never touched (retention: rows live at least
282
+ * max session exp + a recovery margin, §13.6). */
283
+ export declare function sweepSessionRow(row: SessionLedgerRow, hooks: Pick<SessionRedemptionHooks, "ledger" | "revokeCredential">, opts: {
284
+ now: number;
285
+ marginMs?: number;
286
+ }): Promise<boolean>;
287
+ /** The composite's own tiny framed protocol; `data` is OPAQUE (any JSON value — binary rides
288
+ * the application's own encoding). `credit`/`close` are CONTROL frames, EXEMPT from the data
289
+ * window (a full data window must never block the credits that reopen it, else instant
290
+ * deadlock). `ack` is an ABSOLUTE cumulative watermark (the sender's contiguous-received count
291
+ * on the OTHER rail): a data frame PIGGYBACKS it, so a lost dedicated credit self-heals on the
292
+ * next reverse data frame, and any deeper loss recovers on the keepalive re-emit; absolute
293
+ * (not delta) so any single credit re-advertises the whole position and a duplicate is
294
+ * harmless. The in-band `close` is advisory (§13.6): revocation authority is the ledger,
295
+ * never this frame. */
296
+ export type SessionFrame = {
297
+ t: "f";
298
+ seq: number;
299
+ data: unknown;
300
+ ack?: number;
301
+ } | {
302
+ t: "credit";
303
+ ack: number;
304
+ } | {
305
+ t: "close";
306
+ };
307
+ export declare function encodeSessionFrame(frame: SessionFrame): Uint8Array;
308
+ /** Fail-loud frame parse (closed schema): a garbled frame is a PROTOCOL error the rail
309
+ * surfaces via `onProtocolError` — never silently skipped, never a crash. */
310
+ export declare function parseSessionFrame(bytes: Uint8Array): SessionFrame;
311
+ /** Which rail each role sends on (§13.6: `in` = caller → endpoint; `out` = the reverse). */
312
+ export type SessionRole = "caller" | "serving";
313
+ export interface SessionRailOpts {
314
+ nc: NatsConnection;
315
+ grant: Pick<SessionGrant, "space" | "endpoint" | "sessionId" | "window"> & {
316
+ serving: {
317
+ epoch: number;
318
+ };
319
+ };
320
+ role: SessionRole;
321
+ /** Delivered in-order for CONTIGUOUS frames, and the application accepts FIRST: the handler
322
+ * may be async — it is AWAITED, and the watermark advances and credit emits only after it
323
+ * RESOLVES, so credit means the receiver's buffer actually freed (back-pressure) and a
324
+ * rejection refuses the frame exactly like a synchronous throw: the rail breaks (`handler`)
325
+ * and the refused frame is neither counted delivered nor credited. Acceptance is SERIALIZED
326
+ * in seq order (one handler in flight; NATS does not serialize callback promises); frames
327
+ * arriving while a handler is pending queue up to the grant WINDOW — past it the rail breaks
328
+ * (`flood`), never an unbounded backlog. A handler wedged forever stalls credit, so the
329
+ * SENDER's window fills and its stall watchdog surfaces the fault. A gap surfaces via
330
+ * onProtocolError("gap"). */
331
+ onData(data: unknown, seq: number): void | Promise<void>;
332
+ /** The peer's advisory close frame arrived (authoritative close is the ledger's). The local
333
+ * subscription and timer are torn down before this fires. */
334
+ onClose?(): void;
335
+ /** The session is broken — close and re-establish. `reason` is one of `garbled-frame` |
336
+ * `gap` | `credit-overrun` | `flood` | `subscription` | `stall` | `handler` | `publish` |
337
+ * `seq-exhausted`. The rail's subscription and timer are torn down before this fires (a
338
+ * broken rail holds no resources). */
339
+ onProtocolError?(reason: string, detail?: unknown): void;
340
+ /** Broker payload ceiling for the SEND preflight (like assertFactFits). Default 1 MiB. */
341
+ maxPayloadBytes?: number;
342
+ /** Keepalive credit re-emit interval (ms): while this side has delivered ANY data and the
343
+ * peer has gone quiet, re-advertise the absolute watermark every tick — including
344
+ * watermarks already advertised, because this side cannot observe whether an emitted
345
+ * credit ARRIVED (gating on "newer than last emitted" turns loss of the advertisement
346
+ * itself into a permanent stall). Absolute acks are idempotent, so the honest recovery is
347
+ * repetition; the cost is one control frame per quiet tick. 0 disables. Default 1000. */
348
+ idleCreditMs?: number;
349
+ /** Sender stall watchdog (ms): if the data window stays full this long with NO ack advance
350
+ * (sustained credit loss or a dead peer), the rail breaks with a DETECTABLE `stall` fault —
351
+ * TIMER-driven, so a sender that stops calling send() still learns its peer is gone; the
352
+ * send path double-checks as a belt. 0 disables. Default 30000. */
353
+ stallTimeoutMs?: number;
354
+ /** Injectable clock (testability); default Date.now. */
355
+ now?: () => number;
356
+ /** Injectable interval timer (testability); defaults to Node setInterval/clearInterval. */
357
+ setIntervalFn?: (fn: () => void, ms: number) => {
358
+ unref?: () => void;
359
+ };
360
+ clearIntervalFn?: (h: unknown) => void;
361
+ }
362
+ export interface SessionRail {
363
+ /** Send one opaque data frame (piggybacking this side's absolute reverse-rail watermark).
364
+ * Throws `resource-exhausted` when the window is full (no buffering, §13.6), `contract-invalid`
365
+ * when the encoded frame exceeds the payload ceiling, and `failed-precondition` once the rail
366
+ * is closed/broken (including a detected stall or a failed publish). Returns the frame's seq. */
367
+ send(data: unknown): number;
368
+ /** Send the advisory close frame and stop the rail locally. Idempotent. */
369
+ close(): void;
370
+ /** In-memory window state (observability + smoke assertions). */
371
+ stats(): {
372
+ sent: number;
373
+ ackedThrough: number;
374
+ delivered: number;
375
+ inFlight: number;
376
+ };
377
+ }
378
+ /**
379
+ * Open one side of an established session over its two core rails. The credentials the
380
+ * redemption released confine each side to exactly its pub/sub pair; this helper only speaks
381
+ * the framed protocol and enforces the bounded window — it grants nothing.
382
+ *
383
+ * FLOW CONTROL (panel-locked): the data window is bounded and per-direction; control frames
384
+ * (`credit`, `close`) are EXEMPT (a full window never blocks the credits that reopen it).
385
+ * RECEIVE-side acceptance is serialized and the (possibly async) handler AWAITED — credit
386
+ * emits only for frames the application actually accepted — and the pending-frame queue is
387
+ * bounded by the same window (`flood` past it), so neither side ever buffers unboundedly.
388
+ * Credits carry an ABSOLUTE cumulative watermark, PIGGYBACKED on reverse data frames, so a lost
389
+ * dedicated credit self-heals on the next reverse traffic; ANY deeper loss (including loss of
390
+ * already-emitted threshold credits) recovers on the KEEPALIVE re-emit; sustained loss or a
391
+ * dead peer surfaces the TIMER-driven `stall` fault (never a silent hang, even for a sender
392
+ * that stopped calling send). A dropped DATA frame is unrecoverable at this transport (EPS is
393
+ * at-most-once, core-only) and shows as a seq gap the app reacts to — reliability layers
394
+ * inside `data` or uses the journal/checkpoint composites.
395
+ */
396
+ export declare function openSessionRail(opts: SessionRailOpts): SessionRail;
397
+ export {};
398
+ //# sourceMappingURL=endpoint-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-session.d.ts","sourceRoot":"","sources":["../src/endpoint-session.ts"],"names":[],"mappings":"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"}