@amalgm/shell 0.1.164-preview.36072132286 → 0.1.164-preview.36809057014

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 (475) hide show
  1. package/PURPOSE.md +642 -128
  2. package/README.md +10 -8
  3. package/dist/accepted-tail.d.ts +26 -0
  4. package/dist/accepted-tail.js +37 -0
  5. package/dist/accepted-tail.js.map +1 -0
  6. package/dist/agent-execution.d.ts +16 -1
  7. package/dist/agent-execution.js +13 -5
  8. package/dist/agent-execution.js.map +1 -1
  9. package/dist/apply-cleanup.d.ts +28 -0
  10. package/dist/apply-cleanup.js +166 -0
  11. package/dist/apply-cleanup.js.map +1 -0
  12. package/dist/apply-recovery.d.ts +47 -0
  13. package/dist/apply-recovery.js +99 -0
  14. package/dist/apply-recovery.js.map +1 -0
  15. package/dist/apply-rows.d.ts +72 -0
  16. package/dist/apply-rows.js +150 -0
  17. package/dist/apply-rows.js.map +1 -0
  18. package/dist/apply-saves.d.ts +85 -0
  19. package/dist/apply-saves.js +238 -0
  20. package/dist/apply-saves.js.map +1 -0
  21. package/dist/boot.js +2 -1
  22. package/dist/boot.js.map +1 -1
  23. package/dist/capture-work.d.ts +8 -0
  24. package/dist/capture-work.js +67 -0
  25. package/dist/capture-work.js.map +1 -0
  26. package/dist/cargo-group.d.ts +45 -0
  27. package/dist/cargo-group.js +88 -0
  28. package/dist/cargo-group.js.map +1 -0
  29. package/dist/channel-session.d.ts +4 -2
  30. package/dist/channel-session.js +4 -3
  31. package/dist/channel-session.js.map +1 -1
  32. package/dist/chat-composition.d.ts +2 -0
  33. package/dist/chat-composition.js +1 -0
  34. package/dist/chat-composition.js.map +1 -1
  35. package/dist/cli.js +20 -1
  36. package/dist/cli.js.map +1 -1
  37. package/dist/construct-apply-host.d.ts +4 -2
  38. package/dist/construct-apply-host.js +8 -3
  39. package/dist/construct-apply-host.js.map +1 -1
  40. package/dist/construct-door.js +1 -1
  41. package/dist/construct-door.js.map +1 -1
  42. package/dist/construct-ledger.d.ts +6 -1
  43. package/dist/construct-ledger.js +21 -33
  44. package/dist/construct-ledger.js.map +1 -1
  45. package/dist/content-cache-collection.d.ts +18 -0
  46. package/dist/content-cache-collection.js +99 -0
  47. package/dist/content-cache-collection.js.map +1 -0
  48. package/dist/content-cache-host.d.ts +83 -17
  49. package/dist/content-cache-host.js +335 -95
  50. package/dist/content-cache-host.js.map +1 -1
  51. package/dist/content-cache-namespace.d.ts +59 -0
  52. package/dist/content-cache-namespace.js +210 -0
  53. package/dist/content-cache-namespace.js.map +1 -0
  54. package/dist/content-cache-ownership.d.ts +13 -0
  55. package/dist/content-cache-ownership.js +75 -0
  56. package/dist/content-cache-ownership.js.map +1 -0
  57. package/dist/content-cache-retention.d.ts +23 -0
  58. package/dist/content-cache-retention.js +195 -0
  59. package/dist/content-cache-retention.js.map +1 -0
  60. package/dist/content-capture-pool.d.ts +287 -0
  61. package/dist/content-capture-pool.js +461 -0
  62. package/dist/content-capture-pool.js.map +1 -0
  63. package/dist/content-capture-worker.d.ts +8 -0
  64. package/dist/content-capture-worker.js +109 -0
  65. package/dist/content-capture-worker.js.map +1 -0
  66. package/dist/content-clock.d.ts +42 -0
  67. package/dist/content-clock.js +166 -0
  68. package/dist/content-clock.js.map +1 -0
  69. package/dist/content-direct.d.ts +2 -0
  70. package/dist/content-direct.js +12 -0
  71. package/dist/content-direct.js.map +1 -1
  72. package/dist/content-failure.d.ts +18 -0
  73. package/dist/content-failure.js +38 -0
  74. package/dist/content-failure.js.map +1 -0
  75. package/dist/content-stream-thread.d.ts +60 -0
  76. package/dist/content-stream-thread.js +95 -0
  77. package/dist/content-stream-thread.js.map +1 -0
  78. package/dist/content-stream-worker.d.ts +7 -0
  79. package/dist/content-stream-worker.js +52 -0
  80. package/dist/content-stream-worker.js.map +1 -0
  81. package/dist/declaration-absorption.d.ts +37 -0
  82. package/dist/declaration-absorption.js +119 -0
  83. package/dist/declaration-absorption.js.map +1 -0
  84. package/dist/declaration-chain.d.ts +36 -0
  85. package/dist/declaration-chain.js +96 -0
  86. package/dist/declaration-chain.js.map +1 -0
  87. package/dist/declaration-commit.d.ts +31 -0
  88. package/dist/declaration-commit.js +49 -0
  89. package/dist/declaration-commit.js.map +1 -0
  90. package/dist/declaration-hold.d.ts +22 -0
  91. package/dist/declaration-hold.js +24 -0
  92. package/dist/declaration-hold.js.map +1 -0
  93. package/dist/declaration-journal.d.ts +62 -0
  94. package/dist/declaration-journal.js +99 -0
  95. package/dist/declaration-journal.js.map +1 -0
  96. package/dist/declaration-save.d.ts +31 -0
  97. package/dist/declaration-save.js +134 -0
  98. package/dist/declaration-save.js.map +1 -0
  99. package/dist/detection/accepted-result.d.ts +19 -1
  100. package/dist/detection/accepted-result.js +36 -5
  101. package/dist/detection/accepted-result.js.map +1 -1
  102. package/dist/detection/admission-save.d.ts +55 -0
  103. package/dist/detection/admission-save.js +48 -0
  104. package/dist/detection/admission-save.js.map +1 -0
  105. package/dist/detection/admission-units.d.ts +66 -0
  106. package/dist/detection/admission-units.js +322 -0
  107. package/dist/detection/admission-units.js.map +1 -0
  108. package/dist/detection/alias-discovery.d.ts +12 -0
  109. package/dist/detection/alias-discovery.js +80 -0
  110. package/dist/detection/alias-discovery.js.map +1 -0
  111. package/dist/detection/alias-examination.d.ts +30 -0
  112. package/dist/detection/alias-examination.js +49 -0
  113. package/dist/detection/alias-examination.js.map +1 -0
  114. package/dist/detection/apply-ownership.d.ts +81 -0
  115. package/dist/detection/apply-ownership.js +232 -0
  116. package/dist/detection/apply-ownership.js.map +1 -0
  117. package/dist/detection/basis-advanced.d.ts +11 -0
  118. package/dist/detection/basis-advanced.js +26 -0
  119. package/dist/detection/basis-advanced.js.map +1 -0
  120. package/dist/detection/capture-outcome.d.ts +16 -0
  121. package/dist/detection/capture-outcome.js +92 -0
  122. package/dist/detection/capture-outcome.js.map +1 -0
  123. package/dist/detection/container-membership.d.ts +32 -0
  124. package/dist/detection/container-membership.js +49 -0
  125. package/dist/detection/container-membership.js.map +1 -0
  126. package/dist/detection/detect-cancelled.d.ts +6 -0
  127. package/dist/detection/detect-cancelled.js +10 -0
  128. package/dist/detection/detect-cancelled.js.map +1 -0
  129. package/dist/detection/directory-proof.d.ts +47 -0
  130. package/dist/detection/directory-proof.js +77 -0
  131. package/dist/detection/directory-proof.js.map +1 -0
  132. package/dist/detection/disposition-rows.d.ts +18 -0
  133. package/dist/detection/disposition-rows.js +29 -0
  134. package/dist/detection/disposition-rows.js.map +1 -0
  135. package/dist/detection/dispositions.d.ts +130 -0
  136. package/dist/detection/dispositions.js +248 -0
  137. package/dist/detection/dispositions.js.map +1 -0
  138. package/dist/detection/git-notice.d.ts +88 -0
  139. package/dist/detection/git-notice.js +444 -0
  140. package/dist/detection/git-notice.js.map +1 -0
  141. package/dist/detection/ground-proof.d.ts +130 -0
  142. package/dist/detection/ground-proof.js +274 -0
  143. package/dist/detection/ground-proof.js.map +1 -0
  144. package/dist/detection/ground-reader.d.ts +29 -0
  145. package/dist/detection/ground-reader.js +102 -0
  146. package/dist/detection/ground-reader.js.map +1 -0
  147. package/dist/detection/held-territory.d.ts +51 -0
  148. package/dist/detection/held-territory.js +205 -0
  149. package/dist/detection/held-territory.js.map +1 -0
  150. package/dist/detection/identity-discovery.d.ts +45 -0
  151. package/dist/detection/identity-discovery.js +287 -0
  152. package/dist/detection/identity-discovery.js.map +1 -0
  153. package/dist/detection/maintenance-sweep.d.ts +108 -0
  154. package/dist/detection/maintenance-sweep.js +325 -0
  155. package/dist/detection/maintenance-sweep.js.map +1 -0
  156. package/dist/detection/name-reach.d.ts +12 -0
  157. package/dist/detection/name-reach.js +28 -0
  158. package/dist/detection/name-reach.js.map +1 -0
  159. package/dist/detection/notebook-basis.d.ts +5 -7
  160. package/dist/detection/notebook-basis.js +6 -7
  161. package/dist/detection/notebook-basis.js.map +1 -1
  162. package/dist/detection/owed-selection.d.ts +51 -0
  163. package/dist/detection/owed-selection.js +169 -0
  164. package/dist/detection/owed-selection.js.map +1 -0
  165. package/dist/detection/portable.d.ts +34 -34
  166. package/dist/detection/portable.js +67 -93
  167. package/dist/detection/portable.js.map +1 -1
  168. package/dist/detection/reconciliation-coverage.d.ts +7 -0
  169. package/dist/detection/reconciliation-coverage.js +16 -0
  170. package/dist/detection/reconciliation-coverage.js.map +1 -0
  171. package/dist/detection/repository-publication.d.ts +20 -0
  172. package/dist/detection/repository-publication.js +79 -0
  173. package/dist/detection/repository-publication.js.map +1 -0
  174. package/dist/detection/repository-routes.d.ts +43 -0
  175. package/dist/detection/repository-routes.js +97 -0
  176. package/dist/detection/repository-routes.js.map +1 -0
  177. package/dist/detection/root-examination.d.ts +94 -0
  178. package/dist/detection/root-examination.js +523 -0
  179. package/dist/detection/root-examination.js.map +1 -0
  180. package/dist/detection/runtime.d.ts +131 -64
  181. package/dist/detection/runtime.js +808 -1103
  182. package/dist/detection/runtime.js.map +1 -1
  183. package/dist/detection/scoped-identity-port.d.ts +34 -0
  184. package/dist/detection/scoped-identity-port.js +81 -0
  185. package/dist/detection/scoped-identity-port.js.map +1 -0
  186. package/dist/detection/seal-law.d.ts +66 -0
  187. package/dist/detection/seal-law.js +116 -0
  188. package/dist/detection/seal-law.js.map +1 -0
  189. package/dist/detection/sharing-policy.d.ts +11 -0
  190. package/dist/detection/sharing-policy.js +32 -0
  191. package/dist/detection/sharing-policy.js.map +1 -0
  192. package/dist/detection/thread-database.d.ts +4 -0
  193. package/dist/detection/thread-database.js +30 -0
  194. package/dist/detection/thread-database.js.map +1 -0
  195. package/dist/detection/unreadable.d.ts +11 -0
  196. package/dist/detection/unreadable.js +9 -0
  197. package/dist/detection/unreadable.js.map +1 -0
  198. package/dist/detection/verified-content.d.ts +6 -0
  199. package/dist/detection/verified-content.js +12 -0
  200. package/dist/detection/verified-content.js.map +1 -0
  201. package/dist/detection/walk-law.d.ts +34 -0
  202. package/dist/detection/walk-law.js +55 -0
  203. package/dist/detection/walk-law.js.map +1 -0
  204. package/dist/development/fly-guest.js +2 -1
  205. package/dist/development/fly-guest.js.map +1 -1
  206. package/dist/entity-apply-host.d.ts +29 -13
  207. package/dist/entity-apply-host.js +1426 -461
  208. package/dist/entity-apply-host.js.map +1 -1
  209. package/dist/entity-apply-store.d.ts +77 -30
  210. package/dist/entity-apply-store.js +221 -516
  211. package/dist/entity-apply-store.js.map +1 -1
  212. package/dist/entity-record-observability.js +2 -0
  213. package/dist/entity-record-observability.js.map +1 -1
  214. package/dist/entity-record-saves.d.ts +20 -0
  215. package/dist/entity-record-saves.js +91 -0
  216. package/dist/entity-record-saves.js.map +1 -0
  217. package/dist/entity-record-store.d.ts +15 -7
  218. package/dist/entity-record-store.js +57 -117
  219. package/dist/entity-record-store.js.map +1 -1
  220. package/dist/files-register-host.d.ts +22 -3
  221. package/dist/files-register-host.js +70 -31
  222. package/dist/files-register-host.js.map +1 -1
  223. package/dist/filesystem.js +3 -2
  224. package/dist/filesystem.js.map +1 -1
  225. package/dist/git-binding.d.ts +65 -0
  226. package/dist/git-binding.js +220 -0
  227. package/dist/git-binding.js.map +1 -0
  228. package/dist/git-capture.d.ts +39 -0
  229. package/dist/git-capture.js +86 -0
  230. package/dist/git-capture.js.map +1 -0
  231. package/dist/git-card.d.ts +12 -0
  232. package/dist/git-card.js +123 -0
  233. package/dist/git-card.js.map +1 -0
  234. package/dist/git-checkpoint-construction.d.ts +41 -0
  235. package/dist/git-checkpoint-construction.js +96 -0
  236. package/dist/git-checkpoint-construction.js.map +1 -0
  237. package/dist/git-checkpoint-preparation.d.ts +37 -0
  238. package/dist/git-checkpoint-preparation.js +145 -0
  239. package/dist/git-checkpoint-preparation.js.map +1 -0
  240. package/dist/git-command.d.ts +61 -8
  241. package/dist/git-command.js +217 -63
  242. package/dist/git-command.js.map +1 -1
  243. package/dist/git-configuration.d.ts +40 -0
  244. package/dist/git-configuration.js +217 -0
  245. package/dist/git-configuration.js.map +1 -0
  246. package/dist/git-evidence.d.ts +61 -0
  247. package/dist/git-evidence.js +181 -0
  248. package/dist/git-evidence.js.map +1 -0
  249. package/dist/git-index-entries.d.ts +15 -0
  250. package/dist/git-index-entries.js +44 -0
  251. package/dist/git-index-entries.js.map +1 -0
  252. package/dist/git-index-format.d.ts +35 -0
  253. package/dist/git-index-format.js +293 -0
  254. package/dist/git-index-format.js.map +1 -0
  255. package/dist/git-index-witness.d.ts +33 -0
  256. package/dist/git-index-witness.js +69 -0
  257. package/dist/git-index-witness.js.map +1 -0
  258. package/dist/git-literal-host.d.ts +82 -0
  259. package/dist/git-literal-host.js +172 -0
  260. package/dist/git-literal-host.js.map +1 -0
  261. package/dist/git-literal-read.d.ts +88 -0
  262. package/dist/git-literal-read.js +170 -0
  263. package/dist/git-literal-read.js.map +1 -0
  264. package/dist/git-literal-replay.d.ts +33 -0
  265. package/dist/git-literal-replay.js +268 -0
  266. package/dist/git-literal-replay.js.map +1 -0
  267. package/dist/git-native-file.d.ts +42 -0
  268. package/dist/git-native-file.js +145 -0
  269. package/dist/git-native-file.js.map +1 -0
  270. package/dist/git-native-index.d.ts +21 -0
  271. package/dist/git-native-index.js +44 -0
  272. package/dist/git-native-index.js.map +1 -0
  273. package/dist/git-operation-host.d.ts +48 -0
  274. package/dist/git-operation-host.js +127 -0
  275. package/dist/git-operation-host.js.map +1 -0
  276. package/dist/git-private-index.d.ts +11 -0
  277. package/dist/git-private-index.js +42 -0
  278. package/dist/git-private-index.js.map +1 -0
  279. package/dist/git-private-repository.d.ts +4 -0
  280. package/dist/git-private-repository.js +69 -0
  281. package/dist/git-private-repository.js.map +1 -0
  282. package/dist/git-private-view.d.ts +39 -0
  283. package/dist/git-private-view.js +162 -0
  284. package/dist/git-private-view.js.map +1 -0
  285. package/dist/git-ref-store.d.ts +12 -0
  286. package/dist/git-ref-store.js +68 -0
  287. package/dist/git-ref-store.js.map +1 -0
  288. package/dist/git-registration-host.d.ts +20 -30
  289. package/dist/git-registration-host.js +86 -249
  290. package/dist/git-registration-host.js.map +1 -1
  291. package/dist/git-repository-host.d.ts +148 -22
  292. package/dist/git-repository-host.js +633 -650
  293. package/dist/git-repository-host.js.map +1 -1
  294. package/dist/git-worktree-host.d.ts +2 -0
  295. package/dist/git-worktree-host.js +16 -0
  296. package/dist/git-worktree-host.js.map +1 -0
  297. package/dist/graph-publication.d.ts +75 -0
  298. package/dist/graph-publication.js +203 -0
  299. package/dist/graph-publication.js.map +1 -0
  300. package/dist/ground-basis.d.ts +242 -0
  301. package/dist/ground-basis.js +1023 -0
  302. package/dist/ground-basis.js.map +1 -0
  303. package/dist/ground-checkpoint-worker.d.ts +1 -0
  304. package/dist/ground-checkpoint-worker.js +84 -0
  305. package/dist/ground-checkpoint-worker.js.map +1 -0
  306. package/dist/ground-checkpoints.d.ts +16 -0
  307. package/dist/ground-checkpoints.js +45 -0
  308. package/dist/ground-checkpoints.js.map +1 -0
  309. package/dist/ground-coordination.d.ts +107 -3
  310. package/dist/ground-coordination.js +249 -24
  311. package/dist/ground-coordination.js.map +1 -1
  312. package/dist/ground-database.d.ts +42 -0
  313. package/dist/ground-database.js +290 -0
  314. package/dist/ground-database.js.map +1 -0
  315. package/dist/ground-differences.d.ts +23 -0
  316. package/dist/ground-differences.js +47 -0
  317. package/dist/ground-differences.js.map +1 -0
  318. package/dist/ground-holders.d.ts +4 -0
  319. package/dist/ground-holders.js +15 -0
  320. package/dist/ground-holders.js.map +1 -0
  321. package/dist/ground-initialization-worker.d.ts +1 -0
  322. package/dist/ground-initialization-worker.js +20 -0
  323. package/dist/ground-initialization-worker.js.map +1 -0
  324. package/dist/ground-initialization.d.ts +35 -0
  325. package/dist/ground-initialization.js +102 -0
  326. package/dist/ground-initialization.js.map +1 -0
  327. package/dist/ground-install-saves.d.ts +63 -0
  328. package/dist/ground-install-saves.js +139 -0
  329. package/dist/ground-install-saves.js.map +1 -0
  330. package/dist/ground-inventory-schema.d.ts +18 -0
  331. package/dist/ground-inventory-schema.js +168 -0
  332. package/dist/ground-inventory-schema.js.map +1 -0
  333. package/dist/ground-profile.d.ts +7 -0
  334. package/dist/ground-profile.js +52 -0
  335. package/dist/ground-profile.js.map +1 -0
  336. package/dist/ground-root-index.d.ts +2 -1
  337. package/dist/ground-root-index.js +16 -14
  338. package/dist/ground-root-index.js.map +1 -1
  339. package/dist/ground-row.d.ts +62 -0
  340. package/dist/ground-row.js +70 -0
  341. package/dist/ground-row.js.map +1 -0
  342. package/dist/ground-save-ops.d.ts +44 -0
  343. package/dist/ground-save-ops.js +41 -0
  344. package/dist/ground-save-ops.js.map +1 -0
  345. package/dist/ground-saver-worker.d.ts +1 -0
  346. package/dist/ground-saver-worker.js +156 -0
  347. package/dist/ground-saver-worker.js.map +1 -0
  348. package/dist/ground-saver.d.ts +75 -0
  349. package/dist/ground-saver.js +216 -0
  350. package/dist/ground-saver.js.map +1 -0
  351. package/dist/ground-store.d.ts +84 -0
  352. package/dist/ground-store.js +473 -0
  353. package/dist/ground-store.js.map +1 -0
  354. package/dist/ground-territory.d.ts +130 -0
  355. package/dist/ground-territory.js +511 -0
  356. package/dist/ground-territory.js.map +1 -0
  357. package/dist/index.d.ts +1 -1
  358. package/dist/index.js.map +1 -1
  359. package/dist/installation/ownership.d.ts +0 -2
  360. package/dist/installation/ownership.js +3 -15
  361. package/dist/installation/ownership.js.map +1 -1
  362. package/dist/machine-host.d.ts +3 -2
  363. package/dist/machine-host.js +28 -16
  364. package/dist/machine-host.js.map +1 -1
  365. package/dist/materialized-graph.d.ts +7 -7
  366. package/dist/materialized-graph.js +11 -23
  367. package/dist/materialized-graph.js.map +1 -1
  368. package/dist/module-thread.d.ts +9 -0
  369. package/dist/module-thread.js +10 -0
  370. package/dist/module-thread.js.map +1 -0
  371. package/dist/native/fsevents-stream.node +0 -0
  372. package/dist/physical-path-witness.d.ts +64 -0
  373. package/dist/physical-path-witness.js +168 -0
  374. package/dist/physical-path-witness.js.map +1 -0
  375. package/dist/register-upload-fusion.d.ts +5 -4
  376. package/dist/register-upload-fusion.js +9 -6
  377. package/dist/register-upload-fusion.js.map +1 -1
  378. package/dist/registry-graph.d.ts +3 -2
  379. package/dist/registry-graph.js +9 -6
  380. package/dist/registry-graph.js.map +1 -1
  381. package/dist/registry-page-cache.d.ts +5 -2
  382. package/dist/registry-page-cache.js.map +1 -1
  383. package/dist/repository-identity-steps.d.ts +5 -0
  384. package/dist/repository-identity-steps.js +33 -0
  385. package/dist/repository-identity-steps.js.map +1 -0
  386. package/dist/runtime-node-flags.d.ts +10 -0
  387. package/dist/runtime-node-flags.js +11 -0
  388. package/dist/runtime-node-flags.js.map +1 -0
  389. package/dist/service/adapter.d.ts +1 -1
  390. package/dist/service/adapter.js +1 -1
  391. package/dist/service/adapter.js.map +1 -1
  392. package/dist/service/cli.js +16 -20
  393. package/dist/service/cli.js.map +1 -1
  394. package/dist/service/control.d.ts +2 -2
  395. package/dist/service/keepalive.d.ts +4 -11
  396. package/dist/service/keepalive.js +65 -118
  397. package/dist/service/keepalive.js.map +1 -1
  398. package/dist/service/policy.d.ts +36 -0
  399. package/dist/service/policy.js +25 -0
  400. package/dist/service/policy.js.map +1 -0
  401. package/dist/service/portable.d.ts +1 -1
  402. package/dist/service/portable.js +1 -1
  403. package/dist/service/portable.js.map +1 -1
  404. package/dist/service/recovery.d.ts +10 -9
  405. package/dist/service/recovery.js +29 -19
  406. package/dist/service/recovery.js.map +1 -1
  407. package/dist/service/windows-action.d.ts +5 -3
  408. package/dist/service/windows-action.js +6 -9
  409. package/dist/service/windows-action.js.map +1 -1
  410. package/dist/service/windows-task.js +5 -5
  411. package/dist/service/windows-task.js.map +1 -1
  412. package/dist/sharing-admission.d.ts +17 -0
  413. package/dist/sharing-admission.js +128 -0
  414. package/dist/sharing-admission.js.map +1 -0
  415. package/dist/snapshot-delivery-baseline.d.ts +12 -3
  416. package/dist/snapshot-delivery-baseline.js +41 -42
  417. package/dist/snapshot-delivery-baseline.js.map +1 -1
  418. package/dist/source-proof.d.ts +36 -0
  419. package/dist/source-proof.js +70 -0
  420. package/dist/source-proof.js.map +1 -0
  421. package/dist/source-signature.d.ts +56 -0
  422. package/dist/source-signature.js +56 -0
  423. package/dist/source-signature.js.map +1 -0
  424. package/dist/source-witness.d.ts +15 -0
  425. package/dist/source-witness.js +29 -0
  426. package/dist/source-witness.js.map +1 -0
  427. package/dist/sqlite-durability.d.ts +31 -0
  428. package/dist/sqlite-durability.js +28 -0
  429. package/dist/sqlite-durability.js.map +1 -0
  430. package/dist/sqlite.d.ts +8 -2
  431. package/dist/sqlite.js +27 -4
  432. package/dist/sqlite.js.map +1 -1
  433. package/dist/sync-address.d.ts +19 -0
  434. package/dist/sync-address.js +52 -0
  435. package/dist/sync-address.js.map +1 -0
  436. package/dist/sync-setting.d.ts +15 -0
  437. package/dist/sync-setting.js +13 -0
  438. package/dist/sync-setting.js.map +1 -1
  439. package/dist/turns.d.ts +42 -0
  440. package/dist/turns.js +112 -0
  441. package/dist/turns.js.map +1 -0
  442. package/dist/updates/bootstrap.d.ts +53 -7
  443. package/dist/updates/bootstrap.js +224 -137
  444. package/dist/updates/bootstrap.js.map +1 -1
  445. package/dist/updates/controller.d.ts +8 -0
  446. package/dist/updates/controller.js +27 -3
  447. package/dist/updates/controller.js.map +1 -1
  448. package/dist/updates/store.d.ts +3 -0
  449. package/dist/updates/store.js +12 -0
  450. package/dist/updates/store.js.map +1 -1
  451. package/dist/user-ground-host.d.ts +364 -69
  452. package/dist/user-ground-host.js +5231 -3366
  453. package/dist/user-ground-host.js.map +1 -1
  454. package/dist/watching/fsevents.d.ts +52 -1
  455. package/dist/watching/fsevents.js +60 -25
  456. package/dist/watching/fsevents.js.map +1 -1
  457. package/dist/watching/host.d.ts +129 -5
  458. package/dist/watching/host.js +433 -80
  459. package/dist/watching/host.js.map +1 -1
  460. package/dist/watching/index.d.ts +1 -1
  461. package/dist/wire-binary.d.ts +3 -2
  462. package/dist/wire-binary.js +10 -8
  463. package/dist/wire-binary.js.map +1 -1
  464. package/dist/wire-client.d.ts +3 -4
  465. package/dist/wire-client.js +18 -44
  466. package/dist/wire-client.js.map +1 -1
  467. package/dist/wire-outbox.d.ts +34 -0
  468. package/dist/wire-outbox.js +127 -0
  469. package/dist/wire-outbox.js.map +1 -0
  470. package/dist/workspace-host.d.ts +4 -0
  471. package/dist/workspace-host.js +12 -1
  472. package/dist/workspace-host.js.map +1 -1
  473. package/examinations/fixtures/private-wire-authority.js +133 -10
  474. package/npm-shrinkwrap.json +43 -56
  475. package/package.json +26 -13
@@ -0,0 +1,511 @@
1
+ /** One active repository's subtree, kept warm on one ground connection: the
2
+ * repository's row and every row reachable beneath it through parent
3
+ * identities, the answer of a recursive subtree read.
4
+ *
5
+ * A view is data only. Whether it is current is the basis law's decision
6
+ * (ground-basis.ts): a view read at sequence S stays exact while no fact that
7
+ * read consumes is stamped after S. A commit that stamps one of them may
8
+ * carry the view to that commit's sequence, from the commit's own final rows,
9
+ * only through a plan made inside the commit and applied after it. */
10
+ import { basename, dirname } from "node:path";
11
+ import { deserialize, serialize } from "node:v8";
12
+ import { sameNotebookBasisRow } from "./detection/notebook-basis.js";
13
+ import { retainContentVerification } from "./detection/verified-content.js";
14
+ import { groundRowProjection, storedWithin } from "./ground-row.js";
15
+ import { cachedStatement } from "./sqlite.js";
16
+ export const activeRepository = (row) => row?.type === "repo.git" && row.status === "active";
17
+ const byUUID = (left, right) => left.uuid < right.uuid ? -1 : left.uuid > right.uuid ? 1 : 0;
18
+ /** A child's slot is its parent and the last segment of its address, which
19
+ * can differ from its portable name. */
20
+ const slot = (parentUUID, name) => `${parentUUID}\0${name}`;
21
+ /** Returns how the count of keys shared by several rows moved. */
22
+ const index = (map, key, uuid, present) => {
23
+ let uuids = map.get(key);
24
+ if (present) {
25
+ if (!uuids)
26
+ map.set(key, uuids = new Set());
27
+ if (uuids.has(uuid))
28
+ return 0;
29
+ uuids.add(uuid);
30
+ return uuids.size === 2 ? 1 : 0;
31
+ }
32
+ if (!uuids?.delete(uuid))
33
+ return 0;
34
+ if (uuids.size === 0)
35
+ map.delete(key);
36
+ return uuids.size === 1 ? -1 : 0;
37
+ };
38
+ const CONTAINER_TYPES = new Set(["workspace", "folder", "repo.git"]);
39
+ /** Rows one read of a parent's children returns, and one page of a subtree
40
+ * crossing threads holds. */
41
+ const READ_ROWS = 256;
42
+ /** Rows one comparing step compares. */
43
+ const COMPARE_ROWS = 64;
44
+ /** One repository's subtree as the current read transaction finds it,
45
+ * parents before children: each member's children in the parent index's UUID
46
+ * order, a bounded page at a time, so no child relation is too wide. A held
47
+ * row is reached again only through a cycle. None when the top is no active
48
+ * repository. */
49
+ export function readSubtree(database, inventory, uuid) {
50
+ const projection = groundRowProjection(inventory);
51
+ const top = cachedStatement(database, `SELECT ${projection} FROM ${inventory} WHERE uuid = ?`).get(uuid);
52
+ if (!activeRepository(top))
53
+ return null;
54
+ const page = cachedStatement(database, `SELECT ${projection} FROM ${inventory}
55
+ WHERE parent_uuid = ? AND uuid > ? ORDER BY uuid LIMIT ${READ_ROWS}`);
56
+ const rows = [top], held = new Set([uuid]), pending = [uuid];
57
+ while (pending.length) {
58
+ const parent = pending.pop();
59
+ for (let after = "";;) {
60
+ const children = page.all(parent, after);
61
+ for (const row of children) {
62
+ if (held.has(row.uuid))
63
+ continue;
64
+ held.add(row.uuid);
65
+ rows.push(row);
66
+ pending.push(row.uuid);
67
+ }
68
+ if (children.length < READ_ROWS)
69
+ break;
70
+ after = children.at(-1).uuid;
71
+ }
72
+ }
73
+ return rows;
74
+ }
75
+ /** A subtree as it crosses to the main thread, serialized in pages the
76
+ * receiver deserializes one per step: one clone of a large subtree would hold
77
+ * that thread for the whole. Each page owns its buffer, for transfer. */
78
+ export function subtreePages(rows) {
79
+ const pages = [];
80
+ for (let at = 0; at < rows.length; at += READ_ROWS)
81
+ pages.push(serialize(rows.slice(at, at + READ_ROWS)));
82
+ return pages;
83
+ }
84
+ /** Whether one repository's two views hold its rows alike: B holds every
85
+ * identity O holds, each exactly as admitting O's row would leave it, and
86
+ * every identity only B holds is retired, inactive itself or beneath one
87
+ * such. Compared once per pair of views, a few rows per step; every carried
88
+ * commit then updates the identities it changed in either, from the first
89
+ * step on, and a row compared again answers the same. */
90
+ class Agreement {
91
+ o;
92
+ b;
93
+ #differing = new Set();
94
+ #retired = new Set();
95
+ /** The first comparison, which `whole` completes. */
96
+ comparing;
97
+ constructor(o, b) {
98
+ this.o = o;
99
+ this.b = b;
100
+ this.comparing = this.#compare();
101
+ }
102
+ get whole() {
103
+ for (let step = this.comparing.next(); !step.done; step = this.comparing.next())
104
+ ;
105
+ return this.#differing.size === 0;
106
+ }
107
+ *#compare() {
108
+ let count = 0;
109
+ for (const row of this.o.values()) {
110
+ this.touch(row.uuid);
111
+ if (++count % COMPARE_ROWS === 0)
112
+ yield;
113
+ }
114
+ for (const row of this.b.values()) {
115
+ if (this.o.holds(row.uuid))
116
+ continue;
117
+ this.touch(row.uuid);
118
+ if (++count % COMPARE_ROWS === 0)
119
+ yield;
120
+ }
121
+ }
122
+ touch(uuid) {
123
+ const o = this.o.get(uuid), b = this.b.get(uuid);
124
+ const was = this.#retired.delete(uuid);
125
+ const retired = !o && b !== undefined
126
+ && (b.status !== "active" || (b.parentUUID !== null && this.#retired.has(b.parentUUID)));
127
+ if (retired)
128
+ this.#retired.add(uuid);
129
+ if (o ? b !== undefined && sameNotebookBasisRow(retainContentVerification(b, o), b) : b === undefined || retired) {
130
+ this.#differing.delete(uuid);
131
+ }
132
+ else
133
+ this.#differing.add(uuid);
134
+ // A child only B holds retires, or returns, with its parent.
135
+ if (retired !== was)
136
+ for (const child of this.b.childrenOf(uuid))
137
+ if (!this.o.holds(child))
138
+ this.touch(child);
139
+ }
140
+ }
141
+ export class TerritoryView {
142
+ inventory;
143
+ uuid;
144
+ #rows = new Map();
145
+ #children = new Map();
146
+ /** Active repositories beneath the top, and each root's row count. */
147
+ #nested = new Set();
148
+ #roots = new Map();
149
+ #misplaced = new Set();
150
+ /** Every status: a trashed row can keep an address or object an active one
151
+ * now holds. */
152
+ #byAddress = new Map();
153
+ #byPhysical = new Map();
154
+ #slots = new Map();
155
+ /** Rows beneath the top that do not stand at their parent container's
156
+ * address plus a name, and addresses or slots several rows share. While
157
+ * both are empty an address names one row, and a row stands beneath
158
+ * another's address exactly when it descends from that row. */
159
+ #detached = new Set();
160
+ #crowded = 0;
161
+ #references = 0;
162
+ /** Rows not active, and active members beneath the top whose payload names
163
+ * a Git index object. */
164
+ #inactive = 0;
165
+ #indexed = 0;
166
+ #answer;
167
+ #agreement = null;
168
+ /** Moves whenever the rows change. */
169
+ #version = 0;
170
+ #retired = false;
171
+ constructor(inventory, uuid) {
172
+ this.inventory = inventory;
173
+ this.uuid = uuid;
174
+ }
175
+ /** A subtree a content thread read (`subtreePages`), entered one page per
176
+ * step, so a caller may pause between steps. */
177
+ static *building(inventory, uuid, pages) {
178
+ const view = new TerritoryView(inventory, uuid);
179
+ for (const page of pages) {
180
+ for (const row of deserialize(page))
181
+ view.#enter(Object.freeze(row));
182
+ yield;
183
+ }
184
+ return view;
185
+ }
186
+ /** The subtree as the current transaction stores it. */
187
+ static load(database, inventory, uuid) {
188
+ const rows = readSubtree(database, inventory, uuid);
189
+ if (!rows)
190
+ throw new Error(`territory top ${uuid} is not an active repository`);
191
+ const view = new TerritoryView(inventory, uuid);
192
+ for (const row of rows)
193
+ view.#enter(Object.freeze(row));
194
+ return view;
195
+ }
196
+ /** Whether O's view and B's view of one repository hold its rows alike. An
197
+ * agreement answers only while both views have carried every commit into
198
+ * it; else the pair agrees afresh. */
199
+ static alike(o, b) { return TerritoryView.#paired(o, b).whole; }
200
+ /** The pair's first comparison, a few rows per step, for a caller that
201
+ * pauses between them; `alike` completes whatever remains. */
202
+ static agreeing(o, b) { return TerritoryView.#paired(o, b).comparing; }
203
+ static #paired(o, b) {
204
+ let agreement = o.#agreement;
205
+ if (agreement?.b !== b || b.#agreement !== agreement)
206
+ o.#agreement = b.#agreement = agreement = new Agreement(o, b);
207
+ return agreement;
208
+ }
209
+ get nested() { return this.#nested; }
210
+ get roots() { return this.#roots.keys(); }
211
+ get version() { return this.#version; }
212
+ /** Out of the warm set: nothing carries it any more. A handle opened
213
+ * before still answers its snapshot, which the basis law judges. */
214
+ retire() { this.#retired = true; }
215
+ get rowCount() { return this.#rows.size; }
216
+ get misplaced() { return this.#misplaced.size; }
217
+ get nestedCount() { return this.#nested.size; }
218
+ get referenceCount() { return this.#references; }
219
+ get inactiveCount() { return this.#inactive; }
220
+ get indexedCount() { return this.#indexed; }
221
+ get consistent() { return this.#detached.size === 0 && this.#crowded === 0; }
222
+ holds(uuid) { return this.#rows.has(uuid); }
223
+ get(uuid) { return this.#rows.get(uuid); }
224
+ lookup(by, key) {
225
+ return (by === "address" ? this.#byAddress : by === "physical" ? this.#byPhysical : this.#slots).get(key) ?? [];
226
+ }
227
+ childrenOf(parentUUID) { return this.#children.get(parentUUID) ?? []; }
228
+ childCount(parentUUID) { return this.#children.get(parentUUID)?.size ?? 0; }
229
+ values() { return this.#rows.values(); }
230
+ answer() {
231
+ return this.#answer ??= Object.freeze({
232
+ top: this.#rows.get(this.uuid),
233
+ rows: Object.freeze([...this.#rows.values()].sort(byUUID)),
234
+ uuids: new Set(this.#rows.keys()),
235
+ placed: this.#misplaced.size === 0,
236
+ });
237
+ }
238
+ /** Inside the commit, after its rows and before its stamps: this view with
239
+ * the commit's changed rows as stored now, or null when the commit cannot
240
+ * be carried. A row entering the view must bring every child it has in the
241
+ * same commit; a child the view never held, or children not known, is
242
+ * unknown ground. */
243
+ plan(stored, children, changed) {
244
+ const final = new Map();
245
+ for (const uuid of changed)
246
+ final.set(uuid, stored(uuid));
247
+ if (final.has(this.uuid) && !activeRepository(final.get(this.uuid)))
248
+ return null;
249
+ // A changed row that is gone or has a new parent detaches with every
250
+ // descendant the view holds; each rejoins if its final parent is a member.
251
+ const detached = new Set();
252
+ const detach = (uuid) => {
253
+ if (detached.has(uuid))
254
+ return;
255
+ detached.add(uuid);
256
+ for (const child of this.#children.get(uuid) ?? [])
257
+ detach(child);
258
+ };
259
+ for (const [uuid, row] of final) {
260
+ const held = this.#rows.get(uuid);
261
+ if (held && uuid !== this.uuid && (!row || row.parentUUID !== held.parentUUID))
262
+ detach(uuid);
263
+ }
264
+ const parentOf = (uuid) => (final.has(uuid) ? final.get(uuid) : this.#rows.get(uuid)).parentUUID;
265
+ const entered = new Set();
266
+ const member = (uuid) => entered.has(uuid) || (this.#rows.has(uuid) && !detached.has(uuid));
267
+ const waiting = new Map();
268
+ const ready = [];
269
+ for (const uuid of new Set([...detached, ...final.keys()])) {
270
+ if (member(uuid) || (final.has(uuid) && !final.get(uuid)))
271
+ continue;
272
+ const parent = parentOf(uuid);
273
+ if (parent === null)
274
+ continue;
275
+ if (member(parent))
276
+ ready.push(uuid);
277
+ else {
278
+ const siblings = waiting.get(parent);
279
+ if (siblings)
280
+ siblings.push(uuid);
281
+ else
282
+ waiting.set(parent, [uuid]);
283
+ }
284
+ }
285
+ for (let uuid = ready.pop(); uuid !== undefined; uuid = ready.pop()) {
286
+ entered.add(uuid);
287
+ for (const child of waiting.get(uuid) ?? [])
288
+ ready.push(child);
289
+ waiting.delete(uuid);
290
+ if (this.#rows.has(uuid))
291
+ continue;
292
+ const known = children(uuid);
293
+ if (!known)
294
+ return null;
295
+ for (const child of known)
296
+ if (!final.has(child))
297
+ return null;
298
+ }
299
+ const put = [];
300
+ for (const [uuid, row] of final)
301
+ if (row && (member(uuid) || uuid === this.uuid))
302
+ put.push(Object.freeze(row));
303
+ return { removed: [...detached].filter(uuid => !entered.has(uuid)), put };
304
+ }
305
+ /** After the commit that planned it. */
306
+ apply(plan) {
307
+ if (this.#retired)
308
+ throw new Error(`territory ${this.uuid} was retired`);
309
+ this.#version += 1;
310
+ const top = this.#rows.get(this.uuid);
311
+ for (const uuid of plan.removed)
312
+ this.#remove(uuid);
313
+ for (const row of plan.put) {
314
+ this.#remove(row.uuid);
315
+ this.#add(row);
316
+ }
317
+ const moved = this.#rows.get(this.uuid);
318
+ if (moved.rootUUID !== top.rootUUID || moved.resourceId !== top.resourceId || moved.absolutePath !== top.absolutePath) {
319
+ this.#place();
320
+ }
321
+ else {
322
+ // A row's standing reads its parent, so a changed or departed parent
323
+ // settles its remaining children again.
324
+ for (const row of plan.put) {
325
+ this.#check(row);
326
+ this.#stand(row.uuid);
327
+ }
328
+ for (const uuid of [...plan.removed, ...plan.put.map(row => row.uuid)]) {
329
+ for (const child of this.#children.get(uuid) ?? [])
330
+ this.#stand(child);
331
+ }
332
+ }
333
+ for (const uuid of plan.removed)
334
+ this.#agreement?.touch(uuid);
335
+ for (const row of plan.put)
336
+ this.#agreement?.touch(row.uuid);
337
+ this.#answer = undefined;
338
+ }
339
+ /** A row whose parent, and the top, the view already holds. */
340
+ #enter(row) {
341
+ this.#add(row);
342
+ this.#check(row);
343
+ this.#stand(row.uuid);
344
+ }
345
+ #add(row) {
346
+ this.#rows.set(row.uuid, row);
347
+ if (row.uuid !== this.uuid && row.parentUUID !== null) {
348
+ let children = this.#children.get(row.parentUUID);
349
+ if (!children)
350
+ this.#children.set(row.parentUUID, children = new Set());
351
+ children.add(row.uuid);
352
+ }
353
+ if (row.uuid !== this.uuid && activeRepository(row))
354
+ this.#nested.add(row.uuid);
355
+ this.#roots.set(row.rootUUID, (this.#roots.get(row.rootUUID) ?? 0) + 1);
356
+ this.#indexRow(row, true);
357
+ }
358
+ #indexRow(row, present) {
359
+ this.#crowded += index(this.#byAddress, row.absolutePath, row.uuid, present);
360
+ // Hardlinks legitimately share one object.
361
+ index(this.#byPhysical, row.physicalKey, row.uuid, present);
362
+ if (row.uuid !== this.uuid && row.parentUUID !== null) {
363
+ this.#crowded += index(this.#slots, slot(row.parentUUID, basename(row.absolutePath)), row.uuid, present);
364
+ }
365
+ const step = present ? 1 : -1;
366
+ if (row.status !== "active")
367
+ this.#inactive += step;
368
+ else if (row.type === "reference")
369
+ this.#references += step;
370
+ else if (row.uuid !== this.uuid && row.payloadVersion?.startsWith("git:"))
371
+ this.#indexed += step;
372
+ }
373
+ #remove(uuid) {
374
+ const row = this.#rows.get(uuid);
375
+ if (!row)
376
+ return;
377
+ this.#rows.delete(uuid);
378
+ if (row.parentUUID !== null) {
379
+ const siblings = this.#children.get(row.parentUUID);
380
+ siblings?.delete(uuid);
381
+ if (siblings?.size === 0)
382
+ this.#children.delete(row.parentUUID);
383
+ }
384
+ this.#nested.delete(uuid);
385
+ this.#indexRow(row, false);
386
+ const count = this.#roots.get(row.rootUUID) - 1;
387
+ if (count === 0)
388
+ this.#roots.delete(row.rootUUID);
389
+ else
390
+ this.#roots.set(row.rootUUID, count);
391
+ this.#misplaced.delete(uuid);
392
+ this.#detached.delete(uuid);
393
+ }
394
+ #stand(uuid) {
395
+ const row = this.#rows.get(uuid);
396
+ if (!row || uuid === this.uuid)
397
+ return;
398
+ const parent = row.parentUUID === null ? undefined : this.#rows.get(row.parentUUID);
399
+ if (parent && CONTAINER_TYPES.has(parent.type) && dirname(row.absolutePath) === parent.absolutePath)
400
+ this.#detached.delete(uuid);
401
+ else
402
+ this.#detached.add(uuid);
403
+ }
404
+ #check(row) {
405
+ const top = this.#rows.get(this.uuid);
406
+ const placed = row.rootUUID === top.rootUUID && row.resourceId === top.resourceId
407
+ && storedWithin(top.absolutePath, row.absolutePath);
408
+ if (placed)
409
+ this.#misplaced.delete(row.uuid);
410
+ else
411
+ this.#misplaced.add(row.uuid);
412
+ }
413
+ #place() {
414
+ this.#misplaced.clear();
415
+ this.#detached.clear();
416
+ for (const row of this.#rows.values()) {
417
+ this.#check(row);
418
+ this.#stand(row.uuid);
419
+ }
420
+ }
421
+ }
422
+ /** One view as a snapshot found it exact. It answers only while the view
423
+ * has not moved since; every later call throws the reads' own error. */
424
+ export class TerritoryHandle {
425
+ #view;
426
+ #version;
427
+ #reads;
428
+ constructor(view, reads) {
429
+ this.#view = view;
430
+ this.#version = view.version;
431
+ this.#reads = reads;
432
+ }
433
+ get uuid() { return this.#view.uuid; }
434
+ get top() { return this.#rowOf(this.#view.uuid); }
435
+ get placed() { this.#exact(); return this.#view.misplaced === 0; }
436
+ get size() { this.#exact(); return this.#view.rowCount; }
437
+ /** Active repositories beneath the top, and active reference rows. */
438
+ get nested() { this.#exact(); return this.#view.nestedCount; }
439
+ get references() { this.#exact(); return this.#view.referenceCount; }
440
+ /** Rows not active, and active members whose payload names a Git index
441
+ * object. */
442
+ get inactive() { this.#exact(); return this.#view.inactiveCount; }
443
+ get indexed() { this.#exact(); return this.#view.indexedCount; }
444
+ /** Addresses and slots each name one row, and every row beneath the top
445
+ * stands at its parent container's address plus a name. */
446
+ get consistent() { this.#exact(); return this.#view.consistent; }
447
+ /** This O view and B's view of the same repository hold its rows alike. */
448
+ alike(b) { this.#exact(); b.#exact(); return TerritoryView.alike(this.#view, b.#view); }
449
+ has(uuid) { this.#exact(); return this.#view.holds(uuid); }
450
+ row(uuid) { return this.#rowOf(uuid); }
451
+ at(absolutePath) { return this.#rowsOf(this.#view.lookup("address", absolutePath)); }
452
+ physical(physicalKey) { return this.#rowsOf(this.#view.lookup("physical", physicalKey)); }
453
+ /** Rows beneath this parent whose address ends in this name. */
454
+ slot(parentUUID, name) {
455
+ return this.#rowsOf(this.#view.lookup("slot", slot(parentUUID, name)));
456
+ }
457
+ children(parentUUID) { return this.#rowsOf(this.#view.childrenOf(parentUUID)); }
458
+ /** This row and every ancestor up to the top are active. */
459
+ activeIn(uuid) {
460
+ for (let row = this.#rowOf(uuid);; row = this.#rowOf(row.parentUUID)) {
461
+ if (!row || row.status !== "active")
462
+ return false;
463
+ if (row.uuid === this.#view.uuid)
464
+ return true;
465
+ if (row.parentUUID === null)
466
+ return false;
467
+ }
468
+ }
469
+ /** Reads that protect nothing: a caller that writes a row reads it above.
470
+ * The basis still consumes the whole territory, so they are S0 facts. */
471
+ peek(uuid) { this.#exact(); return this.#view.get(uuid); }
472
+ peekAt(absolutePath) { return this.#peekAll(this.#view.lookup("address", absolutePath)); }
473
+ peekChildren(parentUUID) { return this.#peekAll(this.#view.childrenOf(parentUUID)); }
474
+ peekPhysical(physicalKey) { return this.#peekAll(this.#view.lookup("physical", physicalKey)); }
475
+ peekSlot(parentUUID, name) {
476
+ return this.#peekAll(this.#view.lookup("slot", slot(parentUUID, name)));
477
+ }
478
+ childCount(parentUUID) { this.#exact(); return this.#view.childCount(parentUUID); }
479
+ /** The whole subtree in no order, protecting nothing. */
480
+ peekRows() { this.#exact(); return [...this.#view.values()]; }
481
+ /** The whole subtree, the top included, ordered by UUID. */
482
+ rows() {
483
+ this.#exact();
484
+ const answer = this.#view.answer();
485
+ this.#reads.readAll(answer.uuids);
486
+ return answer.rows;
487
+ }
488
+ #exact() { if (this.#view.version !== this.#version)
489
+ throw this.#reads.moved(); }
490
+ #rowOf(uuid) {
491
+ this.#exact();
492
+ const row = this.#view.get(uuid);
493
+ if (row)
494
+ this.#reads.read(row);
495
+ return row;
496
+ }
497
+ #peekAll(uuids) {
498
+ this.#exact();
499
+ const rows = [];
500
+ for (const uuid of uuids)
501
+ rows.push(this.#view.get(uuid));
502
+ return rows;
503
+ }
504
+ #rowsOf(uuids) {
505
+ const rows = [];
506
+ for (const uuid of uuids)
507
+ rows.push(this.#rowOf(uuid));
508
+ return rows;
509
+ }
510
+ }
511
+ //# sourceMappingURL=ground-territory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ground-territory.js","sourceRoot":"","sources":["../src/ground-territory.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -17,7 +17,7 @@ export { FileWorkspaceStore } from "./workspace-store.js";
17
17
  export { WireClient, WireRequestError } from "./wire-client.js";
18
18
  export type { WireClientOptions } from "./wire-client.js";
19
19
  export { UserGroundHost } from "./user-ground-host.js";
20
- export type { DetectScanEvidence, UserGroundHostOptions, WorkspaceAddStage, } from "./user-ground-host.js";
20
+ export type { DetectScanEvidence, UserGroundCatchUp, UserGroundClosed, UserGroundHostOptions, WorkspaceAddStage, } from "./user-ground-host.js";
21
21
  export { NodeWatchHost } from "./watching/index.js";
22
22
  export type { NativeWatchHandle, NodeWatchHostOptions, OpenNativeWatch, WatchGround, WatchCoverageEvidence, WatchHealth, WatchObservation, WatchCloseOptions, } from "./watching/index.js";
23
23
  export { MachineHost, defaultMachineName } from "./machine-host.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,oCAAoC,EACpC,+BAA+B,EAC/B,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAWpD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAYpE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,oCAAoC,EACpC,+BAA+B,EAC/B,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAWpD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAYpE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -26,5 +26,3 @@ export declare class InstallationOwnership {
26
26
  waitForRuntime(userScope: string, timeoutMs?: number): Promise<void>;
27
27
  close(): void;
28
28
  }
29
- /** Resolve existing symlink ancestors even before a new destination exists. */
30
- export declare function physicalPath(requestedPath: string): string;
@@ -1,7 +1,8 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { existsSync, mkdirSync, realpathSync, statSync } from 'node:fs';
3
- import { basename, dirname, join, parse, resolve, sep } from 'node:path';
2
+ import { mkdirSync, statSync } from 'node:fs';
3
+ import { join, parse, sep } from 'node:path';
4
4
  import { openFileDatabase } from '../sqlite.js';
5
+ import { physicalPath } from '../sync-address.js';
5
6
  import { acquireProcessLease } from './lease.js';
6
7
  import { resolveRuntimeBinding, runtimeBindingsMatch, writableRootsOverlap, } from '@amalgm/core/identity';
7
8
  /** One machine-local ownership ledger, independent of any selected lane.
@@ -118,19 +119,6 @@ export class InstallationOwnership {
118
119
  this.database.close();
119
120
  }
120
121
  }
121
- /** Resolve existing symlink ancestors even before a new destination exists. */
122
- export function physicalPath(requestedPath) {
123
- let ancestor = resolve(requestedPath);
124
- const absent = [];
125
- while (!existsSync(ancestor)) {
126
- const parent = dirname(ancestor);
127
- if (parent === ancestor)
128
- throw new Error(`Cannot resolve physical root ${requestedPath}`);
129
- absent.unshift(basename(ancestor));
130
- ancestor = parent;
131
- }
132
- return join(realpathSync.native(ancestor), ...absent);
133
- }
134
122
  function physicalComponents(path) {
135
123
  const root = parse(path).root;
136
124
  const components = [root, ...path.slice(root.length).split(sep).filter(Boolean)];
@@ -1 +1 @@
1
- {"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../src/installation/ownership.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../src/installation/ownership.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { type DeviceKeyStore } from "./authorization/index.js";
9
9
  import { type AuthorizationKeyRecoveryResult } from "./authorization/recovery-host.js";
10
10
  import type { PlatformProductHostOptions } from "./platform-product-host.js";
11
11
  import { type RuntimeCommandPath, type RuntimeCommandConnection } from "./runtime-command-host.js";
12
- import type { UserGroundHost, DetectScanEvidence, UserGroundCloseOptions, WorkspaceAddStage } from "./user-ground-host.js";
12
+ import type { UserGroundHost, DetectScanEvidence, UserGroundCloseOptions, UserGroundClosed, WorkspaceAddStage } from "./user-ground-host.js";
13
13
  import type { OpenNativeWatch, WatchCoverageEvidence, WatchHealth } from "./watching/index.js";
14
14
  export interface MachineHostOptions {
15
15
  readonly onWireError?: (error: unknown) => void;
@@ -155,7 +155,8 @@ export declare class MachineHost {
155
155
  /** The global Channels CLI enters through the running Shell's private
156
156
  * loopback MCP route. Shell alone reads the local admission capability. */
157
157
  channelsCommands(): ChannelsCommands;
158
- close(options?: UserGroundCloseOptions): Promise<void>;
158
+ /** Resolves with the Files catch-up outcome, or null when no Files lifetime ran. */
159
+ close(options?: UserGroundCloseOptions): Promise<UserGroundClosed | null>;
159
160
  private drainRuntime;
160
161
  private syncSettingFile;
161
162
  syncMode(): SyncMode;