@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
@@ -1,13 +1,21 @@
1
1
  /** Stable installation-owned process effect. This compiled module is copied
2
2
  * outside immutable package generations, so every runtime import is a Node
3
3
  * builtin. Core's controller writes release decisions and recovery commands;
4
- * this launcher only reserves and performs those already-declared effects. */
4
+ * this launcher only reserves and performs those already-declared effects.
5
+ * Because it can import nothing else, it also owns the builtin-only
6
+ * supervision rules the keepalive controller reuses: backoff and liveness. */
5
7
  import { spawn } from 'node:child_process';
6
8
  import { randomUUID } from 'node:crypto';
7
- import { copyFileSync, existsSync, linkSync, mkdirSync, openSync, closeSync, fsyncSync, realpathSync, rmSync, constants } from 'node:fs';
9
+ import { copyFileSync, mkdirSync, openSync, closeSync, fsyncSync, readFileSync, realpathSync, renameSync, rmSync, constants } from 'node:fs';
8
10
  import { dirname, isAbsolute, join, resolve, toNamespacedPath } from 'node:path';
9
11
  import { DatabaseSync } from 'node:sqlite';
10
12
  import { fileURLToPath } from 'node:url';
13
+ /** Raised with every change to launcher behavior. Controllers install a newer
14
+ * launcher file; a running launcher that finds a newer file exits at its next
15
+ * controller boundary so its OS owner starts the new one. */
16
+ export const BOOTSTRAP_REVISION = 2;
17
+ /** The exit status (EX_TEMPFAIL) that asks the OS owner for the new launcher. */
18
+ export const BOOTSTRAP_UPGRADED_EXIT = 75;
11
19
  const flag = '--managed-service-bootstrap';
12
20
  function command(value) {
13
21
  const entry = value;
@@ -45,7 +53,9 @@ export function validateLaunchState(value) {
45
53
  function openState(file) {
46
54
  mkdirSync(dirname(file), { recursive: true, mode: 0o700 });
47
55
  const db = new DatabaseSync(toNamespacedPath(resolve(file)));
48
- db.exec('PRAGMA busy_timeout = 5000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL; CREATE TABLE IF NOT EXISTS update_state (key TEXT PRIMARY KEY, value TEXT NOT NULL);');
56
+ // The shared durability policy (src/sqlite-durability.ts), stated inline
57
+ // because this copied launcher may import only Node builtins.
58
+ db.exec('PRAGMA fullfsync = ON; PRAGMA busy_timeout = 5000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL; CREATE TABLE IF NOT EXISTS update_state (key TEXT PRIMARY KEY, value TEXT NOT NULL);');
49
59
  return db;
50
60
  }
51
61
  function readState(db) {
@@ -96,10 +106,10 @@ function syncPath(file) {
96
106
  closeSync(fd);
97
107
  }
98
108
  }
99
- /** Reinstall can repair a missing bootstrap file, but never resets selected
100
- * release, in-flight handover, or spent recovery allowance. */
109
+ /** Install writes the first launch. Every later install and every controller
110
+ * start brings the launcher file and its limits forward; neither changes the
111
+ * selected release, an in-flight handover or the current backoff. */
101
112
  export function initializeBootstrap(input) {
102
- const file = join(input.serviceDir, 'bootstrap.mjs');
103
113
  const database = join(input.serviceDir, 'updates.sqlite');
104
114
  mkdirSync(input.serviceDir, { recursive: true, mode: 0o700 });
105
115
  const db = openState(database);
@@ -107,101 +117,122 @@ export function initializeBootstrap(input) {
107
117
  try {
108
118
  current = atomic(db, () => {
109
119
  const existing = db.prepare("SELECT value FROM update_state WHERE key = 'launch'").get();
110
- if (!existing)
111
- writeState(db, { schema: 1, current: input.current, pending: null, attempts: 0, ...input.limits });
112
- return readState(db).current;
120
+ const state = existing ? { ...readState(db), ...input.limits }
121
+ : { schema: 1, current: input.current, pending: null, attempts: 0, ...input.limits };
122
+ writeState(db, state);
123
+ return state.current;
113
124
  });
114
125
  }
115
126
  finally {
116
127
  db.close();
117
128
  }
118
- if (!existsSync(file)) {
119
- const temporary = join(input.serviceDir, `.bootstrap-${randomUUID()}.tmp`);
120
- try {
121
- copyFileSync(fileURLToPath(import.meta.url), temporary, constants.COPYFILE_EXCL);
122
- syncPath(temporary);
123
- try {
124
- linkSync(temporary, file);
125
- }
126
- catch (error) {
127
- if (error.code !== 'EEXIST')
128
- throw error;
129
- }
130
- }
131
- finally {
132
- rmSync(temporary, { force: true });
133
- }
134
- if (process.platform !== 'win32')
135
- syncPath(input.serviceDir);
129
+ return { node: current.node, bin: installBootstrap(input.serviceDir), args: [flag, database, input.controllerLease], current };
130
+ }
131
+ /** A running controller applies its policy to an installed launcher. */
132
+ export function refreshBootstrap(serviceDir, limits) {
133
+ const db = openState(join(serviceDir, 'updates.sqlite'));
134
+ try {
135
+ atomic(db, () => writeState(db, { ...readState(db), ...limits }));
136
+ }
137
+ finally {
138
+ db.close();
136
139
  }
137
- return { node: current.node, bin: file, args: [flag, database, input.controllerLease], current };
140
+ installBootstrap(serviceDir);
138
141
  }
142
+ /** The launcher file only moves forward: a newer revision atomically replaces
143
+ * an older one, and nothing replaces a newer one. */
144
+ function installBootstrap(serviceDir) {
145
+ const file = join(serviceDir, 'bootstrap.mjs');
146
+ if (bootstrapRevision(file) >= BOOTSTRAP_REVISION)
147
+ return file;
148
+ const temporary = join(serviceDir, `.bootstrap-${randomUUID()}.tmp`);
149
+ try {
150
+ copyFileSync(fileURLToPath(import.meta.url), temporary, constants.COPYFILE_EXCL);
151
+ syncPath(temporary);
152
+ renameSync(temporary, file);
153
+ }
154
+ finally {
155
+ rmSync(temporary, { force: true });
156
+ }
157
+ if (process.platform !== 'win32')
158
+ syncPath(serviceDir);
159
+ return file;
160
+ }
161
+ /** A missing launcher is revision 0; the first copied launcher carried no mark. */
162
+ export function bootstrapRevision(file) {
163
+ let source;
164
+ try {
165
+ source = readFileSync(file, 'utf8');
166
+ }
167
+ catch (error) {
168
+ if (error.code === 'ENOENT')
169
+ return 0;
170
+ throw error;
171
+ }
172
+ const mark = /^export const BOOTSTRAP_REVISION = (\d+);$/m.exec(source);
173
+ return mark ? Number(mark[1]) : 1;
174
+ }
175
+ /** Consecutive unhealthy starts double the wait before the next one until it
176
+ * reaches the ceiling. There is no last attempt. */
177
+ export function backoffMs(limits, attempts) {
178
+ return attempts < 1 ? 0 : Math.min(limits.initialDelayMs * 2 ** Math.min(attempts - 1, 30), limits.maxDelayMs);
179
+ }
180
+ /** A handover launches its candidate once. When that fails, the recovery
181
+ * command is the last good release and is relaunched until its controller
182
+ * settles the handover. Every launch lengthens the backoff until one is stable. */
139
183
  function reserve(db) {
140
184
  return atomic(db, () => {
141
185
  const state = readState(db);
186
+ const pending = state.pending;
142
187
  let selection;
143
- if (!state.pending) {
144
- if (state.attempts >= state.maxAttempts)
145
- return null;
188
+ if (!pending)
146
189
  selection = { command: state.current, token: null, kind: 'current' };
190
+ else if (!pending.attempted) {
191
+ pending.attempted = true;
192
+ selection = { command: pending.candidate, token: pending.token, kind: 'candidate' };
147
193
  }
148
- else if (!state.pending.attempted) {
149
- state.pending.attempted = true;
150
- selection = { command: state.pending.candidate, token: state.pending.token, kind: 'candidate' };
194
+ else {
195
+ pending.recoveryAttempted = true;
196
+ selection = { command: pending.recovery, token: pending.token, kind: 'recovery' };
151
197
  }
152
- else if (!state.pending.recoveryAttempted) {
153
- state.pending.recoveryAttempted = true;
154
- selection = { command: state.pending.recovery, token: state.pending.token, kind: 'recovery' };
155
- }
156
- else
157
- return null;
158
198
  state.attempts++;
159
199
  writeState(db, state);
160
200
  return selection;
161
201
  });
162
202
  }
163
- const sameCommand = (left, right) => JSON.stringify(left) === JSON.stringify(right);
164
- /** Explicit operator retry restores control through known recovery code. It
165
- * never chooses the failed candidate or changes the Core policy/quarantine. */
203
+ /** Operator retry cuts the current backoff short. It never selects a failed
204
+ * candidate or changes Core's policy or quarantine. */
166
205
  export function retryBootstrap(databaseFile) {
167
206
  const db = openState(databaseFile);
168
207
  try {
169
- return atomic(db, () => {
170
- const state = readState(db);
171
- if (state.pending) {
172
- if (!state.pending.attempted || !state.pending.recoveryAttempted)
173
- return false;
174
- state.current = state.pending.recovery;
175
- state.pending = null;
176
- }
177
- else if (state.attempts < state.maxAttempts)
178
- return false;
179
- state.attempts = 0;
180
- writeState(db, state);
181
- return true;
182
- });
208
+ atomic(db, () => { const state = readState(db); state.attempts = 0; writeState(db, state); });
183
209
  }
184
210
  finally {
185
211
  db.close();
186
212
  }
187
213
  }
188
- /** One stable owner waits for the installation lease to drain, charges every
189
- * launch durably, and parks rather than asking its OS parent for more attempts. */
214
+ /** One launcher per installation keeps one controller running while the
215
+ * machine is on. It exits only when its OS owner stops it (0), when the
216
+ * operator stops the controller (0), or when a newer launcher is installed
217
+ * (75); it relaunches every other controller exit after a capped backoff. */
190
218
  export async function runBootstrap(databaseFile, controllerLeaseFile) {
191
219
  if (![databaseFile, controllerLeaseFile].every(file => isAbsolute(file) && !file.includes('\0')))
192
220
  throw new Error('Bootstrap requires exact installation paths');
193
- const ownerLease = acquireLease(`${databaseFile}.bootstrap-owner.sqlite`);
194
- if (!ownerLease)
195
- return 0;
196
- const db = openState(databaseFile);
221
+ const self = fileURLToPath(import.meta.url);
222
+ // The OS keeps this stream in a file it never rotates (launchd.log), so it
223
+ // carries only what happens once per launcher. Every launch's outcome and
224
+ // reason lives, bounded, in that role's durable launch result.
225
+ const say = (line) => { process.stderr.write(`AMALGM_BOOTSTRAP ${line}\n`); };
197
226
  let stopping = false;
198
227
  let child = null;
199
228
  let wake = null;
200
229
  let killTimer;
230
+ let db = null;
231
+ let ownerLease = null;
232
+ let drained = false;
233
+ let reason = null;
201
234
  const wait = (milliseconds) => new Promise(resolve => {
202
- // A parked owner must remain alive without polling or relying on an
203
- // unresolved Promise to keep Node's event loop open.
204
- const timer = setTimeout(resolve, milliseconds ?? 2_147_483_647);
235
+ const timer = setTimeout(resolve, milliseconds);
205
236
  wake = () => { clearTimeout(timer); resolve(); };
206
237
  }).finally(() => { wake = null; });
207
238
  const boundDrain = (owned) => {
@@ -211,33 +242,69 @@ export async function runBootstrap(databaseFile, controllerLeaseFile) {
211
242
  killTimer.unref();
212
243
  }
213
244
  };
214
- const drain = () => {
245
+ const drain = (why) => {
215
246
  if (!child || child.exitCode !== null || child.signalCode !== null)
216
247
  return;
217
248
  const owned = child;
249
+ drained = true;
250
+ reason ??= why;
218
251
  if (owned.connected)
219
252
  owned.send({ type: 'amalgm-shutdown' }, () => { });
220
253
  else
221
254
  owned.kill('SIGTERM');
222
255
  boundDrain(owned);
223
256
  };
224
- const stop = () => { stopping = true; drain(); wake?.(); };
225
- process.once('SIGTERM', stop);
226
- process.once('SIGINT', stop);
227
- process.once('disconnect', stop);
257
+ const stop = (why) => {
258
+ if (stopping)
259
+ return;
260
+ stopping = true;
261
+ drain(`launcher ${why}`);
262
+ wake?.();
263
+ };
264
+ const stopOn = (signal) => () => { if (!stopping)
265
+ say(`stopping: ${signal}`); stop(`stopped by ${signal}`); };
266
+ const sigterm = stopOn('SIGTERM');
267
+ const sigint = stopOn('SIGINT');
268
+ const disconnect = stopOn('parent disconnect');
269
+ process.once('SIGTERM', sigterm);
270
+ process.once('SIGINT', sigint);
271
+ process.once('disconnect', disconnect);
228
272
  let closeMonitor = () => { };
229
273
  try {
274
+ // A second launcher is a successor, never a success: the OS started it
275
+ // while its predecessor was still exiting, so it waits to take over.
276
+ ownerLease = acquireLease(`${databaseFile}.bootstrap-owner.sqlite`);
277
+ if (!ownerLease)
278
+ say('waiting for the previous launcher to exit');
279
+ while (!ownerLease && !stopping) {
280
+ await wait(1_000);
281
+ ownerLease = acquireLease(`${databaseFile}.bootstrap-owner.sqlite`);
282
+ }
283
+ if (!ownerLease)
284
+ return 0;
285
+ db = openState(databaseFile);
286
+ let launched = false;
287
+ let reportedFence = false;
230
288
  while (!stopping) {
231
289
  const state = readState(db);
232
- const delay = state.attempts ? Math.min(state.initialDelayMs * 2 ** Math.min(30, state.attempts - 1), state.maxDelayMs) : 0;
290
+ // A reboot or OS restart has already waited longer than any backoff.
291
+ const delay = launched ? backoffMs(state, state.attempts) : 0;
233
292
  if (delay)
234
293
  await wait(delay);
235
294
  if (stopping)
236
295
  break;
237
- const deadline = Date.now() + state.readyTimeoutMs;
296
+ if (bootstrapRevision(self) > BOOTSTRAP_REVISION) {
297
+ say('a newer launcher is installed; exiting so the OS starts it');
298
+ return BOOTSTRAP_UPGRADED_EXIT;
299
+ }
300
+ const fenceStarted = performance.now();
238
301
  let fence = acquireLease(controllerLeaseFile);
239
- while (!fence && !stopping && Date.now() < deadline) {
240
- await wait(100);
302
+ while (!fence && !stopping) {
303
+ if (!reportedFence && performance.now() - fenceStarted >= state.readyTimeoutMs) {
304
+ reportedFence = true;
305
+ say('still waiting for the previous controller to release the installation');
306
+ }
307
+ await wait(250);
241
308
  if (!stopping)
242
309
  fence = acquireLease(controllerLeaseFile);
243
310
  }
@@ -245,11 +312,6 @@ export async function runBootstrap(databaseFile, controllerLeaseFile) {
245
312
  fence?.close();
246
313
  break;
247
314
  }
248
- if (!fence) {
249
- process.stderr.write('AMALGM_BOOTSTRAP parked: the previous controller still owns the installation\n');
250
- await wait();
251
- continue;
252
- }
253
315
  let selected;
254
316
  try {
255
317
  selected = reserve(db);
@@ -257,12 +319,11 @@ export async function runBootstrap(databaseFile, controllerLeaseFile) {
257
319
  finally {
258
320
  fence.close();
259
321
  }
260
- if (!selected) {
261
- process.stderr.write('AMALGM_BOOTSTRAP parked: the durable controller recovery allowance is exhausted\n');
262
- await wait();
263
- continue;
264
- }
265
- let intentionalStop = false;
322
+ const limits = readState(db);
323
+ drained = false;
324
+ reason = null;
325
+ launched = true;
326
+ let operatorStop = false;
266
327
  const startedAt = new Date().toISOString();
267
328
  child = spawn(selected.command.node, [selected.command.bin, ...selected.command.args], {
268
329
  env: process.env, stdio: ['ignore', 'pipe', 'pipe', 'ipc'], windowsHide: true,
@@ -289,7 +350,7 @@ export async function runBootstrap(databaseFile, controllerLeaseFile) {
289
350
  db.prepare('INSERT INTO update_state(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value')
290
351
  .run(`launch-result:${selected.kind}`, JSON.stringify({ schema: 1, kind: selected.kind,
291
352
  command: { node: selected.command.node, bin: selected.command.bin }, startedAt, finishedAt: new Date().toISOString(),
292
- pid: owned.pid ?? null, exitCode: owned.exitCode, signal: owned.signalCode,
353
+ pid: owned.pid ?? null, exitCode: owned.exitCode, signal: owned.signalCode, reason,
293
354
  error: launchError, output: output.toString('utf8') }));
294
355
  resolveExit();
295
356
  }
@@ -305,7 +366,6 @@ export async function runBootstrap(databaseFile, controllerLeaseFile) {
305
366
  });
306
367
  owned.on('error', error => {
307
368
  launchError = error.message;
308
- process.stderr.write(`AMALGM_BOOTSTRAP controller error: ${error.message}\n`);
309
369
  if (owned.pid === undefined)
310
370
  finish();
311
371
  });
@@ -314,99 +374,126 @@ export async function runBootstrap(databaseFile, controllerLeaseFile) {
314
374
  if (!message || typeof message !== 'object')
315
375
  return;
316
376
  const { type } = message;
317
- if (type === 'amalgm-controller-stop') {
318
- intentionalStop = true;
377
+ // A controller this launcher drained is only answering that drain; a
378
+ // stop is the operator's only when the controller began it itself.
379
+ if (type === 'amalgm-controller-stop' && !drained) {
380
+ operatorStop = true;
381
+ reason ??= 'operator stop';
319
382
  closeMonitor();
320
383
  boundDrain(owned);
321
384
  }
322
385
  else if (type === 'amalgm-controller-replace') {
386
+ reason ??= 'update handover';
323
387
  closeMonitor();
324
388
  boundDrain(owned);
325
389
  }
326
390
  };
327
391
  owned.on('message', onControl);
328
- closeMonitor = monitor(owned, readState(db), () => {
329
- atomic(db, () => {
392
+ closeMonitor = watchLiveness(owned, { intervalMs: limits.healthIntervalMs, misses: limits.maxHealthFailures,
393
+ readyDeadlineMs: limits.readyTimeoutMs, stableAfterMs: limits.stableAfterMs }, {
394
+ stable: () => atomic(db, () => {
330
395
  const current = readState(db);
331
- if (!current.pending && current.attempts !== 0 && sameCommand(current.current, selected.command)) {
396
+ if (current.attempts !== 0) {
332
397
  current.attempts = 0;
333
398
  writeState(db, current);
334
399
  }
335
- });
336
- }, drain);
400
+ }),
401
+ failed: why => drain(`controller ${why}`),
402
+ });
337
403
  await exited;
338
404
  closeMonitor();
339
405
  owned.off('message', onControl);
340
406
  child = null;
341
407
  clearTimeout(killTimer);
342
408
  killTimer = undefined;
343
- if (intentionalStop)
344
- break;
409
+ if (operatorStop)
410
+ return 0;
345
411
  }
346
412
  return 0;
347
413
  }
348
414
  finally {
349
415
  closeMonitor();
350
- stop();
416
+ stop('failed');
351
417
  if (child && child.exitCode === null && child.signalCode === null)
352
418
  await new Promise(resolve => child.once('exit', resolve));
353
419
  clearTimeout(killTimer);
354
- process.off('SIGTERM', stop);
355
- process.off('SIGINT', stop);
356
- process.off('disconnect', stop);
357
- db.close();
358
- ownerLease.close();
420
+ process.off('SIGTERM', sigterm);
421
+ process.off('SIGINT', sigint);
422
+ process.off('disconnect', disconnect);
423
+ db?.close();
424
+ ownerLease?.close();
359
425
  }
360
426
  }
361
- function monitor(child, limits, stable, failed) {
427
+ /** Silence, not slowness, is death. A supervisor asks its child every
428
+ * interval; an answer to any outstanding question, however late, proves the
429
+ * child alive and clears every miss. The child is dead only after `misses`
430
+ * consecutive checks found it silent, and a check counts only when it ran on
431
+ * time: a supervisor that was itself suspended or starved saw nothing. Misses
432
+ * count from the child's first sign of life, so a child that answers only once
433
+ * ready is bounded by its ready deadline until then. Returns the unwatch. */
434
+ export function watchLiveness(child, limits, effects) {
435
+ const asked = new Set();
362
436
  let closed = false;
363
437
  let ready = false;
364
- let nonce = null;
438
+ let alive = false;
439
+ let stable = false;
440
+ let missed = 0;
365
441
  let healthySince = null;
366
- let failures = 0;
367
- let probeTimer;
368
- let timeout;
369
- const close = () => { closed = true; clearTimeout(startup); clearTimeout(probeTimer); clearTimeout(timeout); child.off('message', message); };
370
- const fail = () => { if (!closed) {
442
+ let tick;
443
+ let due = 0;
444
+ const close = () => { closed = true; clearTimeout(startup); clearTimeout(tick); child.off('message', message); };
445
+ const fail = (reason) => { if (!closed) {
371
446
  close();
372
- failed();
447
+ effects.failed(reason);
373
448
  } };
374
- const startup = setTimeout(fail, limits.readyTimeoutMs);
375
- const probe = () => {
376
- if (closed)
377
- return;
378
- nonce = randomUUID();
379
- timeout = setTimeout(() => {
380
- nonce = null;
381
- healthySince = null;
382
- if (++failures >= limits.maxHealthFailures)
383
- fail();
384
- else
385
- probeTimer = setTimeout(probe, limits.healthIntervalMs);
386
- }, limits.healthTimeoutMs);
449
+ const startup = setTimeout(() => fail(`did not report ready within ${limits.readyDeadlineMs} ms`), limits.readyDeadlineMs);
450
+ const ask = () => {
451
+ const question = randomUUID();
452
+ asked.add(question);
387
453
  if (child.connected)
388
- child.send({ type: 'amalgm-health', nonce }, () => { });
454
+ child.send({ type: 'amalgm-health', nonce: question }, () => { });
389
455
  };
390
- const message = (value) => {
456
+ const schedule = () => { due = performance.now() + limits.intervalMs; tick = setTimeout(check, limits.intervalMs); };
457
+ function check() {
458
+ const onTime = performance.now() - due <= limits.intervalMs / 2;
459
+ schedule();
460
+ if (alive && onTime && asked.size > 0) {
461
+ healthySince = null;
462
+ if (++missed >= limits.misses) {
463
+ fail(`answered no health check for ${missed} consecutive checks`);
464
+ return;
465
+ }
466
+ }
467
+ // A child that is starting or draining may drop a question, so every
468
+ // check asks again; an answer to any outstanding one still counts.
469
+ ask();
470
+ }
471
+ function message(value) {
391
472
  if (closed || !value || typeof value !== 'object')
392
473
  return;
393
474
  const reply = value;
394
475
  if (reply.type === 'amalgm-ready' && !ready) {
395
- ready = true;
476
+ ready = alive = true;
396
477
  clearTimeout(startup);
397
- probe();
478
+ effects.ready?.();
479
+ ask();
398
480
  }
399
- else if (reply.type === 'amalgm-health' && nonce && reply.nonce === nonce) {
400
- clearTimeout(timeout);
401
- nonce = null;
402
- failures = 0;
403
- healthySince ??= performance.now();
404
- if (performance.now() - healthySince >= limits.stableAfterMs)
405
- stable();
406
- probeTimer = setTimeout(probe, limits.healthIntervalMs);
481
+ else if (reply.type === 'amalgm-health' && typeof reply.nonce === 'string' && asked.has(reply.nonce)) {
482
+ asked.clear();
483
+ missed = 0;
484
+ alive = true;
485
+ if (ready && !stable) {
486
+ healthySince ??= performance.now();
487
+ if (performance.now() - healthySince >= limits.stableAfterMs) {
488
+ stable = true;
489
+ effects.stable();
490
+ }
491
+ }
407
492
  }
408
- };
493
+ }
409
494
  child.on('message', message);
495
+ ask();
496
+ schedule();
410
497
  return close;
411
498
  }
412
499
  if (process.argv[2] === flag && process.argv[1] && realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url))) {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/updates/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/updates/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { RuntimeTrust } from './trust.js';
4
4
  export interface RuntimeUpdateEffects {
5
5
  readonly packageRoot: string;
6
6
  pause(): Promise<void>;
7
+ resume(): void;
7
8
  start(): Promise<void>;
8
9
  probe(): Promise<void>;
9
10
  replace(): void;
@@ -33,6 +34,9 @@ export declare class RuntimeUpdates {
33
34
  private readonly registration;
34
35
  constructor(identity: ServiceIdentity, effects: RuntimeUpdateEffects);
35
36
  static enabled(identity: ServiceIdentity): boolean;
37
+ /** The last good release runs unless an update effect owns the runtime:
38
+ * while staging, before draining, and after a parked update gave up. A
39
+ * release that cannot read the installed state refuses to start on its own. */
36
40
  get permitsOrdinaryRuntime(): boolean;
37
41
  get status(): {
38
42
  active: string;
@@ -66,5 +70,9 @@ export declare class RuntimeUpdates {
66
70
  private run;
67
71
  private fence;
68
72
  private perform;
73
+ /** A parked update has nothing left to try until a newer release arrives,
74
+ * so the installation goes home to its last good release: this controller's
75
+ * own runtime, or a handover to that release's controller. */
76
+ private returnHome;
69
77
  private listen;
70
78
  }