@rindle/api-server 0.4.4 → 0.5.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.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import type { Ast, ColType, KeyedRow, MutationEnvelope, MutationOp, MutatorCtx, NamedQuery, Query, Schema, SharedMutator, SharedMutatorWithArgs, ServerWriteTx } from "@rindle/client";
2
- import type { ClaimRoomEpochInput, ClaimRoomEpochOutput, DematerializeInput, DematerializeOutput, MaterializationPolicy, MaterializeInput, MaterializeOutput, MigrateInput, MigrateOutput, MutationRejection, MutationRejectionOutput, MutationSessionBegin, MutationSessionBeginOutput, MutationSessionExec, MutationSessionQuery, MutationSessionRef, QueryOnceInput, QueryOnceOutput, RindleDaemonClient, RoomLmidsInput, RoomLmidsOutput, RowChangeTxn, RowChangeTxnOutput, SqlRead, SqlReadOutput, SqlStatement, SqlTxn, SqlTxnOutput, StreamMode, WireValue } from "@rindle/daemon-client";
2
+ import type { ClaimRoomEpochInput, ClaimRoomEpochOutput, CoverQueryInput, CoverQueryOutput, DematerializeInput, DematerializeOutput, MaterializationPolicy, MaterializeInput, MaterializeOutput, MigrateInput, MigrateOutput, MutationRejection, MutationRejectionOutput, MutationSessionBegin, MutationSessionBeginOutput, MutationSessionExec, MutationSessionQuery, MutationSessionRef, QueryOnceInput, QueryOnceOutput, RindleDaemonClient, RoomLmidsInput, RoomLmidsOutput, RowChangeTxn, RowChangeTxnOutput, SqlRead, SqlReadOutput, SqlStatement, SqlTxn, SqlTxnOutput, StreamMode, WireValue } from "@rindle/daemon-client";
3
+ import type { RoomProfile, RoomScopeSpec, RoomTableSpec } from "./rooms.ts";
3
4
  export { isoTx, shared } from "@rindle/client";
4
5
  export type { ArgSchema, IsoTx, MutationGen, MutatorCtx, SharedMutator, SharedMutatorWithArgs } from "@rindle/client";
6
+ export { queryRealtimeLabel, queryResultToAst } from "./rooms.ts";
7
+ export type { RoomProfile, RoomScopeSpec, RoomTableSpec } from "./rooms.ts";
8
+ export type { RealtimeQueryLabel } from "@rindle/client";
5
9
  export declare const DEFAULT_RINDLE_API_ROUTES: {
6
10
  readonly query: "/api/rindle/query";
7
11
  readonly read: "/api/rindle/read";
@@ -75,6 +79,72 @@ export type ApiMutatorResult = void | SqlStatement[] | SqlTxn;
75
79
  * (the SAME body the client predicts) via {@link runSharedMutation}, keeping only the server-only
76
80
  * authority (arg parse, principal, policy) in the wrapper. */
77
81
  export type ApiMutator<User, Args> = (tx: ServerMutationTx, args: Args, ctx: MutationContext<User>) => MaybePromise<ApiMutatorResult>;
82
+ /** Thrown by {@link MutationScope.transact} when the transacted body BUSINESS-rejects: the data
83
+ * rolled back and `lmid` advanced alone (§2.4). Catch it to COMPENSATE an outside-tx side effect
84
+ * (refund the charge), then rethrow or return — the mutation's protocol outcome is already sealed
85
+ * as rejected, so a post-reject throw can't change it. A DB/infra failure is NOT this — it
86
+ * propagates as the raw driver error (the client retries; `lmid` did not advance). */
87
+ export declare class MutationRejected extends Error {
88
+ readonly reason: string;
89
+ constructor(reason: string);
90
+ }
91
+ /** The per-mutation server handle a {@link ScopedMutator} runs against. Code before {@link transact}
92
+ * runs OUTSIDE the transaction; code after a clean `transact` runs AFTER the commit. The
93
+ * `lmid`-always-advances invariant is the HARNESS's, not the author's: {@link RindleApiServer.pushMutation}
94
+ * seals the response from this handle's recorded outcome, so an early return, a never-called
95
+ * `transact`, or a swallowed {@link MutationRejected} still advances `lmid` and never wedges the
96
+ * client's pending queue. */
97
+ export interface MutationScope {
98
+ /** Open the ONE atomic write transaction and drive `body` inside it, committing (stamping `lmid`
99
+ * co-transactionally) on a clean return. MAY be called at most once — a second call throws.
100
+ *
101
+ * Two forms:
102
+ * - `transact(sharedMutator, args, ctx)` — drive a SHARED (generator) mutator (the same body the
103
+ * client predicts); pass the already-parsed `args` and the server `ctx` (fold server-only
104
+ * values like a charge id into `ctx` here).
105
+ * - `transact(run)` — a raw callback receiving the live {@link ServerMutationTx} (the escape
106
+ * hatch: `tx.exec`, logical writes, read-your-writes reads).
107
+ *
108
+ * A THROW from the body that is not a {@link BackendError} is a BUSINESS rejection: the data rolls
109
+ * back, `lmid` advances alone, and this method throws {@link MutationRejected} (so surrounding
110
+ * code can compensate). A {@link BackendError} is INFRA: it propagates (the client retries). */
111
+ transact(run: (tx: ServerMutationTx) => void | Promise<void>): Promise<void>;
112
+ transact<A, C extends MutatorCtx>(mutator: SharedMutator<A, C>, args: A, ctx: C): Promise<void>;
113
+ }
114
+ /** A SCOPED server mutator (WORK-OUTSIDE-TX): server-only code, ONE `scope.transact`, optional
115
+ * post-commit code. Register it by wrapping in {@link scoped} — the tag the api-server routes on to
116
+ * hand it a {@link MutationScope} instead of running its whole body inside the transaction. */
117
+ export type ScopedMutator<User, Args> = (scope: MutationScope, args: Args, ctx: MutationContext<User>) => void | Promise<void>;
118
+ /** A {@link ScopedMutator} tagged by {@link scoped} so the harness invokes it with a
119
+ * {@link MutationScope}. Typed as a BRANDED tx-form {@link ApiMutator} purely so it registers in the
120
+ * `mutators` record without widening it to a union (which would break contextual inference for every
121
+ * plain tx-form entry). Its true runtime shape is `(scope, args, ctx)`; the tag — not the type —
122
+ * routes it, and it is never actually called as a tx-form mutator. */
123
+ export type ScopedApiMutator<User, Args> = ApiMutator<User, Args> & {
124
+ readonly __rindleScoped: true;
125
+ };
126
+ /** Mark a mutator as SCOPED so the api-server gives it a {@link MutationScope} (author-controlled tx
127
+ * boundary via `scope.transact`) rather than running its whole body inside the transaction. Register
128
+ * it alongside the tx-form mutators — it wins by key like any override:
129
+ *
130
+ * ```ts
131
+ * mutators: defineApiMutators({
132
+ * ...sharedApiMutators(sharedMutators, sharedCtx), // tx-form (common case)
133
+ * createOrder: scoped(async (scope, raw, ctx) => { // needs outside-tx work
134
+ * const args = createOrder.args.parse(raw);
135
+ * const chargeId = await stripe.charge(args.amount, { idempotencyKey: ctx.envelope.mid }); // outside tx
136
+ * try {
137
+ * await scope.transact(createOrder, args, { ...sharedCtx(ctx), chargeId }); // inside tx
138
+ * } catch (e) {
139
+ * await stripe.refund(chargeId); // compensate — the write rejected
140
+ * throw e;
141
+ * }
142
+ * await sendReceipt(ctx.user); // after commit
143
+ * }),
144
+ * }),
145
+ * ```
146
+ */
147
+ export declare function scoped<User, Args>(fn: ScopedMutator<User, Args>): ScopedApiMutator<User, Args>;
78
148
  export type ApiMutators<User> = Record<string, ApiMutator<User, any>>;
79
149
  export interface QueryLeaseRequest<User> {
80
150
  user: User;
@@ -86,6 +156,91 @@ export interface QueryLeaseRequest<User> {
86
156
  * A routing HINT only, never authorization. */
87
157
  clientId?: string;
88
158
  }
159
+ /**
160
+ * The room-serve block on a query lease (RINDLE-REALTIME-QUERY-ENABLEMENT §2.1 step 5 / §2.4,
161
+ * slice G-iv-b): present only when the named query carries a realtime label AND its resolved AST
162
+ * was PROVABLY covered by its room profile's footprint (the daemon's `/cover-check`). The G-v
163
+ * client uses it to open the room transport for THIS query beside — never instead of — its daemon
164
+ * session.
165
+ *
166
+ * It is a NEW dedicated block on purpose: the TOP-LEVEL `wsEndpoint` is the read-router's
167
+ * whole-session migration signal (`packages/remote/src/optimistic-source.ts` — a lease whose
168
+ * `wsEndpoint` differs migrates the client's ENTIRE ws session), so the room endpoint must never
169
+ * ride that field. A room-served lease's top-level fields are byte-identical to the daemon-served
170
+ * ones.
171
+ */
172
+ export interface QueryLeaseRealtime {
173
+ /** The client store's gate/domain key for this room source (`connectSource`) AND the string the
174
+ * wasm engine's `parse_source_key` accepts: any string other than the reserved `"daemon"`
175
+ * parses as a room source, and the established convention is `"room:" + doc`
176
+ * (e.g. `room:document/doc:d1`). */
177
+ sourceKey: string;
178
+ /** Where the client opens the ROOM ws for this query (from `realtime.locateRoom`) — a separate
179
+ * field from the top-level `wsEndpoint` (see above: no whole-session migration). */
180
+ wsEndpoint: string;
181
+ /** The room's self-authorizing signed lease (`@rindle/room/token`): the APPROVED query AST +
182
+ * doc + subject, HMAC-signed with `realtime.roomTokenKey` so the room shell's
183
+ * `downstream.tokenKeys` ring verifies it. The room materializes on first presentation. */
184
+ roomToken: string;
185
+ /** Token expiry (ms epoch) — the client's renewal clock (renewal = a fresh lease). */
186
+ exp: number;
187
+ /** The wire room doc (`"<profile>/<key>"`, minted server-side — never client-derived). */
188
+ doc: string;
189
+ /** Per-footprint-table specs: the §2.2 owned/followed split + §3.2 routing metadata. Since
190
+ * H-iii each spec also carries `footprintWhere` — the same exact membership predicate the boot
191
+ * wire ships the room gate (one compiler, `compileRoomScopeSpecs`) — feeding the client's §3
192
+ * prove-or-slow-path router. Advisory routing metadata, never a credential (§3.2). */
193
+ tables: RoomTableSpec[];
194
+ }
195
+ /**
196
+ * One minted SYSTEM-STREAM lease on a query lease's `lifecycle` block (RINDLE-REALTIME-QUERY-
197
+ * ENABLEMENT §4, Slice I-iii): an ordinary daemon materialization over one of the four
198
+ * `_rindle_*` lifecycle system tables (registered by the daemon's `enable_realtime_lifecycle` —
199
+ * `rust/rindle-replica/src/mutations.rs`), attachable by the EXISTING client subscribe path
200
+ * (present `leaseToken` on a `subscribe` frame, exactly like the primary lease). The identity
201
+ * fields (`scope`/`doc`/`clientId`) document the minted AST's predicate — the client keys its
202
+ * retains and its release-time row filters on them.
203
+ */
204
+ export interface QueryLeaseLifecycleLease {
205
+ /** Which system table this lease's subscription serves. */
206
+ table: string;
207
+ leaseToken: string;
208
+ /** The follower this system materialization lives on (routed deploys; mirrors the top-level
209
+ * `wsEndpoint` semantics). Absent ⇒ single-daemon. */
210
+ wsEndpoint?: string;
211
+ /** DOORBELL only: the §4.1 occupancy scope — the wire room doc (`"<profile>/<key>"`). */
212
+ scope?: string;
213
+ /** FENCE entries only: the room doc the predicate is scoped to. */
214
+ doc?: string;
215
+ /** FENCE ledger/outcome entries: present iff the predicate was ALSO client-scoped (the lease
216
+ * request carried `clientId`). Absent ⇒ doc-only predicate — the client filters to its own
217
+ * rows regardless (defense in depth). */
218
+ clientId?: string;
219
+ }
220
+ /** The §4 lifecycle block on a query lease (Slice I-iii): present only when BOTH the realtime
221
+ * `lifecycle` config is on AND the query is realtime-labeled. `doorbell` rides EVERY labeled
222
+ * lease (occupancy is counted whether or not the query is room-served — the 1→2 upgrade trigger
223
+ * needs solo watchers subscribed BEFORE any room exists, §4.1); `fence` rides only a ROOM-SERVED
224
+ * lease (the §4.2/§7.1/§3.3 downgrade surfaces are meaningful only where a room domain exists).
225
+ * The §4.2 fence VALUE (`finalFlushSeq`) is deliberately NOT here — it arrives with the I-v
226
+ * downgrade response; I-iii only stands up the streams. */
227
+ export interface QueryLeaseLifecycle {
228
+ doorbell: QueryLeaseLifecycleLease;
229
+ fence?: QueryLeaseLifecycleLease[];
230
+ }
231
+ /** The §4.2 downgrade fence on a query lease (Slice I-v): rides a labeled reply whose §4.1
232
+ * occupancy gate CLOSED (so there is NO `realtime` block) when the server could drain the room.
233
+ * A SIBLING of `realtime`, never nested inside it — block-ABSENCE is the downgrade signal, and
234
+ * the fence rides alongside that absence. Its `finalFlushSeq` is the room's last COMMITTED flush
235
+ * seq; the client's frozen room ghost holds visible until the daemon plane has provably absorbed
236
+ * it (`_rindle_room_watermark(doc) ≥ finalFlushSeq`). Absent from every non-downgrade reply. */
237
+ export interface QueryLeaseRealtimeFence {
238
+ /** The retiring room source's gate/domain key — `"room:" + doc`, matching what the room-served
239
+ * lease's {@link QueryLeaseRealtime.sourceKey} carried. */
240
+ sourceKey: string;
241
+ doc: string;
242
+ finalFlushSeq: number;
243
+ }
89
244
  export interface QueryLeaseResponse {
90
245
  leaseToken: string;
91
246
  materializationId: string;
@@ -94,6 +249,17 @@ export interface QueryLeaseResponse {
94
249
  /** The follower this lease lives on (READ-ROUTER-DESIGN.md §2.3) — the browser opens its
95
250
  * subscription ws here. Absent ⇒ single-daemon (the client uses its static `wsUrl`). */
96
251
  wsEndpoint?: string;
252
+ /** The room-serve block (G-iv-b) — see {@link QueryLeaseRealtime}. Absent ⇒ the lease is
253
+ * byte-identical to the legacy daemon-served shape. */
254
+ realtime?: QueryLeaseRealtime;
255
+ /** The §4.2 downgrade fence (Slice I-v) — see {@link QueryLeaseRealtimeFence}. Present only on a
256
+ * labeled reply whose occupancy gate closed AND `realtime.lifecycle.drainRoom` could drain the
257
+ * room; absent otherwise (including on every room-served reply). */
258
+ realtimeFence?: QueryLeaseRealtimeFence;
259
+ /** The §4 lifecycle system-stream block (Slice I-iii) — see {@link QueryLeaseLifecycle}.
260
+ * Minted ONLY under the opt-in `realtime.lifecycle` config; absent ⇒ byte-identical to the
261
+ * pre-lifecycle response. */
262
+ lifecycle?: QueryLeaseLifecycle;
97
263
  }
98
264
  /** A one-shot SSR read of a named query (SSR-DESIGN.md §6): same `(name, args)` surface as a lease,
99
265
  * but the daemon serializes the current view ONCE and registers no subscriber. */
@@ -236,6 +402,12 @@ export interface RoomBootResponse {
236
402
  /** Where the room opens its upstream subscription (a routed deploy's follower). Absent ⇒ the
237
403
  * shell's statically configured rindled ws endpoint. */
238
404
  upstreamWsEndpoint?: string;
405
+ /** Per-footprint-table scope specs (H-iv-b), compiled from the resolved footprint AST + the
406
+ * profile's context set (the legacy anonymous profile compiles with an empty context set):
407
+ * what the shell hands the wasm room's `enableWritesV2` — the §3.3 commit gate. Optional
408
+ * only for wire compatibility with pre-H-iv-b servers; a shell that doesn't receive them
409
+ * enables the v1 table-granular write plane exactly as before. */
410
+ scopes?: RoomScopeSpec[];
239
411
  flush: RoomBootFlush;
240
412
  }
241
413
  export interface RindleRealtimeOptions<User> {
@@ -243,11 +415,22 @@ export interface RindleRealtimeOptions<User> {
243
415
  * room's `Authorization: Bearer` on `/room-boot` (the default {@link authorizeBoot}) and keys
244
416
  * the DEFAULT epoch-bound flush credential. */
245
417
  shellSecret: string;
418
+ /** NAMED room profiles (RINDLE-REALTIME-QUERY-ENABLEMENT-DESIGN.md §2.1): profile name → key
419
+ * derivation + canonical unwindowed footprint + read-only context tables. The wire room key
420
+ * for a named profile is `"<profile>/<key>"`; `/room-boot` splits it and resolves the
421
+ * profile's footprint with the bare key. Compiled + validated LOUDLY at construction (§2.3):
422
+ * a windowed footprint, a context table missing from the schema/footprint, or a registered
423
+ * query whose realtime label names a missing profile all throw from `createRindleApiServer`. */
424
+ rooms?: Record<string, RoomProfile<User>>;
246
425
  /** doc → the room's approved upstream footprint (§3.1) — an `Ast` or fluent `Query`. MAY
247
426
  * delegate to the named-query registry internally; throw `RindleApiError("not-found", …, 404)`
248
427
  * for a doc that shouldn't exist. The §9 footprint budget belongs here — it runs once per
249
- * placement, at lease mint. */
250
- resolveFootprint: (doc: string, ctx: ApiContext<User>) => MaybePromise<ApiQueryResult>;
428
+ * placement, at lease mint.
429
+ * @deprecated Prefer named {@link rooms} profiles (RINDLE-REALTIME-QUERY-ENABLEMENT §2.1).
430
+ * This bare form remains as the single-profile LEGACY alias — the anonymous/default profile:
431
+ * a doc with no known `"<profile>/"` prefix resolves here, byte-identically to before named
432
+ * profiles existed (and with none of their construction/boot-time validation). */
433
+ resolveFootprint?: (doc: string, ctx: ApiContext<User>) => MaybePromise<ApiQueryResult>;
251
434
  /** Gates the flush trio — `authorizeRoom`, relocated. Default: verify the default flush
252
435
  * credential from the {@link ROOM_FLUSH_CREDENTIAL_HEADER} request header — which requires the
253
436
  * transport to pass its incoming request as `context.request` (Fetch `Request` and node
@@ -269,6 +452,78 @@ export interface RindleRealtimeOptions<User> {
269
452
  /** Static override for where rooms open their upstream subscription; default is the
270
453
  * `wsEndpoint` the materialize returns (set in routed deploys), else absent. */
271
454
  upstreamWsEndpoint?: string;
455
+ /** Locate (or place) the room serving `doc` and return the ROOM ws endpoint a room-served
456
+ * lease's client should open (G-iv-b; on the DO shell this is the Worker's room URL). The
457
+ * endpoint rides the lease's dedicated `realtime.wsEndpoint` — NEVER the top-level
458
+ * `wsEndpoint` (that field migrates the client's whole daemon session). Absent ⇒ room-serving
459
+ * is OFF: labeled queries serve from the daemon exactly as today (fail-open). */
460
+ locateRoom?: (doc: string) => MaybePromise<{
461
+ wsEndpoint: string;
462
+ }>;
463
+ /** The room lease token signing key (`@rindle/room/token`): `kid` + secret, matching an entry
464
+ * in the room shell's `downstream.tokenKeys` ring. Required for room-serving (without it a
465
+ * labeled query fail-opens to the daemon with a one-time warning). A separate secret from
466
+ * `shellSecret` on purpose — the shell's ring is the client-token trust domain, the shell
467
+ * secret is the boot/flush trust domain. */
468
+ roomTokenKey?: {
469
+ kid: string;
470
+ secret: string;
471
+ };
472
+ /** Room lease token TTL, ms (default 5 minutes — the §4.1 short-TTL backstop; renewal is a
473
+ * fresh lease through this server, never an extension). */
474
+ roomTokenTtlMs?: number;
475
+ /** Loud-diagnostics sink for the realtime layer (profile compilation warnings + the one-time
476
+ * per-(query, profile) "not room-served" serve-decision warnings). Defaults to
477
+ * `console.warn`; injectable for tests. */
478
+ warn?: (message: string) => void;
479
+ /** The §4 upgrade/downgrade lifecycle plane (RINDLE-REALTIME-QUERY-ENABLEMENT §4, Slice
480
+ * I-iii): PRESENCE of this block is the opt-in — every realtime-labeled lease then
481
+ * additionally mints the doorbell system lease (occupancy, §4.1) and every ROOM-SERVED lease
482
+ * the fence bundle (watermark + ledger + outcomes, §4.2/§7.1/§3.3) — see
483
+ * {@link QueryLeaseLifecycle}. Requires the daemon to have run `enable_realtime_lifecycle`
484
+ * (the four `_rindle_*` system tables must be registered or the minted materializations fail
485
+ * — which fail-opens with a one-time warning, never blocking the lease). Absent ⇒ the lease
486
+ * response is byte-identical to pre-lifecycle. */
487
+ lifecycle?: RindleRealtimeLifecycleOptions;
488
+ }
489
+ /** {@link RindleRealtimeOptions.lifecycle}. PRESENCE of the block is the opt-in switch (I-iii);
490
+ * the fields below are the Slice I-iv occupancy knobs (§4.1, decisions D4/D6/D7). All optional —
491
+ * `lifecycle: {}` gets the designed defaults. */
492
+ export interface RindleRealtimeLifecycleOptions {
493
+ /** D6 (§4.1): the occupancy threshold for room-serving. A labeled lease whose scope counts
494
+ * FEWER than this many distinct unexpired sessions (the caller's own included) ships WITHOUT
495
+ * the realtime block — served from the daemon, indistinguishable from an uncovered query —
496
+ * but WITH the doorbell, so the 1→2 transition wakes it (that is the point: solo docs never
497
+ * cost room infrastructure). Default **2** (the design's 1→2 trigger). Set `1` to room-serve
498
+ * solo viewers (the pre-I-iv behavior under lifecycle config). */
499
+ minSessions?: number;
500
+ /** The §9.1 hysteresis window, ms (default **120_000**). Two consumers: (a) the lazy sweep
501
+ * (D4) keeps expired session rows lingering at least this long past expiry — Slice I-v's
502
+ * downgrade decision ("no other unexpired row AND the newest other row expired > graceMs
503
+ * ago") is read FROM those rows, so they must survive to be read; (b) this slice's gate
504
+ * applies the same hysteresis upward: a scope with an other-session row expired ≤ graceMs
505
+ * ago keeps room-serving through the window (see `lifecycleOccupancy` — no flap on one
506
+ * client's brief lapse). §9.1-tunable: raise it for docs where collaborators churn slowly. */
507
+ graceMs?: number;
508
+ /** TTL of an occupancy session row, ms — `expires_at = now + sessionTtlMs` on every labeled
509
+ * lease mint/renewal (D7: session identity = the request's `clientId`; two tabs are two
510
+ * sessions iff their clientIds differ). Default = the server's `leaseTtlMs`, else 5 minutes —
511
+ * matching the room-token renewal cadence (`roomTokenTtlMs`, renewed 30s early), so a
512
+ * room-attached client's renewals keep its row unexpired; a daemon-attached solo client's row
513
+ * MAY lapse (it has no renewal timer) and is refreshed by its next doorbell-triggered
514
+ * re-lease — occupancy converges through the doorbell itself. */
515
+ sessionTtlMs?: number;
516
+ /** The §4.2 downgrade drain hook (Slice I-v). When the occupancy gate CLOSES for a labeled
517
+ * lease whose scope PLAUSIBLY hosted a room (an other-session row still lingers — never a
518
+ * never-shared solo doc), the api-server calls this to drain the room's pending write-behind
519
+ * and learn its last COMMITTED `flush_seq`, then rides the value back on the lease as the
520
+ * {@link QueryLeaseRealtimeFence}. The deployment wires it to the room shell's / DO's `/drain`
521
+ * control. Absent ⇒ no fence is attached (the client hits its loud legacy downgrade path);
522
+ * a throw fails OPEN to the same (a downgrade never blocks the lease). Concurrent drains across
523
+ * api-server instances are fine — `/drain` is idempotent. */
524
+ drainRoom?: (doc: string) => Promise<{
525
+ finalFlushSeq: number;
526
+ }>;
272
527
  }
273
528
  export declare const ROOM_FLUSH_CREDENTIAL_HEADER = "x-rindle-room-credential";
274
529
  export interface RoomFlushCredentialPayload {
@@ -351,6 +606,15 @@ export interface RindleApiServerOptions<User> {
351
606
  /** The user context pins resolve under (pins are shared, so they should not depend on a
352
607
  * per-viewer identity). Defaults to `undefined`. */
353
608
  pinUser?: User;
609
+ /** Surfaced when a SCOPED mutator ({@link scoped}) throws from code that runs AFTER `scope.transact`
610
+ * has already sealed the protocol outcome — a post-commit effect, or a compensation handler running
611
+ * after a business rejection. The outcome is fixed (this callback CANNOT change the client's
612
+ * response or the `lmid` advance), but the throw must not vanish: a failed refund is real money.
613
+ * Absent ⇒ the error is logged to `console.error`. */
614
+ onScopeError?: (err: unknown, info: {
615
+ phase: "committed" | "rejected";
616
+ envelope: MutationEnvelope;
617
+ }) => void;
354
618
  }
355
619
  export interface RindleApiServer<User> {
356
620
  readonly routes: RindleApiRoutes;
@@ -360,6 +624,18 @@ export interface RindleApiServer<User> {
360
624
  * startup and whenever the daemon restarts (e.g. from the daemon-client `onBootId` hook), since
361
625
  * the daemon holds no durable materialization state. No-op when `pinnedQueries` is empty. */
362
626
  assertPins(): Promise<void>;
627
+ /** The room-serving coverage DIAGNOSTIC (G-iv-b; the `assertPins`-style explicit check): for
628
+ * every realtime-labeled query, resolve it (under `pinUser`, per exemplar args), resolve its
629
+ * profile's footprint, and run the REAL daemon coverage check — the same verdict the lease
630
+ * path serves by. Returns every verdict; `strict` throws when any labeled query is not
631
+ * provably covered (deploy-gate mode). Deliberately ignores `locateRoom`/`roomTokenKey` — it
632
+ * answers "would this query be coverable", not "is serving fully wired". */
633
+ validateRealtime(opts?: {
634
+ /** Per-query exemplar args (a query is checked once per exemplar; default: one `null`). */
635
+ exemplars?: Partial<Record<string, readonly unknown[]>>;
636
+ /** Throw when any labeled query is uncovered (instead of just reporting). */
637
+ strict?: boolean;
638
+ }): Promise<ValidateRealtimeReport>;
363
639
  pushMutation(input: PushMutationRequest<User>): Promise<PushMutationResponse>;
364
640
  /** Apply an in-order batch (the client mutation queue's flush). Envelopes run strictly
365
641
  * sequentially; a rejection still advances the daemon's lmid, so later envelopes in the
@@ -391,6 +667,22 @@ export interface RindleApiServer<User> {
391
667
  * lease and the flush leg. 403 until {@link RindleApiServerOptions.realtime} is set. */
392
668
  handleRoomBootJson(body: unknown, context: ApiContext<User>): Promise<RoomHostResponse>;
393
669
  }
670
+ /** One {@link RindleApiServer.validateRealtime} verdict: a labeled query × exemplar args. */
671
+ export interface ValidateRealtimeVerdict {
672
+ query: string;
673
+ profile: string;
674
+ args: unknown;
675
+ covered: boolean;
676
+ /** Why it is not covered (uncovered verdicts only) — the daemon's reason strings, the
677
+ * aggregate refusal, or a resolve/footprint error message. */
678
+ reasons?: string[];
679
+ }
680
+ /** The {@link RindleApiServer.validateRealtime} report. */
681
+ export interface ValidateRealtimeReport {
682
+ verdicts: ValidateRealtimeVerdict[];
683
+ /** The uncovered subset of `verdicts` (what `strict` throws on). */
684
+ uncovered: ValidateRealtimeVerdict[];
685
+ }
394
686
  export type RindleApiErrorCode = "bad-request" | "forbidden" | "not-found" | "rejected";
395
687
  export declare class RindleApiError extends Error {
396
688
  readonly code: RindleApiErrorCode;
@@ -429,6 +721,7 @@ export declare class SplitDaemonClient implements RindleDaemonClient {
429
721
  applyRowChangeTxn(input: RowChangeTxn): Promise<RowChangeTxnOutput>;
430
722
  claimRoomEpoch(input: ClaimRoomEpochInput): Promise<ClaimRoomEpochOutput>;
431
723
  roomLmids(input: RoomLmidsInput): Promise<RoomLmidsOutput>;
724
+ coverQuery(input: CoverQueryInput): Promise<CoverQueryOutput>;
432
725
  migrate(input: MigrateInput): Promise<MigrateOutput>;
433
726
  materialize(input: MaterializeInput): Promise<MaterializeOutput>;
434
727
  query(input: QueryOnceInput): Promise<QueryOnceOutput>;
@@ -575,7 +868,36 @@ export declare function defineApiMutators<User, M extends ApiMutators<User>>(mut
575
868
  * ```
576
869
  */
577
870
  export declare function sharedApiMutators<User>(registry: Record<string, SharedMutatorWithArgs<any>>, principal: (ctx: MutationContext<User>) => MutatorCtx): ApiMutators<User>;
578
- export declare function queryResultToAst(result: ApiQueryResult): Ast;
871
+ /**
872
+ * Wrap a SHARED (generator) mutator with a row-level ACCESS GUARD — the multi-tenant authz twin of
873
+ * {@link sharedApiMutators}. It parses the untrusted wire args, derives the {@link MutatorCtx}
874
+ * principal (the SAME mapping you pass to `sharedApiMutators`), evaluates `predicate` against the OPEN
875
+ * mutation txn (so it can READ the rows the write depends on), and throws `forbidden` (403 — the
876
+ * client's optimistic write snaps back) when access is denied; otherwise it drives the SAME body the
877
+ * client predicts ({@link runSharedMutation}). Use it for the entries that need server-only authority
878
+ * the client cannot predict, OVERRIDING the auto-wrapped default (spread `sharedApiMutators(...)`
879
+ * first, then the guarded overrides win by key):
880
+ *
881
+ * ```ts
882
+ * const principal = (ctx) => ({ user: requireUser(ctx.user) });
883
+ * mutators: defineApiMutators({
884
+ * ...sharedApiMutators(sharedMutators, principal),
885
+ * updateSlide: guardMutator(sharedMutators.updateSlide, principal,
886
+ * async (tx, a, { user }) =>
887
+ * (await tx.query(q.slide.where.id(a.slideId).where(editableBy(user)).one())) != null,
888
+ * { message: "not permitted to edit this slide" }),
889
+ * }),
890
+ * ```
891
+ *
892
+ * The predicate keeps the shared body READ-FREE, so the client's `.folded` hot paths (drag/keystroke)
893
+ * still fold — the read is server-side only. Return `false` to deny (→ the default or `opts.message`
894
+ * forbidden); return `true`/nothing to allow. To reject with a different status/message (a business
895
+ * rejection, a not-found), throw a {@link RindleApiError} from inside the predicate instead. `principal`
896
+ * runs before the predicate, so it too may throw `forbidden` for an anonymous caller.
897
+ */
898
+ export declare function guardMutator<User, Args>(gen: SharedMutatorWithArgs<Args>, principal: (ctx: MutationContext<User>) => MutatorCtx, predicate: (tx: ServerMutationTx, args: Args, ctx: MutatorCtx) => boolean | void | Promise<boolean | void>, opts?: {
899
+ message?: string;
900
+ }): ApiMutator<User, unknown>;
579
901
  /** One exemplar invocation for {@link dumpQueryShapes} — the `args`/`user` a query is built with.
580
902
  * Literal values never matter to the dump (shapes are deduped with literals stripped); what an
581
903
  * exemplar buys is BRANCH coverage, so supply one per code path a query function can take
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}