@intentic/machine 1.343.0 → 1.345.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +134 -29
  2. package/dist/autostart/autostart.d.ts +0 -1
  3. package/dist/autostart/autostart.d.ts.map +1 -1
  4. package/dist/autostart/autostart.js +3 -9
  5. package/dist/autostart/autostart.js.map +1 -1
  6. package/dist/commands.d.ts.map +1 -1
  7. package/dist/commands.js +4 -21
  8. package/dist/commands.js.map +1 -1
  9. package/dist/device/commands.d.ts +2 -1
  10. package/dist/device/commands.d.ts.map +1 -1
  11. package/dist/device/commands.js +4 -2
  12. package/dist/device/commands.js.map +1 -1
  13. package/dist/device/connection.d.ts.map +1 -1
  14. package/dist/device/connection.js +27 -9
  15. package/dist/device/connection.js.map +1 -1
  16. package/dist/device/grant.d.ts +259 -0
  17. package/dist/device/grant.d.ts.map +1 -1
  18. package/dist/device/mcp.d.ts.map +1 -1
  19. package/dist/device/mcp.js +25 -8
  20. package/dist/device/mcp.js.map +1 -1
  21. package/dist/device/router.d.ts +484 -225
  22. package/dist/device/router.d.ts.map +1 -1
  23. package/dist/device/router.js +18 -10
  24. package/dist/device/router.js.map +1 -1
  25. package/dist/device/sandbox-rounds/keeper.d.ts +4 -1
  26. package/dist/device/sandbox-rounds/keeper.d.ts.map +1 -1
  27. package/dist/device/sandbox-rounds/keeper.js +12 -6
  28. package/dist/device/sandbox-rounds/keeper.js.map +1 -1
  29. package/dist/device/sandbox-rounds/sleep.d.ts +15 -2
  30. package/dist/device/sandbox-rounds/sleep.d.ts.map +1 -1
  31. package/dist/device/sandbox-rounds/sleep.js +68 -13
  32. package/dist/device/sandbox-rounds/sleep.js.map +1 -1
  33. package/dist/device/tools/agent.d.ts +15 -0
  34. package/dist/device/tools/agent.d.ts.map +1 -1
  35. package/dist/device/tools/agent.js +75 -19
  36. package/dist/device/tools/agent.js.map +1 -1
  37. package/dist/device/tools/android.d.ts +1 -1
  38. package/dist/device/tools/android.d.ts.map +1 -1
  39. package/dist/device/tools/android.js +17 -8
  40. package/dist/device/tools/android.js.map +1 -1
  41. package/dist/device/tools/browser.d.ts.map +1 -1
  42. package/dist/device/tools/browser.js +3 -5
  43. package/dist/device/tools/browser.js.map +1 -1
  44. package/dist/device/tools/ic-binary.d.ts +1 -1
  45. package/dist/device/tools/ic-binary.d.ts.map +1 -1
  46. package/dist/device/tools/ic-binary.js +6 -4
  47. package/dist/device/tools/ic-binary.js.map +1 -1
  48. package/dist/device/tools/programs/app-wait-tools.d.ts +12 -0
  49. package/dist/device/tools/programs/app-wait-tools.d.ts.map +1 -0
  50. package/dist/device/tools/programs/app-wait-tools.js +60 -0
  51. package/dist/device/tools/programs/app-wait-tools.js.map +1 -0
  52. package/dist/device/tools/programs/app-wait.d.ts +19 -0
  53. package/dist/device/tools/programs/app-wait.d.ts.map +1 -0
  54. package/dist/device/tools/programs/app-wait.js +89 -0
  55. package/dist/device/tools/programs/app-wait.js.map +1 -0
  56. package/dist/device/tools/programs/file-changes.d.ts +2 -0
  57. package/dist/device/tools/programs/file-changes.d.ts.map +1 -0
  58. package/dist/device/tools/programs/file-changes.js +19 -0
  59. package/dist/device/tools/programs/file-changes.js.map +1 -0
  60. package/dist/device/tools/programs/programs.d.ts +12 -0
  61. package/dist/device/tools/programs/programs.d.ts.map +1 -1
  62. package/dist/device/tools/programs/programs.js +13 -12
  63. package/dist/device/tools/programs/programs.js.map +1 -1
  64. package/dist/device/tools/programs/stop-all.d.ts +10 -0
  65. package/dist/device/tools/programs/stop-all.d.ts.map +1 -0
  66. package/dist/device/tools/programs/stop-all.js +52 -0
  67. package/dist/device/tools/programs/stop-all.js.map +1 -0
  68. package/dist/device/tools/sandboxes.d.ts +1 -0
  69. package/dist/device/tools/sandboxes.d.ts.map +1 -1
  70. package/dist/device/tools/sandboxes.js +4 -1
  71. package/dist/device/tools/sandboxes.js.map +1 -1
  72. package/dist/device/tools/shell.d.ts +1 -1
  73. package/dist/device/tools/shell.d.ts.map +1 -1
  74. package/dist/install.d.ts +6 -0
  75. package/dist/install.d.ts.map +1 -1
  76. package/dist/install.js +7 -2
  77. package/dist/install.js.map +1 -1
  78. package/dist/keyring/app-commands.d.ts +15 -0
  79. package/dist/keyring/app-commands.d.ts.map +1 -0
  80. package/dist/keyring/app-commands.js +247 -0
  81. package/dist/keyring/app-commands.js.map +1 -0
  82. package/dist/keyring/commands.d.ts +1 -1
  83. package/dist/keyring/commands.d.ts.map +1 -1
  84. package/dist/keyring/commands.js +26 -32
  85. package/dist/keyring/commands.js.map +1 -1
  86. package/dist/keyring/git-helper.d.ts +8 -0
  87. package/dist/keyring/git-helper.d.ts.map +1 -0
  88. package/dist/keyring/git-helper.js +60 -0
  89. package/dist/keyring/git-helper.js.map +1 -0
  90. package/dist/keyring/keyring-status.d.ts +8 -1
  91. package/dist/keyring/keyring-status.d.ts.map +1 -1
  92. package/dist/keyring/keyring-status.js +39 -4
  93. package/dist/keyring/keyring-status.js.map +1 -1
  94. package/dist/keyring/native-host-install.d.ts +28 -0
  95. package/dist/keyring/native-host-install.d.ts.map +1 -0
  96. package/dist/keyring/native-host-install.js +99 -0
  97. package/dist/keyring/native-host-install.js.map +1 -0
  98. package/dist/keyring/relay.d.ts +5 -1
  99. package/dist/keyring/relay.d.ts.map +1 -1
  100. package/dist/keyring/relay.js +16 -0
  101. package/dist/keyring/relay.js.map +1 -1
  102. package/dist/keyring/sandbox-push.d.ts +4 -0
  103. package/dist/keyring/sandbox-push.d.ts.map +1 -0
  104. package/dist/keyring/sandbox-push.js +21 -0
  105. package/dist/keyring/sandbox-push.js.map +1 -0
  106. package/dist/keyring/service.d.ts +11 -5
  107. package/dist/keyring/service.d.ts.map +1 -1
  108. package/dist/keyring/service.js +34 -51
  109. package/dist/keyring/service.js.map +1 -1
  110. package/dist/resident/resident.d.ts +1 -0
  111. package/dist/resident/resident.d.ts.map +1 -1
  112. package/dist/resident/resident.js +9 -0
  113. package/dist/resident/resident.js.map +1 -1
  114. package/dist/status.d.ts.map +1 -1
  115. package/dist/status.js +22 -1
  116. package/dist/status.js.map +1 -1
  117. package/dist/sync/attach-commands.d.ts.map +1 -1
  118. package/dist/sync/attach-commands.js +2 -1
  119. package/dist/sync/attach-commands.js.map +1 -1
  120. package/dist/sync/binary/mutagen-binary.d.ts +4 -0
  121. package/dist/sync/binary/mutagen-binary.d.ts.map +1 -0
  122. package/dist/sync/binary/mutagen-binary.js +65 -0
  123. package/dist/sync/binary/mutagen-binary.js.map +1 -0
  124. package/dist/sync/commands.d.ts +2 -1
  125. package/dist/sync/commands.d.ts.map +1 -1
  126. package/dist/sync/commands.js +29 -64
  127. package/dist/sync/commands.js.map +1 -1
  128. package/dist/sync/config.d.ts +19 -1
  129. package/dist/sync/config.d.ts.map +1 -1
  130. package/dist/sync/config.js +19 -4
  131. package/dist/sync/config.js.map +1 -1
  132. package/dist/sync/exec.d.ts +17 -0
  133. package/dist/sync/exec.d.ts.map +1 -1
  134. package/dist/sync/exec.js +56 -2
  135. package/dist/sync/exec.js.map +1 -1
  136. package/dist/sync/forget-command.js +1 -1
  137. package/dist/sync/forget-command.js.map +1 -1
  138. package/dist/sync/git-bridge.d.ts +35 -3
  139. package/dist/sync/git-bridge.d.ts.map +1 -1
  140. package/dist/sync/git-bridge.js +201 -16
  141. package/dist/sync/git-bridge.js.map +1 -1
  142. package/dist/sync/gone-watch.d.ts +1 -0
  143. package/dist/sync/gone-watch.d.ts.map +1 -1
  144. package/dist/sync/gone-watch.js +20 -7
  145. package/dist/sync/gone-watch.js.map +1 -1
  146. package/dist/sync/low-disk.d.ts +25 -0
  147. package/dist/sync/low-disk.d.ts.map +1 -0
  148. package/dist/sync/low-disk.js +91 -0
  149. package/dist/sync/low-disk.js.map +1 -0
  150. package/dist/sync/mirror.d.ts +2 -0
  151. package/dist/sync/mirror.d.ts.map +1 -1
  152. package/dist/sync/mirror.js +76 -27
  153. package/dist/sync/mirror.js.map +1 -1
  154. package/dist/sync/mutagen-env.d.ts +9 -0
  155. package/dist/sync/mutagen-env.d.ts.map +1 -0
  156. package/dist/sync/mutagen-env.js +25 -0
  157. package/dist/sync/mutagen-env.js.map +1 -0
  158. package/dist/sync/mutagen-move.d.ts +53 -0
  159. package/dist/sync/mutagen-move.d.ts.map +1 -0
  160. package/dist/sync/mutagen-move.js +207 -0
  161. package/dist/sync/mutagen-move.js.map +1 -0
  162. package/dist/sync/mutagen.d.ts +13 -10
  163. package/dist/sync/mutagen.d.ts.map +1 -1
  164. package/dist/sync/mutagen.js +60 -113
  165. package/dist/sync/mutagen.js.map +1 -1
  166. package/dist/sync/project/project-commands.d.ts.map +1 -1
  167. package/dist/sync/project/project-commands.js +2 -1
  168. package/dist/sync/project/project-commands.js.map +1 -1
  169. package/dist/sync/project/project-delivery.d.ts.map +1 -1
  170. package/dist/sync/project/project-delivery.js +2 -1
  171. package/dist/sync/project/project-delivery.js.map +1 -1
  172. package/dist/sync/project/project-remote.d.ts.map +1 -1
  173. package/dist/sync/project/project-remote.js +2 -1
  174. package/dist/sync/project/project-remote.js.map +1 -1
  175. package/dist/sync/report.d.ts.map +1 -1
  176. package/dist/sync/report.js +15 -4
  177. package/dist/sync/report.js.map +1 -1
  178. package/dist/sync/uninstall.d.ts +9 -0
  179. package/dist/sync/uninstall.d.ts.map +1 -0
  180. package/dist/sync/uninstall.js +76 -0
  181. package/dist/sync/uninstall.js.map +1 -0
  182. package/dist/uninstall/command.d.ts +3 -0
  183. package/dist/uninstall/command.d.ts.map +1 -0
  184. package/dist/uninstall/command.js +40 -0
  185. package/dist/uninstall/command.js.map +1 -0
  186. package/dist/uninstall/distros.d.ts +8 -0
  187. package/dist/uninstall/distros.d.ts.map +1 -0
  188. package/dist/uninstall/distros.js +103 -0
  189. package/dist/uninstall/distros.js.map +1 -0
  190. package/dist/uninstall/plan.d.ts +23 -0
  191. package/dist/uninstall/plan.d.ts.map +1 -0
  192. package/dist/uninstall/plan.js +71 -0
  193. package/dist/uninstall/plan.js.map +1 -0
  194. package/dist/uninstall/purge.d.ts +3 -0
  195. package/dist/uninstall/purge.d.ts.map +1 -0
  196. package/dist/uninstall/purge.js +79 -0
  197. package/dist/uninstall/purge.js.map +1 -0
  198. package/dist/uninstall/steps.d.ts +12 -0
  199. package/dist/uninstall/steps.d.ts.map +1 -0
  200. package/dist/uninstall/steps.js +200 -0
  201. package/dist/uninstall/steps.js.map +1 -0
  202. package/dist/uninstall/sweep.d.ts +12 -0
  203. package/dist/uninstall/sweep.d.ts.map +1 -0
  204. package/dist/uninstall/sweep.js +90 -0
  205. package/dist/uninstall/sweep.js.map +1 -0
  206. package/dist/uninstall/tally.d.ts +14 -0
  207. package/dist/uninstall/tally.d.ts.map +1 -0
  208. package/dist/uninstall/tally.js +25 -0
  209. package/dist/uninstall/tally.js.map +1 -0
  210. package/dist/upkeep/login.d.ts +0 -9
  211. package/dist/upkeep/login.d.ts.map +1 -1
  212. package/dist/upkeep/login.js +12 -59
  213. package/dist/upkeep/login.js.map +1 -1
  214. package/package.json +9 -9
package/README.md CHANGED
@@ -173,9 +173,12 @@ flowchart LR
173
173
  minutes has its forwards taken off localhost, and they come back with its first answer; after an hour its sessions
174
174
  are paused, an hour counted from `unreachableSince` in `sync.json` (2026-10-05: it was counted in memory, so an agent
175
175
  restarted more often than hourly never paused a dead sandbox's sessions). A sandbox that no longer exists is another
176
- matter: see [Sandboxes that are gone](#sandboxes-that-are-gone). `sync uninstall` stops and unregisters Mutagen's
177
- daemon only when it is this agent's own copy and no Mutagen the user installed is on PATH, since one daemon serves
178
- both.
176
+ matter: see [Sandboxes that are gone](#sandboxes-that-are-gone). `sync uninstall` ends every session and forward of
177
+ this agent's and stops its Mutagen daemon, which serves this agent alone (below), starting it first if it was down so
178
+ every session is really ended; the synced folders keep their files. It runs the agent's own Mutagen in `bin/` and
179
+ downloads none: without that copy the session steps are skipped (2026-10-18). `sync uninstall --folders` (what the desktop app's
180
+ uninstaller runs) unpairs only the pairings that sync a folder here: mirror-only pairings and the projects host keep
181
+ their ports and their enrollments.
179
182
  - Symbolic links travel only where the device can create them ([`sync/symlinks.ts`](src/sync/symlinks.ts)). A
180
183
  Windows PC without Developer Mode refuses every link, and Mutagen would try again on every cycle, so its sessions
181
184
  use `--symlink-mode ignore`. Turning Developer Mode on brings them back at the agent's next start.
@@ -549,6 +552,24 @@ whose it is.
549
552
  a label to an existing session, so an unlabelled one is recreated only when that is safe (the sandbox answers, and a
550
553
  two-way session has settled, as for any replacement) and at most one per pass (`RelabelBudget`): a recreate over two
551
554
  copies that agree rescans and copies nothing. Forwards get labels when they are next created.
555
+ - **Mutagen's state is this agent's own** (2026-10-18, [`sync/mutagen-env.ts`](src/sync/mutagen-env.ts)). Every Mutagen
556
+ this agent runs has `MUTAGEN_DATA_DIRECTORY=~/.intentic/machine/mutagen`, so its daemon, sessions and forwards no
557
+ longer sit in the user's shared `~/.mutagen`, beside their own Mutagen's, where deleting `~/.intentic` left them
558
+ registered and the next `mutagen` anything resumed them. Every call also has `MUTAGEN_DISABLE_AUTOSTART=1`: only
559
+ `daemon start` starts the daemon (setup, the watcher's start, and the watcher finding it down, at most once a
560
+ minute), so `status`, reports and listings never bring one back, and read a stopped daemon as not answering. The
561
+ daemon has no sign-in entry of its own any more: the resident agent, started at sign-in, starts it. Once per
562
+ environment the watcher (and `sync uninstall`) moves off the old directory
563
+ ([`sync/mutagen-move.ts`](src/sync/mutagen-move.ts)): each of this agent's sync sessions there is carried, not made
564
+ again. It is paused, its state files (`sessions/<id>` and `archives/<id>`, the last state both sides agreed on) are
565
+ copied into the new directory, it is terminated in the old one, and this agent's daemon, started again, loads it and
566
+ resumes what was running. Made again from nothing, a two-way session would bring back what one side deleted while it
567
+ could not sync and read a one-sided edit as a conflict; nothing could be flushed first, since the move runs before the
568
+ transport is up. Forwards are terminated and made again. A session that cannot be carried is terminated and made again
569
+ by the watcher, paused if it was (`mutagen-moved.json` holds the names until then). The old daemon is stopped only
570
+ when nothing else is left in it or the move started it; one of another Mutagen version is stopped and started with
571
+ this agent's copy for the move, then started again with the owner's own Mutagen where one is on PATH. Mutagen's own
572
+ sign-in registration is removed only where it starts this agent's copy.
552
573
  - **The orphan sweep is standing**: every minute, not only at the watcher's start, a setup and a revocation.
553
574
  - **Mutagen is this agent's pinned copy** (0.18.1, downloaded into its own bin), with a Mutagen on PATH used only while
554
575
  that download cannot be had. A daemon of another version refuses every client ("client/daemon version mismatch"),
@@ -560,6 +581,25 @@ whose it is.
560
581
  top of that the watcher marks its progress at every step; one that has made none for 20 minutes is abandoned, says so
561
582
  in one line ("no progress for 20 minutes (it was at: ...); restarting it"), releases its tunnels and is replaced by a
562
583
  fresh loop. Its heartbeat going stale is what `status` reports meanwhile.
584
+ - **A git fetch that cannot finish is not run again every pass** (2026-10-18, [`sync/git-bridge.ts`](src/sync/git-bridge.ts)).
585
+ The bridge's fetch shared the two-minute bound of every other command and ran again on the next pass when cut off;
586
+ a repository whose history did not fit in two minutes over the owner's connection was killed mid-transfer every time,
587
+ and each killed fetch left its half-received `tmp_pack_*` in `.git/objects/pack`, which git never removes by itself.
588
+ A Windows laptop's drive filled with hundreds of GB of them. Now the fetch runs with `--progress` for as long as git
589
+ keeps reporting (stopped after 3 minutes of silence, and at 3 hours in any case, `runWatched` in
590
+ [`sync/exec.ts`](src/sync/exec.ts)), beside the watcher's pass rather than in it, one per sandbox at a time
591
+ (`startBridge` in [`sync/mirror.ts`](src/sync/mirror.ts)). One that ends unfinished has the temporary files it left
592
+ removed (never a finished pack, never a file still growing, which may be the owner's own git), and the repo is held
593
+ (`bridgeHolds` on the pairing) for a wait that starts at 10 minutes and doubles to half a day; a fetch that ran out
594
+ of time starts at half a day, and a shallow sandbox copy refused by a clone with full history of its own at a day,
595
+ up to a week. A clone the bridge started, or one already shallow, takes the sandbox's shallow boundary
596
+ (`--update-shallow`), so a shallow sandbox repo no longer leaves a whole refused pack behind on every pass. Leftovers
597
+ older than an hour from an earlier agent are cleared once per process. Holds are in `status` and the report.
598
+ - **A nearly full drive pauses folder sync** (2026-10-18, [`sync/low-disk.ts`](src/sync/low-disk.ts)). Every pass
599
+ measures the drive holding each folder whose session writes there (not a copy-first project, which only sends).
600
+ Under 2% of the drive, clamped to 5–20 GiB, the pairing's sessions and git bridge pause (`fileSyncLowDisk`); they
601
+ resume once the floor and 2 GiB more are free. While paused, no other pause's lifting resumes them, and the pause is
602
+ put back once a minute in case one did. `status` and the device card say why, with the numbers.
563
603
  - **Keys and enrollments per environment.** A newly made key is commented `<hostname>-<environment>`, so the sandbox
564
604
  files a new enrollment under that name. An existing key keeps its comment (a sandbox older than this agent would read
565
605
  a changed comment on the same key as a second machine holding sync); the sandbox tells existing ones apart by machine
@@ -607,7 +647,12 @@ whose it is.
607
647
  id in it (what ic names one from its connect token), so the mapping is exact. Its sessions are paused through the
608
648
  cutover and the first quarter hour of probation, and past that while the sandbox does not answer, then resumed; a
609
649
  pause somebody made is left alone. Only this environment's records count: a distro syncing a sandbox the Windows side
610
- swaps is not paused.
650
+ swaps is not paused. (2026-10-19) Every resume the agent makes (after a swap, an outage, a gone verdict, a full
651
+ drive, and `sync resume`) goes one session per call, awaited, and is checked by listing the sessions afterwards
652
+ ([`sync/mutagen.ts`](src/sync/mutagen.ts) `resumeSessions`). A pause's mark stays until that check passes, and the
653
+ next pass tries again. Before this, one `mutagen sync resume` over both sessions stopped at the first that could not
654
+ reach a sandbox still coming up. It also ran blocking, which froze the transport it connects through. Its exit code
655
+ was taken as the answer, so after a rebuild one session was often left paused with no mark to lift it.
611
656
  - (2026-10-15) **Nothing downloaded replaces a binary until the release vouches for it**
612
657
  ([`release-verify.ts`](src/release/release-verify.ts)). Before an upgrade runs the new agent (and the Windows launcher
613
658
  beside it), before ic is put in place ([`tools/ic-binary.ts`](src/device/tools/ic-binary.ts)), and before setup
@@ -727,10 +772,19 @@ The keeper now puts an unneeded sandbox to sleep and wakes it when somebody open
727
772
  - **Wake.** The platform never calls a machine. A browser that finds the sandbox asleep asks the platform to wake it,
728
773
  and this agent's wake round asks the platform for such requests (`ic sandbox wakes --json --source agent`, one request
729
774
  for every sleeper on this side, each under its own report key), starting each one asked for through `ic sandbox
730
- start`. It asks every fifteen seconds while anything sleeps, and every five minutes otherwise, to catch a sleep made
731
- by hand. It runs whatever the keeper's switch says, so a sandbox asleep when the keeper was switched off still wakes.
775
+ start`. While anything sleeps the ask is held (2026-10-19): `--wait 25` has the platform answer the moment somebody
776
+ asks for a wake, or after 25 s, and the next ask follows at once, so a wake no longer waits up to fifteen seconds for
777
+ the next poll. An ic or a platform from before the held ask is asked every fifteen seconds as before; an ic that
778
+ refuses the flag (clap's exit 2, no JSON) is asked again at once without it, and plainly for an hour. With nothing
779
+ asleep it asks every five minutes, to catch a sleep made by hand. It runs whatever the keeper's switch says, so a
780
+ sandbox asleep when the keeper was switched off still wakes.
732
781
  The desktop app on the same computer runs the same command the moment its workspace page has asked
733
782
  (`--source app`, the app's `sandbox_wakes.rs`), so a sandbox opened there need not wait for this round.
783
+ - **The link comes back with it** (2026-10-19). A sleep leaves this agent's link to the sandbox on its dial ladder,
784
+ which after twenty failures rests a quarter of an hour between tries: on rog a sandbox woken at 16:48 had its device
785
+ tools back at 17:12. Each start is acted on as ic prints it, and every link naming the slug is dialled at once and put
786
+ back on the ladder's first rung (peer-dial's `retryNow`); so is a sandbox somebody else woke, once ic counts nothing
787
+ asleep or the keeper's next listing shows it running.
734
788
  - **The setting** is this environment's `sandboxSleepMinutes` in `machine.json`: absent means 30, `0` means never. Set
735
789
  it with `intentic-machine sandbox sleep-after <minutes|off>` and read it with `sleep-after status`. One sandbox can
736
790
  be kept awake from its own editor instead (Overview, "Sleep when unused", settings `sleepWhenUnused`, 2026-10-18):
@@ -770,8 +824,8 @@ login entries once and then stood in for every later cleanup too (2026-10-05).
770
824
  - this agent's own login entry, written again where it differs from what this build writes, a logon task's action
771
825
  and settings included ([local-agent](../local-agent)); an entry launching another install's command is left on
772
826
  Linux and macOS, as at start. Only the installed agent checks it, never a `doctor` run from a checkout;
773
- - `IntenticMutagenDaemon` on Windows: removed once no pairing needs Mutagen, written again (by sync's own
774
- `registerMutagenAutostart`) while one does and this agent's own Mutagen copy is the one in use;
827
+ - `IntenticMutagenDaemon` on Windows, the Run value older builds wrote to start Mutagen's daemon: removed (the
828
+ resident agent starts the daemon itself now);
775
829
  - `~/.intentic/machine/trash` entries older than 30 days, by the stamp in their name (a moved folder keeps its old
776
830
  times), deleted; a name with no stamp is left and reported;
777
831
  - `audit.jsonl` set aside at 8 MB;
@@ -830,16 +884,28 @@ version, file time) and the `IC_*`/`INTENTIC_*` variables in the agent's environ
830
884
 
831
885
  ### The keyring
832
886
 
833
- [intentic-keyring](../keyring) is a process of its own beside this agent (2026-10-16): the agent installs it, keeps
834
- it running and relays to it, and holds no vault key and no value. `intentic-machine keyring setup` puts the
835
- `intentic-keyring` asset of this agent's own release into `bin/` (checked against the release's signed `SHA256SUMS`, as
836
- the launcher is; a from-source agent copies `_devices/keyring/dist-bin`'s build instead), makes `intentic-askpass` a
837
- hard link beside it, registers a login entry of its own (`keyring`, `IntenticKeyring` on Windows, running
838
- `intentic-keyring serve`), starts it, and sets up the vault with a passphrase typed twice without echo (or once on
839
- stdin with `--passphrase-stdin`), plus Windows Hello where there is one unless `--no-hello`. Nothing in the agent's
840
- own upgrade, its `bin/` sweep or its rollback touches the keyring's files: it moves to a new release only through
841
- `keyring upgrade`, which downloads and checks the new binary, asks the running keyring (which asks the person), and only
842
- then swaps it, keeping `.previous` and putting it back if the new one does not answer.
887
+ [intentic-keyring](../keyring), the vault behind Passwords, is a process of its own beside this agent (2026-10-16):
888
+ the agent installs it, keeps it running and relays to it, and holds no vault key and no value. Since 2026-10-19 it has
889
+ one mode, the protected service: the vault is held by a system account of its own (`LOCAL SERVICE` from a startup task
890
+ on Windows, the `intentic-keyring` user from the systemd unit `intentic-keyring@<uid>` on Linux), and what starts at
891
+ sign-in is its session helper. `intentic-machine keyring setup` puts the `intentic-keyring` asset of this agent's own
892
+ release into `bin/` (checked against the release's signed `SHA256SUMS`, as the launcher is; a from-source agent copies
893
+ `_devices/keyring/dist-bin`'s build instead), makes `intentic-askpass` a hard link beside it, asks for an
894
+ administrator's yes once (UAC on Windows, `pkexec` on Linux) to run `intentic-keyring service install`, registers the
895
+ helper's login entry (`keyring`, `IntenticKeyring` on Windows, running `intentic-keyring session`), starts it, and sets
896
+ up the vault: it generates a recovery key (six groups of five Crockford base32 characters, 150 bits), sends it as the
897
+ setup op's `passphrase`, and prints it once; it is never stored. Windows Hello is enrolled through the helper unless
898
+ `--no-hello`; on Linux the daily unlock is a polkit yes. Without the administrator's yes setup stops with `declined`
899
+ and "Passwords needs an administrator's approval once…", having changed nothing; on macOS, or a Linux without
900
+ systemd, polkit or setfacl, it stops with `unavailable` before installing anything. A computer still on the per-user
901
+ keyring from before (`intentic-keyring serve`, retired) is moved by `setup` or `upgrade`: the old keyring is stopped,
902
+ `service install` carries `~/.intentic/keyring/vault.json` and its files into the service's folder, and the login entry
903
+ becomes the helper's. Its old passphrase still opens it where the recovery key would.
904
+
905
+ Nothing in the agent's own upgrade, its `bin/` sweep or its rollback touches the keyring's files: it moves to a new
906
+ release only through `keyring upgrade`, which downloads and checks the new binary, asks the running keyring (which asks
907
+ the person), and only then swaps it, keeping `.previous` and putting it back if the new one does not answer; the new
908
+ binary's `service install` then runs as an administrator, so the service's own copy follows.
843
909
 
844
910
  - **Relayed for the sandbox** ([`keyring/relay.ts`](src/keyring/relay.ts)): the contract's `keyring*` procedures go
845
911
  to the keyring's pipe and back, with the sandbox named from the link the call came in on (`shares`, `copies`) and an
@@ -851,12 +917,9 @@ then swaps it, keeping `.previous` and putting it back if the new one does not a
851
917
  1.5 s, the answer kept for 30 s ([`keyring/feature.ts`](src/keyring/feature.ts)).
852
918
  - **Marked**: what `run_command` and `app_start` start carries `INTENTIC_AGENT_COMMAND=1`, for the keyring's record
853
919
  and prompts. A hint, not a boundary: the agent's command can unset it.
854
- - **Hardened** (Windows, `keyring harden`): the plain keyring is stopped and its login entry removed first, so the
855
- vault the service takes is the last one written; then one UAC prompt runs `intentic-keyring service install`, which
856
- moves the vault under the startup task that runs the keyring as `LOCAL SERVICE` (the keyring's README says how), and
857
- the login entry becomes `intentic-keyring session`. Hardened mode is read from the marker the install writes for this
858
- user (`%ProgramData%\Intentic\Keyring\<SID>.hardened`). `keyring upgrade` on a hardened keyring also runs the new
859
- binary's `service install`, elevated, so the service's own copy follows.
920
+ - **Installed** is read from the marker `service install` writes for this user, which every user may read:
921
+ `%ProgramData%\Intentic\Keyring\<SID>.hardened` on Windows (named from when the service was an optional "hardened
922
+ mode"), `/var/lib/intentic-keyring/<uid>.installed` on Linux ([`keyring/service.ts`](src/keyring/service.ts)).
860
923
  - `status` and `doctor` show one keyring row (not installed, not running, not set up, locked or unlocked), and
861
924
  `status --json` and `doctor --json` carry it as `keyring: { installed, running, setUp, locked?, unlockedUntil?, version? }`.
862
925
 
@@ -867,8 +930,8 @@ it reaches the pipe.
867
930
 
868
931
  | Command | Success output |
869
932
  |---|---|
870
- | `keyring setup [--passphrase-stdin] [--no-hello]` | `{ "ok": true, "path", "askpass": { "installed", "path"? }, "autostart", "setUp": true, "alreadySetUp", "state"? }` |
871
- | `keyring status` | `{ "ok": true, "installed", "running", "setUp", "state"?, "askpass": { "installed", "path"? }, "hardened" }` |
933
+ | `keyring setup [--no-hello]` | `{ "ok": true, "path", "askpass": { "installed", "path"? }, "autostart", "setUp": true, "alreadySetUp", "recoveryKey"?, "state"? }` (`recoveryKey` only when this run made the vault) |
934
+ | `keyring status` | `{ "ok": true, "installed", "running", "setUp", "state"?, "askpass": { "installed", "path"? }, "support": { "canSetUp", "why"?, "hello", "platform" } }` |
872
935
  | `keyring unlock [--minutes N]` / `keyring lock` | `{ "ok": true, "unlockedUntil" }` / `{ "ok": true }` |
873
936
  | `keyring list` | `{ "ok": true, "entries": [EntryInfo], "backends" }` |
874
937
  | `keyring add NAME [--stdin] [rules] [--backend B --ref R [--field F] [--attribute A]] [--replace]` | `{ "ok": true, "name" }` |
@@ -880,8 +943,7 @@ it reaches the pipe.
880
943
  | `keyring askpass install\|uninstall\|status` | `{ "ok": true, "installed", "path"?, "variables", "file"?, "profile"? }` |
881
944
  | `keyring sync status` | `{ "ok": true, "sync": { "key", "peers", "revision" } }` |
882
945
  | `keyring upgrade` | `{ "ok": true, "upgraded", "from", "to" }` |
883
- | `keyring harden` (Windows) | `{ "ok": true, "service": "IntenticKeyring", "autostart" }` |
884
- | `keyring uninstall` | `{ "ok": true, "removed", "vault", "hardened" }` |
946
+ | `keyring uninstall` | `{ "ok": true, "removed", "vault", "service" }` |
885
947
 
886
948
  The rule flags are `--kind password|text`, `--program P`, `--package P`, `--host H`, `--askpass M` (each repeatable;
887
949
  on `edit` a list flag replaces the whole list, and a lone `""` empties it), `--username U`, `--remember-minutes N`, and
@@ -889,11 +951,54 @@ on `edit` a list flag replaces the whole list, and a lone `""` empties it), `--u
889
951
  value. `askpass install` sets `SSH_ASKPASS`, `SSH_ASKPASS_REQUIRE=prefer`, `SUDO_ASKPASS` and `GIT_ASKPASS` for the
890
952
  user: through `[Environment]::SetEnvironmentVariable` on Windows, and on Linux and macOS in
891
953
  `~/.config/environment.d/intentic-askpass.conf`, printing the `export` lines a shell profile needs. `keyring
892
- uninstall` keeps the vault in `~/.intentic/keyring`.
954
+ uninstall` removes the service (an administrator's yes) and puts the vault back in `~/.intentic/keyring`, where it
955
+ stays; set up again, the same recovery key opens it.
956
+
957
+ ### Uninstall
958
+
959
+ `intentic-machine uninstall [--purge] [--delete-data]` ([`src/uninstall/`](src/uninstall/)). `ic uninstall` is the one
960
+ orchestrator of a whole-device uninstall and runs `--purge` here; the agent's own command is the same removal for a
961
+ person who runs it alone, and either way it never downloads anything.
962
+
963
+ - **No flag**: every sandbox link, every sync pairing and the login entry go, as they always have. The agent goes even
964
+ from a device that hosts sandboxes; on Windows it keeps running while WSL distros are attached, to keep them running.
965
+ - **`--purge`**: everything of the agent leaves this environment, in this order:
966
+ 1. On Windows, each WSL distro in `machine.json` is purged through its own agent (`wsl.exe`, five minutes at most
967
+ each; an agent older than `--purge` takes the plain uninstall, and the warning says how to finish), and the list
968
+ is emptied, so nothing is left for the Windows side's agent to keep running for.
969
+ 2. On Linux and macOS the binary is renamed to `bin/intentic-machine.uninstalling` before anything stops the agent.
970
+ The Windows side restarts a stopped distro agent a second later through a script that exits 64 when the binary is
971
+ missing, and then drops that distro from its list, so a purged distro does not come back.
972
+ 3. The programs sandboxes started with `app_start` are stopped, from every sandbox's `runs/<sandbox>/apps.json`.
973
+ 4. The plain uninstall runs (links, pairings, the login entry). Mutagen is the agent's own copy in `bin/` or none: a
974
+ missing copy skips the session steps instead of downloading one.
975
+ 5. Windows' start before sign-in is removed (Windows asks for permission), and the resident agent is stopped with its
976
+ login entry whatever it still served.
977
+ 6. The agent's Mutagen daemon is stopped and the ssh include removed, in case the sync step stopped early.
978
+ 7. The keyring goes with askpass (`keyring uninstall`). Its protected service needs an administrator's yes. If it is
979
+ declined, the service stays, and so do `bin/` and the PATH entry, so the purge can be run again to finish it.
980
+ 8. What the agents before this one left goes: the `intentic-host` and `intentic-sync-mirror` login entries,
981
+ `~/.intentic/host` and `~/.intentic/sync`, their `~/.local/bin` links, and the `intentic-link-watch` timer.
982
+ 9. The PATH entry goes: `bin` out of the per-user PATH on Windows (`removeFromWindowsPathValue`, written back under
983
+ the value's own kind), and the `~/.local/bin/intentic-machine` link where it points into `bin`.
984
+ 10. Lingering is turned off only where the agent turned it on. local-agent writes `linger-enabled` beside the agent's
985
+ log the one time `loginctl enable-linger` changes it from off to on. Lingering the user had already stays.
986
+ 11. The files go: `~/.intentic/machine` and `~/.intentic/keyring` except the person's data, then each folder once
987
+ empty, and `~/.intentic` once nothing is left in it. Everything else under `~/.intentic` is ic's and is never
988
+ touched. On Windows the running agent is moved to `%TEMP%` first, and a hidden PowerShell removes what was still
989
+ in use once this process has exited.
990
+ - **The data that stays** without `--delete-data`: the keyring's `vault.json`, `keys.json` and `audit.jsonl*`;
991
+ `machine/restore`; `machine/audit.jsonl*`; and in `machine/trash` the folders `trash_file` made for files a sandbox
992
+ moved aside on this device (named for the moment alone; the upkeep's own trash entries go). The narration says what
993
+ stayed and why.
994
+ - **`--delete-data`** implies `--purge` and removes the data too.
995
+ - A step that does not finish is a warning with the command that finishes it by hand (`fix:` on its own line), and the
996
+ verdict counts them. The run fails, exit 1, only when the agent is still running or its files could not be removed.
893
997
 
894
998
  ## Key files
895
999
 
896
1000
  - [src/commands.ts](src/commands.ts) — the CLI: `device`, `sync`, `keyring`, `sandbox`, `run`, `status`, `doctor`, `upgrade`, `updates`, `uninstall`.
1001
+ - [src/uninstall/purge.ts](src/uninstall/purge.ts) — `uninstall --purge`: the steps in `steps.ts`, the distros in `distros.ts`, the files in `sweep.ts`, every decision pure in `plan.ts`.
897
1002
  - [src/resident/resident.ts](src/resident/resident.ts) — the resident process that holds links, pairings and WSL distros; `supervision.ts` beside it starts and stops it through whatever restarts this environment's agent.
898
1003
  - [src/device/mcp.ts](src/device/mcp.ts) — every tool a sandbox can call on this device.
899
1004
  - [src/device/policy.ts](src/device/policy.ts) — scope checks and the file-root boundary.
@@ -1,5 +1,4 @@
1
1
  import type { AutostartSpec } from "@intentic/local-agent";
2
2
  export declare const MACHINE_AUTOSTART: AutostartSpec;
3
3
  export declare const KEYRING_AUTOSTART: AutostartSpec;
4
- export declare const KEYRING_SESSION_AUTOSTART: AutostartSpec;
5
4
  //# sourceMappingURL=autostart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autostart.d.ts","sourceRoot":"","sources":["../../src/autostart/autostart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3D,eAAO,MAAM,iBAAiB,EAAE,aAc/B,CAAC;AAOF,eAAO,MAAM,iBAAiB,EAAE,aAW/B,CAAC;AAIF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC"}
1
+ {"version":3,"file":"autostart.d.ts","sourceRoot":"","sources":["../../src/autostart/autostart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3D,eAAO,MAAM,iBAAiB,EAAE,aAc/B,CAAC;AASF,eAAO,MAAM,iBAAiB,EAAE,aAW/B,CAAC"}
@@ -16,18 +16,12 @@ const keyringLog = keyringPaths().log;
16
16
  export const KEYRING_AUTOSTART = {
17
17
  id: "keyring",
18
18
  windowsRunValue: "IntenticKeyring",
19
- desktopName: "Intentic Keyring",
20
- desktopComment: "The password vault on this computer: types and hands over secrets for your intentic sandboxes, at your word",
19
+ desktopName: "Intentic Passwords",
20
+ desktopComment: "Passwords on this computer: its prompts and typing on this desktop, for the protected service that holds the vault",
21
21
  logPath: keyringLog,
22
22
  launchAgent: { label: "dev.intentic.keyring" },
23
- detachedArgs: ["serve"],
24
- foregroundArgs: ["serve"],
25
- failureNote: (reason) => `Couldn't register the keyring to start at login (${reason}); it runs until this computer restarts, and \`intentic-machine keyring setup\` starts it again. Its log is ${keyringLog}.`,
26
- };
27
- export const KEYRING_SESSION_AUTOSTART = {
28
- ...KEYRING_AUTOSTART,
29
- desktopComment: "The intentic keyring's prompts and typing on this desktop, for the IntenticKeyring service that holds the vault",
30
23
  detachedArgs: ["session"],
31
24
  foregroundArgs: ["session"],
25
+ failureNote: (reason) => `Couldn't register Passwords to start at login (${reason}); it runs until this computer restarts, and \`intentic-machine keyring setup\` starts it again. Its log is ${keyringLog}.`,
32
26
  };
33
27
  //# sourceMappingURL=autostart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"autostart.js","sourceRoot":"","sources":["../../src/autostart/autostart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC5C,EAAE,EAAE,kBAAkB;IACtB,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,wBAAwB;IACrC,cAAc,EAAE,yFAAyF;IAEzG,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC9C,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC;IAEvC,gBAAgB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,kBAAkB,CAAC;IAC7D,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,4DAA4D,MAAM,iGAAiG,UAAU,GAAG;CACvL,CAAC;AAKF,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC5C,EAAE,EAAE,SAAS;IACb,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,kBAAkB;IAC/B,cAAc,EAAE,6GAA6G;IAC7H,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC9C,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,cAAc,EAAE,CAAC,OAAO,CAAC;IACzB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,oDAAoD,MAAM,+GAA+G,UAAU,GAAG;CAC7L,CAAC;AAIF,MAAM,CAAC,MAAM,yBAAyB,GAAkB;IACpD,GAAG,iBAAiB;IACpB,cAAc,EAAE,iHAAiH;IACjI,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,cAAc,EAAE,CAAC,SAAS,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"autostart.js","sourceRoot":"","sources":["../../src/autostart/autostart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC5C,EAAE,EAAE,kBAAkB;IACtB,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,wBAAwB;IACrC,cAAc,EAAE,yFAAyF;IAEzG,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC9C,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC;IAEvC,gBAAgB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,kBAAkB,CAAC;IAC7D,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,4DAA4D,MAAM,iGAAiG,UAAU,GAAG;CACvL,CAAC;AAOF,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC5C,EAAE,EAAE,SAAS;IACb,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,oBAAoB;IACjC,cAAc,EAAE,oHAAoH;IACpI,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC9C,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,cAAc,EAAE,CAAC,SAAS,CAAC;IAC3B,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,kDAAkD,MAAM,+GAA+G,UAAU,GAAG;CAC3L,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AA0JnE,eAAO,MAAM,QAAQ,kDA4BnB,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAsInE,eAAO,MAAM,QAAQ,kDA4BnB,CAAC"}
package/dist/commands.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { explain } from "@intentic/local-agent";
2
2
  import { buildRouteMap } from "@stricli/core";
3
- import { beforeSignInCommand, retireBeforeSignIn } from "./autostart/before-sign-in.js";
3
+ import { beforeSignInCommand } from "./autostart/before-sign-in.js";
4
4
  import { buildCommand, machineUi } from "./cli-ui.js";
5
5
  import { runLogPath } from "./config.js";
6
- import { deviceCommands, deviceUninstall } from "./device/commands.js";
6
+ import { deviceCommands } from "./device/commands.js";
7
7
  import { sandboxRoutes } from "./device/sandbox-cli.js";
8
8
  import { environmentRoutes, updates } from "./environments/commands.js";
9
9
  import { keyringCommands } from "./keyring/commands.js";
@@ -11,7 +11,8 @@ import { realMachineIo, upgradeMachine } from "./environments/machine-upgrade.js
11
11
  import { runForeground } from "./resident/resident.js";
12
12
  import { readResident, restartResident, stopResident } from "./resident/supervision.js";
13
13
  import { status } from "./status.js";
14
- import { syncCommands, syncUninstall } from "./sync/commands.js";
14
+ import { syncCommands } from "./sync/commands.js";
15
+ import { uninstall } from "./uninstall/command.js";
15
16
  import { doctor } from "./upkeep/doctor.js";
16
17
  import { upgradeLanded, upgradeStop } from "./upgrade.js";
17
18
  import { MACHINE_VERSION } from "./version.js";
@@ -94,24 +95,6 @@ const upgradeEnded = (ui, ending) => {
94
95
  const stop = upgradeStop(ending.outcome);
95
96
  throw new Error(explain(stop.headline, stop.problem, stop.fix));
96
97
  };
97
- const uninstall = buildCommand({
98
- docs: { brief: "Remove this environment's agent: every sandbox link, every sync pairing, the login entry" },
99
- parameters: {},
100
- async func() {
101
- const ui = machineUi(this.process);
102
- ui.act("Removing the agent from this device");
103
- ui.note(await syncUninstall(ui, undefined, { forGood: true }));
104
- ui.note(await deviceUninstall(ui, undefined, { forGood: true }));
105
- await retireBeforeSignIn(ui.note);
106
- const still = await readResident();
107
- if (still === undefined) {
108
- ui.done("Removed the agent. Nothing intentic stays running on this device.");
109
- return;
110
- }
111
- ui.note("Run the uninstall inside each of this device's WSL distros to remove it entirely.");
112
- ui.done(`Removed this side's links. The agent keeps running (pid ${still.pid}) only to keep this device's WSL distros running.`);
113
- },
114
- });
115
98
  export const commands = buildRouteMap({
116
99
  routes: {
117
100
  device: buildRouteMap({
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,9 @@ export declare const enroll: (sandboxUrl: string, pairToken: string, say?: Log)
6
6
  token: string;
7
7
  }>;
8
8
  export declare const linkNamed: (urls: readonly string[], value: string) => string;
9
- export declare const deviceUninstall: (say: Narration, sandbox?: string, { forGood }?: {
9
+ export declare const deviceUninstall: (say: Narration, sandbox?: string, { forGood, recordStays }?: {
10
10
  readonly forGood?: boolean;
11
+ readonly recordStays?: boolean;
11
12
  }) => Promise<string>;
12
13
  export declare const dropUnreachableLinks: (ui: Ui) => Promise<void>;
13
14
  export declare const deviceCommands: {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/device/commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,GAAG,EAAiB,KAAK,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAA2B,KAAK,SAAS,EAAgB,MAAM,cAAc,CAAC;AAUrF,eAAO,MAAM,MAAM,eAAsB,MAAM,aAAa,MAAM,QAAQ,GAAG,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoBpH,CAAC;AAmHF,eAAO,MAAM,SAAS,SAAU,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,MASlE,CAAC;AAKF,eAAO,MAAM,eAAe,QAAe,SAAS,YAAY,MAAM,gBAAuB;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAQ,OAAO,CAAC,MAAM,CAsBhJ,CAAC;AAeF,eAAO,MAAM,oBAAoB,OAAc,EAAE,KAAG,OAAO,CAAC,IAAI,CA2B/D,CAAC;AAEF,eAAO,MAAM,cAAc;;;;CAAgE,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/device/commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,GAAG,EAAiB,KAAK,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAA2B,KAAK,SAAS,EAAgB,MAAM,cAAc,CAAC;AAUrF,eAAO,MAAM,MAAM,eAAsB,MAAM,aAAa,MAAM,QAAQ,GAAG,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoBpH,CAAC;AAmHF,eAAO,MAAM,SAAS,SAAU,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,MASlE,CAAC;AAMF,eAAO,MAAM,eAAe,QACnB,SAAS,YACJ,MAAM,6BACyB;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,KACxG,OAAO,CAAC,MAAM,CAwBhB,CAAC;AAeF,eAAO,MAAM,oBAAoB,OAAc,EAAE,KAAG,OAAO,CAAC,IAAI,CA2B/D,CAAC;AAEF,eAAO,MAAM,cAAc;;;;CAAgE,CAAC"}
@@ -104,7 +104,7 @@ export const linkNamed = (urls, value) => {
104
104
  }
105
105
  return holding[0] ?? value;
106
106
  };
107
- export const deviceUninstall = async (say, sandbox, { forGood = false } = {}) => {
107
+ export const deviceUninstall = async (say, sandbox, { forGood = false, recordStays = true } = {}) => {
108
108
  const only = sandbox === undefined || sandbox === "" ? undefined : linkNamed((await readLinks()).map((link) => link.sandboxUrl), sandbox);
109
109
  const dropped = await removeLinks(only);
110
110
  const left = await readLinks();
@@ -123,7 +123,9 @@ export const deviceUninstall = async (say, sandbox, { forGood = false } = {}) =>
123
123
  if (dropped.length > 0) {
124
124
  say.note("Each sandbox still lists this device until it is removed there; its access is already gone.");
125
125
  }
126
- say.note(`Your record of what this agent did stays at ${auditPath}.`);
126
+ if (recordStays) {
127
+ say.note(`Your record of what this agent did stays at ${auditPath}.`);
128
+ }
127
129
  return dropped.length === 0 ? "Nothing was connected. Removed any leftovers." : `Disconnected from ${urls}.`;
128
130
  };
129
131
  const forgetUnreachable = buildCommand({
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/device/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/device/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAoC,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAEhG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAkB,YAAY,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAiB,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAItI,MAAM,aAAa,GAAG,gCAAgC,CAAC;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,UAAkB,EAAE,SAAiB,EAAE,GAAS,EAA0C,EAAE;IACrH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACnC,UAAU,EACV,sBAAsB,EACtB,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAC7C;QACI,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,2BAA2B,EAAE,+EAA+E,CAAC;QAC7I,GAAG;KACN,CACJ,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,wBAAwB,QAAQ,CAAC,MAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAClG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,8CAA8C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC;IAC/I,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,CAAC,CAAC;AAcF,MAAM,KAAK,GAAG,YAAY,CAAa;IACnC,IAAI,EAAE,EAAE,KAAK,EAAE,2EAA2E,EAAE;IAC5F,UAAU,EAAE;QACR,KAAK,EAAE;YACH,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,0DAA0D,EAAE;YACzH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACtF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,8DAA8D,EAAE;SACjH;KACJ;IACD,KAAK,CAAC,IAAI,CAAuB,KAAiB;QAC9C,MAAM,KAAK,GAAe,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAE3G,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGnC,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,GAAG,GAAQ,EAAE,CAAC,IAAI,CAAC;QACzB,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE,UAAU,CAAC,CAAC;QAGvD,MAAM,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACJ,CAAC,CAAC;AAGH,MAAM,UAAU,GAAwB;IACpC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,EAAE;IACvE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE;CACrE,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAM,EAAE,GAAQ,EAAE,KAAiB,EAAiB,EAAE;IAC1E,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC;IACxE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAa;QACnB,UAAU,EAAE,KAAK,CAAC,GAAG;QACrB,EAAE;QACF,KAAK;QACL,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC/H,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,oCAAoC,CAAC,CAAC;IAEjE,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,EAAE,CAAC,QAAQ,CACP,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,gFAAgF,EACvH,EAAE,EACF,MAAM,KAAK,CAAC;QACR,CAAC,CAAC,qFAAqF;QACvF,CAAC,CAAC,0GAA0G,MAAM,iBAAiB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAClK;QACI,CAAC,UAAU,EAAE,yBAAyB,CAAC;QACvC,CAAC,YAAY,EAAE,mCAAmC,CAAC;KACtD,CACJ,CAAC;AACN,CAAC,CAAC;AAGF,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAG9B,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE,CACtD,MAAM,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,MAAM,EAAE;IAC3E,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,oBAAoB;CAClC,CAAC,CAAC;AAMP,MAAM,SAAS,GAAG,YAAY,CAAiB;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,8DAA8D,EAAE;IAC/E,UAAU,EAAE;QACR,KAAK,EAAE;YAEH,OAAO,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,4GAA4G;gBACnH,QAAQ,EAAE,IAAI;aACjB;SACJ;KACJ;IACD,KAAK,CAAC,IAAI,CAAuB,KAAqB;QAClD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7F,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QACvH,EAAE,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;CACJ,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAuB,EAAE,KAAa,EAAU,EAAE;IACxE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,2CAA2C,EAAE,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,0CAA0C,CAAC,CAAC,CAAC;IACnK,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AAC/B,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,GAAc,EACd,OAAgB,EAChB,EAAE,OAAO,GAAG,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,GAAmE,EAAE,EAC7F,EAAE;IACjB,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1I,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,mCAAmC,IAAI,oBAAoB,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAEpB,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/E,OAAO,qBAAqB,IAAI,GAAG,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,+CAA+C,SAAS,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,qBAAqB,IAAI,GAAG,CAAC;AACjH,CAAC,CAAC;AAOF,MAAM,iBAAiB,GAAG,YAAY,CAAC;IACnC,IAAI,EAAE,EAAE,KAAK,EAAE,+FAA+F,EAAE;IAChH,UAAU,EAAE,EAAE;IACd,KAAK,CAAC,IAAI;QACN,MAAM,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAM,EAAiB,EAAE;IAChE,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAExB,EAAE,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;QACrH,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO;IACX,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,CAAC,8CAA8C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACzH,OAAO;IACX,CAAC;IACD,EAAE,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC9D,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;QAEzB,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;IAE/B,MAAM,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,IAAI,CACH,IAAI,CAAC,MAAM,KAAK,CAAC;QACb,CAAC,CAAC,8GAA8G;QAChH,CAAC,CAAC,sBAAsB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAC7E,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7G,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/device/connection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErH,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,KAAK,QAAQ,EAAoE,MAAM,aAAa,CAAC;AAC9G,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AASlE,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;IAE5C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D;AAUD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAO3C,eAAO,MAAM,SAAS,eAAsB,MAAM,cAAa,OAAO,KAAK,KAAW,OAAO,CAAC,OAAO,CAOpG,CAAC;AASF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIpE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E;AAqBD,eAAO,MAAM,YAAY,cAAe,MAAM,OAAO,MAAM,aAAa,OAAO,KAAG,MAAM,GAAG,QAAQ,GAAG,MAKrG,CAAC;AAIF,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,OAA8C,CAAC;AAM7F,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAgB,CAAC;AAGrE,QAAA,MAAM,UAAU,eAAsB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAyC,CAAC;AAErG,eAAO,MAAM,OAAO,WACR,QAAQ,WACP,MAAM,OACV,GAAG,SACF,IAAI,0CAEC,SAAS,cACT,aAAa,QACnB,MAAM,MAAM,KAClB,QAwHF,CAAC"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/device/connection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErH,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,KAAK,QAAQ,EAAoE,MAAM,aAAa,CAAC;AAC9G,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AASlE,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;IAE5C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D;AAUD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAO3C,eAAO,MAAM,SAAS,eAAsB,MAAM,cAAa,OAAO,KAAK,KAAW,OAAO,CAAC,OAAO,CAOpG,CAAC;AASF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIpE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E;AAqBD,eAAO,MAAM,YAAY,cAAe,MAAM,OAAO,MAAM,aAAa,OAAO,KAAG,MAAM,GAAG,QAAQ,GAAG,MAKrG,CAAC;AAIF,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,OAA8C,CAAC;AAM7F,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAgB,CAAC;AAGrE,QAAA,MAAM,UAAU,eAAsB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAyC,CAAC;AA8DrG,eAAO,MAAM,OAAO,WACR,QAAQ,WACP,MAAM,OACV,GAAG,SACF,IAAI,0CAEC,SAAS,cACT,aAAa,QACnB,MAAM,MAAM,KAClB,QAkFF,CAAC"}
@@ -48,11 +48,7 @@ export const probesFirst = (attempt) => attempt > GONE_PROBE_AFTER_ATTEMPTS;
48
48
  const loopbackUrls = new Set();
49
49
  export const reachedOverLoopback = loopbackUrls;
50
50
  const forgetLink = async (sandboxUrl) => void (await removeLinks(sandboxUrl));
51
- export const connect = (config, version, log, dial = realDial, forget = forgetLink, indicator = machineIndicator(), goneStore = fileGoneStore, now = Date.now) => {
52
- const linkLog = (message) => log(`${config.sandboxUrl}: ${message}`);
53
- let scopes = config.scopes;
54
- let held;
55
- let linkBase;
51
+ const goneWatch = (config, dial, forget, goneStore, now, linkLog) => {
56
52
  let attempts = 0;
57
53
  let goneSince = config.goneSince;
58
54
  const whileGone = async (signal) => {
@@ -84,6 +80,22 @@ export const connect = (config, version, log, dial = realDial, forget = forgetLi
84
80
  linkLog(`the platform says this sandbox no longer exists, so this link stops dialling it after ${attempts - 1} failed attempts. It is asked again every hour, and forgotten on ${untilUtcDay} unless it answers; connecting again from the sandbox restores it before then.`);
85
81
  await goneStore.mark(config, goneSince).catch((error) => linkLog(`could not record that it is gone (${errorMessage(error)})`));
86
82
  };
83
+ return {
84
+ beforeDial: async (signal) => {
85
+ await askEdgeFirst();
86
+ return await whileGone(signal);
87
+ },
88
+ forgive: () => {
89
+ attempts = 0;
90
+ },
91
+ };
92
+ };
93
+ export const connect = (config, version, log, dial = realDial, forget = forgetLink, indicator = machineIndicator(), goneStore = fileGoneStore, now = Date.now) => {
94
+ const linkLog = (message) => log(`${config.sandboxUrl}: ${message}`);
95
+ let scopes = config.scopes;
96
+ let held;
97
+ let linkBase;
98
+ const gone = goneWatch(config, dial, forget, goneStore, now, linkLog);
87
99
  const handler = new RPCHandler(createHostRouter({
88
100
  sandboxUrl: config.sandboxUrl,
89
101
  scopes: () => scopes,
@@ -94,10 +106,9 @@ export const connect = (config, version, log, dial = realDial, forget = forgetLi
94
106
  log,
95
107
  linkBase: () => linkBase,
96
108
  }));
97
- return dialPeer({
109
+ const link = dialPeer({
98
110
  open: async (signal) => {
99
- await askEdgeFirst();
100
- if (!(await whileGone(signal))) {
111
+ if (!(await gone.beforeDial(signal))) {
101
112
  return undefined;
102
113
  }
103
114
  const { base, local } = await dial.resolveBase(config.sandboxUrl);
@@ -116,7 +127,7 @@ export const connect = (config, version, log, dial = realDial, forget = forgetLi
116
127
  hello: () => ({ type: "hello", token: config.token, version }),
117
128
  attach: (ws) => {
118
129
  held = ws;
119
- attempts = 0;
130
+ gone.forgive();
120
131
  ws.addEventListener("close", () => {
121
132
  if (held === ws) {
122
133
  indicator.release(config.sandboxUrl);
@@ -132,5 +143,12 @@ export const connect = (config, version, log, dial = realDial, forget = forgetLi
132
143
  void forget(config.sandboxUrl).catch((error) => linkLog(`could not drop the revoked link (${String(error)})`));
133
144
  },
134
145
  });
146
+ return {
147
+ ...link,
148
+ retryNow: () => {
149
+ gone.forgive();
150
+ link.retryNow();
151
+ },
152
+ };
135
153
  };
136
154
  //# sourceMappingURL=connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/device/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAE5G,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAiB,MAAM,sCAAsC,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAmB,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAiB,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9G,OAAO,EAAkB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuB/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAG3C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAIhC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,UAAkB,EAAE,SAAS,GAAiB,KAAK,EAAoB,EAAE;IACrG,IAAI,CAAC;QACD,OAAO,YAAY,CAAC,MAAM,SAAS,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACvI,CAAC;IAAC,MAAM,CAAC;QAEL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAS;IACnB,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC;IACnC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC;CAC1D,CAAC;AAWF,MAAM,aAAa,GAAkB;IACjC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,iBAAiB,CAAC;YACpB,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnE,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAkB,CAAC;gBACxD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACtE,CAAC,CAAC;SACL,CAAC,CAAC;IACP,CAAC;CACJ,CAAC;AAIF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,GAAW,EAAE,SAAkB,EAA8B,EAAE;IAC3G,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,GAAG,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,GAAG,yBAAyB,CAAC;AAK7F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAwB,YAAY,CAAC;AAGrE,MAAM,UAAU,GAAG,KAAK,EAAE,UAAkB,EAAiB,EAAE,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAErG,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,MAAgB,EAChB,OAAe,EACf,GAAQ,EACR,IAAI,GAAS,QAAQ,EACrB,MAAM,GAAG,UAAU,EACnB,SAAS,GAAc,gBAAgB,EAAE,EACzC,SAAS,GAAkB,aAAa,EACxC,GAAG,GAAiB,IAAI,CAAC,GAAG,EACpB,EAAE;IAIV,MAAM,OAAO,GAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC;IAG1E,IAAI,MAAM,GAAiB,MAAM,CAAC,MAAM,CAAC;IAEzC,IAAI,IAA2B,CAAC;IAChC,IAAI,QAA4B,CAAC;IAGjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,IAAI,SAAS,GAAI,MAAqB,CAAC,SAAS,CAAC;IAGjD,MAAM,SAAS,GAAG,KAAK,EAAE,MAAmB,EAAoB,EAAE;QAC9D,OAAO,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAEhD,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAC7F,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClB,SAAS,GAAG,SAAS,CAAC;gBACtB,QAAQ,GAAG,CAAC,CAAC;gBACb,OAAO,CAAC,gEAAgE,CAAC,CAAC;gBAE1E,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,kCAAkC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrI,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpB,OAAO,CACH,yIAAyI,CAC5I,CAAC;gBAEF,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjH,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,KAAK,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3B,CAAC,CAAC;IAGF,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC3C,QAAQ,IAAI,CAAC,CAAC;QACd,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvG,OAAO;QACX,CAAC;QACD,SAAS,GAAG,GAAG,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,CACH,yFAAyF,QAAQ,GAAG,CAAC,oEAAoE,WAAW,gFAAgF,CACvQ,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,qCAAqC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5I,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,UAAU,CAC1B,gBAAgB,CAAC;QACb,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM;QACpB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC;YAGd,KAAK,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAClE,OAAO,CAAC,6CAA6C,YAAY,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAC1H,CAAC;QACN,CAAC;QACD,GAAG;QACH,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ;KAC3B,CAAC,CACL,CAAC;IAEF,OAAO,QAAQ,CAAY;QACvB,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACnB,MAAM,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACR,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO;gBACH,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAGzC,IAAI,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,mBAAmB,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,MAAM,CAAC,EAAE,GAAG;aAChF,CAAC;QACN,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9D,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;YACX,IAAI,GAAG,EAAE,CAAC;YAEV,QAAQ,GAAG,CAAC,CAAC;YAEb,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC9B,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBACd,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC;QAEzC,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;QAC/C,GAAG,EAAE,OAAO;QAEZ,OAAO,EAAE,GAAG,EAAE;YACV,OAAO,CACH,4IAA4I,CAC/I,CAAC;YACF,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,oCAAoC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5H,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/device/connection.ts"],"names":[],"mappings":"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"}