@substrat-run/kernel 0.135.0 → 0.137.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 (82) hide show
  1. package/dist/async-invocation-log.d.ts +61 -0
  2. package/dist/async-invocation-log.d.ts.map +1 -0
  3. package/dist/async-invocation-log.js +149 -0
  4. package/dist/async-invocation-log.js.map +1 -0
  5. package/dist/base64url.d.ts +6 -0
  6. package/dist/base64url.d.ts.map +1 -0
  7. package/dist/base64url.js +19 -0
  8. package/dist/base64url.js.map +1 -0
  9. package/dist/capability.d.ts +4 -0
  10. package/dist/capability.d.ts.map +1 -1
  11. package/dist/capability.js +7 -8
  12. package/dist/capability.js.map +1 -1
  13. package/dist/carried-copy.d.ts +117 -0
  14. package/dist/carried-copy.d.ts.map +1 -0
  15. package/dist/carried-copy.js +134 -0
  16. package/dist/carried-copy.js.map +1 -0
  17. package/dist/index.d.ts +101 -20
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +68 -14
  20. package/dist/index.js.map +1 -1
  21. package/dist/invocation-log.d.ts +115 -9
  22. package/dist/invocation-log.d.ts.map +1 -1
  23. package/dist/invocation-log.js +78 -15
  24. package/dist/invocation-log.js.map +1 -1
  25. package/dist/job-run.d.ts +77 -15
  26. package/dist/job-run.d.ts.map +1 -1
  27. package/dist/job-run.js +107 -24
  28. package/dist/job-run.js.map +1 -1
  29. package/dist/lifecycle-flow.d.ts.map +1 -1
  30. package/dist/lifecycle-flow.js +2 -1
  31. package/dist/lifecycle-flow.js.map +1 -1
  32. package/dist/list-index.d.ts +19 -4
  33. package/dist/list-index.d.ts.map +1 -1
  34. package/dist/list-index.js +150 -8
  35. package/dist/list-index.js.map +1 -1
  36. package/dist/permission-eval.d.ts +9 -0
  37. package/dist/permission-eval.d.ts.map +1 -1
  38. package/dist/permission-eval.js +26 -0
  39. package/dist/permission-eval.js.map +1 -1
  40. package/dist/platform-call.d.ts +4 -37
  41. package/dist/platform-call.d.ts.map +1 -1
  42. package/dist/platform-call.js +5 -37
  43. package/dist/platform-call.js.map +1 -1
  44. package/dist/platform-sweep.d.ts +17 -0
  45. package/dist/platform-sweep.d.ts.map +1 -1
  46. package/dist/platform-sweep.js +22 -4
  47. package/dist/platform-sweep.js.map +1 -1
  48. package/dist/provider-error.d.ts.map +1 -1
  49. package/dist/provider-error.js +2 -1
  50. package/dist/provider-error.js.map +1 -1
  51. package/dist/refusal-query.d.ts +4 -1
  52. package/dist/refusal-query.d.ts.map +1 -1
  53. package/dist/refusal-query.js +6 -4
  54. package/dist/refusal-query.js.map +1 -1
  55. package/dist/refusals.d.ts +80 -8
  56. package/dist/refusals.d.ts.map +1 -1
  57. package/dist/refusals.js +141 -22
  58. package/dist/refusals.js.map +1 -1
  59. package/dist/routed-node.d.ts +3 -2
  60. package/dist/routed-node.d.ts.map +1 -1
  61. package/dist/routed-node.js.map +1 -1
  62. package/dist/scope-copy.d.ts +122 -0
  63. package/dist/scope-copy.d.ts.map +1 -0
  64. package/dist/scope-copy.js +187 -0
  65. package/dist/scope-copy.js.map +1 -0
  66. package/dist/scope-host.d.ts +95 -27
  67. package/dist/scope-host.d.ts.map +1 -1
  68. package/dist/scope-host.js +5 -14
  69. package/dist/scope-host.js.map +1 -1
  70. package/dist/scope-lifecycle.d.ts +70 -0
  71. package/dist/scope-lifecycle.d.ts.map +1 -0
  72. package/dist/scope-lifecycle.js +124 -0
  73. package/dist/scope-lifecycle.js.map +1 -0
  74. package/dist/system-switch-record.d.ts +27 -11
  75. package/dist/system-switch-record.d.ts.map +1 -1
  76. package/dist/system-switch-record.js +59 -24
  77. package/dist/system-switch-record.js.map +1 -1
  78. package/dist/system-switch.d.ts +41 -11
  79. package/dist/system-switch.d.ts.map +1 -1
  80. package/dist/system-switch.js +48 -15
  81. package/dist/system-switch.js.map +1 -1
  82. package/package.json +2 -2
package/dist/job-run.js CHANGED
@@ -138,6 +138,10 @@ export const JOB_RUN_DDL = `
138
138
  -- table that RETAINS every finished run, so the cost tracks how much is in flight
139
139
  -- rather than how much the scope has ever imported.
140
140
  CREATE INDEX IF NOT EXISTS _substrat_job_runs_due ON _substrat_job_runs (status, next_attempt_at, id);
141
+ -- #1834: the drive's ORDER -- by when each run became due (JOB_RUN_DUE_AT), then id -- so a run
142
+ -- that waited (a deferral, a backoff) queues behind work that was due before it, instead of
143
+ -- heading every drive by its age. The expression is spelled exactly as the query spells it.
144
+ CREATE INDEX IF NOT EXISTS _substrat_job_runs_due_at ON _substrat_job_runs (status, COALESCE(next_attempt_at, started_at), id);
141
145
  -- Coalescing's read, and the operator read's filter.
142
146
  CREATE INDEX IF NOT EXISTS _substrat_job_runs_key ON _substrat_job_runs (module_id, job, instance, id);
143
147
  -- The step ledger of the pass currently in flight. Rows are written as each step
@@ -233,6 +237,41 @@ export const JOB_DRIVE_LIMIT = 50;
233
237
  export const JOB_DRIVE_SCAN_MAX = 500;
234
238
  /** `conflict` reason: two `step()` calls under one name in one pass. */
235
239
  export const JOB_STEP_REUSED = 'job_step_reused';
240
+ /**
241
+ * #1834: the reason a host's system door gives a refusal that means "not now", never "no": the
242
+ * module is held off on this scope until its switch is applied again, or the scope kept restarting
243
+ * under the door. It is for a caller READING the refusal. It decides nothing: anyone can throw an
244
+ * error with this reason, so the job driver never defers on it (`deferral` below is how a host
245
+ * says which refusals are its own).
246
+ */
247
+ export const SYSTEM_DOOR_WAIT = 'system_door_wait';
248
+ /**
249
+ * #1834: when a run became due — its `next_attempt_at`, or when it started if it has none — and the
250
+ * key the drive orders by. Ordering by id instead let an older run that keeps waiting (a deferral, a
251
+ * backoff) head every drive the moment it was due again, and take the turn of a run that had been
252
+ * due for longer. Spelled exactly as the `_substrat_job_runs_due_at` index spells it.
253
+ */
254
+ export const JOB_RUN_DUE_AT = 'COALESCE(next_attempt_at, started_at)';
255
+ /**
256
+ * #1834: a pass that a host's door told to wait, carrying the pass it belongs to. Kernel-private,
257
+ * and checked against the CURRENT pass, so a handler that catches one and throws it again on a
258
+ * later pass is an ordinary failure there, not a wait.
259
+ */
260
+ class PassDeferred extends Error {
261
+ pass;
262
+ cause;
263
+ constructor(pass, cause) {
264
+ super(message(cause));
265
+ this.pass = pass;
266
+ this.cause = cause;
267
+ }
268
+ }
269
+ /**
270
+ * #1834: how long a deferred run waits before it is due again. Not an attempt: nothing counts and
271
+ * there is no backoff. It only stops a waiting run from heading the due order on every drive, where
272
+ * it would take the turn of a run behind it that could make progress.
273
+ */
274
+ export const JOB_DEFER_MS = 60_000;
236
275
  const message = (err) => (err instanceof Error ? err.message : String(err));
237
276
  /** What a value is, for the refusal message: `a Uint8Array`, `a function`, `a Date`. */
238
277
  function describe(value) {
@@ -456,6 +495,14 @@ class JobStepFailure extends Error {
456
495
  */
457
496
  export async function runJobPass(options) {
458
497
  const { store, run, handler, now, openScope } = options;
498
+ // This pass's token, and nothing else's: the door's refusals are tied to it.
499
+ const passToken = {};
500
+ /** Asked once per refusal, since the host consumes its mark; the answer then travels as `PassDeferred`. */
501
+ const deferral = (err) => {
502
+ if (err instanceof PassDeferred)
503
+ return err.pass === passToken ? err : null;
504
+ return options.deferral?.(err, passToken) === true ? new PassDeferred(passToken, err) : null;
505
+ };
459
506
  const jobPolicy = resolveRetryPolicy(options.retry);
460
507
  const usedThisPass = new Set();
461
508
  let scope = null;
@@ -490,7 +537,7 @@ export async function runJobPass(options) {
490
537
  count: (name, by = 1) => {
491
538
  counters[name] = (counters[name] ?? 0) + by;
492
539
  },
493
- scope: () => (scope ??= openScope()),
540
+ scope: () => (scope ??= openScope(passToken)),
494
541
  step: async (name, fn, retry) => {
495
542
  if (usedThisPass.has(name)) {
496
543
  // The determinism rule's mechanical half. The second call would read the
@@ -523,6 +570,10 @@ export async function runJobPass(options) {
523
570
  value = await fn();
524
571
  }
525
572
  catch (err) {
573
+ // #1834: the door's "not now" is not this step's failure, so it is not one of its attempts.
574
+ const wait = deferral(err);
575
+ if (wait)
576
+ throw wait;
526
577
  const cause = message(err);
527
578
  await store.recordStep(run.id, name, null, attempts, cause, now());
528
579
  throw new JobStepFailure(name, attempts, policy, cause);
@@ -579,6 +630,22 @@ export async function runJobPass(options) {
579
630
  return { status: done ? 'completed' : 'advanced' };
580
631
  }
581
632
  catch (err) {
633
+ // #1834: the host's system door said wait, so the call did not run. The run keeps what the last
634
+ // commit wrote (its attempts and its last error included); only when it is next due moves.
635
+ if (deferral(err)) {
636
+ const at = now();
637
+ await store.patch(run.id, {
638
+ status: 'running',
639
+ cursor: run.cursor,
640
+ counters: run.counters,
641
+ attempts: run.attempts,
642
+ lastError: run.last_error,
643
+ updatedAt: at,
644
+ nextAttemptAt: new Date(Date.parse(at) + JOB_DEFER_MS).toISOString(),
645
+ endedAt: null,
646
+ });
647
+ return { status: 'deferred', error: message(err) };
648
+ }
582
649
  const stepFailure = err instanceof JobStepFailure ? err : null;
583
650
  const policy = stepFailure?.policy ?? jobPolicy;
584
651
  // The RUN's attempts counts consecutive failed passes — what an operator reads as
@@ -617,9 +684,20 @@ export async function runJobPass(options) {
617
684
  * when the budget was applied to the query instead, a scope holding `limit` such rows
618
685
  * at the head of the due order returned the same unrunnable batch on every call —
619
686
  * nothing newer was ever reached, and the report said `attempted: 0` forever with no
620
- * indication why. So the read pages past them, bounded by `JOB_DRIVE_SCAN_MAX` rows
687
+ * indication why. So the read looks past them, bounded by `JOB_DRIVE_SCAN_MAX` rows
621
688
  * examined so one scope full of orphans cannot turn a tick into a table scan.
622
689
  *
690
+ * **Selection is ONE snapshot per drive** (#1834). The drive reads the keys of up to
691
+ * `JOB_DRIVE_SCAN_MAX` due runs in a single query, picks up to `limit` runnable ones
692
+ * (each id once), and re-reads each row just before it runs it, skipping one that is no
693
+ * longer `running` or no longer due. A cursor across several reads met rows that another
694
+ * writer had moved in between, and ran one twice or skipped it. A run that moves, or
695
+ * becomes due, after the snapshot is the NEXT drive's business, never this one's.
696
+ *
697
+ * The re-read is a READ, not a reservation: it does not make overlapping drives safe. Two
698
+ * drives on one scope at once can both re-read a row as due and both run its handler. The
699
+ * one-driver-per-scope bound in the file header still applies.
700
+ *
623
701
  * The starvation was spotted while re-reading this file, judged unlikely and left
624
702
  * alone — and then found independently by a reviewer. The judgement may even have
625
703
  * been right; recording it only in the author's head was not, because a decision
@@ -633,34 +711,34 @@ export async function runDueJobRuns(options) {
633
711
  completed: 0,
634
712
  retrying: 0,
635
713
  failed: 0,
714
+ deferred: 0,
636
715
  errors: [],
637
716
  };
638
717
  const maxPasses = Math.max(1, options.maxPasses ?? 1);
639
718
  // Bound for the store's `LIMIT` (#1632): refused, not normalized, when it is not a positive integer.
640
719
  const want = options.limit === undefined ? JOB_DRIVE_LIMIT : assertRowLimit('limit', options.limit);
641
- // Page the due read until `want` RUNNABLE runs have been gathered, or the scope
642
- // runs out, or the scan cap is hit. A run whose job this host does not register —
643
- // another deployment's, or one whose registration was removed — is stepped over
644
- // and NOT failed: failing it would destroy a resumable run because the wrong
645
- // process happened to look at it.
646
- const runnable = [];
647
- let scanned = 0;
648
- let afterId;
649
- while (runnable.length < want && scanned < JOB_DRIVE_SCAN_MAX) {
650
- const batch = await options.store.due(options.now(), want, afterId);
651
- if (batch.length === 0)
652
- break;
653
- scanned += batch.length;
654
- for (const row of batch) {
655
- if (options.handlerFor(row) && runnable.length < want)
656
- runnable.push(row);
657
- }
658
- afterId = batch[batch.length - 1].id;
659
- // A short batch is the end of the due set; another round trip would read nothing.
660
- if (batch.length < want)
720
+ // ONE snapshot of the due keys, then up to `want` RUNNABLE ones from it, each id once. A
721
+ // run whose job this host does not register — another deployment's, or one whose
722
+ // registration was removed — is stepped over and NOT failed: failing it would destroy
723
+ // a resumable run because the wrong process happened to look at it.
724
+ const picked = [];
725
+ const seen = new Set();
726
+ for (const key of await options.store.dueKeys(options.now(), JOB_DRIVE_SCAN_MAX)) {
727
+ if (picked.length >= want)
661
728
  break;
729
+ if (seen.has(key.id))
730
+ continue;
731
+ seen.add(key.id);
732
+ if (options.handlerFor(key))
733
+ picked.push(key);
662
734
  }
663
- for (const row of runnable) {
735
+ for (const key of picked) {
736
+ // The re-read: the row as it is NOW. One that was finished, or moved past this moment, since
737
+ // the snapshot is skipped; it is the next drive's. This reserves nothing (see above).
738
+ const row = await options.store.get(key.id);
739
+ if (!row || row.status !== 'running' || (row.next_attempt_at !== null && row.next_attempt_at > options.now())) {
740
+ continue;
741
+ }
664
742
  const registered = options.handlerFor(row);
665
743
  report.attempted += 1;
666
744
  let run = row;
@@ -671,7 +749,8 @@ export async function runDueJobRuns(options) {
671
749
  handler: registered.handler,
672
750
  retry: registered.retry,
673
751
  now: options.now,
674
- openScope: () => options.openScope(run),
752
+ openScope: (pass) => options.openScope(run, pass),
753
+ deferral: options.deferral,
675
754
  });
676
755
  if (outcome.status === 'completed') {
677
756
  report.completed += 1;
@@ -682,6 +761,10 @@ export async function runDueJobRuns(options) {
682
761
  report.errors.push({ runId: run.id, error: outcome.error });
683
762
  break;
684
763
  }
764
+ if (outcome.status === 'deferred') {
765
+ report.deferred += 1;
766
+ break;
767
+ }
685
768
  if (outcome.status === 'retrying') {
686
769
  report.retrying += 1;
687
770
  report.errors.push({ runId: run.id, error: outcome.error });
@@ -1 +1 @@
1
- {"version":3,"file":"job-run.js","sourceRoot":"","sources":["../src/job-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-run.js","sourceRoot":"","sources":["../src/job-run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-flow.d.ts","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAwCpD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAa9D;AAsBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAoSrG"}
1
+ {"version":3,"file":"lifecycle-flow.d.ts","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAwCpD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAa9D;AAsBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAqSrG"}
@@ -322,8 +322,9 @@ export function readLifecycleFlow(ctx, input) {
322
322
  settle(walk);
323
323
  // #1745: the moves the lifecycle refused in the window — recorded after each rollback, so
324
324
  // they are a separate, bounded read rather than part of the replay (nothing committed).
325
+ // Transitions only: a guard row has no from-state to draw a stub from.
325
326
  const refusedRows = ctx.sql.query(`SELECT from_state, attempted_state, operation, actor FROM _substrat_refusals
326
- WHERE entity_type = ? AND at >= ? AND at < ?
327
+ WHERE entity_type = ? AND kind = 'transition' AND at >= ? AND at < ?
327
328
  ORDER BY at LIMIT ?`, [input.entityType, since, until, LIFECYCLE_FLOW_EVENT_BUDGET]);
328
329
  const refusedBy = new Map();
329
330
  for (const r of refusedRows) {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-flow.js","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-flow.js","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"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"}
@@ -38,9 +38,10 @@
38
38
  * skipped, because `status > 'open'` excludes its own ties. So every walk here
39
39
  * is over `(sortColumn, idColumn)` and the cursor is composite — which is the
40
40
  * `|`-joined form `pagination.ts` already pins ("first part always `|`-free").
41
- * Where the sort column IS the id, the pair collapses and the cursor is the bare
42
- * value, unchanged from what shipped.
41
+ * Where the sort column IS the id, the pair collapses and the cursor carries the
42
+ * id alone (its envelope has no separate `id`, K-44).
43
43
  */
44
+ import { SubstratError } from '@substrat-run/contracts';
44
45
  import type { SqlMigration } from './scope-host.js';
45
46
  /**
46
47
  * One paged read's kernel-composed half, as the kernel needs it.
@@ -187,8 +188,22 @@ export declare function splitCursor(cursor: string): {
187
188
  value: string;
188
189
  id: string | undefined;
189
190
  };
190
- /** Build the cursor a row hands to the next page. */
191
- export declare function cursorOf(row: Record<string, unknown>, sortColumn: string, idColumn: string): string;
191
+ /**
192
+ * Raised for a cursor this walk cannot continue (#2001): one minted under a
193
+ * different order or sort, or one `ctx.page` never minted at all.
194
+ *
195
+ * A keyset position only means something in the walk that produced it. Replayed
196
+ * under the other order, `created_at < ?` becomes `created_at > ?` over the same
197
+ * value and the "next" page is the rows the caller has already seen — a silent
198
+ * answer that reads as a working list. So the cursor names its walk, and a
199
+ * disagreement is the caller's 400, narrowed by `reason: 'cursor_restart'` so a
200
+ * client can tell "read the first page again" from a malformed request.
201
+ */
202
+ export declare class CursorMismatch extends SubstratError {
203
+ constructor(message: string);
204
+ }
205
+ /** Build the cursor a row hands to the next page — the walk that minted it, and where. */
206
+ export declare function cursorOf(row: Record<string, unknown>, sortColumn: string, idColumn: string, order: 'asc' | 'desc'): string;
192
207
  /**
193
208
  * Compose the page query and its count.
194
209
  *
@@ -1 +1 @@
1
- {"version":3,"file":"list-index.d.ts","sourceRoot":"","sources":["../src/list-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAEnD,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAyBD,+EAA+E;AAC/E,qBAAa,WAAY,SAAQ,KAAK;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAAvC,YAAqB,UAAU,EAAE,MAAM,EAMtC;CACF;AAED,4EAA4E;AAC5E,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;IAHtC,YACW,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAOrC;CACF;AAED,0EAA0E;AAC1E,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;IAHtC,YACW,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,MAAM,EAAE,EASrC;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,GAC5C,aAAa,EAAE,CAuCjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAsB3F;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAOxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,GAC5C,YAAY,EAAE,CAKhB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,EAAE,GACvF,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAe5B;AAED,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAIrF;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInG;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAkFzF"}
1
+ {"version":3,"file":"list-index.d.ts","sourceRoot":"","sources":["../src/list-index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,48 @@
1
+ /**
2
+ * List indexes and the queries that use them, derived from a paged read's
3
+ * `paged.over` declaration (#811, K-18).
4
+ *
5
+ * K-18 promised *"engine list APIs accept registry-declared filter/sort
6
+ * predicates with correct pagination and counts, the kernel composing the join
7
+ * inside the scope DB"* and nothing implemented it. This is that, and it takes
8
+ * the same shape `searchables` took in #827 for the same reasons.
9
+ *
10
+ * ## Why the kernel owns this rather than a helper in contracts
11
+ *
12
+ * A fragment builder in `@substrat-run/contracts` could emit a correct
13
+ * `WHERE status = ?` and a correct keyset comparison. It could not create the
14
+ * INDEX behind either, because contracts sits below the migration machinery and
15
+ * has no way to reach a scope's DDL. A declared filter with no index is a table
16
+ * scan that passes every test, survives review, and degrades when one tenant's
17
+ * table grows — the same delayed bug an unbounded list read is.
18
+ *
19
+ * That is what K-18 means by filter, sort key and index being *one declared
20
+ * thing*: the third one is the reason it has to be here.
21
+ *
22
+ * ## What is derived, and what stays the handler's
23
+ *
24
+ * | Kernel | Handler |
25
+ * |---|---|
26
+ * | `WHERE` from declared filters, `ORDER BY` from the chosen sort, the keyset comparison, `LIMIT`, and the `COUNT` over the same `WHERE` | The projection, and any hydration — a `toWorkOrder`, a per-row aggregate, a second query for children |
27
+ * | The indexes behind those, emitted as migrations and refused if unindexable | The permission check, which nothing on `ctx` ever does |
28
+ *
29
+ * The handler still writes its own `SELECT`, so this is not the generated-CRUD
30
+ * layer `generated-verticals.md` §4 says does not exist: it invents no routes and
31
+ * no handlers. It stops eleven call sites hand-writing the same cursor branch and
32
+ * the same duplicated count `WHERE`.
33
+ *
34
+ * ## The tie-break, which is not optional
35
+ *
36
+ * A keyset walk over a NON-UNIQUE column drops and duplicates rows: order
37
+ * `status ASC` with a cursor of `'open'` and every remaining `open` row is
38
+ * skipped, because `status > 'open'` excludes its own ties. So every walk here
39
+ * is over `(sortColumn, idColumn)` and the cursor is composite — which is the
40
+ * `|`-joined form `pagination.ts` already pins ("first part always `|`-free").
41
+ * Where the sort column IS the id, the pair collapses and the cursor carries the
42
+ * id alone (its envelope has no separate `id`, K-44).
43
+ */
44
+ import { PAGE_CURSOR_RESTART, SubstratError, ULID_PATTERN, z } from '@substrat-run/contracts';
45
+ import { fromBase64url, toBase64url } from './base64url.js';
1
46
  /** The prefix every derived list index carries. */
2
47
  export const LIST_INDEX_PREFIX = '_substrat_list_';
3
48
  /** Is this index one the kernel derived for a paged read? */
@@ -212,12 +257,109 @@ export function splitCursor(cursor) {
212
257
  return { value: cursor, id: undefined };
213
258
  return { value: cursor.slice(0, at), id: cursor.slice(at + 1) };
214
259
  }
215
- /** Build the cursor a row hands to the next page. */
216
- export function cursorOf(row, sortColumn, idColumn) {
217
- const value = String(row[sortColumn] ?? '');
218
- if (sortColumn === idColumn)
219
- return value;
220
- return `${value}|${String(row[idColumn] ?? '')}`;
260
+ /**
261
+ * Raised for a cursor this walk cannot continue (#2001): one minted under a
262
+ * different order or sort, or one `ctx.page` never minted at all.
263
+ *
264
+ * A keyset position only means something in the walk that produced it. Replayed
265
+ * under the other order, `created_at < ?` becomes `created_at > ?` over the same
266
+ * value and the "next" page is the rows the caller has already seen — a silent
267
+ * answer that reads as a working list. So the cursor names its walk, and a
268
+ * disagreement is the caller's 400, narrowed by `reason: 'cursor_restart'` so a
269
+ * client can tell "read the first page again" from a malformed request.
270
+ */
271
+ export class CursorMismatch extends SubstratError {
272
+ constructor(message) {
273
+ // A SEMANTIC refusal, so no `errors` list: that list is what marks a parse failure,
274
+ // and `toProblem` would trade this sentence and its reason for "did not parse".
275
+ super('validation_failed', message, { reason: PAGE_CURSOR_RESTART });
276
+ }
277
+ }
278
+ /**
279
+ * The cursor `ctx.page` mints: base64url of `{ v: 1, order, sort, value, id? }` (K-44).
280
+ *
281
+ * Opaque and versioned, and **distinct from a pre-#2001 cursor by construction**, not by
282
+ * a guess at what a sort value might look like. A legacy cursor is either `<value>|<id>`,
283
+ * which carries a `|` that base64url never emits, or a bare ULID, whose first character
284
+ * (a timestamp digit) can never decode to the `{` an envelope always starts with. A
285
+ * readable prefix such as `asc.name.` could not promise that: a row named `asc.name.foo`
286
+ * minted exactly that legacy cursor (#2018 review).
287
+ *
288
+ * `id` is present exactly when the walk sorts by something other than the id itself.
289
+ */
290
+ const cursorEnvelope = z.strictObject({
291
+ v: z.literal(1),
292
+ order: z.enum(['asc', 'desc']),
293
+ sort: z.string().regex(IDENTIFIER),
294
+ value: z.string(),
295
+ id: z.string().optional(),
296
+ });
297
+ /** Build the cursor a row hands to the next page — the walk that minted it, and where. */
298
+ export function cursorOf(row, sortColumn, idColumn, order) {
299
+ const envelope = {
300
+ v: 1,
301
+ order,
302
+ sort: sortColumn,
303
+ value: String(row[sortColumn] ?? ''),
304
+ ...(sortColumn === idColumn ? {} : { id: String(row[idColumn] ?? '') }),
305
+ };
306
+ return toBase64url(new TextEncoder().encode(JSON.stringify(envelope)));
307
+ }
308
+ /** The envelope a cursor decodes to, or `undefined` when it is not one — every field checked. */
309
+ function envelopeOf(cursor) {
310
+ const bytes = fromBase64url(cursor);
311
+ if (!bytes)
312
+ return undefined;
313
+ try {
314
+ return cursorEnvelope.parse(JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes)));
315
+ }
316
+ catch {
317
+ return undefined;
318
+ }
319
+ }
320
+ /**
321
+ * A pre-#2001 cursor, recognised only by its exact old shape: `<value>|<id>` with the
322
+ * id a ULID, or — for a walk sorted by the id itself — the bare ULID. Split on the LAST
323
+ * `|`, which a ULID cannot contain, so a value that holds one still comes back whole.
324
+ */
325
+ function legacyPositionOf(cursor, plan, sortColumn) {
326
+ if (sortColumn === plan.idColumn)
327
+ return ULID_PATTERN.test(cursor) ? { value: cursor, id: undefined } : undefined;
328
+ const at = cursor.lastIndexOf('|');
329
+ if (at === -1)
330
+ return undefined;
331
+ const id = cursor.slice(at + 1);
332
+ return ULID_PATTERN.test(id) ? { value: cursor.slice(0, at), id } : undefined;
333
+ }
334
+ /**
335
+ * The position a cursor holds in THIS walk, or a refusal.
336
+ *
337
+ * An envelope is continued only in the walk it names. A legacy cursor was minted under
338
+ * the ONLY default there was — ascending, by the first declared sort — so it is continued
339
+ * exactly there (an in-flight walk survives the deploy) and refused anywhere else, which
340
+ * is where it would replay silently: under a newly honoured `desc` default above all.
341
+ * Anything that is neither is refused too. Every refusal is the same `cursor_restart`.
342
+ */
343
+ function positionIn(cursor, plan, sortColumn, order) {
344
+ const envelope = envelopeOf(cursor);
345
+ if (envelope) {
346
+ if (envelope.order !== order || envelope.sort !== sortColumn) {
347
+ throw new CursorMismatch(`list: this cursor continues a walk by '${envelope.sort}' ${envelope.order}, and this request ` +
348
+ `asks for '${sortColumn}' ${order} — keep the sort and order the first page was read with, ` +
349
+ 'or restart paging from the first page, without a cursor');
350
+ }
351
+ if ((envelope.id === undefined) !== (sortColumn === plan.idColumn)) {
352
+ throw new CursorMismatch('list: this cursor is malformed — restart paging from the first page, without a cursor');
353
+ }
354
+ return { value: envelope.value, id: envelope.id };
355
+ }
356
+ const legacy = legacyPositionOf(cursor, plan, sortColumn);
357
+ if (legacy && order === 'asc' && sortColumn === plan.sortable[0])
358
+ return legacy;
359
+ throw new CursorMismatch(legacy
360
+ ? `list: this cursor predates the walk it is replayed in ('${sortColumn}' ${order}) — ` +
361
+ 'restart paging from the first page, without a cursor'
362
+ : 'list: this cursor was not minted by this list — restart paging from the first page, without a cursor');
221
363
  }
222
364
  /**
223
365
  * Compose the page query and its count.
@@ -283,8 +425,8 @@ export function listQuery(plan, params) {
283
425
  const countParams = [...args];
284
426
  const cmp = order === 'asc' ? '>' : '<';
285
427
  if (params.cursor !== undefined && params.cursor !== '') {
286
- const { value, id } = splitCursor(params.cursor);
287
- if (sortColumn === plan.idColumn || id === undefined) {
428
+ const { value, id } = positionIn(params.cursor, plan, sortColumn, order);
429
+ if (id === undefined) {
288
430
  where.push(`${sortColumn} ${cmp} ?`);
289
431
  args.push(value);
290
432
  }