@amalgm/live 0.2.81-preview.35320889761 → 0.2.81-preview.36771680084

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 (252) hide show
  1. package/PURPOSE.md +160 -22
  2. package/dist/apply/contracts.d.ts +122 -29
  3. package/dist/apply/contracts.d.ts.map +1 -1
  4. package/dist/apply/contracts.js +3 -1
  5. package/dist/apply/contracts.js.map +1 -1
  6. package/dist/apply/index.d.ts +1 -0
  7. package/dist/apply/index.d.ts.map +1 -1
  8. package/dist/apply/index.js +1 -0
  9. package/dist/apply/index.js.map +1 -1
  10. package/dist/apply/plans.d.ts +2 -2
  11. package/dist/apply/plans.d.ts.map +1 -1
  12. package/dist/apply/plans.js +11 -12
  13. package/dist/apply/plans.js.map +1 -1
  14. package/dist/apply/rail.d.ts +8 -2
  15. package/dist/apply/rail.d.ts.map +1 -1
  16. package/dist/apply/rail.js +273 -111
  17. package/dist/apply/rail.js.map +1 -1
  18. package/dist/apply/repository-boundaries.d.ts +22 -0
  19. package/dist/apply/repository-boundaries.d.ts.map +1 -0
  20. package/dist/apply/repository-boundaries.js +20 -0
  21. package/dist/apply/repository-boundaries.js.map +1 -0
  22. package/dist/apply/repository-result.d.ts +3 -0
  23. package/dist/apply/repository-result.d.ts.map +1 -1
  24. package/dist/apply/repository-result.js +18 -6
  25. package/dist/apply/repository-result.js.map +1 -1
  26. package/dist/apply/type-adapters.d.ts +2 -2
  27. package/dist/apply/type-adapters.d.ts.map +1 -1
  28. package/dist/apply/type-adapters.js +6 -5
  29. package/dist/apply/type-adapters.js.map +1 -1
  30. package/dist/detection/adapter-contract.js +1 -1
  31. package/dist/detection/adapter-contract.js.map +1 -1
  32. package/dist/detection/batch.d.ts +4 -1
  33. package/dist/detection/batch.d.ts.map +1 -1
  34. package/dist/detection/batch.js +19 -9
  35. package/dist/detection/batch.js.map +1 -1
  36. package/dist/detection/dispositions.d.ts +130 -0
  37. package/dist/detection/dispositions.d.ts.map +1 -0
  38. package/dist/detection/dispositions.js +21 -0
  39. package/dist/detection/dispositions.js.map +1 -0
  40. package/dist/detection/echo.d.ts +8 -8
  41. package/dist/detection/echo.d.ts.map +1 -1
  42. package/dist/detection/echo.js +11 -15
  43. package/dist/detection/echo.js.map +1 -1
  44. package/dist/detection/enrollment.d.ts +12 -7
  45. package/dist/detection/enrollment.d.ts.map +1 -1
  46. package/dist/detection/enrollment.js +21 -13
  47. package/dist/detection/enrollment.js.map +1 -1
  48. package/dist/detection/identity.d.ts +87 -0
  49. package/dist/detection/identity.d.ts.map +1 -0
  50. package/dist/detection/identity.js +214 -0
  51. package/dist/detection/identity.js.map +1 -0
  52. package/dist/detection/index.d.ts +8 -2
  53. package/dist/detection/index.d.ts.map +1 -1
  54. package/dist/detection/index.js +8 -2
  55. package/dist/detection/index.js.map +1 -1
  56. package/dist/detection/record-proposal.d.ts +12 -9
  57. package/dist/detection/record-proposal.d.ts.map +1 -1
  58. package/dist/detection/record-proposal.js +37 -34
  59. package/dist/detection/record-proposal.js.map +1 -1
  60. package/dist/detection/removals.d.ts +10 -0
  61. package/dist/detection/removals.d.ts.map +1 -0
  62. package/dist/detection/removals.js +51 -0
  63. package/dist/detection/removals.js.map +1 -0
  64. package/dist/detection/repository.d.ts +0 -2
  65. package/dist/detection/repository.d.ts.map +1 -1
  66. package/dist/detection/repository.js +6 -4
  67. package/dist/detection/repository.js.map +1 -1
  68. package/dist/detection/scoped-identity.d.ts +94 -0
  69. package/dist/detection/scoped-identity.d.ts.map +1 -0
  70. package/dist/detection/scoped-identity.js +173 -0
  71. package/dist/detection/scoped-identity.js.map +1 -0
  72. package/dist/detection/territory.d.ts +3 -1
  73. package/dist/detection/territory.d.ts.map +1 -1
  74. package/dist/detection/territory.js +10 -6
  75. package/dist/detection/territory.js.map +1 -1
  76. package/dist/entities/bytes.d.ts +2 -0
  77. package/dist/entities/bytes.d.ts.map +1 -1
  78. package/dist/entities/bytes.js +2 -0
  79. package/dist/entities/bytes.js.map +1 -1
  80. package/dist/entities/cloud.d.ts +15 -2
  81. package/dist/entities/cloud.d.ts.map +1 -1
  82. package/dist/entities/cloud.js +92 -39
  83. package/dist/entities/cloud.js.map +1 -1
  84. package/dist/entities/graph-head.d.ts +10 -2
  85. package/dist/entities/graph-head.d.ts.map +1 -1
  86. package/dist/entities/graph-head.js +50 -15
  87. package/dist/entities/graph-head.js.map +1 -1
  88. package/dist/entities/index.d.ts +2 -0
  89. package/dist/entities/index.d.ts.map +1 -1
  90. package/dist/entities/index.js +2 -0
  91. package/dist/entities/index.js.map +1 -1
  92. package/dist/entities/repo-manifest.d.ts +8 -0
  93. package/dist/entities/repo-manifest.d.ts.map +1 -0
  94. package/dist/entities/repo-manifest.js +12 -0
  95. package/dist/entities/repo-manifest.js.map +1 -0
  96. package/dist/entities/repo-states.d.ts +46 -9
  97. package/dist/entities/repo-states.d.ts.map +1 -1
  98. package/dist/entities/repo-states.js +82 -41
  99. package/dist/entities/repo-states.js.map +1 -1
  100. package/dist/entities/rules.d.ts +18 -0
  101. package/dist/entities/rules.d.ts.map +1 -1
  102. package/dist/entities/rules.js +80 -21
  103. package/dist/entities/rules.js.map +1 -1
  104. package/dist/entities/trash.d.ts +7 -0
  105. package/dist/entities/trash.d.ts.map +1 -0
  106. package/dist/entities/trash.js +10 -0
  107. package/dist/entities/trash.js.map +1 -0
  108. package/dist/files/commands.d.ts +6 -1
  109. package/dist/files/commands.d.ts.map +1 -1
  110. package/dist/files/commands.js +5 -1
  111. package/dist/files/commands.js.map +1 -1
  112. package/dist/index.d.ts +2 -0
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +2 -0
  115. package/dist/index.js.map +1 -1
  116. package/dist/records/contracts.d.ts.map +1 -1
  117. package/dist/records/contracts.js +20 -9
  118. package/dist/records/contracts.js.map +1 -1
  119. package/dist/records/index.d.ts +1 -0
  120. package/dist/records/index.d.ts.map +1 -1
  121. package/dist/records/index.js +1 -0
  122. package/dist/records/index.js.map +1 -1
  123. package/dist/records/outbox.d.ts +6 -0
  124. package/dist/records/outbox.d.ts.map +1 -1
  125. package/dist/records/outbox.js +19 -2
  126. package/dist/records/outbox.js.map +1 -1
  127. package/dist/records/publication.d.ts +74 -0
  128. package/dist/records/publication.d.ts.map +1 -0
  129. package/dist/records/publication.js +384 -0
  130. package/dist/records/publication.js.map +1 -0
  131. package/dist/records/rail.d.ts +71 -6
  132. package/dist/records/rail.d.ts.map +1 -1
  133. package/dist/records/rail.js +411 -120
  134. package/dist/records/rail.js.map +1 -1
  135. package/dist/registration/user-ground.d.ts +8 -1
  136. package/dist/registration/user-ground.d.ts.map +1 -1
  137. package/dist/registration/user-ground.js +4 -7
  138. package/dist/registration/user-ground.js.map +1 -1
  139. package/dist/steps.d.ts +21 -0
  140. package/dist/steps.d.ts.map +1 -0
  141. package/dist/steps.js +48 -0
  142. package/dist/steps.js.map +1 -0
  143. package/dist/transfer/artifacts.js +1 -1
  144. package/dist/transfer/artifacts.js.map +1 -1
  145. package/dist/transfer/cargo.js +1 -1
  146. package/dist/transfer/cargo.js.map +1 -1
  147. package/dist/transfer/upload.d.ts +7 -0
  148. package/dist/transfer/upload.d.ts.map +1 -1
  149. package/dist/transfer/upload.js +3 -2
  150. package/dist/transfer/upload.js.map +1 -1
  151. package/dist/watching/index.d.ts +1 -0
  152. package/dist/watching/index.d.ts.map +1 -1
  153. package/dist/watching/index.js +1 -0
  154. package/dist/watching/index.js.map +1 -1
  155. package/dist/watching/maintenance.d.ts +133 -0
  156. package/dist/watching/maintenance.d.ts.map +1 -0
  157. package/dist/watching/maintenance.js +204 -0
  158. package/dist/watching/maintenance.js.map +1 -0
  159. package/dist/watching/suspicion.d.ts +74 -13
  160. package/dist/watching/suspicion.d.ts.map +1 -1
  161. package/dist/watching/suspicion.js +363 -70
  162. package/dist/watching/suspicion.js.map +1 -1
  163. package/dist-cjs/apply/contracts.js +3 -1
  164. package/dist-cjs/apply/contracts.js.map +1 -1
  165. package/dist-cjs/apply/index.js +1 -0
  166. package/dist-cjs/apply/index.js.map +1 -1
  167. package/dist-cjs/apply/plans.js +11 -12
  168. package/dist-cjs/apply/plans.js.map +1 -1
  169. package/dist-cjs/apply/rail.js +273 -111
  170. package/dist-cjs/apply/rail.js.map +1 -1
  171. package/dist-cjs/apply/repository-boundaries.js +24 -0
  172. package/dist-cjs/apply/repository-boundaries.js.map +1 -0
  173. package/dist-cjs/apply/repository-result.js +19 -6
  174. package/dist-cjs/apply/repository-result.js.map +1 -1
  175. package/dist-cjs/apply/type-adapters.js +6 -5
  176. package/dist-cjs/apply/type-adapters.js.map +1 -1
  177. package/dist-cjs/detection/adapter-contract.js +1 -1
  178. package/dist-cjs/detection/adapter-contract.js.map +1 -1
  179. package/dist-cjs/detection/batch.js +20 -9
  180. package/dist-cjs/detection/batch.js.map +1 -1
  181. package/dist-cjs/detection/dispositions.js +22 -0
  182. package/dist-cjs/detection/dispositions.js.map +1 -0
  183. package/dist-cjs/detection/echo.js +11 -15
  184. package/dist-cjs/detection/echo.js.map +1 -1
  185. package/dist-cjs/detection/enrollment.js +21 -14
  186. package/dist-cjs/detection/enrollment.js.map +1 -1
  187. package/dist-cjs/detection/identity.js +224 -0
  188. package/dist-cjs/detection/identity.js.map +1 -0
  189. package/dist-cjs/detection/index.js +8 -2
  190. package/dist-cjs/detection/index.js.map +1 -1
  191. package/dist-cjs/detection/record-proposal.js +39 -35
  192. package/dist-cjs/detection/record-proposal.js.map +1 -1
  193. package/dist-cjs/detection/removals.js +55 -0
  194. package/dist-cjs/detection/removals.js.map +1 -0
  195. package/dist-cjs/detection/repository.js +6 -4
  196. package/dist-cjs/detection/repository.js.map +1 -1
  197. package/dist-cjs/detection/scoped-identity.js +176 -0
  198. package/dist-cjs/detection/scoped-identity.js.map +1 -0
  199. package/dist-cjs/detection/territory.js +11 -6
  200. package/dist-cjs/detection/territory.js.map +1 -1
  201. package/dist-cjs/entities/bytes.js +4 -1
  202. package/dist-cjs/entities/bytes.js.map +1 -1
  203. package/dist-cjs/entities/cloud.js +98 -39
  204. package/dist-cjs/entities/cloud.js.map +1 -1
  205. package/dist-cjs/entities/graph-head.js +50 -13
  206. package/dist-cjs/entities/graph-head.js.map +1 -1
  207. package/dist-cjs/entities/index.js +2 -0
  208. package/dist-cjs/entities/index.js.map +1 -1
  209. package/dist-cjs/entities/repo-manifest.js +15 -0
  210. package/dist-cjs/entities/repo-manifest.js.map +1 -0
  211. package/dist-cjs/entities/repo-states.js +88 -41
  212. package/dist-cjs/entities/repo-states.js.map +1 -1
  213. package/dist-cjs/entities/rules.js +82 -21
  214. package/dist-cjs/entities/rules.js.map +1 -1
  215. package/dist-cjs/entities/trash.js +14 -0
  216. package/dist-cjs/entities/trash.js.map +1 -0
  217. package/dist-cjs/files/commands.js +5 -1
  218. package/dist-cjs/files/commands.js.map +1 -1
  219. package/dist-cjs/index.js +2 -0
  220. package/dist-cjs/index.js.map +1 -1
  221. package/dist-cjs/records/contracts.js +19 -8
  222. package/dist-cjs/records/contracts.js.map +1 -1
  223. package/dist-cjs/records/index.js +1 -0
  224. package/dist-cjs/records/index.js.map +1 -1
  225. package/dist-cjs/records/outbox.js +20 -2
  226. package/dist-cjs/records/outbox.js.map +1 -1
  227. package/dist-cjs/records/publication.js +391 -0
  228. package/dist-cjs/records/publication.js.map +1 -0
  229. package/dist-cjs/records/rail.js +413 -121
  230. package/dist-cjs/records/rail.js.map +1 -1
  231. package/dist-cjs/registration/user-ground.js +4 -7
  232. package/dist-cjs/registration/user-ground.js.map +1 -1
  233. package/dist-cjs/steps.js +54 -0
  234. package/dist-cjs/steps.js.map +1 -0
  235. package/dist-cjs/transfer/artifacts.js +1 -1
  236. package/dist-cjs/transfer/artifacts.js.map +1 -1
  237. package/dist-cjs/transfer/cargo.js.map +1 -1
  238. package/dist-cjs/transfer/upload.js +6 -4
  239. package/dist-cjs/transfer/upload.js.map +1 -1
  240. package/dist-cjs/watching/index.js +1 -0
  241. package/dist-cjs/watching/index.js.map +1 -1
  242. package/dist-cjs/watching/maintenance.js +208 -0
  243. package/dist-cjs/watching/maintenance.js.map +1 -0
  244. package/dist-cjs/watching/suspicion.js +364 -71
  245. package/dist-cjs/watching/suspicion.js.map +1 -1
  246. package/package.json +6 -6
  247. package/dist/detection/diff.d.ts +0 -62
  248. package/dist/detection/diff.d.ts.map +0 -1
  249. package/dist/detection/diff.js +0 -81
  250. package/dist/detection/diff.js.map +0 -1
  251. package/dist-cjs/detection/diff.js +0 -85
  252. package/dist-cjs/detection/diff.js.map +0 -1
package/PURPOSE.md CHANGED
@@ -26,6 +26,85 @@ are independently required; their evidence contract is
26
26
 
27
27
  ## Axioms
28
28
 
29
+ ### Observation and publication
30
+
31
+ Detect describes physical truth. A separate publication decision chooses what
32
+ Record promises to share; an ignored observation is never pending Outbox work.
33
+ `src/records/README.md` states the selection laws and `publication.ts` implements
34
+ the portable graph decision. It retains excluded results and defers dependent
35
+ structural changes while admitting independent work. Re-inclusion compares
36
+ against the sharing baseline, including pending admitted local work, rather
37
+ than the latest suppressed observation. Committed records stay immutable through
38
+ policy changes. Named and broad host observation use this boundary. Full-ground
39
+ checks cover excluded observations and later enrollment; acknowledgement of a
40
+ machine's own selected Git result while excluded local files remain is still
41
+ unfinished. Complete native and multi-machine convergence are not yet proved.
42
+
43
+ Publication structure is the complete active UUID set with each node's type,
44
+ parent, name and policy address. When both inputs have the same structure,
45
+ choosing whole rows from either cannot change ancestry, collisions or repository
46
+ ownership. Selection reuses that one derived context within the call; contents,
47
+ provenance, policy and Record's original source proof remain independent.
48
+
49
+ ### Deletion
50
+
51
+ Deleting a file or folder normally on a computer moves it to Amalgm Trash.
52
+ The same deletion reaches the other computers: trashed items are not
53
+ materialized on machines. Their inactive records and recoverable contents stay
54
+ in the cloud for 30 days, then Trash empties automatically. Users may
55
+ empty Trash sooner through the CLI/UI as those surfaces are completed. The
56
+ 30 days start when the authority accepts the Trash change; Restore cancels that
57
+ period. Expiry is an authority responsibility, never a device-clock decision.
58
+
59
+ A settled removal below an accessible, unchanged workspace root authorizes
60
+ Trash after move reconciliation. A missing or unreadable workspace does not
61
+ mean its contents were deleted. Apply's temporary writes do not authorize Trash.
62
+
63
+
64
+ ### Files observation and application
65
+
66
+ People should be able to continue one working session on another computer.
67
+ Detect describes a complete result; Apply reproduces that result without
68
+ erasing another entity's independent identity or unrecorded local work.
69
+ These rules govern the ongoing Files rail, separately from construct sharing.
70
+
71
+ - A repository's payload fingerprint covers its complete Git state and member
72
+ identities. A different pack or incremental base is transport, not an edit.
73
+ - Git's shared refs and objects and a worktree's HEAD, index and unfinished work
74
+ are distinct responsibilities. This implementation transports independent checkout
75
+ copies; it does not promise to reproduce linked-worktree topology or safely
76
+ rewrite shared Git storage through several checkout authorities.
77
+ - An enclosing repository owns ordinary descendants, never a nested
78
+ repository's independent state. Projection must preserve that boundary even
79
+ when the enclosing result predates it.
80
+ - Named ownership and capability waits identify their prerequisite and its
81
+ producer. Relevant progress wakes them; unrelated work does not invalidate
82
+ their proof.
83
+ - An Apply wait consumes progress through its actual observation comparison.
84
+ Later relevant progress cannot be lost while the wait is installed; the
85
+ observation that established the wait cannot wake itself. Settled observation
86
+ requires a fresh guard, not a new Outbox row on the incoming target.
87
+ - Detect completion never authorizes a write: Apply must reacquire and re-prove
88
+ its final guard. Optimistic equality must pass that guard as well.
89
+ - Complete results decide Apply. Sender-side change labels and byte deltas
90
+ cannot limit what the receiving computer must reproduce.
91
+ - A change of publication owner never erases known lineage. An entity leaving
92
+ a Git parcel publishes its complete independent result, even when unchanged,
93
+ based on its last admitted sharing state. Its actual changed fields may be
94
+ empty. The selected ownership transition, record and baseline commit together;
95
+ repeating that settled observation produces nothing.
96
+ - Observation leaves source files and Git metadata unchanged. Private patch
97
+ generation cannot refresh source objects and thereby trigger its own watcher.
98
+ - Existing whole-result last-write-wins stays in force. Ordinary filesystem
99
+ deletion becomes recoverable Amalgm Trash; it never permanently deletes content. Independent simultaneous work needs separate working sessions;
100
+ recovery history does not promise automatic integration.
101
+
102
+ The review-stage cleanup preserves Register, cold upload/download, Watch setup,
103
+ and construct sharing. Their shared Git capture/reconstruction seam now describes literal worktree
104
+ bytes and the Git object format explicitly; their journeys and transfer
105
+ mechanisms stay intact.
106
+
107
+
29
108
  Managed package delivery starts from a clean, exact main or preview source
30
109
  commit. Its workflow occurrence supplies only the generated version and source
31
110
  record, and native consumer gates use the same packed bytes as publication.
@@ -86,8 +165,15 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
86
165
  projection; a reused ID with different composition is refused.
87
166
  12. **User ground is portable; coordination state is not.** Everything beneath
88
167
  an authenticated `users/<email>/` home is registrable except the reserved
89
- `.amalgm/` directory, transient SQLite journal/lock sidecars, and paths
90
- excluded by its tracked `.amalgmignore`. SQLite bytes, bindings, caches,
168
+ `.amalgm/` directory. Database-like filenames have no implicit exclusion;
169
+ Live's own databases and coordination files live inside that control tree.
170
+ `.amalgmignore` selects later publication, never physical observation,
171
+ registration or cold transfer.
172
+ Ignoring an already registered file preserves its UUID and last recorded
173
+ result; it does not remove the file from the registered snapshot.
174
+ Each materialized root reads its own tracked policy. Ignore never gates
175
+ incoming Apply; accepted changes still belong to selected local ground.
176
+ SQLite bytes, bindings, caches,
91
177
  watcher evidence, paths, and physical identities are always machine-local.
92
178
  13. **The graph, not SQLite, travels.** R2 receives canonical entity snapshots
93
179
  and immutable content; a machine derives its SQLite rows, paths, physical
@@ -97,9 +183,10 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
97
183
  cloud graph, and a simultaneous first-login loser adopts the winning graph.
98
184
  15. **Cloud precedes Watch.** Login becomes ready only after the accepted
99
185
  portable core baseline agrees with the active cloud snapshot and watcher
100
- coverage is established over the resulting user ground. Journaled local
101
- work newer than that baseline survives restart and reports `syncing`; it
102
- is never overwritten merely to make login look current.
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.
103
190
  16. **Files owns Files decisions.** `files register` identity declaration and
104
191
  `files add` graph selection are Live operations behind injected effect
105
192
  ports. A product shell routes them through its persistent Files host and
@@ -204,15 +291,27 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
204
291
  path until one settled observation proves it; paths rung during that
205
292
  observation remain suspect. A named burst widens first to its deepest
206
293
  common directory; only a nameless event, a burst with no common directory,
207
- watcher death, startup, or explicit catch-up suspects the complete covered
208
- root. Scope may reduce what is read, never change the state that is derived.
209
- 29. **Repository registration trusts Git where Git has truth.** A clean
210
- tracked worktree child reuses Git's index object identity and Git's own
211
- attribute/blob classification without reopening or hashing its complete
212
- worktree bytes. Dirty, untracked, and non-Git ground is read because no
213
- stronger current-content witness exists. Repository packing remains
214
- transfer preparation and may run beside structural registration, but
215
- neither act may weaken the other's result.
294
+ watcher death, startup or explicit catch-up suspects the complete covered
295
+ domain. Native silence proves no physical freshness: an independent
296
+ metadata maintenance sweep visits every coverage owner on cadence C, a
297
+ configured jittered interval rather than a mutation→Record bound, reads
298
+ no bytes, and turns every difference into an examination request without
299
+ creating native suspicion. A leaf's
300
+ content proof holds only under a filesystem clock stamped before its read;
301
+ a later stamp alone never clears a racy leaf. One finite native turn
302
+ includes its necessary scope discovery and at most one complete-domain
303
+ continuation, with one shared source retry. Its original wider cutoff
304
+ freezes before scope release; later notices cannot renew that priority or
305
+ receive its completion.
306
+ Scope may reduce what is read, never change the state that is derived.
307
+ 29. **Git owns stored objects; physical bytes own worktree truth.** A leaf's
308
+ type, payload and executable posture describe the same stable physical
309
+ observation. Git reporting a clean path, index flags, attributes and
310
+ conversion settings are never evidence that its stored blob equals those
311
+ bytes. A Git blob identity may stand for a worktree payload only after
312
+ raw byte equality is proved. Cached physical evidence follows the same
313
+ suspicion and freshness rules as ordinary files. Checkpoint capture must
314
+ reproduce those exact bytes independently of receiver Git settings.
216
315
  30. **Proof travels forward; disposable bytes need not.** Registration reads
217
316
  every ordinary text or binary file through one bounded stream to classify
218
317
  it and derive its content head. When cloud cargo is missing, that same
@@ -263,6 +362,11 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
263
362
  ground and never lifecycle authority. Beneath a root proven present for
264
363
  the whole settled observation, an unmatched topmost disappearance is an
265
364
  authorized Trash; descendants inherit it without per-child mutations.
365
+ An address means a name within a resolved parent UUID. Directories claim
366
+ unique physical continuity before address; leaves claim that parent-owned
367
+ address before unique physical continuity. Moving a directory therefore
368
+ carries its children's addresses even when another directory takes its
369
+ old path or an editor replaces a child's inode.
266
370
  34. **Named Detect costs what changed, not what exists.** A valid named
267
371
  suspicion loads indexed notebook rows for that path, its required parents,
268
372
  and its nearest repository territory; it never walks or serializes the
@@ -349,7 +453,7 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
349
453
  through the ordinary-file adapter.
350
454
  A missing active target below a still-present materialized root first
351
455
  passes through one finite Detect boundary. Before reveal, a proven move or
352
- settled deletion becomes durable local work and supersedes the older Apply.
456
+ settled local deletion becomes durable Trash work and supersedes the older Apply.
353
457
  After reveal begins, the boundary may still preserve a concurrent move or
354
458
  save, but Apply's own intermediate absence cannot authorize lifecycle; no
355
459
  durable local result authorizes idempotent repair from the accepted result.
@@ -372,10 +476,21 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
372
476
  41. **Verify, not a write syscall, commits Apply.** Applied Watch rings are
373
477
  retained. Only exact type-specific reread may advance resolved and
374
478
  materialized cursors, update the local notebook, mark Inbox history
375
- resolved, and clear the intent; normal Detect equality then makes the echo
376
- silent. A newer accepted complete result may replace an older intent only
377
- while its work remains private (`declared` or `prepared`); once revealed,
378
- the exact visible target must Verify before Apply advances. For a
479
+ resolved, and commit its exact terminal outcome; normal Detect equality
480
+ then makes the echo silent. That same intent remains cleanup-pending until
481
+ its finite private recovery objects are safely removed and cleanup is
482
+ acknowledged. Restart processes this cleanup before ordinary selection,
483
+ including without unresolved Inbox work or a current physical association.
484
+ A terminal intent never repeats Verify or machine effects. Cleanup cannot
485
+ require old cargo, adopt a changed private survivor, or overwrite later
486
+ observations. A phase alone does not prove whether physical effects exist:
487
+ adopting an exact target may reach `revealed` without changing disk. Only
488
+ a bound receipt proves effect ownership. Recovery may cancel an obsolete
489
+ plan after accounting for every original effect and conditionally repairing
490
+ its intermediate physical addresses. Cancellation preserves sharing values
491
+ and leaves Inbox and materialization progress unresolved; a fresh intent
492
+ replans only after the old owner's cleanup. An unexplained effect keeps its
493
+ responsibility. Exact target Verify is still required to claim installation. For a
379
494
  repository, Verify commits Card, Checkpoint, and the complete transported
380
495
  identity frontier as one notebook fact. The Watch observation caused by
381
496
  that reveal must compare equal to that same fact; it can never become a new
@@ -423,9 +538,10 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
423
538
  Local display names are opaque nonempty text without NUL, including native
424
539
  root labels and separators; the separate nonempty, NUL-free host path owns
425
540
  the address and never derives from the display name.
426
- 47. **An unfinished merge is settled Checkpoint truth.** Git lock files and
427
- Amalgm's own reveal marker are transient and may never be captured. A
428
- stable merge in progress is different: its merge heads, message and mode,
541
+ 47. **An unfinished merge is settled Checkpoint truth.** Git lock files are
542
+ never portable state and their presence alone cannot prevent a proven
543
+ stable observation. Amalgm's own reveal marker identifies an incomplete
544
+ owned effect and refuses capture. A stable merge's heads, message and mode,
429
545
  every unmerged index stage, and the current worktree conflict bytes are
430
546
  one portable Checkpoint. Registration, Detect, transport, Apply, and
431
547
  Verify preserve that state exactly so another machine can continue or
@@ -463,6 +579,24 @@ or certify a new wire contract, cloud migration or cross-machine rollout.
463
579
  on the declared workload; excessive or unmeasured delay cannot inherit a
464
580
  passing release verdict from eventual convergence.
465
581
 
582
+ ## Apply attribution boundary
583
+
584
+ Detect describes observed user ground. A bound, nonterminal Apply recovery receipt
585
+ owns only its original effect participants and address cones; a phase alone owns
586
+ nothing. Detect defers dependent attribution and retains the Watch responsibility,
587
+ while independent observations may commit. Ownership is rechecked at Record
588
+ admission, including an originally empty answer. Terminal commit releases that
589
+ ownership before private cleanup and wakes its original scopes. A capture blocked
590
+ by its own receipt requests coherent cancellation; only proof of the original
591
+ effects authorizes cancellation, and cancellation never resolves Inbox or advances
592
+ verified state. Fresh intents have fresh host-minted attempt identities, even when
593
+ the target and wall clock are identical, and run fresh preflight before new effects.
594
+ Apply uses the same foreign-ownership rule at admission and terminal preparation;
595
+ a dependent cancellation waits without resolving history or discarding evidence.
596
+ Primary and collateral placement use the same retained original physical
597
+ association. A proved cancellation may repair O addresses, never sharing state,
598
+ payload/version, verification time, or the resolved/verified history positions.
599
+
466
600
  ## Five surfaces, one behavior
467
601
 
468
602
  ```
@@ -534,3 +668,7 @@ after every native examination proves the exact candidate bytes.
534
668
  Native consumers install the archive as a dependency, so SDK development
535
669
  dependencies never become an end-user installation requirement.
536
670
  Each admitted owner gate proves its actual checkout equals the managed source.
671
+
672
+ An unchanged Git tip does not imply unchanged available history. A history
673
+ boundary change must transport the newly required closure; filenames remain
674
+ literal data when replay determines which operation to perform.
@@ -5,10 +5,12 @@ import type { ChangeFacet, TextSplice } from '../detection/record-proposal.js';
5
5
  import type { AcceptedEntityRecord } from '../records/contracts.js';
6
6
  import type { ContentManifest } from '../contracts/content.js';
7
7
  import type { TransferArtifact } from '../transfer/artifacts.js';
8
- export declare const ENTITY_APPLY_INTENT_CONTRACT = "amalgm.entity-apply-intent@1";
8
+ export declare const ENTITY_APPLY_INTENT_CONTRACT = "amalgm.entity-apply-intent@2";
9
9
  export type ApplyIntentPhase = 'declared' | 'prepared' | 'revealed';
10
10
  /** One crash-recovery responsibility. It is written before any machine effect. */
11
11
  export interface EntityApplyIntent {
12
+ /** Fresh host-minted identity for this attempt, even at the same clock time. */
13
+ readonly attemptId: string;
12
14
  readonly contract: typeof ENTITY_APPLY_INTENT_CONTRACT;
13
15
  readonly authorityId: string;
14
16
  readonly entityId: string;
@@ -33,6 +35,8 @@ export interface EntityApplyWork {
33
35
  readonly materialized: MaterializedOfficialState | null;
34
36
  readonly records: readonly AcceptedEntityRecord[];
35
37
  readonly intent: EntityApplyIntent | null;
38
+ /** A terminal decision owns cleanup even with no remaining Inbox or ground. */
39
+ readonly retirement?: EntityApplyRetirement;
36
40
  }
37
41
  /** One stable page of unresolved entities. The cursor is opaque to Live. */
38
42
  export interface EntityApplyWorkPage {
@@ -77,8 +81,8 @@ export interface LinkApplyPlan extends ApplyPlanBase {
77
81
  /** Structure replay changes address/type/status without shipping new bytes. */
78
82
  export interface StructureApplyPlan extends ApplyPlanBase {
79
83
  readonly kind: 'structure';
80
- /** Repair truth when active leaf ground is unexpectedly absent. */
81
- readonly repairArtifact: TransferArtifact | null;
84
+ /** Complete leaf truth, including when the receiver holds different bytes. */
85
+ readonly resultArtifact: TransferArtifact | null;
82
86
  }
83
87
  export interface ReferenceApplyPlan extends ApplyPlanBase {
84
88
  readonly kind: 'reference';
@@ -88,12 +92,11 @@ export interface RepositoryApplyPlan extends ApplyPlanBase {
88
92
  readonly kind: 'repo.git';
89
93
  readonly artifact: TransferArtifact;
90
94
  readonly stateId: string;
95
+ readonly identityHash: string;
91
96
  readonly cardId: string;
92
97
  readonly checkpointId: string;
93
98
  readonly parentTransportVersion: string | null;
94
99
  readonly transportVersion: string;
95
- readonly cardChanged: boolean;
96
- readonly checkpointChanged: boolean;
97
100
  }
98
101
  export interface LifecycleApplyPlan extends ApplyPlanBase {
99
102
  readonly kind: 'lifecycle';
@@ -108,11 +111,45 @@ export interface ConstructApplyPlan extends ApplyPlanBase {
108
111
  readonly manifest: ContentManifest;
109
112
  }
110
113
  export type EntityApplyPlan = TextApplyPlan | BinaryApplyPlan | LinkApplyPlan | StructureApplyPlan | ReferenceApplyPlan | RepositoryApplyPlan | LifecycleApplyPlan | ConstructApplyPlan;
114
+ /** A concrete prerequisite and the component that can change it. `send`
115
+ * names local results still waiting for their authority sequence. */
116
+ export interface ApplyDependency {
117
+ readonly producer: 'detect' | 'apply' | 'capability' | 'send';
118
+ readonly entityIds: readonly string[];
119
+ }
120
+ /** A wait a person can see and resolve. It stays a dependency, never a
121
+ * fault: the lane wakes on its producer's progress, not on backoff. A blocker
122
+ * always names what releases it, so the current status can always show it. */
123
+ export interface ApplyBlocker {
124
+ readonly code: 'local-ground-would-be-displaced';
125
+ readonly effect: 'trash' | 'replace-container' | 'repository-reveal';
126
+ }
127
+ /** A named prerequisite that another component's progress can change. */
128
+ export interface ApplyDependencyOutcome {
129
+ readonly kind: 'dependency';
130
+ readonly reason: string;
131
+ readonly waitFor?: ApplyDependency;
132
+ readonly blocker?: ApplyBlocker;
133
+ }
134
+ export interface ApplyWait {
135
+ readonly entityId: string;
136
+ readonly reason: string;
137
+ readonly prerequisite: ApplyDependency;
138
+ readonly throughSequence: number;
139
+ readonly blocker?: ApplyBlocker;
140
+ }
111
141
  export type ApplyGuard = {
112
142
  readonly kind: 'safe';
113
143
  } | {
114
144
  readonly kind: 'already-target';
115
145
  }
146
+ /** The original receipt can reach a safe cancellation, but no longer
147
+ * authorizes the current effect plan. Keep Inbox unresolved and replan only
148
+ * after that cancellation and its cleanup commit. */
149
+ | {
150
+ readonly kind: 'replan';
151
+ readonly reason: string;
152
+ }
116
153
  /** Ground differs from the last observation at this entity's own address,
117
154
  * or unrecorded ground holds the destination. Detect + Record can give that
118
155
  * ground identity, so the rail captures it before deciding anything. */
@@ -121,8 +158,8 @@ export type ApplyGuard = {
121
158
  readonly reason?: string;
122
159
  }
123
160
  /** The last verified entity is absent from its recorded address. Detect
124
- * must first distinguish a move from raw absence. Before reveal, settled
125
- * absence may become durable lifecycle work. After reveal, capture may
161
+ * must first distinguish a move from a proved removal. Before reveal, a proved
162
+ * removal becomes durable Trash work. After reveal, capture may
126
163
  * preserve a concurrent move or save but cannot authorize lifecycle from
127
164
  * Apply's own intermediate absence. A durable local result supersedes this
128
165
  * Apply; no result authorizes idempotent cloud repair. */
@@ -130,14 +167,11 @@ export type ApplyGuard = {
130
167
  readonly kind: 'unsettled-ground';
131
168
  readonly reason?: string;
132
169
  }
133
- /** This result's accepted filesystem parent is not materialized yet.
134
- * Parent and child UUIDs are independent ordered channels, so this is a
135
- * normal delivery interleaving: the lane waits without capture or error and
136
- * is re-proved after another lane makes progress. */
137
- | {
138
- readonly kind: 'dependency';
139
- readonly reason: string;
140
- }
170
+ /** A prerequisite is not met yet: the accepted parent has not
171
+ * materialized, a capability is missing, or the effect would displace local
172
+ * remainder nothing else holds. The lane waits without capture or error and
173
+ * is re-proved when the named producer's progress may have changed it. */
174
+ | ApplyDependencyOutcome
141
175
  /** The destination is held by a different recorded entity. Capture can never
142
176
  * turn that into this entity's local work, so the lane parks: it re-runs
143
177
  * only when its input changes or another lane's progress may have moved the
@@ -151,7 +185,10 @@ export type ApplyGuard = {
151
185
  };
152
186
  export type ApplyVerification = {
153
187
  readonly kind: 'match';
154
- }
188
+ } | {
189
+ readonly kind: 'replan';
190
+ readonly reason: string;
191
+ } | ApplyDependencyOutcome
155
192
  /** An active accepted target below a present materialized root is absent.
156
193
  * The rail re-enters the final guard and one lifecycle-protected Detect
157
194
  * boundary. A concurrent move or save remains local work; otherwise the
@@ -170,6 +207,15 @@ export type ApplyCompletion = {
170
207
  } | {
171
208
  readonly kind: 'superseded-by-local';
172
209
  };
210
+ export type ApplyTerminalPurpose = ApplyCompletion | {
211
+ readonly kind: 'cancelled';
212
+ };
213
+ /** The terminal decision is committed; only its exact private cleanup remains. */
214
+ export interface EntityApplyRetirement {
215
+ readonly token: string;
216
+ readonly intent: EntityApplyIntent;
217
+ readonly purpose: ApplyTerminalPurpose;
218
+ }
173
219
  type MaybePromise<T> = T | Promise<T>;
174
220
  /** One prepared SQLite owner supplies these transactions for the rail lifetime. */
175
221
  export interface EntityApplyStorePort {
@@ -183,21 +229,40 @@ export interface EntityApplyStorePort {
183
229
  * `targetSequence`. An accepted local receipt remains protective until its
184
230
  * own official position is selected by Apply. */
185
231
  hasLocalWorkAfter(authorityId: string, entityId: string, targetSequence: number): MaybePromise<boolean>;
232
+ /**
233
+ * Resolve this computer's own exact publication without any Apply effect.
234
+ * In one transaction, true only when no intent exists, Inbox work still
235
+ * starts at `work.resolvedThrough` and ends at `target`, the retained Outbox
236
+ * receipt `isExactOwnAcceptance` of `target`, no local work follows it, and
237
+ * the local sharing basis still holds `target.resultState`, and the host
238
+ * proves its ground sits at the derived address with no sibling relocation
239
+ * owed. Then the range through `target` resolves and materialization
240
+ * evidence is unchanged.
241
+ * Otherwise nothing is written and the ordinary Apply journey decides.
242
+ * The rail offers a page's lanes together, so calls for different entities
243
+ * overlap.
244
+ */
245
+ resolveOwnPublication(work: EntityApplyWork, target: AcceptedEntityRecord): MaybePromise<boolean>;
186
246
  beginIntent(intent: EntityApplyIntent): MaybePromise<void>;
187
247
  setIntentPhase(intent: EntityApplyIntent): MaybePromise<void>;
188
- cancelIntent(intent: EntityApplyIntent): MaybePromise<void>;
189
- /** One transaction resolves Inbox rows, advances proof, updates the notebook,
190
- * and clears the exact intent. */
191
- completeIntent(intent: EntityApplyIntent, completion: ApplyCompletion): MaybePromise<void>;
248
+ cancelIntent(intent: EntityApplyIntent): MaybePromise<EntityApplyRetirement>;
249
+ /** Commit the exact terminal result and retain this intent for cleanup.
250
+ * This must be an outermost durable commit before cleanup can begin. */
251
+ completeIntent(intent: EntityApplyIntent, completion: ApplyCompletion): MaybePromise<EntityApplyRetirement>;
252
+ /** Remove only the intent bound to this nonreused terminal token. */
253
+ acknowledgeCleanup(retirement: EntityApplyRetirement): MaybePromise<void>;
192
254
  }
193
255
  /** Type-owned Apply behavior. Every operation is idempotent for the exact intent. */
194
256
  export interface EntityApplySocket {
195
257
  prepare(intent: EntityApplyIntent, plan: EntityApplyPlan): Promise<void>;
196
258
  /** Compare ground with the last local observation before preparation and again before reveal. */
197
259
  guard(intent: EntityApplyIntent, plan: EntityApplyPlan): Promise<ApplyGuard>;
198
- reveal(intent: EntityApplyIntent, plan: EntityApplyPlan): Promise<void>;
199
- /** Remove only disposable private preparation; recovery bytes remain host-owned. */
200
- discard(intent: EntityApplyIntent, plan: EntityApplyPlan): Promise<void>;
260
+ /** Final effect admission can discover an owner through a physical alias. */
261
+ reveal(intent: EntityApplyIntent, plan: EntityApplyPlan): Promise<void | ApplyDependencyOutcome>;
262
+ /** Prove and stage a finite cleanup description without deleting recovery.
263
+ * The store consumes this proof together with the requested terminal outcome.
264
+ * Another effect owner can defer this boundary using the normal dependency. */
265
+ prepareRetirement(intent: EntityApplyIntent, plan: EntityApplyPlan, purpose: ApplyTerminalPurpose): Promise<void | ApplyDependencyOutcome>;
201
266
  }
202
267
  /** Type-owned reread of real ground after reveal. */
203
268
  export interface EntityVerifySocket {
@@ -208,6 +273,25 @@ export interface OperationalEntityApplyAdapter {
208
273
  readonly apply: EntityApplySocket;
209
274
  readonly verify: EntityVerifySocket;
210
275
  }
276
+ /** Observation completion is not a backup or an Outbox promise. The rail
277
+ * independently checks whether a newer durable local record protects ground. */
278
+ export type LocalCaptureResult = {
279
+ readonly kind: 'settled';
280
+ } | {
281
+ readonly kind: 'replan';
282
+ readonly reason: string;
283
+ } | {
284
+ readonly kind: 'owned';
285
+ readonly reason: string;
286
+ readonly entityIds: readonly string[];
287
+ } | {
288
+ readonly kind: 'local-only';
289
+ readonly reason: string;
290
+ readonly entityIds: readonly string[];
291
+ } | {
292
+ readonly kind: 'retry';
293
+ readonly reason: string;
294
+ };
211
295
  /**
212
296
  * Machine seam for the common rail. Type dispatch is explicit: the coordinator
213
297
  * cannot perform a filesystem effect until it obtains the target type's full
@@ -215,12 +299,18 @@ export interface OperationalEntityApplyAdapter {
215
299
  */
216
300
  export interface EntityApplyEffectsPort {
217
301
  adapterFor(type: EntityType): OperationalEntityApplyAdapter;
218
- /** Await Detect + Record so the observed local result is durable before
219
- * return. The rail decides whether this observation must produce Outbox
220
- * work (`local-change`) or may honestly prove only absence
221
- * (`unsettled-ground`). After reveal the host protects the target from
222
- * lifecycle inference while still preserving a real move or save. */
223
- captureLocal(intent: EntityApplyIntent, plan: EntityApplyPlan, position: 'before-reveal' | 'after-reveal'): Promise<void>;
302
+ /** Resume only the recorded cleanup; never require current ground or cargo. */
303
+ cleanup(retirement: EntityApplyRetirement): Promise<void>;
304
+ /** Await the named observation. Local-only differences retain the Apply
305
+ * intent and must never be treated as safely recorded bytes. After reveal,
306
+ * the host protects the target from lifecycle inference while preserving
307
+ * a real move or save. The rail verifies any claimed Outbox protection.
308
+ * An owned result names unfinished Apply operations; a self-owned capture
309
+ * requests coherent cancellation/replanning, never a wait on itself.
310
+ * Call compared synchronously with the final observation comparison, after
311
+ * publishing its progress. A local-only result requires this fence so that
312
+ * later progress cannot be lost and this capture cannot wake itself. */
313
+ captureLocal(intent: EntityApplyIntent, plan: EntityApplyPlan, position: 'before-reveal' | 'after-reveal', compared: () => void): Promise<LocalCaptureResult>;
224
314
  }
225
315
  export interface EntityApplySchedulePort {
226
316
  schedule(delayMs: number, callback: () => void): {
@@ -229,6 +319,7 @@ export interface EntityApplySchedulePort {
229
319
  random(): number;
230
320
  }
231
321
  export interface EntityApplyRailOptions {
322
+ readonly newIntentId: () => string;
232
323
  readonly store: EntityApplyStorePort;
233
324
  readonly effects: EntityApplyEffectsPort;
234
325
  readonly schedule: EntityApplySchedulePort;
@@ -236,10 +327,12 @@ export interface EntityApplyRailOptions {
236
327
  readonly now: () => number;
237
328
  readonly concurrency?: number;
238
329
  readonly workLimit?: number;
330
+ readonly onWaiting?: (wait: ApplyWait) => void;
239
331
  readonly onBackgroundError?: (error: unknown) => void;
240
332
  }
241
333
  export declare function assertApplyIntent(intent: EntityApplyIntent): void;
242
334
  export declare function createApplyIntent(input: {
335
+ readonly attemptId: string;
243
336
  readonly authorityId: string;
244
337
  readonly entityId: string;
245
338
  readonly fromSequence: number;
@@ -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,11 +1,12 @@
1
1
  /** Portable contracts at the Inbox -> Apply -> Verify boundary. */
2
2
  import { isEntityType, UUID_PATTERN, } from '../entities/types.js';
3
- export const ENTITY_APPLY_INTENT_CONTRACT = 'amalgm.entity-apply-intent@1';
3
+ export const ENTITY_APPLY_INTENT_CONTRACT = 'amalgm.entity-apply-intent@2';
4
4
  const HASH = /^[0-9a-f]{64}$/;
5
5
  const PHASES = new Set(['declared', 'prepared', 'revealed']);
6
6
  const sequence = (value, positive = false) => Number.isSafeInteger(value) && value >= (positive ? 1 : 0);
7
7
  export function assertApplyIntent(intent) {
8
8
  if (intent.contract !== ENTITY_APPLY_INTENT_CONTRACT
9
+ || !UUID_PATTERN.test(intent.attemptId)
9
10
  || !intent.authorityId
10
11
  || !UUID_PATTERN.test(intent.entityId)
11
12
  || !sequence(intent.fromSequence)
@@ -22,6 +23,7 @@ export function assertApplyIntent(intent) {
22
23
  export function createApplyIntent(input) {
23
24
  const intent = Object.freeze({
24
25
  contract: ENTITY_APPLY_INTENT_CONTRACT,
26
+ attemptId: input.attemptId,
25
27
  authorityId: input.authorityId,
26
28
  entityId: input.entityId,
27
29
  fromSequence: input.fromSequence,
@@ -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;AAM9B,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AA8P3E,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/E,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,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,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;WACzB,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,KAMjC;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,4BAA4B;QACtC,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,KAAK,EAAE,UAAmB;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAyB,EACzB,KAA4C;IAE5C,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK;WAC/B,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,CAAC;WACrD,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC"}
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;AAM9B,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAwV3E,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/E,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,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;WACzB,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,KAOjC;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,KAAK,EAAE,UAAmB;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAyB,EACzB,KAA4C;IAE5C,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK;WAC/B,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,CAAC;WACrD,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC"}
@@ -5,6 +5,7 @@ export * from './local-work.js';
5
5
  export { planEntityApply } from './plans.js';
6
6
  export * from './rail.js';
7
7
  export * from './repository-result.js';
8
+ export * from './repository-boundaries.js';
8
9
  export * from './selection.js';
9
10
  export * from './type-adapters.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -5,6 +5,7 @@ export * from './local-work.js';
5
5
  export { planEntityApply } from './plans.js';
6
6
  export * from './rail.js';
7
7
  export * from './repository-result.js';
8
+ export * from './repository-boundaries.js';
8
9
  export * from './selection.js';
9
10
  export * from './type-adapters.js';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}