@intentic/machine 1.330.0 → 1.332.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 (230) hide show
  1. package/README.md +56 -4
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +1 -1
  4. package/dist/app.js.map +1 -1
  5. package/dist/autostart/autostart.js +1 -1
  6. package/dist/autostart/autostart.js.map +1 -1
  7. package/dist/cli-ui.d.ts +10 -0
  8. package/dist/cli-ui.d.ts.map +1 -0
  9. package/dist/cli-ui.js +62 -0
  10. package/dist/cli-ui.js.map +1 -0
  11. package/dist/commands.d.ts.map +1 -1
  12. package/dist/commands.js +61 -26
  13. package/dist/commands.js.map +1 -1
  14. package/dist/daemon-base.d.ts +1 -0
  15. package/dist/daemon-base.d.ts.map +1 -1
  16. package/dist/daemon-base.js +21 -18
  17. package/dist/daemon-base.js.map +1 -1
  18. package/dist/device/audit.d.ts.map +1 -1
  19. package/dist/device/audit.js.map +1 -1
  20. package/dist/device/commands.d.ts +8 -6
  21. package/dist/device/commands.d.ts.map +1 -1
  22. package/dist/device/commands.js +64 -42
  23. package/dist/device/commands.js.map +1 -1
  24. package/dist/device/connection.d.ts.map +1 -1
  25. package/dist/device/connection.js +2 -3
  26. package/dist/device/connection.js.map +1 -1
  27. package/dist/device/grant.d.ts +7 -0
  28. package/dist/device/grant.d.ts.map +1 -1
  29. package/dist/device/loopback-catch.d.ts.map +1 -1
  30. package/dist/device/loopback-catch.js +1 -1
  31. package/dist/device/loopback-catch.js.map +1 -1
  32. package/dist/device/mcp.d.ts.map +1 -1
  33. package/dist/device/mcp.js +19 -0
  34. package/dist/device/mcp.js.map +1 -1
  35. package/dist/device/policy.d.ts.map +1 -1
  36. package/dist/device/policy.js +3 -5
  37. package/dist/device/policy.js.map +1 -1
  38. package/dist/device/router.d.ts +7 -0
  39. package/dist/device/router.d.ts.map +1 -1
  40. package/dist/device/router.js +17 -5
  41. package/dist/device/router.js.map +1 -1
  42. package/dist/device/sandbox-cli.d.ts +12 -1
  43. package/dist/device/sandbox-cli.d.ts.map +1 -1
  44. package/dist/device/sandbox-cli.js +90 -18
  45. package/dist/device/sandbox-cli.js.map +1 -1
  46. package/dist/device/sandbox-rounds/keeper.d.ts +28 -1
  47. package/dist/device/sandbox-rounds/keeper.d.ts.map +1 -1
  48. package/dist/device/sandbox-rounds/keeper.js +115 -18
  49. package/dist/device/sandbox-rounds/keeper.js.map +1 -1
  50. package/dist/device/sandbox-rounds/sleep.d.ts +52 -0
  51. package/dist/device/sandbox-rounds/sleep.d.ts.map +1 -0
  52. package/dist/device/sandbox-rounds/sleep.js +115 -0
  53. package/dist/device/sandbox-rounds/sleep.js.map +1 -0
  54. package/dist/device/tools/agent.js +1 -1
  55. package/dist/device/tools/agent.js.map +1 -1
  56. package/dist/device/tools/android.d.ts.map +1 -1
  57. package/dist/device/tools/android.js +7 -62
  58. package/dist/device/tools/android.js.map +1 -1
  59. package/dist/device/tools/describe.d.ts +6 -0
  60. package/dist/device/tools/describe.d.ts.map +1 -1
  61. package/dist/device/tools/describe.js +30 -9
  62. package/dist/device/tools/describe.js.map +1 -1
  63. package/dist/device/tools/ic-binary.d.ts +7 -0
  64. package/dist/device/tools/ic-binary.d.ts.map +1 -1
  65. package/dist/device/tools/ic-binary.js +16 -8
  66. package/dist/device/tools/ic-binary.js.map +1 -1
  67. package/dist/device/tools/logs/logs.d.ts +30 -0
  68. package/dist/device/tools/logs/logs.d.ts.map +1 -0
  69. package/dist/device/tools/logs/logs.js +147 -0
  70. package/dist/device/tools/logs/logs.js.map +1 -0
  71. package/dist/device/tools/programs/artifacts.d.ts.map +1 -1
  72. package/dist/device/tools/programs/artifacts.js +5 -10
  73. package/dist/device/tools/programs/artifacts.js.map +1 -1
  74. package/dist/device/tools/programs/{tunnel.d.ts → device-tunnel.d.ts} +1 -1
  75. package/dist/device/tools/programs/device-tunnel.d.ts.map +1 -0
  76. package/dist/device/tools/programs/{tunnel.js → device-tunnel.js} +1 -1
  77. package/dist/device/tools/programs/device-tunnel.js.map +1 -0
  78. package/dist/device/tools/programs/isolated.d.ts +0 -1
  79. package/dist/device/tools/programs/isolated.d.ts.map +1 -1
  80. package/dist/device/tools/programs/isolated.js +8 -10
  81. package/dist/device/tools/programs/isolated.js.map +1 -1
  82. package/dist/device/tools/programs/programs.d.ts.map +1 -1
  83. package/dist/device/tools/programs/programs.js +87 -35
  84. package/dist/device/tools/programs/programs.js.map +1 -1
  85. package/dist/device/tools/sandboxes.d.ts.map +1 -1
  86. package/dist/device/tools/sandboxes.js +11 -10
  87. package/dist/device/tools/sandboxes.js.map +1 -1
  88. package/dist/device/tools/shell.d.ts +3 -4
  89. package/dist/device/tools/shell.d.ts.map +1 -1
  90. package/dist/device/tools/shell.js +24 -86
  91. package/dist/device/tools/shell.js.map +1 -1
  92. package/dist/engine-env.d.ts +15 -0
  93. package/dist/engine-env.d.ts.map +1 -0
  94. package/dist/engine-env.js +80 -0
  95. package/dist/engine-env.js.map +1 -0
  96. package/dist/environments/commands.d.ts +7 -1
  97. package/dist/environments/commands.d.ts.map +1 -1
  98. package/dist/environments/commands.js +37 -31
  99. package/dist/environments/commands.js.map +1 -1
  100. package/dist/environments/machine-upgrade.d.ts +8 -1
  101. package/dist/environments/machine-upgrade.d.ts.map +1 -1
  102. package/dist/environments/machine-upgrade.js +35 -26
  103. package/dist/environments/machine-upgrade.js.map +1 -1
  104. package/dist/environments/machine.d.ts +5 -4
  105. package/dist/environments/machine.d.ts.map +1 -1
  106. package/dist/environments/machine.js +13 -16
  107. package/dist/environments/machine.js.map +1 -1
  108. package/dist/environments/wsl.d.ts.map +1 -1
  109. package/dist/environments/wsl.js +4 -7
  110. package/dist/environments/wsl.js.map +1 -1
  111. package/dist/install.d.ts.map +1 -1
  112. package/dist/install.js +28 -30
  113. package/dist/install.js.map +1 -1
  114. package/dist/resident/last-exit.d.ts +40 -0
  115. package/dist/resident/last-exit.d.ts.map +1 -0
  116. package/dist/resident/last-exit.js +147 -0
  117. package/dist/resident/last-exit.js.map +1 -0
  118. package/dist/resident/log-roll.d.ts +8 -0
  119. package/dist/resident/log-roll.d.ts.map +1 -0
  120. package/dist/resident/log-roll.js +30 -0
  121. package/dist/resident/log-roll.js.map +1 -0
  122. package/dist/{resident.d.ts → resident/resident.d.ts} +1 -1
  123. package/dist/resident/resident.d.ts.map +1 -0
  124. package/dist/{resident.js → resident/resident.js} +52 -27
  125. package/dist/resident/resident.js.map +1 -0
  126. package/dist/{supervision.d.ts → resident/supervision.d.ts} +7 -3
  127. package/dist/resident/supervision.d.ts.map +1 -0
  128. package/dist/{supervision.js → resident/supervision.js} +17 -14
  129. package/dist/resident/supervision.js.map +1 -0
  130. package/dist/resident/watchdog.d.ts +24 -0
  131. package/dist/resident/watchdog.d.ts.map +1 -0
  132. package/dist/resident/watchdog.js +69 -0
  133. package/dist/resident/watchdog.js.map +1 -0
  134. package/dist/status.d.ts +14 -8
  135. package/dist/status.d.ts.map +1 -1
  136. package/dist/status.js +141 -107
  137. package/dist/status.js.map +1 -1
  138. package/dist/sync/attach-commands.d.ts +1 -1
  139. package/dist/sync/attach-commands.d.ts.map +1 -1
  140. package/dist/sync/attach-commands.js +19 -12
  141. package/dist/sync/attach-commands.js.map +1 -1
  142. package/dist/sync/commands.d.ts +6 -3
  143. package/dist/sync/commands.d.ts.map +1 -1
  144. package/dist/sync/commands.js +149 -113
  145. package/dist/sync/commands.js.map +1 -1
  146. package/dist/sync/exec.d.ts +9 -0
  147. package/dist/sync/exec.d.ts.map +1 -1
  148. package/dist/sync/exec.js +21 -22
  149. package/dist/sync/exec.js.map +1 -1
  150. package/dist/sync/folders.d.ts.map +1 -1
  151. package/dist/sync/folders.js +3 -14
  152. package/dist/sync/folders.js.map +1 -1
  153. package/dist/sync/forget-command.d.ts +1 -1
  154. package/dist/sync/forget-command.d.ts.map +1 -1
  155. package/dist/sync/forget-command.js +10 -7
  156. package/dist/sync/forget-command.js.map +1 -1
  157. package/dist/sync/git-bridge.d.ts.map +1 -1
  158. package/dist/sync/git-bridge.js +4 -2
  159. package/dist/sync/git-bridge.js.map +1 -1
  160. package/dist/sync/local-sandboxes.d.ts.map +1 -1
  161. package/dist/sync/local-sandboxes.js +2 -4
  162. package/dist/sync/local-sandboxes.js.map +1 -1
  163. package/dist/sync/mirror.d.ts.map +1 -1
  164. package/dist/sync/mirror.js +7 -16
  165. package/dist/sync/mirror.js.map +1 -1
  166. package/dist/sync/mutagen.d.ts.map +1 -1
  167. package/dist/sync/mutagen.js +33 -37
  168. package/dist/sync/mutagen.js.map +1 -1
  169. package/dist/sync/project/project-commands.d.ts +7 -2
  170. package/dist/sync/project/project-commands.d.ts.map +1 -1
  171. package/dist/sync/project/project-commands.js +110 -46
  172. package/dist/sync/project/project-commands.js.map +1 -1
  173. package/dist/sync/project/project-files.d.ts +4 -6
  174. package/dist/sync/project/project-files.d.ts.map +1 -1
  175. package/dist/sync/project/project-files.js +4 -6
  176. package/dist/sync/project/project-files.js.map +1 -1
  177. package/dist/sync/project/project-local.d.ts.map +1 -1
  178. package/dist/sync/project/project-local.js +3 -19
  179. package/dist/sync/project/project-local.js.map +1 -1
  180. package/dist/sync/project/project-remote.js +4 -4
  181. package/dist/sync/project/project-transfer.d.ts +13 -30
  182. package/dist/sync/project/project-transfer.d.ts.map +1 -1
  183. package/dist/sync/project/project-transfer.js +1 -1
  184. package/dist/sync/project/project-transfer.js.map +1 -1
  185. package/dist/sync/retire.d.ts.map +1 -1
  186. package/dist/sync/retire.js +3 -3
  187. package/dist/sync/retire.js.map +1 -1
  188. package/dist/sync/siblings.d.ts.map +1 -1
  189. package/dist/sync/siblings.js +3 -6
  190. package/dist/sync/siblings.js.map +1 -1
  191. package/dist/sync/ssh.d.ts +1 -1
  192. package/dist/sync/ssh.d.ts.map +1 -1
  193. package/dist/sync/ssh.js +8 -7
  194. package/dist/sync/ssh.js.map +1 -1
  195. package/dist/sync/swap-pause.d.ts.map +1 -1
  196. package/dist/sync/swap-pause.js +2 -2
  197. package/dist/sync/swap-pause.js.map +1 -1
  198. package/dist/upgrade.d.ts +7 -0
  199. package/dist/upgrade.d.ts.map +1 -1
  200. package/dist/upgrade.js +24 -13
  201. package/dist/upgrade.js.map +1 -1
  202. package/dist/upkeep/doctor.d.ts +4 -2
  203. package/dist/upkeep/doctor.d.ts.map +1 -1
  204. package/dist/upkeep/doctor.js +40 -26
  205. package/dist/upkeep/doctor.js.map +1 -1
  206. package/dist/upkeep/login.js +1 -1
  207. package/dist/upkeep/login.js.map +1 -1
  208. package/dist/upkeep/retention.d.ts +6 -0
  209. package/dist/upkeep/retention.d.ts.map +1 -1
  210. package/dist/upkeep/retention.js +55 -3
  211. package/dist/upkeep/retention.js.map +1 -1
  212. package/dist/upkeep/retired.js +1 -1
  213. package/dist/upkeep/retired.js.map +1 -1
  214. package/dist/upkeep/second-ic.d.ts.map +1 -1
  215. package/dist/upkeep/second-ic.js +4 -6
  216. package/dist/upkeep/second-ic.js.map +1 -1
  217. package/dist/upkeep/trash.d.ts.map +1 -1
  218. package/dist/upkeep/trash.js +5 -6
  219. package/dist/upkeep/trash.js.map +1 -1
  220. package/package.json +9 -9
  221. package/dist/device/tools/programs/tunnel.d.ts.map +0 -1
  222. package/dist/device/tools/programs/tunnel.js.map +0 -1
  223. package/dist/resident.d.ts.map +0 -1
  224. package/dist/resident.js.map +0 -1
  225. package/dist/supervision.d.ts.map +0 -1
  226. package/dist/supervision.js.map +0 -1
  227. package/dist/watchdog.d.ts +0 -13
  228. package/dist/watchdog.d.ts.map +0 -1
  229. package/dist/watchdog.js +0 -38
  230. package/dist/watchdog.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join, win32 } from "node:path";
3
+ import { STATE_DIR } from "@intentic/constants";
4
+ import { homeDir } from "@intentic/local-agent";
5
+ const delimiter = win32.delimiter;
6
+ const VARS = ["DOCKER_HOST", "DOCKER_TLS_VERIFY", "DOCKER_CERT_PATH"];
7
+ export const activeEngine = (text) => {
8
+ if (text === undefined) {
9
+ return undefined;
10
+ }
11
+ let record;
12
+ try {
13
+ record = JSON.parse(text);
14
+ }
15
+ catch {
16
+ return undefined;
17
+ }
18
+ if (typeof record !== "object" || record === null) {
19
+ return undefined;
20
+ }
21
+ const fields = record;
22
+ if (fields["engine"] !== "intentic" || fields["active"] === false) {
23
+ return undefined;
24
+ }
25
+ const { host, certPath, bin, pipe } = fields;
26
+ if (typeof host !== "string" || typeof certPath !== "string" || typeof bin !== "string") {
27
+ return undefined;
28
+ }
29
+ return typeof pipe === "string" ? { host, certPath, bin, pipe } : { host, certPath, bin };
30
+ };
31
+ export const pipePath = (host) => {
32
+ const leaf = host.startsWith("npipe:////./pipe/") ? host.slice("npipe:////./pipe/".length) : "";
33
+ return leaf !== "" && !/[\\/]/.test(leaf) ? `\\\\.\\pipe\\${leaf}` : undefined;
34
+ };
35
+ export const endpointOf = (record, present) => {
36
+ const path = record.pipe === undefined ? undefined : pipePath(record.pipe);
37
+ return record.pipe !== undefined && path !== undefined && present(path) ? { host: record.pipe, tls: false } : { host: record.host, tls: true };
38
+ };
39
+ export const engineEnvChanges = (env, record, ours, present = () => false) => {
40
+ if (record === undefined) {
41
+ if (ours === undefined || env["DOCKER_HOST"] !== ours) {
42
+ return {};
43
+ }
44
+ return Object.fromEntries(VARS.map((name) => [name, undefined]));
45
+ }
46
+ const path = env["PATH"] ?? env["Path"] ?? "";
47
+ const first = path.split(delimiter)[0];
48
+ const endpoint = endpointOf(record, present);
49
+ return {
50
+ DOCKER_HOST: endpoint.host,
51
+ DOCKER_TLS_VERIFY: endpoint.tls ? "1" : undefined,
52
+ DOCKER_CERT_PATH: endpoint.tls ? record.certPath : undefined,
53
+ ...(first === record.bin ? {} : { PATH: [record.bin, path].filter((part) => part !== "").join(delimiter) }),
54
+ };
55
+ };
56
+ let pointedAt;
57
+ export const syncEngineEnv = (env = process.env, home = homeDir()) => {
58
+ if (process.platform !== "win32") {
59
+ return;
60
+ }
61
+ let text;
62
+ try {
63
+ text = readFileSync(join(home, STATE_DIR, "engine", "engine.json"), "utf8");
64
+ }
65
+ catch {
66
+ text = undefined;
67
+ }
68
+ const record = activeEngine(text);
69
+ const changes = engineEnvChanges(env, record, pointedAt, existsSync);
70
+ for (const [name, value] of Object.entries(changes)) {
71
+ if (value === undefined) {
72
+ delete env[name];
73
+ }
74
+ else {
75
+ env[name] = value;
76
+ }
77
+ }
78
+ pointedAt = record === undefined ? undefined : changes["DOCKER_HOST"];
79
+ };
80
+ //# sourceMappingURL=engine-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-env.js","sourceRoot":"","sources":["../src/engine-env.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Log } from "@intentic/local-agent";
1
+ import { type Footnote, type Item, type Log } from "@intentic/local-agent";
2
2
  import { type CommandContext } from "@stricli/core";
3
3
  import { type MachineConfig } from "./machine.js";
4
4
  export declare const environmentRoutes: import("@stricli/core").RouteMap<CommandContext>;
@@ -11,4 +11,10 @@ export interface UpdatesFlags {
11
11
  }
12
12
  export declare const withSwitches: (config: MachineConfig, flags: UpdatesFlags) => MachineConfig;
13
13
  export declare const updates: import("@stricli/core").Command<CommandContext>;
14
+ interface SwitchRow {
15
+ readonly item: Item;
16
+ readonly later: Footnote;
17
+ }
18
+ export declare const switchRows: (config: MachineConfig) => readonly SwitchRow[];
19
+ export {};
14
20
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/environments/commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGjF,OAAO,EAAe,KAAK,aAAa,EAAgF,MAAM,cAAc,CAAC;AA8B7I,eAAO,MAAM,iBAAiB,kDAG5B,CAAC;AAMH,eAAO,MAAM,mBAAmB,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAiBhE,CAAC;AASF,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CAChC;AASD,eAAO,MAAM,YAAY,WAAY,aAAa,SAAS,YAAY,KAAG,aAoBzE,CAAC;AASF,eAAO,MAAM,OAAO,iDA6DlB,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/environments/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAInE,OAAO,EAA8B,KAAK,aAAa,EAAkE,MAAM,cAAc,CAAC;AA8B9I,eAAO,MAAM,iBAAiB,kDAG5B,CAAC;AAMH,eAAO,MAAM,mBAAmB,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAiBhE,CAAC;AASF,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CAChC;AASD,eAAO,MAAM,YAAY,WAAY,aAAa,SAAS,YAAY,KAAG,aAoBzE,CAAC;AASF,eAAO,MAAM,OAAO,iDAgDlB,CAAC;AAGH,UAAU,SAAS;IACf,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC5B;AAQD,eAAO,MAAM,UAAU,WAAY,aAAa,KAAG,SAAS,SAAS,EAKpE,CAAC"}
@@ -1,31 +1,33 @@
1
- import { execFile } from "node:child_process";
2
- import { promisify } from "node:util";
3
- import { buildCommand, buildRouteMap } from "@stricli/core";
4
- import { ensureResident } from "../resident.js";
1
+ import { execBounded } from "@intentic/base/process";
2
+ import { explain } from "@intentic/local-agent";
3
+ import { buildRouteMap } from "@stricli/core";
4
+ import { buildCommand, machineUi } from "../cli-ui.js";
5
+ import { ensureResident } from "../resident/resident.js";
5
6
  import { listDistros, WINDOWS_SIDE } from "./wsl.js";
6
- import { heldDistros, readMachineConfig, runOnWindows, updateMachineConfig, windowsRoot, withChild } from "./machine.js";
7
- const exec = promisify(execFile);
7
+ import { handToWindows, heldDistros, readMachineConfig, updateMachineConfig, windowsRoot, withChild } from "./machine.js";
8
8
  const attach = buildCommand({
9
9
  docs: { brief: "Keep a WSL distro's agent running from this PC's Windows side (the distro's own agent asks for this)" },
10
10
  parameters: {
11
11
  positional: { kind: "tuple", parameters: [{ brief: "The distro, as `wsl -l` names it", parse: String, placeholder: "distro" }] },
12
12
  },
13
13
  async func(_flags, distro) {
14
- const out = (message) => void this.process.stdout.write(`${message}\n`);
14
+ const ui = machineUi(this.process);
15
+ const failed = `${distro} is not kept running from here.`;
15
16
  if (!WINDOWS_SIDE) {
16
- throw new Error("only the Windows side of a PC keeps its distros running.");
17
+ throw new Error(explain(failed, "only the Windows side of a device keeps its WSL distros running."));
17
18
  }
19
+ ui.act(`Keeping ${distro} running from this side`);
18
20
  const listed = await listDistros();
19
21
  if (listed === undefined) {
20
- throw new Error("wsl.exe could not be asked which distros this PC has.");
22
+ throw new Error(explain(failed, "wsl.exe could not be asked which distros this device has."));
21
23
  }
22
24
  if (!listed.includes(distro)) {
23
- throw new Error(`WSL has no distro called "${distro}"; it lists ${listed.join(", ") || "none"}.`);
25
+ throw new Error(explain(failed, `WSL has no distro called ${distro}; it lists ${listed.join(", ") || "none"}.`));
24
26
  }
25
27
  const before = await heldDistros();
26
28
  await updateMachineConfig((config) => withChild(config, distro));
27
- await ensureResident(out);
28
- out(before.includes(distro) ? `${distro} is already kept running from here.` : `${distro}'s agent is kept running from here now.`);
29
+ await ensureResident(ui.note);
30
+ ui.done(before.includes(distro) ? `${distro} is already kept running from here.` : `${distro}'s agent is kept running from here now.`);
29
31
  },
30
32
  });
31
33
  export const environmentRoutes = buildRouteMap({
@@ -40,7 +42,7 @@ export const adoptRunningDistros = async (log) => {
40
42
  const held = await heldDistros();
41
43
  const running = ((await listDistros({ running: true })) ?? []).filter((distro) => !held.includes(distro));
42
44
  for (const distro of running) {
43
- const has = await exec("wsl.exe", ["-d", distro, "--exec", "sh", "-c", HAS_RESIDENT_SH], { timeout: 30_000, windowsHide: true })
45
+ const has = await execBounded("wsl.exe", ["-d", distro, "--exec", "sh", "-c", HAS_RESIDENT_SH], { timeoutMs: 30_000 })
44
46
  .then(() => true)
45
47
  .catch(() => false);
46
48
  if (has) {
@@ -53,7 +55,7 @@ const onOff = (value) => {
53
55
  if (value === "on" || value === "off") {
54
56
  return value;
55
57
  }
56
- throw new Error(`"${value}" is not on or off.`);
58
+ throw new Error(`${value} is not on or off.`);
57
59
  };
58
60
  const switchedTo = (flag, stored) => flag === undefined ? stored : flag === "on" ? undefined : false;
59
61
  export const withSwitches = (config, flags) => {
@@ -83,7 +85,7 @@ const updatesArgs = (flags) => ["agent", "sandboxes", "backups", "tidy"].flatMap
83
85
  });
84
86
  export const updates = buildCommand({
85
87
  docs: {
86
- brief: "What this machine does by itself: update its agent (the whole PC at once), download each sandbox's next image, back each sandbox up daily and tidy what swaps leave behind",
88
+ brief: "What this device does by itself: update its agent (the whole PC at once), download each sandbox's next image, back each sandbox up daily and tidy what swaps leave behind",
87
89
  },
88
90
  parameters: {
89
91
  flags: {
@@ -98,7 +100,7 @@ export const updates = buildCommand({
98
100
  kind: "parsed",
99
101
  parse: onOff,
100
102
  optional: true,
101
- brief: "Back each sandbox up once a day, encrypted, on this machine (on by default)",
103
+ brief: "Back each sandbox up once a day, encrypted, on this device (on by default)",
102
104
  },
103
105
  tidy: {
104
106
  kind: "parsed",
@@ -109,30 +111,34 @@ export const updates = buildCommand({
109
111
  },
110
112
  },
111
113
  async func(flags) {
112
- const out = (message) => void this.process.stdout.write(`${message}\n`);
113
114
  const root = await windowsRoot();
114
115
  if (root !== undefined) {
115
- if (runOnWindows(root, ["updates", ...updatesArgs(flags)], { inherit: true }).status !== 0) {
116
- throw new Error("the Windows side's agent did not take that; run it there: intentic-machine updates");
116
+ if (handToWindows(root, ["updates", ...updatesArgs(flags)]) !== 0) {
117
+ process.exitCode = 1;
117
118
  }
118
119
  return;
119
120
  }
121
+ const ui = machineUi(this.process);
120
122
  if (updatesArgs(flags).length > 0) {
123
+ ui.act("Changing what this device does by itself");
121
124
  await updateMachineConfig((config) => withSwitches(config, flags));
125
+ ui.done("Saved. Each switch applies from the agent's next pass.");
122
126
  }
123
127
  const config = await readMachineConfig();
124
- out(config.agentUpdates === false
125
- ? "Agent: updated only when asked (`intentic-machine upgrade`, or Update on the sandbox's Devices tab). Turn it back on with --agent on."
126
- : "Agent: updated by itself when a release is published, the whole PC at once. Turn it off with --agent off.");
127
- out(config.sandboxUpdates === false
128
- ? "Sandboxes: each update downloads when you take it, a wait of minutes. Turn background downloads back on with --sandboxes on."
129
- : "Sandboxes: each one's next update is downloaded in the background, so applying it is a restart of about half a minute, which a sandbox takes by itself at a quiet moment unless its update card says otherwise. Turn the downloads off with --sandboxes off.");
130
- out(config.sandboxBackups === false
131
- ? "Backups: none are taken by themselves. Turn the daily backup back on with --backups on."
132
- : "Backups: each running sandbox is backed up once a day, encrypted, on this machine (`intentic-machine sandbox backups <slug>` lists them). Turn it off with --backups off.");
133
- out(config.sandboxTidy === false
134
- ? "Tidy: what swaps and removals leave behind stays until you run `ic sandbox tidy`. Turn the daily tidy back on with --tidy on."
135
- : "Tidy: once a day, images no sandbox can go back to, records of removed sandboxes and the trash past its week are cleared; volumes are only listed, never deleted. Turn it off with --tidy off.");
128
+ ui.report("intentic · what this device does by itself");
129
+ const rows = switchRows(config);
130
+ ui.items(rows.map((row) => row.item));
131
+ ui.later(rows.map((row) => row.later));
136
132
  },
137
133
  });
134
+ const switchRow = (name, on, saidOn, saidOff) => ({
135
+ item: { tone: on ? "ok" : "skip", name, meta: on ? saidOn : saidOff },
136
+ later: [`turn ${name} ${on ? "off" : "on"}`, `intentic-machine updates --${name} ${on ? "off" : "on"}`],
137
+ });
138
+ export const switchRows = (config) => [
139
+ switchRow("agent", config.agentUpdates !== false, "updated by itself, the whole device at once", "updated only when asked"),
140
+ switchRow("sandboxes", config.sandboxUpdates !== false, "each next update downloads in the background", "each update downloads when it is taken"),
141
+ switchRow("backups", config.sandboxBackups !== false, "each running sandbox daily, encrypted, on this device", "none taken by themselves"),
142
+ switchRow("tidy", config.sandboxTidy !== false, "daily: old images, removed sandboxes' records, week-old trash", "left until tidied by hand"),
143
+ ];
138
144
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/environments/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/environments/commands.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,14 @@ export interface MachineUpgradeAsk {
22
22
  readonly force: boolean;
23
23
  readonly level: boolean;
24
24
  }
25
- export declare const upgradeMachine: (io: MachineIo, ask: MachineUpgradeAsk, log: Log) => Promise<boolean>;
25
+ export interface MachineUpgradeEnd {
26
+ readonly landed: boolean;
27
+ readonly said: string;
28
+ readonly outcome?: UpgradeOutcome;
29
+ readonly legsFailed: readonly string[];
30
+ readonly delegated?: true;
31
+ }
32
+ export declare const upgradeMachine: (io: MachineIo, ask: MachineUpgradeAsk, log: Log, end?: (ending: MachineUpgradeEnd) => void) => Promise<boolean>;
26
33
  export declare const realMachineIo: (ask: MachineUpgradeAsk, log: Log) => MachineIo;
27
34
  export declare const upgradeHereToMachine: (log: Log) => Promise<UpgradeOutcome>;
28
35
  export declare const launchUpgrade: (level: boolean) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"machine-upgrade.d.ts","sourceRoot":"","sources":["../../src/environments/machine-upgrade.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,GAAG,EAAiC,MAAM,uBAAuB,CAAC;AAO9F,OAAO,EAA+B,KAAK,cAAc,EAAiC,MAAM,eAAe,CAAC;AAGhH,OAAO,EAAe,KAAK,aAAa,EAAqE,MAAM,cAAc,CAAC;AAOlI,eAAO,MAAM,WAAW,6BAA6B,CAAC;AAGtD,eAAO,MAAM,aAAa,cAAe,MAAM,GAAG,SAAS,aAAa,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KAAG,MAAM,GAAG,SAGe,CAAC;AA4BnI,eAAO,MAAM,cAAc,WAAY,aAAa,UAAU,MAAM,SAAS,OAAO,KAAG,MAAM,GAAG,SAO/F,CAAC;AAKF,eAAO,MAAM,WAAW,WAAkB,MAAM,SAAS,OAAO,OAAO,GAAG,KAAG,OAAO,CAAC,cAAc,CAe7F,CAAC;AAGP,eAAO,MAAM,WAAW,WAAkB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAI5E,CAAC;AAkCF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAGD,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B;AAkCD,eAAO,MAAM,cAAc,OAAc,SAAS,OAAO,iBAAiB,OAAO,GAAG,KAAG,OAAO,CAAC,OAAO,CAYrG,CAAC;AAcF,eAAO,MAAM,aAAa,QAAS,iBAAiB,OAAO,GAAG,KAAG,SAW/D,CAAC;AAaH,eAAO,MAAM,oBAAoB,QAAe,GAAG,KAAG,OAAO,CAAC,cAAc,CAI3E,CAAC;AAGF,eAAO,MAAM,aAAa,UAAiB,OAAO,KAAG,OAAO,CAAC,IAAI,CAEhE,CAAC"}
1
+ {"version":3,"file":"machine-upgrade.d.ts","sourceRoot":"","sources":["../../src/environments/machine-upgrade.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,GAAG,EAAiC,MAAM,uBAAuB,CAAC;AAO9F,OAAO,EAA+B,KAAK,cAAc,EAAiC,MAAM,eAAe,CAAC;AAGhH,OAAO,EAA8B,KAAK,aAAa,EAAqE,MAAM,cAAc,CAAC;AAKjJ,eAAO,MAAM,WAAW,6BAA6B,CAAC;AAGtD,eAAO,MAAM,aAAa,cAAe,MAAM,GAAG,SAAS,aAAa,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KAAG,MAAM,GAAG,SAGe,CAAC;AA4BnI,eAAO,MAAM,cAAc,WAAY,aAAa,UAAU,MAAM,SAAS,OAAO,KAAG,MAAM,GAAG,SAO/F,CAAC;AAKF,eAAO,MAAM,WAAW,WAAkB,MAAM,SAAS,OAAO,OAAO,GAAG,KAAG,OAAO,CAAC,cAAc,CAe7F,CAAC;AAGP,eAAO,MAAM,WAAW,WAAkB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAI5E,CAAC;AAkCF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAGD,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B;AAMD,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC7B;AA+BD,eAAO,MAAM,cAAc,OACnB,SAAS,OACR,iBAAiB,OACjB,GAAG,QACH,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,KACzC,OAAO,CAAC,OAAO,CAIjB,CAAC;AAiCF,eAAO,MAAM,aAAa,QAAS,iBAAiB,OAAO,GAAG,KAAG,SAW/D,CAAC;AAaH,eAAO,MAAM,oBAAoB,QAAe,GAAG,KAAG,OAAO,CAAC,cAAc,CAI3E,CAAC;AAGF,eAAO,MAAM,aAAa,UAAiB,OAAO,KAAG,OAAO,CAAC,IAAI,CAEhE,CAAC"}
@@ -1,18 +1,17 @@
1
- import { execFile, spawn } from "node:child_process";
2
- import { promisify } from "node:util";
1
+ import { spawn } from "node:child_process";
3
2
  import { pollUntil } from "@intentic/base/async";
3
+ import { execBounded } from "@intentic/base/process";
4
4
  import { claimPidFile, releasePidFile, spawnDetached } from "@intentic/local-agent";
5
5
  import { DEV_VERSION, isNewer } from "@intentic/sandbox-contract";
6
6
  import { rollBackIfCrashLooping } from "../agent-trial.js";
7
7
  import { agentLogPath, binDir, upgradeLockPath } from "../config.js";
8
8
  import { installedBuild } from "../installed.js";
9
9
  import { publishedVersion } from "../release.js";
10
- import { machineLauncher, readResident, restartResident, waitOutSwaps } from "../supervision.js";
10
+ import { machineLauncher, readResident, restartResident, waitOutSwaps } from "../resident/supervision.js";
11
11
  import { realUpgradeExec, runUpgrade, upgradeLanded, upgradeMessage } from "../upgrade.js";
12
12
  import { MACHINE_VERSION } from "../version.js";
13
13
  import { agentInDistro, crossEnv, NO_AGENT_EXIT } from "./crossing.js";
14
- import { heldDistros, readMachineConfig, runOnWindows, updateMachineConfig, windowsRoot } from "./machine.js";
15
- const exec = promisify(execFile);
14
+ import { handToWindows, heldDistros, readMachineConfig, runOnWindows, updateMachineConfig, windowsRoot } from "./machine.js";
16
15
  export const UPGRADE_ENV = "INTENTIC_MACHINE_UPGRADE";
17
16
  export const machineTarget = (published, installed) => [published, ...installed]
18
17
  .filter((version) => version !== undefined && version !== DEV_VERSION)
@@ -45,25 +44,25 @@ export const skippedRefusal = (config, target, force) => {
45
44
  return undefined;
46
45
  }
47
46
  const utcDay = new Date(skipped.at).toISOString().slice(0, 10);
48
- return `the agent ${target} kept stopping on this machine and was rolled back on ${utcDay} (UTC), so it is skipped until a newer release is published (\`intentic-machine upgrade --force\` installs it anyway).`;
47
+ return `the agent ${target} kept stopping on this device and was rolled back on ${utcDay} (UTC), so it is skipped until a newer release is published.`;
49
48
  };
50
49
  export const upgradeHere = async (target, force, log) => await withUpgradeLock(log, async () => {
51
50
  await rollBackIfCrashLooping(log);
52
51
  const refused = skippedRefusal(await readMachineConfig().catch(() => ({})), target, force);
53
52
  if (refused !== undefined) {
54
- return { kind: "failed", reason: refused };
53
+ return { kind: "failed", reason: refused, fix: "intentic-machine upgrade --force" };
55
54
  }
56
55
  const running = async () => (await readResident())?.build;
57
56
  const restart = async () => {
58
57
  await waitOutSwaps(log);
59
- await restartResident(() => undefined);
58
+ await restartResident(() => undefined, { reason: "update", detail: `for the update to ${target}` });
60
59
  return await running();
61
60
  };
62
61
  return await runUpgrade(realUpgradeExec(restart, running, log), target, installedBuild() ?? MACHINE_VERSION, force, log);
63
62
  });
64
63
  export const installedIn = async (distro) => {
65
64
  const { command, args } = agentInDistro(distro, ["version"]);
66
- const answer = await exec(command, [...args], { timeout: 60_000, windowsHide: true }).catch(() => undefined);
65
+ const answer = await execBounded(command, [...args], { timeoutMs: 60_000 }).catch(() => undefined);
67
66
  return /^\d+\.\d+\.\d+$/.exec(answer?.stdout.trim() ?? "")?.[0];
68
67
  };
69
68
  const upgradeIn = async (distro, target, force, log) => await new Promise((resolve) => {
@@ -100,34 +99,44 @@ const upgradeFromRoot = async (io, ask, log) => {
100
99
  const [published, ...theirs] = await Promise.all([ask.level ? Promise.resolve(undefined) : io.published(), ...children.map(io.installedIn)]);
101
100
  const target = machineTarget(published, [io.installedHere(), ...theirs]);
102
101
  if (target === undefined) {
103
- log(ask.level
104
- ? "Nothing to level: no side of this machine runs a released agent."
105
- : "Upgrade didn't happen: couldn't reach the release channel, nothing was changed.");
106
- return ask.level;
102
+ return ask.level
103
+ ? { landed: true, said: "Nothing to level: no side of this device runs a released agent.", legsFailed: [] }
104
+ : { landed: false, said: "The release channel did not answer, so nothing was changed.", legsFailed: [] };
107
105
  }
108
106
  if (children.length > 0) {
109
- log(`Bringing this PC to ${target}: ${[...children, "this side"].join(", ")}.`);
107
+ log(`Bringing every side of this device to ${target}: ${[...children, "this side"].join(", ")}.`);
110
108
  }
111
- const legs = [];
109
+ const legsFailed = [];
112
110
  for (const child of children) {
113
- legs.push(await io.upgradeIn(child, target));
111
+ if (!(await io.upgradeIn(child, target))) {
112
+ legsFailed.push(child);
113
+ }
114
114
  }
115
115
  const here = await io.upgradeHere(target);
116
- log(upgradeMessage(here));
117
- const landed = legs.every(Boolean) && upgradeLanded(here);
116
+ const landed = legsFailed.length === 0 && upgradeLanded(here);
118
117
  await io.recorded(landed ? undefined : target);
119
- return landed;
118
+ return { landed, said: upgradeMessage(here), outcome: here, legsFailed };
119
+ };
120
+ export const upgradeMachine = async (io, ask, log, end = (ending) => log(ending.said)) => {
121
+ const ending = await machineUpgradeEnding(io, ask, log);
122
+ end(ending);
123
+ return ending.landed;
120
124
  };
121
- export const upgradeMachine = async (io, ask, log) => {
125
+ const machineUpgradeEnding = async (io, ask, log) => {
122
126
  if (io.leg !== undefined) {
123
127
  const outcome = await io.upgradeHere(io.leg);
124
- log(upgradeMessage(outcome));
125
- return upgradeLanded(outcome);
128
+ return { landed: upgradeLanded(outcome), said: upgradeMessage(outcome), outcome, legsFailed: [] };
126
129
  }
127
130
  const root = await io.windowsRoot();
128
131
  if (root !== undefined) {
129
- log("This is a WSL distro: the whole PC is upgraded from its Windows side.");
130
- return io.delegate(root, ["upgrade", ...askArgs(ask)]) === 0;
132
+ log("This is a WSL distro: the whole device is updated from its Windows side.");
133
+ const landed = io.delegate(root, ["upgrade", ...askArgs(ask)]) === 0;
134
+ return {
135
+ landed,
136
+ said: landed ? "Updated the agent from the Windows side." : "The Windows side did not finish the update.",
137
+ legsFailed: [],
138
+ delegated: true,
139
+ };
131
140
  }
132
141
  return await upgradeFromRoot(io, ask, log);
133
142
  };
@@ -144,7 +153,7 @@ const recordFailure = async (failedTarget) => {
144
153
  export const realMachineIo = (ask, log) => ({
145
154
  leg: process.env[UPGRADE_ENV],
146
155
  windowsRoot,
147
- delegate: (agent, args) => runOnWindows(agent, args, { inherit: true }).status,
156
+ delegate: (agent, args) => handToWindows(agent, args),
148
157
  children: heldDistros,
149
158
  published: publishedVersion,
150
159
  installedHere: installedBuild,
@@ -156,7 +165,7 @@ export const realMachineIo = (ask, log) => ({
156
165
  const siblingVersions = async () => {
157
166
  const root = await windowsRoot();
158
167
  if (root !== undefined) {
159
- const answer = runOnWindows(root, ["version"]);
168
+ const answer = await runOnWindows(root, ["version"]);
160
169
  return [answer.status === 0 ? /^\d+\.\d+\.\d+$/.exec(answer.output)?.[0] : undefined];
161
170
  }
162
171
  return await Promise.all((await heldDistros()).map(installedIn));
@@ -1 +1 @@
1
- {"version":3,"file":"machine-upgrade.js","sourceRoot":"","sources":["../../src/environments/machine-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAY,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,UAAU,EAAuB,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,WAAW,EAAsB,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIlI,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAGjC,MAAM,CAAC,MAAM,WAAW,GAAG,0BAA0B,CAAC;AAGtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAA6B,EAAE,SAA0C,EAAsB,EAAE,CAC3H,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC;KACpB,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,WAAW,CAAC;KACxF,MAAM,CAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAGnI,MAAM,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC;AACjC,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B,MAAM,eAAe,GAAG,KAAK,EAAE,GAAQ,EAAE,GAAkC,EAA2B,EAAE;IACpG,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,KAAK,IAAsB,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,qDAAqD,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACnD,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,CAAC,CAAC;IACF,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,MAAM,0BAA0B,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACP,MAAM,cAAc,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAqB,EAAE,MAAc,EAAE,KAAc,EAAsB,EAAE;IACxG,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;IACpC,IAAI,KAAK,IAAI,OAAO,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,aAAa,MAAM,yDAAyD,MAAM,wHAAwH,CAAC;AACtN,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,MAAc,EAAE,KAAc,EAAE,GAAQ,EAA2B,EAAE,CACnG,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1G,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,IAAiC,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC;IACvF,MAAM,OAAO,GAAG,KAAK,IAAiC,EAAE;QACpD,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,MAAM,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC;IACF,OAAO,MAAM,UAAU,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7H,CAAC,CAAC,CAAC;AAGP,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,MAAc,EAA+B,EAAE;IAC7E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7G,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAGF,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAE,MAAc,EAAE,KAAc,EAAE,GAAQ,EAAoB,EAAE,CACnG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QACpC,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,CAAC,KAAa,EAAQ,EAAE;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK;aACnB,QAAQ,CAAC,MAAM,CAAC;aAChB,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1B,GAAG,CAAC,MAAM,MAAM,2CAA2C,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,MAAM,8DAA8D,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,aAAa,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAsBP,MAAM,OAAO,GAAG,CAAC,GAAsB,EAAqB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAGtI,MAAM,eAAe,GAAG,KAAK,EAAE,EAAa,EAAE,GAAsB,EAAE,GAAQ,EAAoB,EAAE;IAChG,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7I,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAEzE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,GAAG,CACC,GAAG,CAAC,KAAK;YACL,CAAC,CAAC,kEAAkE;YACpE,CAAC,CAAC,iFAAiF,CAC1F,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC;IACrB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,uBAAuB,MAAM,KAAK,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EAAa,EAAE,GAAsB,EAAE,GAAQ,EAAoB,EAAE;IACtG,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7C,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,uEAAuE,CAAC,CAAC;QAC7E,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC,CAAC;AAGF,MAAM,aAAa,GAAG,KAAK,EAAE,YAAgC,EAAiB,EAAE;IAC5E,MAAM,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;QACjC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACrD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAsB,EAAE,GAAQ,EAAa,EAAE,CAAC,CAAC;IAC3E,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC7B,WAAW;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM;IAC9E,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,gBAAgB;IAC3B,aAAa,EAAE,cAAc;IAC7B,WAAW;IACX,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;IACpF,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;IACxE,QAAQ,EAAE,aAAa;CAC1B,CAAC,CAAC;AAGH,MAAM,eAAe,GAAG,KAAK,IAA8C,EAAE;IACzE,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAQ,EAA2B,EAAE;IAC5E,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IACxE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3I,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAc,EAAiB,EAAE;IACjE,MAAM,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzH,CAAC,CAAC"}
1
+ {"version":3,"file":"machine-upgrade.js","sourceRoot":"","sources":["../../src/environments/machine-upgrade.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export interface MachineConfig {
8
8
  readonly sandboxBackups?: boolean;
9
9
  readonly sandboxTidy?: boolean;
10
10
  readonly sandboxKeeper?: boolean;
11
+ readonly sandboxSleepMinutes?: number;
11
12
  readonly upgradeFailure?: {
12
13
  readonly target: string;
13
14
  readonly count: number;
@@ -25,13 +26,13 @@ export declare const heldDistros: () => Promise<readonly string[]>;
25
26
  export declare const withChild: (config: MachineConfig, distro: string) => MachineConfig;
26
27
  export declare const withoutChild: (config: MachineConfig, distro: string) => MachineConfig;
27
28
  export declare const windowsRoot: () => Promise<string | undefined>;
28
- export declare const runOnWindows: (agent: string, args: readonly string[], { vars, inherit }?: {
29
+ export declare const runOnWindows: (agent: string, args: readonly string[], { vars }?: {
29
30
  readonly vars?: Readonly<Record<string, string>>;
30
- readonly inherit?: boolean;
31
- }) => {
31
+ }) => Promise<{
32
32
  readonly status: number;
33
33
  readonly output: string;
34
- };
34
+ }>;
35
+ export declare const handToWindows: (agent: string, args: readonly string[]) => number;
35
36
  export declare const attachArgs: (distro: string) => readonly string[];
36
37
  export declare const attachToWindows: (log: (message: string) => void) => Promise<boolean>;
37
38
  //# sourceMappingURL=machine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../src/environments/machine.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,cAAc,gCAAgC,CAAC;AAC5D,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,mBAAmB,SAAS,MAAM,CAAC,UAAU,KAAiB,OAAqD,CAAC;AAOjI,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnG,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAGD,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,aAAa,CAQ/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAkB,CAAC,MAAM,EAAE,aAAa,KAAK,aAAa,KAAG,OAAO,CAAC,aAAa,CAIjH,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,aAAa,KAAG,SAAS,MAAM,EAA2B,CAAC;AAG9F,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,SAAS,MAAM,EAAE,CAAgE,CAAC;AAE/H,eAAO,MAAM,SAAS,WAAY,aAAa,UAAU,MAAM,KAAG,aACoD,CAAC;AAEvH,eAAO,MAAM,YAAY,WAAY,aAAa,UAAU,MAAM,KAAG,aAIpE,CAAC;AA4BF,eAAO,MAAM,WAAW,QAAO,OAAO,CAAC,MAAM,GAAG,SAAS,CAShD,CAAC;AAGV,eAAO,MAAM,YAAY,UACd,MAAM,QACP,SAAS,MAAM,EAAE,sBACS;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KACjH;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CASpD,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,MAAM,KAAG,SAAS,MAAM,EAAuC,CAAC;AAGnG,eAAO,MAAM,eAAe,QAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAG,OAAO,CAAC,OAAO,CAWrF,CAAC"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../src/environments/machine.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,cAAc,gCAAgC,CAAC;AAC5D,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,mBAAmB,SAAS,MAAM,CAAC,UAAU,KAAiB,OAAqD,CAAC;AAOjI,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAGjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnG,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAGD,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,aAAa,CAQ/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAkB,CAAC,MAAM,EAAE,aAAa,KAAK,aAAa,KAAG,OAAO,CAAC,aAAa,CAIjH,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,aAAa,KAAG,SAAS,MAAM,EAA2B,CAAC;AAG9F,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,SAAS,MAAM,EAAE,CAAgE,CAAC;AAE/H,eAAO,MAAM,SAAS,WAAY,aAAa,UAAU,MAAM,KAAG,aACoD,CAAC;AAEvH,eAAO,MAAM,YAAY,WAAY,aAAa,UAAU,MAAM,KAAG,aAIpE,CAAC;AA4BF,eAAO,MAAM,WAAW,QAAO,OAAO,CAAC,MAAM,GAAG,SAAS,CAShD,CAAC;AAaV,eAAO,MAAM,YAAY,UACd,MAAM,QACP,SAAS,MAAM,EAAE,aACR;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,KACpE,OAAO,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAG9D,CAAC;AAKF,eAAO,MAAM,aAAa,UAAW,MAAM,QAAQ,SAAS,MAAM,EAAE,KAAG,MAEnD,CAAC;AAErB,eAAO,MAAM,UAAU,WAAY,MAAM,KAAG,SAAS,MAAM,EAAuC,CAAC;AAGnG,eAAO,MAAM,eAAe,QAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAG,OAAO,CAAC,OAAO,CAWrF,CAAC"}
@@ -1,15 +1,14 @@
1
- import { execFile, spawnSync } from "node:child_process";
1
+ import { spawnSync } from "node:child_process";
2
2
  import { existsSync } from "node:fs";
3
3
  import { readFile } from "node:fs/promises";
4
4
  import { posix } from "node:path";
5
- import { promisify } from "node:util";
5
+ import { execBounded, runBounded } from "@intentic/base/process";
6
6
  import { STATE_DIR } from "@intentic/constants";
7
7
  import { writeSecretFile } from "@intentic/local-agent";
8
8
  import { wslPathOf } from "@intentic/sandbox-contract";
9
9
  import { baseDir, machineConfigPath } from "../config.js";
10
10
  import { registeredDistro, WINDOWS_SIDE } from "./wsl.js";
11
11
  import { crossEnv } from "./crossing.js";
12
- const exec = promisify(execFile);
13
12
  export const SUPERVISOR_ENV = "INTENTIC_MACHINE_SUPERVISOR";
14
13
  export const WINDOWS_SUPERVISOR = "windows";
15
14
  export const supervisedByWindows = (env = process.env) => env[SUPERVISOR_ENV] === WINDOWS_SUPERVISOR;
@@ -40,7 +39,7 @@ const interopCwd = () => (existsSync(INTEROP_CWD) ? INTEROP_CWD : undefined);
40
39
  const CMD_EXE = ["cmd.exe", "/mnt/c/Windows/System32/cmd.exe"];
41
40
  const windowsProfile = async () => {
42
41
  for (const cmd of CMD_EXE) {
43
- const answer = await exec(cmd, ["/c", "echo %USERPROFILE%"], { timeout: 10_000, cwd: interopCwd() }).catch(() => undefined);
42
+ const answer = await execBounded(cmd, ["/c", "echo %USERPROFILE%"], { timeoutMs: 10_000, cwd: interopCwd() }).catch(() => undefined);
44
43
  const profile = answer?.stdout.trim();
45
44
  if (profile !== undefined && /^[A-Za-z]:\\/.test(profile)) {
46
45
  return profile;
@@ -49,7 +48,7 @@ const windowsProfile = async () => {
49
48
  return undefined;
50
49
  };
51
50
  const linuxPathOf = async (windowsPath) => {
52
- const answer = await exec("wslpath", ["-u", windowsPath], { timeout: 5_000 }).catch(() => undefined);
51
+ const answer = await execBounded("wslpath", ["-u", windowsPath], { timeoutMs: 5_000 }).catch(() => undefined);
53
52
  const mapped = answer?.stdout.trim();
54
53
  return mapped === undefined || mapped === "" ? wslPathOf(windowsPath) : mapped;
55
54
  };
@@ -63,25 +62,23 @@ export const windowsRoot = () => (root ??= (async () => {
63
62
  const agent = home === undefined ? undefined : posix.join(home, STATE_DIR, "machine", "bin", "intentic-machine.exe");
64
63
  return agent !== undefined && existsSync(agent) ? agent : undefined;
65
64
  })());
66
- export const runOnWindows = (agent, args, { vars = {}, inherit = false } = {}) => {
67
- const result = spawnSync(agent, [...args], {
68
- cwd: interopCwd(),
69
- env: crossEnv(vars, "w"),
70
- encoding: "utf8",
71
- stdio: inherit ? "inherit" : "pipe",
72
- windowsHide: true,
73
- });
74
- return { status: result.status ?? 1, output: `${result.stdout ?? ""}${result.stderr ?? ""}`.trim() };
65
+ const WINDOWS_ASK_TIMEOUT_MS = 60_000;
66
+ const WINDOWS_HANDOFF_TIMEOUT_MS = 30 * 60_000;
67
+ export const runOnWindows = async (agent, args, { vars = {} } = {}) => {
68
+ const result = await runBounded(agent, args, { cwd: interopCwd(), env: crossEnv(vars, "w"), timeoutMs: WINDOWS_ASK_TIMEOUT_MS });
69
+ return { status: result.exitCode ?? 1, output: `${result.stdout.text}${result.stderr.text}`.trim() };
75
70
  };
71
+ export const handToWindows = (agent, args) => spawnSync(agent, [...args], { cwd: interopCwd(), env: crossEnv({}, "w"), stdio: "inherit", windowsHide: true, timeout: WINDOWS_HANDOFF_TIMEOUT_MS })
72
+ .status ?? 1;
76
73
  export const attachArgs = (distro) => ["environment", "attach", distro];
77
74
  export const attachToWindows = async (log) => {
78
75
  const [agent, distro] = await Promise.all([windowsRoot(), registeredDistro()]);
79
76
  if (agent === undefined || distro === undefined) {
80
77
  return false;
81
78
  }
82
- const attached = runOnWindows(agent, attachArgs(distro));
79
+ const attached = await runOnWindows(agent, attachArgs(distro));
83
80
  if (attached.status !== 0) {
84
- log(`note: the Windows side's agent would not take this distro over (${attached.output.split("\n")[0] ?? "no reason given"}); this distro starts its own.`);
81
+ log(`The Windows side's agent would not take this distro over (${attached.output.split("\n")[0] ?? "no reason given"}); this distro starts its own.`);
85
82
  return false;
86
83
  }
87
84
  return true;