@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
@@ -1 +1 @@
1
- {"version":3,"file":"git-bridge.js","sourceRoot":"","sources":["../../src/sync/git-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-bridge.js","sourceRoot":"","sources":["../../src/sync/git-bridge.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export interface FateSeams {
7
7
  readonly releaseForwards: (sandboxId: string) => Promise<unknown>;
8
8
  readonly say: Log;
9
9
  }
10
+ export declare const goneLingers: (pairings: readonly Pairing[], sandboxId: string) => boolean;
10
11
  export declare const sandboxSaidGone: (seams: FateSeams, sandboxId: string, by: GoneWitness, now?: number) => Promise<void>;
11
12
  export declare const sandboxAnswered: (seams: FateSeams, sandboxId: string) => Promise<void>;
12
13
  export declare const localSlugsOf: (pairing: Pick<Pairing, "sandboxUrl" | "icSlug" | "container">) => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"gone-watch.d.ts","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EACH,KAAK,WAAW,EAEhB,KAAK,OAAO,EAOf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,sBAAsB,CAAC;AAU/E,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACrB;AAkCD,eAAO,MAAM,eAAe,UAAiB,SAAS,aAAa,MAAM,MAAM,WAAW,QAAO,MAAM,KAAgB,OAAO,CAAC,IAAI,CAqBlI,CAAC;AAIF,eAAO,MAAM,eAAe,UAAiB,SAAS,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CASvF,CAAC;AAIF,eAAO,MAAM,YAAY,YAAa,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC,KAAG,MAAM,EAMlG,CAAC;AAkBF,eAAO,MAAM,aAAa,UACf,SAAS,YACN,SAAS,OAAO,EAAE,SACrB,WAAW,CAAC,MAAM,CAAC,SACpB,MAAM,OAAO,CAAC,cAAc,CAAC,cACxB,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,KAC1C,OAAO,CAAC,IAAI,CA6Bd,CAAC;AAKF,eAAO,MAAM,eAAe,UACjB,SAAS,YACN,SAAS,OAAO,EAAE,aACjB,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,qBAItC;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,cAAc,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,KAC7F,OAAO,CAAC,IAAI,CAcd,CAAC"}
1
+ {"version":3,"file":"gone-watch.d.ts","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EACH,KAAK,WAAW,EAEhB,KAAK,OAAO,EAOf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,sBAAsB,CAAC;AAU/E,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACrB;AAyCD,eAAO,MAAM,WAAW,aAAc,SAAS,OAAO,EAAE,aAAa,MAAM,KAAG,OAC8D,CAAC;AAS7I,eAAO,MAAM,eAAe,UAAiB,SAAS,aAAa,MAAM,MAAM,WAAW,QAAO,MAAM,KAAgB,OAAO,CAAC,IAAI,CAqBlI,CAAC;AAKF,eAAO,MAAM,eAAe,UAAiB,SAAS,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAkBvF,CAAC;AAIF,eAAO,MAAM,YAAY,YAAa,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC,KAAG,MAAM,EAMlG,CAAC;AAkBF,eAAO,MAAM,aAAa,UACf,SAAS,YACN,SAAS,OAAO,EAAE,SACrB,WAAW,CAAC,MAAM,CAAC,SACpB,MAAM,OAAO,CAAC,cAAc,CAAC,cACxB,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,KAC1C,OAAO,CAAC,IAAI,CA6Bd,CAAC;AAKF,eAAO,MAAM,eAAe,UACjB,SAAS,YACN,SAAS,OAAO,EAAE,aACjB,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,qBAItC;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,cAAc,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,KAC7F,OAAO,CAAC,IAAI,CAcd,CAAC"}
@@ -15,13 +15,18 @@ const pauseFor = async (seams, pairing, reason) => {
15
15
  };
16
16
  const liftPauses = async (seams, pairings, reasons) => {
17
17
  let lifted = 0;
18
+ let waiting = 0;
18
19
  for (const pairing of pairings.filter((held) => held.fileSyncPausedFor !== undefined && reasons.includes(held.fileSyncPausedFor))) {
19
- resumeWatcherPausedSync(seams.mutagen, pairing);
20
+ if (!(await resumeWatcherPausedSync(seams.mutagen, pairing))) {
21
+ waiting += 1;
22
+ continue;
23
+ }
20
24
  await setFileSyncPausedFor(pairingKey(pairing), undefined);
21
25
  lifted += 1;
22
26
  }
23
- return lifted;
27
+ return { lifted, waiting };
24
28
  };
29
+ export const goneLingers = (pairings, sandboxId) => pairings.some((pairing) => pairing.sandboxId === sandboxId && (pairing.goneSince !== undefined || pairing.fileSyncPausedFor === "gone"));
25
30
  const pairingsOf = async (sandboxId) => (await readState()).pairings.filter((pairing) => pairing.sandboxId === sandboxId);
26
31
  export const sandboxSaidGone = async (seams, sandboxId, by, now = Date.now()) => {
27
32
  const pairings = await pairingsOf(sandboxId);
@@ -45,12 +50,20 @@ export const sandboxSaidGone = async (seams, sandboxId, by, now = Date.now()) =>
45
50
  export const sandboxAnswered = async (seams, sandboxId) => {
46
51
  const pairings = await pairingsOf(sandboxId);
47
52
  const first = pairings[0];
48
- if (first === undefined || !pairings.some((pairing) => pairing.goneSince !== undefined)) {
53
+ if (first === undefined || !goneLingers(pairings, sandboxId)) {
49
54
  return;
50
55
  }
51
- await setSandboxGone(first.sandboxId, undefined);
52
- await liftPauses(seams, pairings, ["gone"]);
53
- seams.say(`${first.sandboxId}: answers again, so it is not gone after all; its file sync is resumed and its ports come back with this pass.`);
56
+ const marked = pairings.some((pairing) => pairing.goneSince !== undefined);
57
+ if (marked) {
58
+ await setSandboxGone(first.sandboxId, undefined);
59
+ }
60
+ const { lifted, waiting } = await liftPauses(seams, pairings, ["gone"]);
61
+ if (marked) {
62
+ seams.say(`${first.sandboxId}: answers again, so it is not gone after all; ${waiting === 0 ? "its file sync is resumed" : "its file sync is resumed as soon as Mutagen takes it"} and its ports come back with this pass.`);
63
+ }
64
+ else if (lifted > 0) {
65
+ seams.say(`${first.sandboxId}: its file sync, held while it was said to be gone, is resumed.`);
66
+ }
54
67
  };
55
68
  export const localSlugsOf = (pairing) => [
56
69
  ...new Set([
@@ -108,7 +121,7 @@ export const checkContainers = async (seams, pairings, answering, { state = cont
108
121
  const followContainer = async (seams, sandbox, container, { answering, askIc }) => {
109
122
  const { sandboxId, held, docker } = sandbox;
110
123
  if (container === "serves") {
111
- if ((await liftPauses(seams, held, ["container-missing", "container-trashed"])) > 0) {
124
+ if ((await liftPauses(seams, held, ["container-missing", "container-trashed"])).lifted > 0) {
112
125
  seams.say(`${sandboxId}: ${sandbox.container} runs as this sandbox again; its file sync is resumed.`);
113
126
  }
114
127
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"gone-watch.js","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gone-watch.js","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAEH,gBAAgB,EAEhB,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,cAAc,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAuB,UAAU,EAAE,QAAQ,EAAqB,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClH,OAAO,EAAuB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAe/C,MAAM,MAAM,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAK/E,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAgB,EAAE,OAAgB,EAAE,MAAoB,EAAoB,EAAE;IAClG,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACvF,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAMF,MAAM,UAAU,GAAG,KAAK,EACpB,KAAgB,EAChB,QAA4B,EAC5B,OAAgC,EAC8B,EAAE;IAChE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QAEhI,IAAI,CAAC,CAAC,MAAM,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,CAAC;YACb,SAAS;QACb,CAAC;QAED,MAAM,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAA4B,EAAE,SAAiB,EAAW,EAAE,CACpF,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC;AAI7I,MAAM,UAAU,GAAG,KAAK,EAAE,SAAiB,EAAsB,EAAE,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AAKtJ,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,KAAgB,EAAE,SAAiB,EAAE,EAAe,EAAE,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE,EAAiB,EAAE;IACnI,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC3E,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5G,OAAO;IACX,CAAC;IACD,MAAM,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAE7B,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1G,KAAK,CAAC,GAAG,CACL,GAAG,KAAK,CAAC,SAAS,KAAK,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,gFAAgF,8KAA8K,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,iBAAiB,GAAG,CAClf,CAAC;AACN,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,KAAgB,EAAE,SAAiB,EAAiB,EAAE;IACxF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3D,OAAO;IACX,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC3E,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,IAAI,MAAM,EAAE,CAAC;QACT,KAAK,CAAC,GAAG,CACL,GAAG,KAAK,CAAC,SAAS,iDAAiD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,sDAAsD,0CAA0C,CACnN,CAAC;IACN,CAAC;SAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,iEAAiE,CAAC,CAAC;IACnG,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAA6D,EAAY,EAAE,CAAC;IACrG,GAAG,IAAI,GAAG,CAAC;QACP,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1I,CAAC;CACL,CAAC;AAGF,MAAM,SAAS,GAAG,CAAC,QAA4B,EAA0B,EAAE;IACvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAC9B,KAAgB,EAChB,QAA4B,EAC5B,KAA0B,EAC1B,IAAI,GAAkC,kBAAkB,EACxD,SAAS,GAAmC,GAAG,EAAE,CAAC,KAAK,EAC1C,EAAE;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;IACX,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;gBAExE,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;YAGD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC;gBAErD,MAAM,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAE5E,MAAM,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,KAAgB,EAChB,QAA4B,EAC5B,SAAyC,EACzC,EACI,KAAK,GAAG,cAAc,EACtB,IAAI,GAAG,kBAAkB,GAC5B,GAA8F,EAAE,EACpF,EAAE;IAEf,IAAI,KAA0C,CAAC;IAC/C,MAAM,KAAK,GAAG,KAAK,IAA6B,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5E,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAC5I,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YAElC,MAAM,eAAe,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;gBACrI,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;gBAC/B,KAAK;aACR,CAAC,CAAC;QACP,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAWF,MAAM,eAAe,GAAG,KAAK,EACzB,KAAgB,EAChB,OAAsB,EACtB,SAAyB,EACzB,EAAE,SAAS,EAAE,KAAK,EAAkF,EACvF,EAAE;IACf,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC5C,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzF,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,KAAK,OAAO,CAAC,SAAS,wDAAwD,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO;IACX,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,OAAO,GACT,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1H,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5G,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAClB,MAAM,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClC,KAAK,CAAC,GAAG,CACL,GAAG,SAAS,KAAK,OAAO,CAAC,SAAS,mFAAmF,MAAM,CAAC,UAAU,kEAAkE,CAC3M,CAAC;IACN,CAAC;SAAM,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC9D,MAAM,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClH,CAAC;AACL,CAAC,CAAC;AAGF,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAgB,EAAE,OAAsB,EAAE,MAAiD,EAAiB,EAAE;IAC3I,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAEjC,MAAM,IAAI,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACf,OAAO;IACX,CAAC;IACD,KAAK,CAAC,GAAG,CACL,MAAM,KAAK,mBAAmB;QAC1B,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,uJAAuJ;QAC7K,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,8HAA8H,CACjL,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Log } from "@intentic/local-agent";
2
+ import { type LowDiskPause, type Pairing } from "./config.js";
3
+ export declare const FLOOR_MIN_BYTES: number;
4
+ export declare const FLOOR_MAX_BYTES: number;
5
+ export declare const RESUME_MARGIN_BYTES: number;
6
+ export interface DiskReading {
7
+ readonly freeBytes: number;
8
+ readonly totalBytes: number;
9
+ }
10
+ export declare const diskFloor: (totalBytes: number) => number;
11
+ export type LowDiskStep = "pause" | "resume" | "hold" | "none";
12
+ export declare const lowDiskStep: (reading: DiskReading | undefined, paused: boolean) => LowDiskStep;
13
+ export declare const readDisk: (dir: string) => Promise<DiskReading | undefined>;
14
+ export declare const writesToDisk: (pairing: Pairing) => pairing is Pairing & {
15
+ readonly localDir: string;
16
+ };
17
+ export interface LowDiskSeams {
18
+ readonly read: (dir: string) => Promise<DiskReading | undefined>;
19
+ readonly pause: (pairing: Pairing) => readonly string[] | undefined;
20
+ readonly resume: (names: readonly string[]) => Promise<boolean>;
21
+ readonly resumeAll: (pairing: Pairing) => Promise<boolean>;
22
+ readonly record: (key: string, pause: LowDiskPause | undefined) => Promise<void>;
23
+ }
24
+ export declare const guardDisks: (mutagen: string, pairings: readonly Pairing[], tick: number, say: Log, seams?: LowDiskSeams) => Promise<ReadonlySet<string>>;
25
+ //# sourceMappingURL=low-disk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"low-disk.d.ts","sourceRoot":"","sources":["../../src/sync/low-disk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAoB,KAAK,YAAY,EAAE,KAAK,OAAO,EAAoD,MAAM,aAAa,CAAC;AAYlI,eAAO,MAAM,eAAe,QAAU,CAAC;AACvC,eAAO,MAAM,eAAe,QAAW,CAAC;AACxC,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAM3C,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,SAAS,eAAgB,MAAM,KAAG,MAAwF,CAAC;AAExI,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAK/D,eAAO,MAAM,WAAW,YAAa,WAAW,GAAG,SAAS,UAAU,OAAO,KAAG,WAS/E,CAAC;AAIF,eAAO,MAAM,QAAQ,QAAe,MAAM,KAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAY3E,CAAC;AAIF,eAAO,MAAM,YAAY,YAAa,OAAO,KAAG,OAAO,IAAI,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAIlB,CAAC;AAU/E,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAEpE,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpF;AAyDD,eAAO,MAAM,UAAU,YACV,MAAM,YACL,SAAS,OAAO,EAAE,QACtB,MAAM,OACP,GAAG,UACD,YAAY,KACpB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAS7B,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { statfs } from "node:fs/promises";
2
+ import { dirname } from "node:path";
3
+ import { errnoCode } from "@intentic/base/errors";
4
+ import { isProjectPairing, pairingKey, projectDirection, setFileSyncLowDisk } from "./config.js";
5
+ import { pauseRunningSessions, resumeNamedSessions, resumeWatcherPausedSync } from "./mutagen.js";
6
+ const GIB = 1024 ** 3;
7
+ const FLOOR_SHARE = 0.02;
8
+ export const FLOOR_MIN_BYTES = 5 * GIB;
9
+ export const FLOOR_MAX_BYTES = 20 * GIB;
10
+ export const RESUME_MARGIN_BYTES = 2 * GIB;
11
+ const REASSERT_EVERY_TICKS = 12;
12
+ export const diskFloor = (totalBytes) => Math.min(Math.max(totalBytes * FLOOR_SHARE, FLOOR_MIN_BYTES), FLOOR_MAX_BYTES);
13
+ export const lowDiskStep = (reading, paused) => {
14
+ if (reading === undefined) {
15
+ return paused ? "hold" : "none";
16
+ }
17
+ const floor = diskFloor(reading.totalBytes);
18
+ if (!paused) {
19
+ return reading.freeBytes < floor ? "pause" : "none";
20
+ }
21
+ return reading.freeBytes >= floor + RESUME_MARGIN_BYTES ? "resume" : "hold";
22
+ };
23
+ export const readDisk = async (dir) => {
24
+ for (let at = dir;; at = dirname(at)) {
25
+ try {
26
+ const stats = await statfs(at);
27
+ return { freeBytes: stats.bavail * stats.bsize, totalBytes: stats.blocks * stats.bsize };
28
+ }
29
+ catch (error) {
30
+ if (errnoCode(error) !== "ENOENT" || dirname(at) === at) {
31
+ return undefined;
32
+ }
33
+ }
34
+ }
35
+ };
36
+ export const writesToDisk = (pairing) => pairing.mode === "sync" &&
37
+ pairing.localDir !== undefined &&
38
+ pairing.projectsHost !== true &&
39
+ !(isProjectPairing(pairing) && projectDirection(pairing) === "to-sandbox");
40
+ const otherwiseHeld = (pairing) => pairing.fileSyncAutoPaused === true || pairing.fileSyncSwapPaused === true || pairing.fileSyncPausedFor !== undefined;
41
+ const gigabytes = (bytes) => `${(bytes / GIB).toFixed(1)} GB`;
42
+ const mutagenSeams = (mutagen) => ({
43
+ read: readDisk,
44
+ pause: (pairing) => pauseRunningSessions(mutagen, pairing),
45
+ resume: async (names) => await resumeNamedSessions(mutagen, names),
46
+ resumeAll: async (pairing) => await resumeWatcherPausedSync(mutagen, pairing),
47
+ record: setFileSyncLowDisk,
48
+ });
49
+ const guardOne = async (seams, pairing, tick, say) => {
50
+ const key = pairingKey(pairing);
51
+ const reading = await seams.read(pairing.localDir);
52
+ const held = pairing.fileSyncLowDisk;
53
+ const step = lowDiskStep(reading, held !== undefined);
54
+ if (step === "pause" && reading !== undefined) {
55
+ const paused = seams.pause(pairing) ?? [];
56
+ await seams.record(key, { since: Date.now(), ...reading, paused });
57
+ say(` ${key}: the drive holding ${pairing.localDir} has ${gigabytes(reading.freeBytes)} free, under its floor of ${gigabytes(diskFloor(reading.totalBytes))}; paused file sync and the git bridge until it has room again.`);
58
+ return true;
59
+ }
60
+ if (step === "resume" && reading !== undefined) {
61
+ const lifted = { ...pairing, fileSyncLowDisk: undefined };
62
+ const resumed = otherwiseHeld(lifted) || (held?.paused === undefined ? await seams.resumeAll(lifted) : await seams.resume(held.paused));
63
+ if (!resumed) {
64
+ say(` ${key}: the drive holding ${pairing.localDir} has room again, but Mutagen did not take the resume of its file sync; trying again.`);
65
+ return true;
66
+ }
67
+ await seams.record(key, undefined);
68
+ say(` ${key}: the drive holding ${pairing.localDir} has ${gigabytes(reading.freeBytes)} free again; file sync and the git bridge carry on.`);
69
+ return false;
70
+ }
71
+ if (step === "hold") {
72
+ if (tick % REASSERT_EVERY_TICKS === 0 && held !== undefined) {
73
+ const added = (seams.pause(pairing) ?? []).filter((name) => held.paused?.includes(name) !== true);
74
+ if (added.length > 0 && held.paused !== undefined) {
75
+ await seams.record(key, { ...held, paused: [...held.paused, ...added] });
76
+ }
77
+ }
78
+ return true;
79
+ }
80
+ return false;
81
+ };
82
+ export const guardDisks = async (mutagen, pairings, tick, say, seams = mutagenSeams(mutagen)) => {
83
+ const held = new Set();
84
+ for (const pairing of pairings.filter(writesToDisk)) {
85
+ if (await guardOne(seams, pairing, tick, say)) {
86
+ held.add(pairingKey(pairing));
87
+ }
88
+ }
89
+ return held;
90
+ };
91
+ //# sourceMappingURL=low-disk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"low-disk.js","sourceRoot":"","sources":["../../src/sync/low-disk.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Log } from "@intentic/local-agent";
2
2
  import { type PortSummary } from "@intentic/sandbox-contract/schemas/ports";
3
3
  import { type MirroredPort, type Pairing, type SkippedPort } from "./config.js";
4
+ import type { SwapRecord } from "../device/sandbox-rounds/swap-records.js";
4
5
  import { type PublishedPorts } from "./docker-ports.js";
5
6
  export declare const shouldAutoPauseFileSync: (unreachableForMs: number) => boolean;
6
7
  export declare const pollBackoffMs: (unreachableForMs: number) => number;
@@ -37,6 +38,7 @@ export declare const reportCarriers: <T extends {
37
38
  export declare const unpreparedSetups: (pairings: readonly Pairing[], prepared: ReadonlySet<string>) => Pairing[];
38
39
  export declare const markPrepared: (prepared: Set<string>, pairing: Pairing) => void;
39
40
  export declare const readyToPrepare: (setups: readonly Pairing[], firstCopyAhead: (pairing: Pairing) => boolean, announce: (pairing: Pairing) => Promise<boolean>) => Promise<Pairing[]>;
41
+ export declare const holdSyncDuringSwaps: (mutagen: string, pairings: readonly Pairing[], unreachable: ReadonlyMap<string, Unreachable>, say: Log, read?: () => Promise<readonly SwapRecord[]>) => Promise<ReadonlySet<string>>;
40
42
  export declare const pollingPairings: (pairings: readonly Pick<Pairing, "sandboxId" | "key">[]) => ReadonlySet<string>;
41
43
  export declare const WATCHER_STALL_MS: number;
42
44
  export declare const watcherStalled: (progress: number, now: number) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/sync/mirror.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/sync/mirror.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,15 @@ import { pairingEndpoint } from "./endpoint.js";
9
9
  import { runProcess, runProcessSync } from "./exec.js";
10
10
  import { candidateBases, createDaemonBases, dialedPairings } from "../daemon-base.js";
11
11
  import { answeredGone, goneStep, SandboxGoneError } from "./gone.js";
12
- import { checkContainers, checkKeptHere, sandboxAnswered, sandboxSaidGone } from "./gone-watch.js";
12
+ import { checkContainers, checkKeptHere, goneLingers, sandboxAnswered, sandboxSaidGone } from "./gone-watch.js";
13
13
  import { retireSandbox } from "./retire.js";
14
14
  import { readSwaps } from "../device/sandbox-rounds/ic-swaps.js";
15
15
  import { publishedPortsReader } from "./docker-ports.js";
16
16
  import { realBridgeExec, runGitBridge } from "./git-bridge.js";
17
- import { ensureMutagen, ensureSyncSession, existingSyncSessions, forwardedPorts, forwardSessionName, healDerivedConflicts, MUTAGEN_CALL_TIMEOUT_MS, mutagenForwardArgs, ourForwardSessions, pauseRunningSync, relabelBudget, retireOrphanSessions, resumeAutoPausedSync, resumeSwapPausedSync, runMutagenAsync, sayDaemonEventsTo, sessionLabels, syncMode, syncSessionNames, } from "./mutagen.js";
17
+ import { guardDisks } from "./low-disk.js";
18
+ import { ensureSyncSession, existingSyncSessions, forwardedPorts, forwardSessionName, healDerivedConflicts, MUTAGEN_CALL_TIMEOUT_MS, mutagenForwardArgs, ourForwardSessions, pauseRunningSync, relabelBudget, retireOrphanSessions, resumeAutoPausedSync, resumeSwapPausedSync, runMutagenAsync, sayDaemonEventsTo, sessionLabels, startMutagenDaemon, syncMode, syncSessionNames, } from "./mutagen.js";
19
+ import { ensureMutagen } from "./binary/mutagen-binary.js";
20
+ import { moveOffSharedMutagen } from "./mutagen-move.js";
18
21
  import { quieted } from "./repeats.js";
19
22
  import { deviceReport, scopedReport } from "./report.js";
20
23
  import { pairingSshConfig, writeManagedSshConfig } from "./ssh.js";
@@ -334,6 +337,39 @@ const pauseIfLongUnreachable = async (mutagen, pairing, unreachableForMs, log) =
334
337
  log(` ${pairingKey(pairing)}: unreachable for one hour; paused its Mutagen sessions to stop permanent reconnect/scanning load. They resume automatically when it returns.`);
335
338
  return true;
336
339
  };
340
+ const startBridge = (tracking, pairing, tick, say) => {
341
+ const id = pairing.sandboxId;
342
+ if (tracking.bridges.has(id)) {
343
+ return;
344
+ }
345
+ const stop = new AbortController();
346
+ const known = tick % REPO_LIST_EVERY_TICKS === 0 ? undefined : tracking.repos.get(id);
347
+ const done = guard(say, `${id}: git bridge`, async () => {
348
+ const listed = await runGitBridge(realBridgeExec, pairing, say, known, { signal: stop.signal });
349
+ if (listed === undefined) {
350
+ tracking.repos.delete(id);
351
+ }
352
+ else {
353
+ tracking.repos.set(id, listed);
354
+ }
355
+ }).then(() => {
356
+ if (tracking.bridges.get(id)?.stop === stop) {
357
+ tracking.bridges.delete(id);
358
+ }
359
+ });
360
+ tracking.bridges.set(id, { stop, done });
361
+ };
362
+ const stopBridge = (tracking, sandboxId) => {
363
+ tracking.bridges.get(sandboxId)?.stop.abort();
364
+ tracking.bridges.delete(sandboxId);
365
+ };
366
+ const stopBridges = (tracking, pairings) => {
367
+ for (const id of tracking.bridges.keys()) {
368
+ if (pairings === undefined || !pairings.some((held) => held.sandboxId === id)) {
369
+ stopBridge(tracking, id);
370
+ }
371
+ }
372
+ };
337
373
  const absorbPairingFailure = async (error, mutagen, pairing, tracking, fate, log) => {
338
374
  if (error instanceof SandboxGoneError) {
339
375
  await sandboxSaidGone(fate, pairing.sandboxId, "edge");
@@ -443,8 +479,8 @@ const retryPendingSessions = async (mutagen, pairings, sessionsPending, tick, re
443
479
  }
444
480
  }
445
481
  };
446
- const holdSyncDuringSwaps = async (mutagen, pairings, unreachable, say) => {
447
- const records = await readSwaps();
482
+ export const holdSyncDuringSwaps = async (mutagen, pairings, unreachable, say, read = readSwaps) => {
483
+ const records = await read();
448
484
  const now = Date.now();
449
485
  const held = new Set();
450
486
  for (const pairing of pairings) {
@@ -459,29 +495,34 @@ const holdSyncDuringSwaps = async (mutagen, pairings, unreachable, say) => {
459
495
  say(` ${pairingKey(pairing)}: its sandbox is being swapped on this machine; file sync is paused until the new version has held.`);
460
496
  }
461
497
  else if (step === "resume") {
462
- resumeSwapPausedSync(mutagen, pairing);
463
- await setFileSyncSwapPaused(pairingKey(pairing), false);
464
- say(` ${pairingKey(pairing)}: its sandbox's swap is settled; file sync resumed.`);
498
+ if (await resumeSwapPausedSync(mutagen, pairing)) {
499
+ await setFileSyncSwapPaused(pairingKey(pairing), false);
500
+ say(` ${pairingKey(pairing)}: its sandbox's swap is settled; file sync resumed.`);
501
+ }
502
+ else if (pairing.fileSyncLowDisk === undefined) {
503
+ say(` ${pairingKey(pairing)}: its sandbox's swap is settled, but Mutagen did not take the resume of its file sync; trying again.`);
504
+ }
465
505
  }
466
506
  }
467
507
  return held;
468
508
  };
469
509
  const runPairingPass = async (context, pairing, base) => {
470
510
  const { mutagen, tick, claimedBy, holding, tracking, bases, swapHeld, fate, say } = context;
471
- const { rejectedPolls, unreachable, repos } = tracking;
511
+ const { rejectedPolls, unreachable } = tracking;
472
512
  const swapping = swapHeld.has(pairing.sandboxId);
513
+ const short = context.diskHeld.has(pairingKey(pairing));
473
514
  let pausedThisPass = false;
474
515
  try {
475
516
  const mirrored = await servePairing(context, pairing, base);
476
517
  rejectedPolls.delete(pairing.sandboxId);
477
518
  unreachable.delete(pairing.sandboxId);
478
- if (context.pairings.some((held) => held.sandboxId === pairing.sandboxId && held.goneSince !== undefined)) {
519
+ if (goneLingers(context.pairings, pairing.sandboxId)) {
479
520
  await sandboxAnswered(fate, pairing.sandboxId);
480
521
  }
481
522
  if (context.pairings.some((held) => held.sandboxId === pairing.sandboxId && held.unreachableSince !== undefined)) {
482
523
  await setUnreachableSince(pairing.sandboxId, undefined);
483
524
  }
484
- if (!swapping && resumeAutoPausedSync(mutagen, pairing)) {
525
+ if (!swapping && !short && (await resumeAutoPausedSync(mutagen, pairing))) {
485
526
  await setFileSyncAutoPaused(pairingKey(pairing), false);
486
527
  say(` ${pairingKey(pairing)}: reachable again; resumed its automatically paused file sync`);
487
528
  }
@@ -504,23 +545,12 @@ const runPairingPass = async (context, pairing, base) => {
504
545
  pausedThisPass = outcome.paused;
505
546
  say(` ${pairingKey(pairing)}: reconcile skipped: ${errorMessage(error)}`);
506
547
  }
507
- if (pairing.fileSyncAutoPaused === true || pairing.fileSyncPausedFor !== undefined || pausedThisPass || swapping) {
548
+ if (pairing.fileSyncAutoPaused === true || pairing.fileSyncPausedFor !== undefined || pausedThisPass || swapping || short) {
549
+ stopBridge(tracking, pairing.sandboxId);
508
550
  return;
509
551
  }
510
552
  await healPairing(mutagen, pairing, tick, say);
511
- try {
512
- const known = tick % REPO_LIST_EVERY_TICKS === 0 ? undefined : repos.get(pairing.sandboxId);
513
- const listed = await runGitBridge(realBridgeExec, pairing, say, known);
514
- if (listed === undefined) {
515
- repos.delete(pairing.sandboxId);
516
- }
517
- else {
518
- repos.set(pairing.sandboxId, listed);
519
- }
520
- }
521
- catch (error) {
522
- say(` ${pairing.sandboxId}: git bridge skipped: ${errorMessage(error)}`);
523
- }
553
+ startBridge(tracking, pairing, tick, say);
524
554
  };
525
555
  export const pollingPairings = (pairings) => {
526
556
  const polling = new Set();
@@ -540,8 +570,9 @@ const followSandbox = async (context, pairing) => {
540
570
  }
541
571
  const down = tracking.unreachable.get(pairing.sandboxId)?.since ?? pairing.unreachableSince;
542
572
  const swapping = swapHeld.has(pairing.sandboxId);
573
+ const short = context.diskHeld.has(pairingKey(pairing));
543
574
  if (down === undefined) {
544
- if (!swapping && resumeAutoPausedSync(mutagen, pairing)) {
575
+ if (!swapping && !short && (await resumeAutoPausedSync(mutagen, pairing))) {
545
576
  await setFileSyncAutoPaused(pairingKey(pairing), false);
546
577
  say(` ${pairingKey(pairing)}: reachable again; resumed its automatically paused file sync`);
547
578
  }
@@ -549,7 +580,7 @@ const followSandbox = async (context, pairing) => {
549
580
  else if (await pauseIfLongUnreachable(mutagen, pairing, Date.now() - down, say)) {
550
581
  return;
551
582
  }
552
- if (pairing.fileSyncAutoPaused === true || swapping) {
583
+ if (pairing.fileSyncAutoPaused === true || swapping || short) {
553
584
  return;
554
585
  }
555
586
  await healPairing(mutagen, pairing, tick, say);
@@ -676,18 +707,29 @@ const startWatch = async (log, generation) => {
676
707
  const mutagen = await ensureMutagen();
677
708
  const say = quieted(log);
678
709
  sayDaemonEventsTo(say);
710
+ await guard(say, "moving off Mutagen's shared data directory", async () => await moveOffSharedMutagen(mutagen, say));
679
711
  const initial = await readState();
680
712
  if (initial.pairings.length === 0) {
681
713
  log("no sandboxes are paired: nothing to mirror. Enable it from a sandbox's Desktop sync card.");
682
714
  return undefined;
683
715
  }
716
+ if (!startMutagenDaemon(mutagen)) {
717
+ say("Mutagen's daemon did not start; trying again as the watcher asks after its sessions.");
718
+ }
684
719
  const sshConfig = pairingSshConfig(initial.pairings);
685
720
  await guard(say, "refreshing the ssh configuration", async () => await writeManagedSshConfig(sshConfig));
686
721
  const tunnels = createTunnelPool(say, generation.signal);
687
722
  generation.stopTransports = tunnels.stopAll;
688
723
  const bases = createDaemonBases(say);
689
724
  await guard(say, "opening the sync transports", async () => await tunnels.reconcile(tunnelTargets(await dialedPairings(initial.pairings, bases))));
690
- const tracking = { rejectedPolls: new Map(), unreachable: new Map(), repos: new Map(), sessionsPending: new Set() };
725
+ const tracking = {
726
+ rejectedPolls: new Map(),
727
+ unreachable: new Map(),
728
+ repos: new Map(),
729
+ sessionsPending: new Set(),
730
+ bridges: new Map(),
731
+ };
732
+ generation.signal.addEventListener("abort", () => stopBridges(tracking), { once: true });
691
733
  const reportUnsupported = new Set();
692
734
  const fate = { mutagen, releaseForwards: async (sandboxId) => await retirePairingMirror(mutagen, sandboxId), say };
693
735
  const gone = async (pairing) => await sandboxSaidGone(fate, pairing.sandboxId, "edge");
@@ -728,6 +770,7 @@ const watchTick = async (watch, tick) => {
728
770
  return "next";
729
771
  }
730
772
  if (state.pairings.length === 0) {
773
+ stopBridges(tracking);
731
774
  await watch.tunnels.stopAll();
732
775
  watch.log("no sandboxes are paired any more: sync stopping. Re-enable from a sandbox's Desktop sync card.");
733
776
  return "stop";
@@ -751,6 +794,11 @@ const watchTick = async (watch, tick) => {
751
794
  await guard(say, "holding file sync still during swaps", async () => {
752
795
  swapHeld = await holdSyncDuringSwaps(mutagen, state.pairings, tracking.unreachable, say);
753
796
  });
797
+ let diskHeld = new Set();
798
+ await guard(say, "measuring the drives synced folders are on", async () => {
799
+ diskHeld = await guardDisks(mutagen, state.pairings, tick, say);
800
+ });
801
+ stopBridges(tracking, state.pairings);
754
802
  const context = {
755
803
  mutagen,
756
804
  tick,
@@ -759,6 +807,7 @@ const watchTick = async (watch, tick) => {
759
807
  tracking,
760
808
  bases: watch.bases,
761
809
  swapHeld,
810
+ diskHeld,
762
811
  holders: watch.holders,
763
812
  fate,
764
813
  relabels,