@amalgm/live 0.2.81-main.41285576091 → 0.2.81-main.41336706080

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 (168) hide show
  1. package/PURPOSE.md +15 -10
  2. package/README.md +1 -1
  3. package/dist/apply/contracts.d.ts +140 -22
  4. package/dist/apply/contracts.d.ts.map +1 -1
  5. package/dist/apply/contracts.js +45 -15
  6. package/dist/apply/contracts.js.map +1 -1
  7. package/dist/apply/journey.d.ts +3 -2
  8. package/dist/apply/journey.d.ts.map +1 -1
  9. package/dist/apply/journey.js +49 -16
  10. package/dist/apply/journey.js.map +1 -1
  11. package/dist/apply/lane.d.ts +41 -0
  12. package/dist/apply/lane.d.ts.map +1 -0
  13. package/dist/apply/lane.js +68 -0
  14. package/dist/apply/lane.js.map +1 -0
  15. package/dist/apply/line.d.ts +17 -6
  16. package/dist/apply/line.d.ts.map +1 -1
  17. package/dist/apply/line.js +27 -15
  18. package/dist/apply/line.js.map +1 -1
  19. package/dist/apply/plans.d.ts.map +1 -1
  20. package/dist/apply/plans.js +28 -20
  21. package/dist/apply/plans.js.map +1 -1
  22. package/dist/apply/rail.d.ts +32 -5
  23. package/dist/apply/rail.d.ts.map +1 -1
  24. package/dist/apply/rail.js +368 -60
  25. package/dist/apply/rail.js.map +1 -1
  26. package/dist/apply/selection.d.ts +9 -5
  27. package/dist/apply/selection.d.ts.map +1 -1
  28. package/dist/apply/selection.js +28 -10
  29. package/dist/apply/selection.js.map +1 -1
  30. package/dist/apply/showing.d.ts +47 -4
  31. package/dist/apply/showing.d.ts.map +1 -1
  32. package/dist/apply/showing.js +75 -5
  33. package/dist/apply/showing.js.map +1 -1
  34. package/dist/apply/type-adapters.d.ts +2 -2
  35. package/dist/apply/type-adapters.d.ts.map +1 -1
  36. package/dist/apply/type-adapters.js +1 -0
  37. package/dist/apply/type-adapters.js.map +1 -1
  38. package/dist/apply/window.d.ts +1 -6
  39. package/dist/apply/window.d.ts.map +1 -1
  40. package/dist/apply/window.js.map +1 -1
  41. package/dist/drive/contracts.d.ts +60 -22
  42. package/dist/drive/contracts.d.ts.map +1 -1
  43. package/dist/drive/contracts.js +10 -4
  44. package/dist/drive/contracts.js.map +1 -1
  45. package/dist/drive/drive.d.ts +3 -3
  46. package/dist/drive/drive.d.ts.map +1 -1
  47. package/dist/drive/drive.js +4 -4
  48. package/dist/drive/drive.js.map +1 -1
  49. package/dist/drive/index.d.ts +1 -0
  50. package/dist/drive/index.d.ts.map +1 -1
  51. package/dist/drive/index.js +1 -0
  52. package/dist/drive/index.js.map +1 -1
  53. package/dist/drive/listing.d.ts +9 -6
  54. package/dist/drive/listing.d.ts.map +1 -1
  55. package/dist/drive/listing.js +25 -15
  56. package/dist/drive/listing.js.map +1 -1
  57. package/dist/drive/map-index.d.ts +44 -0
  58. package/dist/drive/map-index.d.ts.map +1 -0
  59. package/dist/drive/map-index.js +147 -0
  60. package/dist/drive/map-index.js.map +1 -0
  61. package/dist/drive/placements.d.ts +22 -6
  62. package/dist/drive/placements.d.ts.map +1 -1
  63. package/dist/drive/placements.js +64 -19
  64. package/dist/drive/placements.js.map +1 -1
  65. package/dist/drive/where.d.ts +27 -10
  66. package/dist/drive/where.d.ts.map +1 -1
  67. package/dist/drive/where.js +83 -27
  68. package/dist/drive/where.js.map +1 -1
  69. package/dist/entities/index.d.ts +2 -0
  70. package/dist/entities/index.d.ts.map +1 -1
  71. package/dist/entities/index.js +2 -0
  72. package/dist/entities/index.js.map +1 -1
  73. package/dist/entities/units.d.ts +31 -0
  74. package/dist/entities/units.d.ts.map +1 -0
  75. package/dist/entities/units.js +27 -0
  76. package/dist/entities/units.js.map +1 -0
  77. package/dist/index.d.ts +1 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +1 -0
  80. package/dist/index.js.map +1 -1
  81. package/dist/registration/home-layout.d.ts +14 -0
  82. package/dist/registration/home-layout.d.ts.map +1 -0
  83. package/dist/registration/home-layout.js +28 -0
  84. package/dist/registration/home-layout.js.map +1 -0
  85. package/dist/registration/index.d.ts +3 -1
  86. package/dist/registration/index.d.ts.map +1 -1
  87. package/dist/registration/index.js +3 -1
  88. package/dist/registration/index.js.map +1 -1
  89. package/dist/registration/user-ground.d.ts +114 -54
  90. package/dist/registration/user-ground.d.ts.map +1 -1
  91. package/dist/registration/user-ground.js +156 -47
  92. package/dist/registration/user-ground.js.map +1 -1
  93. package/dist/transfer/download.d.ts +8 -0
  94. package/dist/transfer/download.d.ts.map +1 -1
  95. package/dist/transfer/download.js +7 -5
  96. package/dist/transfer/download.js.map +1 -1
  97. package/dist/transfer/index.d.ts +1 -0
  98. package/dist/transfer/index.d.ts.map +1 -1
  99. package/dist/transfer/index.js +1 -0
  100. package/dist/transfer/index.js.map +1 -1
  101. package/dist/transfer/parallel.d.ts +9 -0
  102. package/dist/transfer/parallel.d.ts.map +1 -1
  103. package/dist/transfer/parallel.js +24 -16
  104. package/dist/transfer/parallel.js.map +1 -1
  105. package/dist/workspace/api.js +2 -2
  106. package/dist/workspace/api.js.map +1 -1
  107. package/dist/workspace/registry.d.ts +5 -4
  108. package/dist/workspace/registry.d.ts.map +1 -1
  109. package/dist/workspace/registry.js +8 -8
  110. package/dist/workspace/registry.js.map +1 -1
  111. package/dist/workspace/types.d.ts +7 -2
  112. package/dist/workspace/types.d.ts.map +1 -1
  113. package/dist-cjs/apply/contracts.js +45 -15
  114. package/dist-cjs/apply/contracts.js.map +1 -1
  115. package/dist-cjs/apply/journey.js +49 -16
  116. package/dist-cjs/apply/journey.js.map +1 -1
  117. package/dist-cjs/apply/lane.js +72 -0
  118. package/dist-cjs/apply/lane.js.map +1 -0
  119. package/dist-cjs/apply/line.js +30 -15
  120. package/dist-cjs/apply/line.js.map +1 -1
  121. package/dist-cjs/apply/plans.js +28 -20
  122. package/dist-cjs/apply/plans.js.map +1 -1
  123. package/dist-cjs/apply/rail.js +368 -60
  124. package/dist-cjs/apply/rail.js.map +1 -1
  125. package/dist-cjs/apply/selection.js +27 -9
  126. package/dist-cjs/apply/selection.js.map +1 -1
  127. package/dist-cjs/apply/showing.js +77 -5
  128. package/dist-cjs/apply/showing.js.map +1 -1
  129. package/dist-cjs/apply/type-adapters.js +1 -0
  130. package/dist-cjs/apply/type-adapters.js.map +1 -1
  131. package/dist-cjs/apply/window.js.map +1 -1
  132. package/dist-cjs/drive/contracts.js +10 -4
  133. package/dist-cjs/drive/contracts.js.map +1 -1
  134. package/dist-cjs/drive/drive.js +4 -4
  135. package/dist-cjs/drive/drive.js.map +1 -1
  136. package/dist-cjs/drive/index.js +1 -0
  137. package/dist-cjs/drive/index.js.map +1 -1
  138. package/dist-cjs/drive/listing.js +24 -14
  139. package/dist-cjs/drive/listing.js.map +1 -1
  140. package/dist-cjs/drive/map-index.js +152 -0
  141. package/dist-cjs/drive/map-index.js.map +1 -0
  142. package/dist-cjs/drive/placements.js +64 -19
  143. package/dist-cjs/drive/placements.js.map +1 -1
  144. package/dist-cjs/drive/where.js +84 -27
  145. package/dist-cjs/drive/where.js.map +1 -1
  146. package/dist-cjs/entities/index.js +2 -0
  147. package/dist-cjs/entities/index.js.map +1 -1
  148. package/dist-cjs/entities/units.js +30 -0
  149. package/dist-cjs/entities/units.js.map +1 -0
  150. package/dist-cjs/index.js +1 -0
  151. package/dist-cjs/index.js.map +1 -1
  152. package/dist-cjs/registration/home-layout.js +31 -0
  153. package/dist-cjs/registration/home-layout.js.map +1 -0
  154. package/dist-cjs/registration/index.js +3 -1
  155. package/dist-cjs/registration/index.js.map +1 -1
  156. package/dist-cjs/registration/user-ground.js +155 -46
  157. package/dist-cjs/registration/user-ground.js.map +1 -1
  158. package/dist-cjs/transfer/download.js +7 -5
  159. package/dist-cjs/transfer/download.js.map +1 -1
  160. package/dist-cjs/transfer/index.js +4 -0
  161. package/dist-cjs/transfer/index.js.map +1 -1
  162. package/dist-cjs/transfer/parallel.js +25 -16
  163. package/dist-cjs/transfer/parallel.js.map +1 -1
  164. package/dist-cjs/workspace/api.js +2 -2
  165. package/dist-cjs/workspace/api.js.map +1 -1
  166. package/dist-cjs/workspace/registry.js +8 -8
  167. package/dist-cjs/workspace/registry.js.map +1 -1
  168. package/package.json +10 -4
package/PURPOSE.md CHANGED
@@ -179,14 +179,18 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
179
179
  and immutable content; a machine derives its SQLite rows, paths, physical
180
180
  identities, observer evidence, and watcher bindings locally.
181
181
  14. **Login convergence has one authority.** A first machine conditionally
182
- publishes the declared home; every later machine materializes that exact
183
- cloud graph, and a simultaneous first-login loser adopts the winning graph.
184
- 15. **Cloud precedes Watch.** Login becomes ready only after the accepted
185
- portable core baseline agrees with the active cloud snapshot and watcher
186
- coverage is established over the resulting user ground. Durable records
187
- newer than that baseline survive restart and are never overwritten merely
188
- to make login look current. Only records still awaiting the authority
189
- report `syncing`; accepted receipts are history, not Send work.
182
+ publishes the declared home; every later machine places that exact cloud
183
+ graph's map, the home root and `.amalgmignore` as real bytes and every
184
+ other entity listed until first touch, and a simultaneous first-login
185
+ loser places the winning graph's map. Login downloads nothing else.
186
+ 15. **Cloud precedes Watch.** Login becomes ready only after the user's
187
+ identity is proven, the home root and its `.amalgmignore` stand as exactly
188
+ their records at the ground's place on the line, and watcher coverage is
189
+ established over the resulting user ground. A computer keeps every byte it
190
+ already holds. Durable records newer than that baseline survive restart
191
+ and are never overwritten merely to make login look current. Only records
192
+ still awaiting the authority report `syncing`; accepted receipts are
193
+ history, not Send work.
190
194
  16. **Files owns Files decisions.** `files register` identity declaration and
191
195
  `files add` graph selection are Live operations behind injected effect
192
196
  ports. A product shell routes them through its persistent Files host and
@@ -210,8 +214,9 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
210
214
  containment; it never creates an overlapping UUID family. A reference in
211
215
  the core graph points to the selected workspace UUID, including when that
212
216
  workspace later becomes nested beneath a newly registered parent.
213
- 20. **One install primitive, selective and never replacing.** Login installs
214
- the core graph; `files add <workspace>` installs one owned, UUID-selected
217
+ 20. **One install primitive, selective and never replacing.** Login places
218
+ the core root and its `.amalgmignore` and lists the rest of the home;
219
+ `files add <workspace>` installs one owned, UUID-selected
215
220
  materialization boundary and refreshes the exact portable reference
216
221
  inventory in always-materialized core ground. Both pin the folded graph in
217
222
  one machine-local installation intent, reconstruct and verify the complete
package/README.md CHANGED
@@ -24,7 +24,7 @@ normative specifications live in [docs/](docs/):
24
24
  | [files-browsing.md](docs/files-browsing.md) | one active-cloud namespace with per-computer local materialization |
25
25
  | [shared-realtime-wave-3.md](docs/shared-realtime-wave-3.md) | the multi-user cloud-authority design |
26
26
  | [extraction-boundary.md](docs/extraction-boundary.md) | current Live/Shell ownership and the remaining cutover boundary |
27
- | [user-ground-login.md](docs/user-ground-login.md) | first-login publication, later-device materialization, and Watch readiness |
27
+ | [user-ground-login.md](docs/user-ground-login.md) | first-login publication, later-device map placement, and Watch readiness |
28
28
  | [watching.md](docs/watching.md) | Watch purpose, axioms, lifecycle matrix, and cross-platform test layers |
29
29
 
30
30
  ## Surfaces
@@ -1,5 +1,5 @@
1
1
  /** Portable contracts at the Inbox -> Apply -> Verify boundary. */
2
- import type { CloudEntityRecord } from '../entities/cloud.js';
2
+ import { type CloudEntityRecord } from '../entities/cloud.js';
3
3
  import { type ConstructType, type EntityType, type Sha256Hex } from '../entities/types.js';
4
4
  import type { TextSplice } from '../detection/record-proposal.js';
5
5
  import type { AcceptedEntityRecord } from '../records/contracts.js';
@@ -7,9 +7,10 @@ import type { ContentManifest } from '../contracts/content.js';
7
7
  import type { TransferArtifact } from '../transfer/artifacts.js';
8
8
  import { type ApplyPlay } from './showing.js';
9
9
  import type { ApplySettlement, LineJudgment } from './settling.js';
10
- export declare const ENTITY_APPLY_INTENT_CONTRACT = "amalgm.entity-apply-intent@4";
10
+ export declare const ENTITY_APPLY_INTENT_CONTRACT = "amalgm.entity-apply-intent@5";
11
11
  /** One member's exact target inside its window: the entity's last record
12
- * there. It carries its window's attemptId, so a member names its window. */
12
+ * there, or a kept member's kept state. It carries its window's attemptId,
13
+ * unit and cutoff, so every host call knows the window it serves. */
13
14
  export interface EntityApplyIntent {
14
15
  /** The window's attempt: fresh and host-minted, even at the same clock time. */
15
16
  readonly attemptId: string;
@@ -17,13 +18,22 @@ export interface EntityApplyIntent {
17
18
  readonly authorityId: string;
18
19
  readonly entityId: string;
19
20
  readonly fromSequence: number;
21
+ /** The target record's channel sequence; a kept member's own position. */
20
22
  readonly throughSequence: number;
21
- readonly targetMutationId: string;
23
+ /** Null for a kept member: no record on this computer names its target. */
24
+ readonly targetMutationId: string | null;
22
25
  readonly targetState: string;
23
26
  readonly targetType: EntityType;
24
27
  /** The play judged when the attempt began. Recovery finishes it; it is
25
28
  * never judged again once the attempt binds. */
26
29
  readonly play: ApplyPlay;
30
+ /** The fetch lane's unit and pinned position the window serves, both null
31
+ * on a line (each equals its window intent's). */
32
+ readonly unit: string | null;
33
+ readonly cutoff: number | null;
34
+ /** A kept member's target itself: the kept graph head's state, held only
35
+ * there. Recovery plans from it, never by reading the head again. */
36
+ readonly kept: CloudEntityRecord | null;
27
37
  readonly createdAt: number;
28
38
  }
29
39
  /** The exact official state disk most recently proved, if any. */
@@ -36,6 +46,12 @@ export interface MaterializedOfficialState {
36
46
  * position through its target, the entity's last record in the window
37
47
  * (window.ts). An open window names its members' targets; a fresh window's
38
48
  * members end where the fold ended.
49
+ *
50
+ * A kept member (law 6, `docs/entity-apply.md`) has no records: its newest
51
+ * accepted state at its lane's cutoff is the kept graph head's, from before
52
+ * this computer's place on the line. It is its lane's entry's Enter (the
53
+ * unit root, or the outermost plain folder missing above it, lane.ts), the
54
+ * window's lone member, and it is never materialized here yet.
39
55
  */
40
56
  export interface EntityApplyWork {
41
57
  readonly authorityId: string;
@@ -44,9 +60,20 @@ export interface EntityApplyWork {
44
60
  readonly play: ApplyPlay;
45
61
  readonly resolvedThrough: number;
46
62
  readonly materialized: MaterializedOfficialState | null;
63
+ /** Empty exactly when the member is kept. */
47
64
  readonly records: readonly AcceptedEntityRecord[];
65
+ readonly kept: CloudEntityRecord | null;
66
+ }
67
+ /** What one member reaches: its last record's complete result, or a kept
68
+ * member's kept state. */
69
+ export interface ApplyTarget {
70
+ readonly result: CloudEntityRecord;
71
+ /** The last record, carrying its replay and cargo; null when kept. */
72
+ readonly record: AcceptedEntityRecord | null;
73
+ /** The last record's channel sequence; a kept member's resolved position. */
74
+ readonly throughSequence: number;
48
75
  }
49
- export declare const APPLY_WINDOW_CONTRACT = "amalgm.apply-window@1";
76
+ export declare const APPLY_WINDOW_CONTRACT = "amalgm.apply-window@2";
50
77
  /**
51
78
  * One window's intent: the members it binds, each at its own target, under
52
79
  * one attempt. It is the window's receipt: the row the host commits
@@ -58,12 +85,19 @@ export interface ApplyWindowIntent {
58
85
  readonly contract: typeof APPLY_WINDOW_CONTRACT;
59
86
  readonly attemptId: string;
60
87
  readonly authorityId: string;
88
+ /** A fetch lane's unit, or null for its authority's line. */
89
+ readonly unit: string | null;
90
+ /** A lane's pinned received position: its members stand at their newest
91
+ * rows at or before it, and its end owes again what it newly placed for
92
+ * rows after it. Null for a line. */
93
+ readonly cutoff: number | null;
61
94
  /** In prefix order. Each member intent carries the window's attemptId. */
62
95
  readonly members: readonly EntityApplyIntent[];
63
96
  readonly createdAt: number;
64
97
  }
65
98
  /** One member as the line reads it: its work, its judgment at its position
66
- * (settling.ts), and where it heads the line. */
99
+ * (settling.ts), and where it heads the line: its first row's position, or
100
+ * a kept member's lane cutoff. */
67
101
  export interface WindowMember {
68
102
  readonly work: EntityApplyWork;
69
103
  readonly judgment: LineJudgment;
@@ -79,6 +113,9 @@ export interface WindowMember {
79
113
  */
80
114
  export interface ApplyWindow {
81
115
  readonly authorityId: string;
116
+ /** The lane's unit and pinned position, or null for a line's window. */
117
+ readonly unit: string | null;
118
+ readonly cutoff: number | null;
82
119
  readonly intent: ApplyWindowIntent | null;
83
120
  readonly members: readonly WindowMember[];
84
121
  /** The position of the first member, for fetching ahead; null when an
@@ -95,6 +132,57 @@ export type EntityApplyLineStep = {
95
132
  | {
96
133
  readonly kind: 'end';
97
134
  };
135
+ /**
136
+ * One step of a fetch lane, judged at its pinned received position
137
+ * `through`: the unit's open window first, else a fresh window for the
138
+ * members of its closure not yet standing at their newest row at or before
139
+ * `through`, else what stops the lane.
140
+ */
141
+ export type EntityApplyLaneStep = {
142
+ readonly through: number;
143
+ } & ({
144
+ readonly kind: 'window';
145
+ readonly window: ApplyWindow;
146
+ }
147
+ /** Every member stands at its newest row at or before `through`. */
148
+ | {
149
+ readonly kind: 'end';
150
+ }
151
+ /** The unit is in no ground this computer can place at `through`: trashed,
152
+ * deleted, or outside every root it holds and every root a held reference
153
+ * leads to. */
154
+ | {
155
+ readonly kind: 'nowhere';
156
+ readonly reason: string;
157
+ }
158
+ /** The unit is a workspace root a held reference leads to, which this
159
+ * computer does not hold: the host enters it at `through` (`enterRoot`),
160
+ * and the lane reads again. */
161
+ | {
162
+ readonly kind: 'root';
163
+ readonly reason: string;
164
+ }
165
+ /** A fact outside this unit must be placed first, by `unit`'s own lane:
166
+ * a Git home, the unit containing a nested repository, a folder of a
167
+ * shown unit not yet here, or the root a held reference leads to. */
168
+ | {
169
+ readonly kind: 'prerequisite';
170
+ readonly unit: string;
171
+ readonly reason: string;
172
+ });
173
+ /** How one fetch answered. `held` names the deepest unit its chain waits on
174
+ * when the chain made no progress for `stall`; the lane keeps every
175
+ * obligation and goes on. */
176
+ export type ApplyFetchAnswer = {
177
+ readonly kind: 'placed';
178
+ } | {
179
+ readonly kind: 'nowhere';
180
+ readonly reason: string;
181
+ } | {
182
+ readonly kind: 'held';
183
+ readonly unit: string;
184
+ readonly reason: string;
185
+ };
98
186
  /** How one member ended in its window, in prefix order. */
99
187
  export type WindowMemberOutcome =
100
188
  /** Verify proved the result; the host staged its rows for the end. */
@@ -111,12 +199,12 @@ export type WindowMemberOutcome =
111
199
  readonly kind: 'owed';
112
200
  readonly reason: string;
113
201
  };
114
- interface ApplyPlanBase {
202
+ export interface ApplyPlanBase {
115
203
  readonly play: ApplyPlay;
116
204
  readonly entityId: string;
117
205
  readonly fromSequence: number;
118
206
  readonly throughSequence: number;
119
- readonly targetMutationId: string;
207
+ readonly targetMutationId: string | null;
120
208
  readonly target: CloudEntityRecord;
121
209
  }
122
210
  export interface TextApplyPlan extends ApplyPlanBase {
@@ -323,25 +411,41 @@ export type ApplyGuardStage = 'look' | 'final';
323
411
  type MaybePromise<T> = T | Promise<T>;
324
412
  /** One prepared SQLite owner supplies these transactions for the rail lifetime. */
325
413
  export interface EntityApplyStorePort {
326
- /** Every authority with an open window or an unresolved Inbox record. */
414
+ /** Every authority with an open line window or an unresolved Inbox record. */
327
415
  readApplyAuthorities(): MaybePromise<readonly string[]>;
328
- /** This authority's window: an open one first, else the fold of its
416
+ /** This authority's line window: an open one first, else the fold of its
329
417
  * unresolved rows from the line's first, each member judged at its
330
418
  * position, else the end. Nothing is resolved by reading. */
331
419
  readApplyWindow(authorityId: string): MaybePromise<EntityApplyLineStep>;
420
+ /** One step of `unit`'s fetch lane at `through`, or, when null, at the
421
+ * received prefix the store pins now. Nothing is resolved by reading. */
422
+ readFetchWindow(unit: string, through: number | null): MaybePromise<EntityApplyLaneStep>;
423
+ /** Every unit with an open lane window, so a restart finishes it. */
424
+ readOpenUnits(): MaybePromise<readonly string[]>;
332
425
  /** True when local work follows the entity's accepted record at
333
426
  * `targetSequence` (local-work.ts): an Outbox row on the entity's channel
334
- * whose delivery position is unknown or after the target's. */
335
- hasLocalWorkAfter(authorityId: string, entityId: string, targetSequence: number): MaybePromise<boolean>;
427
+ * whose delivery position is unknown or after the target's. A null target
428
+ * is a kept member's: the kept head, at the authority's snapshot
429
+ * watermark. */
430
+ hasLocalWorkAfter(authorityId: string, entityId: string, targetSequence: number | null): MaybePromise<boolean>;
336
431
  /** The bound fact: one strict commit of the window's row, carrying each
337
432
  * member's staged object, before the first visible effect. Another
338
- * unfinished window owning part of this one's ground answers a wait. */
339
- bindWindow(intent: ApplyWindowIntent): MaybePromise<void | ApplyDependencyOutcome>;
433
+ * unfinished window owning part of this one's ground answers a wait. A
434
+ * fact the window read that moved answers stale with nothing bound: a
435
+ * line member's resolved position, a lane member's materialization. A
436
+ * settlement that only advanced a lane member's position commutes with
437
+ * the lane's end. */
438
+ bindWindow(intent: ApplyWindowIntent): MaybePromise<void | ApplyDependencyOutcome | ApplyStaleProof>;
340
439
  /** The ended fact: one ordered commit that projects every materialized
341
440
  * member's staged rows, resolves the longest complete prefix of
342
441
  * `outcomes` (window.ts), and ends the window's ownership. A window that
343
442
  * never bound (nothing to reveal) passes a null intent and only resolves.
344
- * A moved fact answers stale with nothing committed. */
443
+ * A moved fact answers stale with nothing committed. Ownership protects
444
+ * only what the window shows, so a settled member's read is checked here
445
+ * as at the bind, bound window or not; a bound window then re-enters
446
+ * through its receipt, which holds no settlement. A member that shows
447
+ * stands at its target over any position another track's end gave it,
448
+ * owing every later row again. */
345
449
  endWindow(intent: ApplyWindowIntent | null, members: readonly WindowMember[], outcomes: readonly WindowMemberOutcome[]): MaybePromise<ApplyTerminalCommit>;
346
450
  }
347
451
  /** Type-owned Apply behavior. Every operation is idempotent for the exact intent. */
@@ -406,9 +510,17 @@ export interface EntityApplyEffectsPort {
406
510
  * A member whose records the Inbox no longer holds has a null plan and is
407
511
  * finished from the receipt alone. */
408
512
  recover(intent: ApplyWindowIntent, plans: readonly (EntityApplyPlan | null)[]): Promise<readonly RecoveredMember[]>;
409
- /** Drop a window that never bound: forget its preparation and remove its
410
- * private staging. */
513
+ /** Drop an attempt that never bound: forget everything it prepared and
514
+ * remove its private staging, what a member cut from the prefix left behind
515
+ * included. The attempt is the unit, whichever members `intent` still names.
516
+ * When a narrower window binds, the same goes for what it left out at the
517
+ * window's end. */
411
518
  discard(intent: ApplyWindowIntent): Promise<void>;
519
+ /** Enter the workspace root `unit` at received position `through`, as Add
520
+ * places a root: its unit alone, at its newest row there, held for the
521
+ * life of this computer. Resolves once its rows, binding and Watch
522
+ * coverage agree; a second call for a root being entered joins it. */
523
+ enterRoot(unit: string, through: number): Promise<void>;
412
524
  /** Await the named observation. Local-only differences retain the member
413
525
  * and must never be treated as safely recorded bytes. Call compared
414
526
  * synchronously with the final observation comparison, after publishing
@@ -453,6 +565,9 @@ export interface EntityApplyRailOptions {
453
565
  readonly now: () => number;
454
566
  /** How many authority lines run at once. One line is always sequential. */
455
567
  readonly concurrency?: number;
568
+ /** How many fetch lanes run at once, beside the lines; `concurrency` by
569
+ * default. One lane is always sequential. */
570
+ readonly laneConcurrency?: number;
456
571
  readonly cargo?: EntityApplyCargoPort;
457
572
  readonly onWaiting?: (wait: ApplyWait) => void;
458
573
  readonly onBackgroundError?: (error: unknown) => void;
@@ -461,19 +576,22 @@ export interface EntityApplyRailOptions {
461
576
  readonly onIdle?: () => void;
462
577
  }
463
578
  export declare function assertApplyIntent(intent: EntityApplyIntent): void;
579
+ /** One member's intent at its selected target (selection.ts), in the window
580
+ * its unit and cutoff name. */
464
581
  export declare function createApplyIntent(input: {
465
582
  readonly attemptId: string;
466
- readonly authorityId: string;
467
- readonly entityId: string;
468
- readonly fromSequence: number;
469
- readonly target: AcceptedEntityRecord;
470
- readonly play: ApplyPlay;
583
+ readonly work: EntityApplyWork;
584
+ readonly target: ApplyTarget;
585
+ readonly unit: string | null;
586
+ readonly cutoff: number | null;
471
587
  readonly createdAt: number;
472
588
  }): EntityApplyIntent;
473
589
  export declare function assertApplyWindowIntent(intent: ApplyWindowIntent): void;
474
590
  export declare function createApplyWindowIntent(input: {
475
591
  readonly attemptId: string;
476
592
  readonly authorityId: string;
593
+ readonly unit: string | null;
594
+ readonly cutoff: number | null;
477
595
  readonly members: readonly EntityApplyIntent[];
478
596
  readonly createdAt: number;
479
597
  }): ApplyWindowIntent;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,60 @@
1
1
  /** Portable contracts at the Inbox -> Apply -> Verify boundary. */
2
+ import { assertRecord } from '../entities/cloud.js';
2
3
  import { isEntityType, UUID_PATTERN, } from '../entities/types.js';
3
4
  import { APPLY_PLAYS } from './showing.js';
4
- export const ENTITY_APPLY_INTENT_CONTRACT = 'amalgm.entity-apply-intent@4';
5
- export const APPLY_WINDOW_CONTRACT = 'amalgm.apply-window@1';
5
+ export const ENTITY_APPLY_INTENT_CONTRACT = 'amalgm.entity-apply-intent@5';
6
+ export const APPLY_WINDOW_CONTRACT = 'amalgm.apply-window@2';
6
7
  const HASH = /^[0-9a-f]{64}$/;
7
8
  const sequence = (value, positive = false) => Number.isSafeInteger(value) && value >= (positive ? 1 : 0);
9
+ /** A lane names its unit and pinned position, zero when the kept head holds
10
+ * all its authority has delivered; a line names neither. */
11
+ const pinned = (unit, cutoff) => unit === null ? cutoff === null : UUID_PATTERN.test(unit) && cutoff !== null && sequence(cutoff);
12
+ /** A kept member is its lane's entry's Enter, named by its kept state itself. */
13
+ const keptTarget = (intent, kept) => intent.targetMutationId === null
14
+ && intent.throughSequence === intent.fromSequence
15
+ && intent.play === 'enter'
16
+ && intent.unit !== null
17
+ && kept.uuid === intent.entityId
18
+ && kept.status === 'active'
19
+ && kept.version === intent.targetState
20
+ && kept.type === intent.targetType;
8
21
  export function assertApplyIntent(intent) {
22
+ const { kept } = intent;
9
23
  if (intent.contract !== ENTITY_APPLY_INTENT_CONTRACT
10
24
  || !UUID_PATTERN.test(intent.attemptId)
11
25
  || !intent.authorityId
12
26
  || !UUID_PATTERN.test(intent.entityId)
13
27
  || !sequence(intent.fromSequence)
14
- || !sequence(intent.throughSequence, true)
15
- || intent.throughSequence < intent.fromSequence + 1
16
- || !intent.targetMutationId
28
+ || !sequence(intent.throughSequence)
17
29
  || !HASH.test(intent.targetState)
18
30
  || !isEntityType(intent.targetType)
19
31
  || !APPLY_PLAYS.has(intent.play)
32
+ || !pinned(intent.unit, intent.cutoff)
33
+ || (kept === null
34
+ ? intent.throughSequence < intent.fromSequence + 1 || !intent.targetMutationId
35
+ : !keptTarget(intent, assertRecord(kept)))
20
36
  || !sequence(intent.createdAt)) {
21
37
  throw new Error('entity Apply intent is invalid');
22
38
  }
23
39
  }
40
+ /** One member's intent at its selected target (selection.ts), in the window
41
+ * its unit and cutoff name. */
24
42
  export function createApplyIntent(input) {
43
+ const { work, target } = input;
25
44
  const intent = Object.freeze({
26
45
  contract: ENTITY_APPLY_INTENT_CONTRACT,
27
46
  attemptId: input.attemptId,
28
- authorityId: input.authorityId,
29
- entityId: input.entityId,
30
- fromSequence: input.fromSequence,
31
- throughSequence: input.target.globalSequence,
32
- targetMutationId: input.target.mutationId,
33
- targetState: input.target.resultState,
34
- targetType: input.target.change.result.type,
35
- play: input.play,
47
+ authorityId: work.authorityId,
48
+ entityId: work.entityId,
49
+ fromSequence: work.resolvedThrough,
50
+ throughSequence: target.throughSequence,
51
+ targetMutationId: target.record?.mutationId ?? null,
52
+ targetState: target.result.version,
53
+ targetType: target.result.type,
54
+ play: work.play,
55
+ unit: input.unit,
56
+ cutoff: input.cutoff,
57
+ kept: target.record === null ? Object.freeze({ ...target.result }) : null,
36
58
  createdAt: input.createdAt,
37
59
  });
38
60
  assertApplyIntent(intent);
@@ -42,6 +64,7 @@ export function assertApplyWindowIntent(intent) {
42
64
  if (intent.contract !== APPLY_WINDOW_CONTRACT
43
65
  || !UUID_PATTERN.test(intent.attemptId)
44
66
  || !intent.authorityId
67
+ || !pinned(intent.unit, intent.cutoff)
45
68
  || !Array.isArray(intent.members)
46
69
  || intent.members.length === 0
47
70
  || !sequence(intent.createdAt)) {
@@ -50,8 +73,13 @@ export function assertApplyWindowIntent(intent) {
50
73
  const seen = new Set();
51
74
  for (const member of intent.members) {
52
75
  assertApplyIntent(member);
53
- if (member.attemptId !== intent.attemptId || member.authorityId !== intent.authorityId || seen.has(member.entityId)) {
54
- throw new Error('Apply window members must share its attempt and authority, each entity once');
76
+ if (member.attemptId !== intent.attemptId || member.authorityId !== intent.authorityId
77
+ || member.unit !== intent.unit || member.cutoff !== intent.cutoff || seen.has(member.entityId)) {
78
+ throw new Error('Apply window members must share its attempt, authority, unit and cutoff, each entity once');
79
+ }
80
+ // A kept member is its lane window's lone member.
81
+ if (member.kept !== null && intent.members.length !== 1) {
82
+ throw new Error('a kept Apply member is its window\'s only member');
55
83
  }
56
84
  seen.add(member.entityId);
57
85
  }
@@ -61,6 +89,8 @@ export function createApplyWindowIntent(input) {
61
89
  contract: APPLY_WINDOW_CONTRACT,
62
90
  attemptId: input.attemptId,
63
91
  authorityId: input.authorityId,
92
+ unit: input.unit,
93
+ cutoff: input.cutoff,
64
94
  members: Object.freeze([...input.members]),
65
95
  createdAt: input.createdAt,
66
96
  });
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAGnE,OAAO,EACL,YAAY,EACZ,YAAY,GAIb,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAG3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AA2C3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAoa7D,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAE9B,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAW,EAAE,CAC5D,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,IAAI,MAAM,CAAC,QAAQ,KAAK,4BAA4B;WAC/C,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;WACpC,CAAC,MAAM,CAAC,WAAW;WACnB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;WACnC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;WAC9B,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC;WACvC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC;WAChD,CAAC,MAAM,CAAC,gBAAgB;WACxB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;WAC9B,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;WAChC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;WAC7B,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAQjC;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,4BAA4B;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;QAC5C,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;QACzC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;QACrC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;QAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,IAAI,MAAM,CAAC,QAAQ,KAAK,qBAAqB;WACxC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;WACpC,CAAC,MAAM,CAAC,WAAW;WACnB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;WAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;WAC3B,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpH,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAKvC;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,qBAAqB;QAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,EAAE,YAAY,EAA0B,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,YAAY,EACZ,YAAY,GAIb,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAG3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAuE3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAwe7D,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAE9B,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAW,EAAE,CAC5D,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D;4DAC4D;AAC5D,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAE,MAAqB,EAAW,EAAE,CACrE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEnG,iFAAiF;AACjF,MAAM,UAAU,GAAG,CAAC,MAAyB,EAAE,IAAuB,EAAW,EAAE,CACjF,MAAM,CAAC,gBAAgB,KAAK,IAAI;OAC7B,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,YAAY;OAC9C,MAAM,CAAC,IAAI,KAAK,OAAO;OACvB,MAAM,CAAC,IAAI,KAAK,IAAI;OACpB,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ;OAC7B,IAAI,CAAC,MAAM,KAAK,QAAQ;OACxB,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,WAAW;OACnC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC;AAErC,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxB,IAAI,MAAM,CAAC,QAAQ,KAAK,4BAA4B;WAC/C,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;WACpC,CAAC,MAAM,CAAC,WAAW;WACnB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;WACnC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;WAC9B,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;WACjC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;WAC9B,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;WAChC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;WAC7B,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;WACnC,CAAC,IAAI,KAAK,IAAI;YACf,CAAC,CAAC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAC9E,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;WACzC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;+BAC+B;AAC/B,MAAM,UAAU,iBAAiB,CAAC,KAOjC;IACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,4BAA4B;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,eAAe;QAClC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,IAAI;QACnD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;QAClC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QACzE,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,IAAI,MAAM,CAAC,QAAQ,KAAK,qBAAqB;WACxC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;WACpC,CAAC,MAAM,CAAC,WAAW;WACnB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;WACnC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;WAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;WAC3B,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;eACjF,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC/G,CAAC;QACD,kDAAkD;QAClD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAOvC;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,qBAAqB;QAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -21,11 +21,12 @@ export declare function outcomeOf(attempt: () => Promise<HeadOutcome>): Promise<
21
21
  /**
22
22
  * The window's journey. `wakeVersion` is the rail's dependency-release
23
23
  * clock: a comparison stamps it so a release that lands during an effect is
24
- * not lost, and the effect cannot release itself.
24
+ * not lost, and the effect cannot release itself. `stopping` says the rail
25
+ * was told to stop, so nothing new becomes visible.
25
26
  */
26
27
  export declare class EntityApplyJourney {
27
28
  #private;
28
- constructor(options: EntityApplyRailOptions, wakeVersion: () => number);
29
+ constructor(options: EntityApplyRailOptions, wakeVersion: () => number, stopping: () => boolean);
29
30
  /** The accepted position the window's first member is judged at. */
30
31
  targetOf(window: ApplyWindow): number | null;
31
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"journey.d.ts","sourceRoot":"","sources":["../../src/apply/journey.ts"],"names":[],"mappings":"AAAA;wDACwD;AAExD,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,eAAe,EAKpB,KAAK,WAAW,EAIhB,KAAK,sBAAsB,EAK5B,MAAM,gBAAgB,CAAC;AAMxB;;;;gBAIgB;AAChB,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,OAAO,GACP;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAgDJ,yDAAyD;AACzD,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAYzF;AAKD;;;;GAIG;AACH,qBAAa,kBAAkB;;gBAIjB,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,MAAM;IAKtE,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAO5C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CA8LrD"}
1
+ {"version":3,"file":"journey.d.ts","sourceRoot":"","sources":["../../src/apply/journey.ts"],"names":[],"mappings":"AAAA;wDACwD;AAExD,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,eAAe,EAKpB,KAAK,WAAW,EAIhB,KAAK,sBAAsB,EAK5B,MAAM,gBAAgB,CAAC;AAMxB;;;;gBAIgB;AAChB,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,OAAO,GACP;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAgDJ,yDAAyD;AACzD,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAYzF;AAKD;;;;;GAKG;AACH,qBAAa,kBAAkB;;gBAKjB,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO;IAM/F,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAO5C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CA0NrD"}