@intentic/machine 1.304.0 → 1.306.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 (148) hide show
  1. package/README.md +111 -52
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +2 -5
  4. package/dist/app.js.map +1 -1
  5. package/dist/commands.d.ts +1 -9
  6. package/dist/commands.d.ts.map +1 -1
  7. package/dist/commands.js +41 -27
  8. package/dist/commands.js.map +1 -1
  9. package/dist/config.d.ts +3 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +3 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/daemon-base.d.ts +4 -3
  14. package/dist/daemon-base.d.ts.map +1 -1
  15. package/dist/daemon-base.js.map +1 -1
  16. package/dist/device/auto-prepare.js +3 -3
  17. package/dist/device/auto-prepare.js.map +1 -1
  18. package/dist/device/commands.d.ts +2 -1
  19. package/dist/device/commands.d.ts.map +1 -1
  20. package/dist/device/commands.js +48 -30
  21. package/dist/device/commands.js.map +1 -1
  22. package/dist/device/config.d.ts +17 -12
  23. package/dist/device/config.d.ts.map +1 -1
  24. package/dist/device/config.js +29 -17
  25. package/dist/device/config.js.map +1 -1
  26. package/dist/device/connection.d.ts +3 -1
  27. package/dist/device/connection.d.ts.map +1 -1
  28. package/dist/device/connection.js +7 -3
  29. package/dist/device/connection.js.map +1 -1
  30. package/dist/device/mcp.js.map +1 -1
  31. package/dist/device/policy.d.ts +4 -4
  32. package/dist/device/policy.d.ts.map +1 -1
  33. package/dist/device/policy.js.map +1 -1
  34. package/dist/device/router.d.ts +76 -3
  35. package/dist/device/router.d.ts.map +1 -1
  36. package/dist/device/router.js +12 -4
  37. package/dist/device/router.js.map +1 -1
  38. package/dist/device/tools/agent.d.ts +3 -3
  39. package/dist/device/tools/agent.d.ts.map +1 -1
  40. package/dist/device/tools/agent.js +25 -11
  41. package/dist/device/tools/agent.js.map +1 -1
  42. package/dist/device/tools/apps.d.ts +6 -6
  43. package/dist/device/tools/apps.d.ts.map +1 -1
  44. package/dist/device/tools/apps.js.map +1 -1
  45. package/dist/device/tools/browser.d.ts +9 -9
  46. package/dist/device/tools/browser.d.ts.map +1 -1
  47. package/dist/device/tools/browser.js.map +1 -1
  48. package/dist/device/tools/describe.d.ts +5 -3
  49. package/dist/device/tools/describe.d.ts.map +1 -1
  50. package/dist/device/tools/describe.js +19 -2
  51. package/dist/device/tools/describe.js.map +1 -1
  52. package/dist/device/tools/device.d.ts +2 -2
  53. package/dist/device/tools/device.d.ts.map +1 -1
  54. package/dist/device/tools/device.js.map +1 -1
  55. package/dist/device/tools/files.d.ts +5 -5
  56. package/dist/device/tools/files.d.ts.map +1 -1
  57. package/dist/device/tools/files.js.map +1 -1
  58. package/dist/device/tools/sandboxes.d.ts +16 -11
  59. package/dist/device/tools/sandboxes.d.ts.map +1 -1
  60. package/dist/device/tools/sandboxes.js +36 -54
  61. package/dist/device/tools/sandboxes.js.map +1 -1
  62. package/dist/device/tools/shell.d.ts +2 -24
  63. package/dist/device/tools/shell.d.ts.map +1 -1
  64. package/dist/device/tools/shell.js +2 -53
  65. package/dist/device/tools/shell.js.map +1 -1
  66. package/dist/environments/auto-upgrade.d.ts +20 -0
  67. package/dist/environments/auto-upgrade.d.ts.map +1 -0
  68. package/dist/environments/auto-upgrade.js +77 -0
  69. package/dist/environments/auto-upgrade.js.map +1 -0
  70. package/dist/environments/children.d.ts +27 -0
  71. package/dist/environments/children.d.ts.map +1 -0
  72. package/dist/environments/children.js +106 -0
  73. package/dist/environments/children.js.map +1 -0
  74. package/dist/environments/commands.d.ts +12 -0
  75. package/dist/environments/commands.d.ts.map +1 -0
  76. package/dist/environments/commands.js +102 -0
  77. package/dist/environments/commands.js.map +1 -0
  78. package/dist/environments/crossing.d.ts +31 -0
  79. package/dist/environments/crossing.d.ts.map +1 -0
  80. package/dist/environments/crossing.js +64 -0
  81. package/dist/environments/crossing.js.map +1 -0
  82. package/dist/environments/machine-upgrade.d.ts +26 -0
  83. package/dist/environments/machine-upgrade.d.ts.map +1 -0
  84. package/dist/environments/machine-upgrade.js +153 -0
  85. package/dist/environments/machine-upgrade.js.map +1 -0
  86. package/dist/environments/machine.d.ts +29 -0
  87. package/dist/environments/machine.d.ts.map +1 -0
  88. package/dist/environments/machine.js +88 -0
  89. package/dist/environments/machine.js.map +1 -0
  90. package/dist/install.d.ts +4 -6
  91. package/dist/install.d.ts.map +1 -1
  92. package/dist/install.js +35 -47
  93. package/dist/install.js.map +1 -1
  94. package/dist/installed.d.ts +1 -1
  95. package/dist/installed.d.ts.map +1 -1
  96. package/dist/installed.js +3 -8
  97. package/dist/installed.js.map +1 -1
  98. package/dist/release.d.ts +27 -0
  99. package/dist/release.d.ts.map +1 -0
  100. package/dist/release.js +132 -0
  101. package/dist/release.js.map +1 -0
  102. package/dist/resident.d.ts +12 -6
  103. package/dist/resident.d.ts.map +1 -1
  104. package/dist/resident.js +163 -84
  105. package/dist/resident.js.map +1 -1
  106. package/dist/status.d.ts +3 -2
  107. package/dist/status.d.ts.map +1 -1
  108. package/dist/status.js +21 -7
  109. package/dist/status.js.map +1 -1
  110. package/dist/supervision.d.ts +11 -0
  111. package/dist/supervision.d.ts.map +1 -0
  112. package/dist/supervision.js +98 -0
  113. package/dist/supervision.js.map +1 -0
  114. package/dist/sync/commands.d.ts.map +1 -1
  115. package/dist/sync/commands.js +7 -5
  116. package/dist/sync/commands.js.map +1 -1
  117. package/dist/sync/config.d.ts +0 -1
  118. package/dist/sync/config.d.ts.map +1 -1
  119. package/dist/sync/config.js +0 -1
  120. package/dist/sync/config.js.map +1 -1
  121. package/dist/sync/mirror.d.ts +1 -2
  122. package/dist/sync/mirror.d.ts.map +1 -1
  123. package/dist/sync/mirror.js +2 -3
  124. package/dist/sync/mirror.js.map +1 -1
  125. package/dist/sync/mutagen.d.ts +0 -8
  126. package/dist/sync/mutagen.d.ts.map +1 -1
  127. package/dist/sync/mutagen.js +12 -80
  128. package/dist/sync/mutagen.js.map +1 -1
  129. package/dist/sync/report.d.ts +2 -0
  130. package/dist/sync/report.d.ts.map +1 -1
  131. package/dist/sync/report.js +4 -2
  132. package/dist/sync/report.js.map +1 -1
  133. package/dist/sync/residue.d.ts.map +1 -1
  134. package/dist/sync/residue.js +8 -0
  135. package/dist/sync/residue.js.map +1 -1
  136. package/dist/upgrade.d.ts +7 -16
  137. package/dist/upgrade.d.ts.map +1 -1
  138. package/dist/upgrade.js +93 -116
  139. package/dist/upgrade.js.map +1 -1
  140. package/dist/wsl.d.ts +6 -0
  141. package/dist/wsl.d.ts.map +1 -1
  142. package/dist/wsl.js +23 -2
  143. package/dist/wsl.js.map +1 -1
  144. package/package.json +12 -12
  145. package/dist/device/testing.d.ts +0 -10
  146. package/dist/device/testing.d.ts.map +0 -1
  147. package/dist/device/testing.js +0 -51
  148. package/dist/device/testing.js.map +0 -1
@@ -0,0 +1,88 @@
1
+ import { execFile, spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { readFile } from "node:fs/promises";
4
+ import { posix } from "node:path";
5
+ import { promisify } from "node:util";
6
+ import { STATE_DIR } from "@intentic/constants";
7
+ import { writeSecretFile } from "@intentic/local-agent";
8
+ import { wslPathOf } from "@intentic/sandbox-contract";
9
+ import { baseDir, machineConfigPath } from "../config.js";
10
+ import { registeredDistro } from "../wsl.js";
11
+ import { crossEnv } from "./crossing.js";
12
+ const exec = promisify(execFile);
13
+ export const SUPERVISOR_ENV = "INTENTIC_MACHINE_SUPERVISOR";
14
+ export const WINDOWS_SUPERVISOR = "windows";
15
+ export const supervisedByWindows = (env = process.env) => env[SUPERVISOR_ENV] === WINDOWS_SUPERVISOR;
16
+ export const readMachineConfig = async () => {
17
+ const raw = await readFile(machineConfigPath, "utf8").catch((error) => {
18
+ if (error.code === "ENOENT") {
19
+ return undefined;
20
+ }
21
+ throw error;
22
+ });
23
+ return raw === undefined ? {} : JSON.parse(raw);
24
+ };
25
+ export const updateMachineConfig = async (mutate) => {
26
+ const next = mutate(await readMachineConfig());
27
+ await writeSecretFile(machineConfigPath, baseDir, JSON.stringify(next, undefined, 2));
28
+ return next;
29
+ };
30
+ export const childrenOf = (config) => config.children ?? [];
31
+ export const withChild = (config, distro) => childrenOf(config).includes(distro) ? config : { ...config, children: [...childrenOf(config), distro].toSorted() };
32
+ export const withoutChild = (config, distro) => {
33
+ const children = childrenOf(config).filter((held) => held !== distro);
34
+ const { children: _gone, ...rest } = config;
35
+ return children.length === 0 ? rest : { ...rest, children };
36
+ };
37
+ const INTEROP_CWD = "/mnt/c";
38
+ const interopCwd = () => (existsSync(INTEROP_CWD) ? INTEROP_CWD : undefined);
39
+ const CMD_EXE = ["cmd.exe", "/mnt/c/Windows/System32/cmd.exe"];
40
+ const windowsProfile = async () => {
41
+ for (const cmd of CMD_EXE) {
42
+ const answer = await exec(cmd, ["/c", "echo %USERPROFILE%"], { timeout: 10_000, cwd: interopCwd() }).catch(() => undefined);
43
+ const profile = answer?.stdout.trim();
44
+ if (profile !== undefined && /^[A-Za-z]:\\/.test(profile)) {
45
+ return profile;
46
+ }
47
+ }
48
+ return undefined;
49
+ };
50
+ const linuxPathOf = async (windowsPath) => {
51
+ const answer = await exec("wslpath", ["-u", windowsPath], { timeout: 5_000 }).catch(() => undefined);
52
+ const mapped = answer?.stdout.trim();
53
+ return mapped === undefined || mapped === "" ? wslPathOf(windowsPath) : mapped;
54
+ };
55
+ let root;
56
+ export const windowsRoot = () => (root ??= (async () => {
57
+ if ((await registeredDistro()) === undefined) {
58
+ return undefined;
59
+ }
60
+ const profile = await windowsProfile();
61
+ const home = profile === undefined ? undefined : await linuxPathOf(profile);
62
+ const agent = home === undefined ? undefined : posix.join(home, STATE_DIR, "machine", "bin", "intentic-machine.exe");
63
+ return agent !== undefined && existsSync(agent) ? agent : undefined;
64
+ })());
65
+ export const runOnWindows = (agent, args, { vars = {}, inherit = false } = {}) => {
66
+ const result = spawnSync(agent, [...args], {
67
+ cwd: interopCwd(),
68
+ env: crossEnv(vars, "w"),
69
+ encoding: "utf8",
70
+ stdio: inherit ? "inherit" : "pipe",
71
+ windowsHide: true,
72
+ });
73
+ return { status: result.status ?? 1, output: `${result.stdout ?? ""}${result.stderr ?? ""}`.trim() };
74
+ };
75
+ export const attachArgs = (distro) => ["environment", "attach", distro];
76
+ export const attachToWindows = async (log) => {
77
+ const [agent, distro] = await Promise.all([windowsRoot(), registeredDistro()]);
78
+ if (agent === undefined || distro === undefined) {
79
+ return false;
80
+ }
81
+ const attached = runOnWindows(agent, attachArgs(distro));
82
+ if (attached.status !== 0) {
83
+ 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.`);
84
+ return false;
85
+ }
86
+ return true;
87
+ };
88
+ //# sourceMappingURL=machine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine.js","sourceRoot":"","sources":["../../src/environments/machine.ts"],"names":[],"mappings":"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"}
package/dist/install.d.ts CHANGED
@@ -1,16 +1,14 @@
1
1
  import { type Log } from "@intentic/local-agent";
2
- import { type UpgradeExec, type UpgradeOutcome } from "./upgrade.js";
3
- export declare const SELF_UPDATE_GUARD_ENV = "INTENTIC_MACHINE_NO_SELF_UPDATE";
4
- export declare const machineUpgradeExec: (out: Log) => UpgradeExec;
2
+ import { type UpgradeOutcome } from "./upgrade.js";
5
3
  export interface SelfUpdateIo {
6
4
  readonly installed: string;
7
- readonly installedAgent: () => Promise<boolean>;
5
+ readonly installedAgent: () => boolean;
8
6
  readonly upgrade: () => Promise<UpgradeOutcome>;
9
- readonly reexec: (args: readonly string[]) => never;
7
+ readonly reexec: (args: readonly string[], version: string) => never;
10
8
  }
11
9
  export declare const selfUpdateBeforeSetup: (io: SelfUpdateIo, env: Record<string, string | undefined>, args: readonly string[], out: Log) => Promise<void>;
12
10
  export declare const realSelfUpdateIo: (out: Log) => SelfUpdateIo;
13
11
  export declare const addToWindowsPathValue: (stored: string, folder: string) => string | undefined;
14
- export declare const ensureWindowsLauncher: (out: Log) => Promise<void>;
15
12
  export declare const prepareSetup: (out: Log, args: readonly string[]) => Promise<void>;
13
+ export declare const completeSetup: (out: Log) => Promise<void>;
16
14
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAuB,MAAM,uBAAuB,CAAC;AAMtE,OAAO,EAAyC,KAAK,WAAW,EAAE,KAAK,cAAc,EAAkB,MAAM,cAAc,CAAC;AAU5H,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AAkBvE,eAAO,MAAM,kBAAkB,QAAS,GAAG,KAAG,WAAqF,CAAC;AAYpI,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,KAAK,CAAC;CACvD;AAMD,eAAO,MAAM,qBAAqB,OAC1B,YAAY,OACX,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,QACjC,SAAS,MAAM,EAAE,OAClB,GAAG,KACT,OAAO,CAAC,IAAI,CAmBd,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,GAAG,KAAG,YAY1C,CAAC;AAwBH,eAAO,MAAM,qBAAqB,WAAY,MAAM,UAAU,MAAM,KAAG,MAAM,GAAG,SAM/E,CAAC;AAoDF,eAAO,MAAM,qBAAqB,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAmBlE,CAAC;AAIF,eAAO,MAAM,YAAY,QAAe,GAAG,QAAQ,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAWlF,CAAC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAiB,MAAM,uBAAuB,CAAC;AAQhE,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,cAAc,CAAC;AAOnE,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;CACxE;AAID,eAAO,MAAM,qBAAqB,OAC1B,YAAY,OACX,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,QACjC,SAAS,MAAM,EAAE,OAClB,GAAG,KACT,OAAO,CAAC,IAAI,CAYd,CAAC;AASF,eAAO,MAAM,gBAAgB,QAAS,GAAG,KAAG,YAQ1C,CAAC;AAwBH,eAAO,MAAM,qBAAqB,WAAY,MAAM,UAAU,MAAM,KAAG,MAAM,GAAG,SAM/E,CAAC;AAsEF,eAAO,MAAM,YAAY,QAAe,GAAG,QAAQ,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAWlF,CAAC;AAIF,eAAO,MAAM,aAAa,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAS1D,CAAC"}
package/dist/install.js CHANGED
@@ -1,60 +1,43 @@
1
1
  import { spawnSync } from "node:child_process";
2
- import { mkdir, realpath, rename, rm, symlink } from "node:fs/promises";
2
+ import { existsSync } from "node:fs";
3
+ import { mkdir, rename, rm, symlink } from "node:fs/promises";
3
4
  import { homedir } from "node:os";
4
5
  import { join } from "node:path";
5
- import { pollUntil } from "@intentic/base/async";
6
6
  import { errorMessage } from "@intentic/base/errors";
7
- import { WINDOWS_LAUNCH_STUB } from "@intentic/local-agent";
7
+ import { spawnDetached } from "@intentic/local-agent";
8
8
  import { DEV_VERSION } from "@intentic/sandbox-contract";
9
- import { agentPath } from "./installed.js";
10
- import { readResidentBuild, readResidentPid, reconcileResidency, stopResident } from "./resident.js";
11
- import { binDir } from "./sync/config.js";
12
- import { archToken, download } from "./sync/mutagen.js";
13
- import { assetUrl, realUpgradeExec, runUpgrade, upgradeMessage } from "./upgrade.js";
9
+ import { agentLogPath, binDir } from "./config.js";
10
+ import { adoptRunningDistros } from "./environments/commands.js";
11
+ import { machineTarget, siblingVersions, UPGRADE_ENV, upgradeHere } from "./environments/machine-upgrade.js";
12
+ import { runningAsInstalledAgent } from "./installed.js";
13
+ import { agentPath, download, launcherAssetUrl, launcherPath, publishedVersion, setAside } from "./release.js";
14
+ import { machineLauncher } from "./supervision.js";
15
+ import { upgradeMessage } from "./upgrade.js";
14
16
  import { MACHINE_VERSION } from "./version.js";
15
- export const SELF_UPDATE_GUARD_ENV = "INTENTIC_MACHINE_NO_SELF_UPDATE";
16
- const RESIDENT_START_TIMEOUT_MS = 10_000;
17
- const RESIDENT_START_POLL_MS = 200;
18
- const restartResident = async () => {
19
- await reconcileResidency(() => undefined);
20
- await pollUntil(async () => (await readResidentPid()) !== undefined, { intervalMs: RESIDENT_START_POLL_MS, timeoutMs: RESIDENT_START_TIMEOUT_MS });
21
- return await readResidentBuild();
22
- };
23
- export const machineUpgradeExec = (out) => realUpgradeExec(stopResident, restartResident, readResidentBuild, out);
24
- const runningAsInstalledAgent = async () => {
25
- const from = await realpath(process.execPath).catch(() => undefined);
26
- const at = await realpath(agentPath).catch(() => undefined);
27
- return from !== undefined && from === at;
28
- };
29
17
  export const selfUpdateBeforeSetup = async (io, env, args, out) => {
30
- if (env[SELF_UPDATE_GUARD_ENV] !== undefined) {
31
- return;
32
- }
33
- if (io.installed === DEV_VERSION) {
34
- return;
35
- }
36
- if (!(await io.installedAgent())) {
18
+ if (env[UPGRADE_ENV] !== undefined || io.installed === DEV_VERSION || !io.installedAgent()) {
37
19
  return;
38
20
  }
39
21
  const outcome = await io.upgrade();
40
22
  if (outcome.kind === "upgraded") {
41
23
  out(upgradeMessage(outcome));
42
- io.reexec(args);
24
+ io.reexec(args, outcome.to);
43
25
  }
44
26
  if (outcome.kind === "failed") {
45
27
  out(`note: couldn't update the agent first (${outcome.reason}) — continuing with ${io.installed}.`);
46
28
  }
47
29
  };
30
+ const machineUpgradeHere = async (out) => {
31
+ const [published, siblings] = await Promise.all([publishedVersion(), siblingVersions()]);
32
+ const target = machineTarget(published, [MACHINE_VERSION, ...siblings]);
33
+ return target === undefined ? { kind: "failed", reason: "couldn't reach the release channel" } : await upgradeHere(target, false, out);
34
+ };
48
35
  export const realSelfUpdateIo = (out) => ({
49
36
  installed: MACHINE_VERSION,
50
37
  installedAgent: runningAsInstalledAgent,
51
- upgrade: async () => await runUpgrade(machineUpgradeExec(out), assetUrl, MACHINE_VERSION, false, out),
52
- reexec: (args) => {
53
- const child = spawnSync(agentPath, [...args], {
54
- stdio: "inherit",
55
- env: { ...process.env, [SELF_UPDATE_GUARD_ENV]: "1" },
56
- windowsHide: true,
57
- });
38
+ upgrade: async () => await machineUpgradeHere(out),
39
+ reexec: (args, version) => {
40
+ const child = spawnSync(agentPath, [...args], { stdio: "inherit", env: { ...process.env, [UPGRADE_ENV]: version }, windowsHide: true });
58
41
  process.exit(child.status ?? 1);
59
42
  },
60
43
  });
@@ -117,19 +100,16 @@ const windowsPathRepair = (out) => {
117
100
  out(`note: couldn't put ${binDir} on your PATH (${errorMessage(error)}). Run intentic-machine from that folder, or add it to your PATH yourself.`);
118
101
  }
119
102
  };
120
- export const ensureWindowsLauncher = async (out) => {
121
- if (process.platform !== "win32") {
103
+ const ensureWindowsLauncher = async (out) => {
104
+ if (process.platform !== "win32" || MACHINE_VERSION === DEV_VERSION || existsSync(launcherPath)) {
122
105
  return;
123
106
  }
124
- const stub = join(binDir, WINDOWS_LAUNCH_STUB);
125
- const staged = `${stub}.tmp`;
107
+ const staged = `${launcherPath}.tmp`;
126
108
  try {
127
109
  await rm(staged, { force: true });
128
- await download(`https://github.com/intentic/intentic/releases/latest/download/intentic-launch-windows-${archToken()}.exe`, staged);
129
- await rm(`${stub}.old`, { force: true }).catch(() => undefined);
130
- await rename(stub, `${stub}.old`).catch(() => undefined);
131
- await rename(staged, stub);
132
- await rm(`${stub}.old`, { force: true }).catch(() => undefined);
110
+ await download(launcherAssetUrl(MACHINE_VERSION), staged);
111
+ await setAside(launcherPath, `${launcherPath}.old`);
112
+ await rename(staged, launcherPath);
133
113
  }
134
114
  catch (error) {
135
115
  await rm(staged, { force: true }).catch(() => undefined);
@@ -138,7 +118,7 @@ export const ensureWindowsLauncher = async (out) => {
138
118
  };
139
119
  export const prepareSetup = async (out, args) => {
140
120
  await selfUpdateBeforeSetup(realSelfUpdateIo(out), process.env, args, out);
141
- if (!(await runningAsInstalledAgent())) {
121
+ if (!runningAsInstalledAgent()) {
142
122
  return;
143
123
  }
144
124
  if (process.platform === "win32") {
@@ -148,4 +128,12 @@ export const prepareSetup = async (out, args) => {
148
128
  }
149
129
  await posixPathRepair(out);
150
130
  };
131
+ export const completeSetup = async (out) => {
132
+ await adoptRunningDistros(out);
133
+ if (process.env[UPGRADE_ENV] === undefined) {
134
+ return;
135
+ }
136
+ delete process.env[UPGRADE_ENV];
137
+ await spawnDetached(agentLogPath, machineLauncher(), ["upgrade", "--level"], { finishes: true }).catch((error) => out(`note: couldn't bring the rest of this PC to this release (${errorMessage(error)}); it catches up within the hour.`));
138
+ };
151
139
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const agentPath: string;
1
+ export declare const runningAsInstalledAgent: () => boolean;
2
2
  export declare const buildOf: (at: string | undefined, started: {
3
3
  readonly at: string | undefined;
4
4
  readonly ours: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"installed.d.ts","sourceRoot":"","sources":["../src/installed.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,SAAS,QAAyC,CAAC;AA6ChE,eAAO,MAAM,OAAO,OACZ,MAAM,GAAG,SAAS,WACb;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,OAC/D,MAAM,OACN,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,KACxC,MAAM,GAAG,SAKX,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,MAAM,GAAG,SAAwG,CAAC"}
1
+ {"version":3,"file":"installed.d.ts","sourceRoot":"","sources":["../src/installed.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,uBAAuB,QAAO,OAA6B,CAAC;AAiBzE,eAAO,MAAM,OAAO,OACZ,MAAM,GAAG,SAAS,WACb;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,OAC/D,MAAM,OACN,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,KACxC,MAAM,GAAG,SAKX,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,MAAM,GAAG,SAAwG,CAAC"}
package/dist/installed.js CHANGED
@@ -1,11 +1,6 @@
1
- import { spawnSync } from "node:child_process";
2
1
  import { realpathSync, statSync } from "node:fs";
3
- import { join } from "node:path";
4
- import { binDir } from "./sync/config.js";
5
- import { exe } from "./sync/mutagen.js";
2
+ import { agentPath, versionOf } from "./release.js";
6
3
  import { MACHINE_VERSION } from "./version.js";
7
- export const agentPath = join(binDir, `intentic-machine${exe}`);
8
- const PROBE_TIMEOUT_MS = 30_000;
9
4
  const identity = () => {
10
5
  try {
11
6
  const info = statSync(agentPath);
@@ -24,13 +19,13 @@ const IS_INSTALLED_AGENT = (() => {
24
19
  return false;
25
20
  }
26
21
  })();
22
+ export const runningAsInstalledAgent = () => IS_INSTALLED_AGENT;
27
23
  let probed;
28
24
  const probe = (of) => {
29
25
  if (probed?.of === of) {
30
26
  return probed.version;
31
27
  }
32
- const result = spawnSync(agentPath, ["version"], { encoding: "utf8", timeout: PROBE_TIMEOUT_MS, windowsHide: true });
33
- const version = result.status === 0 ? /^\d+\.\d+\.\d+$/.exec(result.stdout.trim())?.[0] : undefined;
28
+ const version = versionOf(agentPath);
34
29
  probed = { of, version };
35
30
  return version;
36
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"installed.js","sourceRoot":"","sources":["../src/installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAQ/C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,EAAE,CAAC,CAAC;AAIhE,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAGhC,MAAM,QAAQ,GAAG,GAAuB,EAAE;IACtC,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC;AAChC,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE;IACtC,IAAI,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;AAGL,IAAI,MAAiF,CAAC;AAEtF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAsB,EAAE;IAC7C,IAAI,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAGrH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IACzB,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,EAAsB,EACtB,OAAoE,EACpE,GAAW,EACX,GAAuC,EACrB,EAAE;IACpB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAuB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"installed.js","sourceRoot":"","sources":["../src/installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAS/C,MAAM,QAAQ,GAAG,GAAuB,EAAE;IACtC,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC;AAChC,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE;IACtC,IAAI,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;AAGL,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAY,EAAE,CAAC,kBAAkB,CAAC;AAGzE,IAAI,MAAiF,CAAC;AAEtF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAsB,EAAE;IAC7C,IAAI,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IACzB,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,EAAsB,EACtB,OAAoE,EACpE,GAAW,EACX,GAAuC,EACrB,EAAE;IACpB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAuB,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ export declare const exe: string;
2
+ export declare const osToken: () => "linux" | "darwin" | "windows";
3
+ export declare const archToken: () => "amd64" | "arm64";
4
+ export declare const agentPath: string;
5
+ export declare const launcherPath: string;
6
+ export declare const agentAssetUrl: (version: string) => string;
7
+ export declare const launcherAssetUrl: (version: string) => string;
8
+ export declare const publishedVersion: () => Promise<string | undefined>;
9
+ export type Probe = {
10
+ readonly kind: "version";
11
+ readonly version: string;
12
+ } | {
13
+ readonly kind: "no-version-command";
14
+ } | {
15
+ readonly kind: "unusable";
16
+ };
17
+ export declare const probeVersion: (binary: string) => Probe;
18
+ export declare const versionOf: (binary: string) => string | undefined;
19
+ export interface DownloadOptions {
20
+ readonly resume?: boolean;
21
+ readonly onProgress?: (received: number, total: number) => void;
22
+ }
23
+ export declare const download: (url: string, dest: string, options?: DownloadOptions) => Promise<void>;
24
+ export declare const setAside: (path: string, aside: string) => Promise<void>;
25
+ export declare const isLeftover: (name: string) => boolean;
26
+ export declare const sweepBin: () => Promise<void>;
27
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,GAAG,QAA6C,CAAC;AAE9D,eAAO,MAAM,OAAO,QAAO,OAAO,GAAG,QAAQ,GAAG,SAQ/C,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,OAAO,GAAG,OAQtC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAyC,CAAC;AAChE,eAAO,MAAM,YAAY,QAAoC,CAAC;AAK9D,eAAO,MAAM,aAAa,YAAa,MAAM,KAAG,MAA+F,CAAC;AAChJ,eAAO,MAAM,gBAAgB,YAAa,MAAM,KAAG,MAAuF,CAAC;AAG3I,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAOnE,CAAC;AAGF,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAKrJ,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,KAU7C,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,MAAM,GAAG,SAGnD,CAAC;AAGF,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE;AA4DD,eAAO,MAAM,QAAQ,QAAe,MAAM,QAAQ,MAAM,YAAW,eAAe,KAAQ,OAAO,CAAC,IAAI,CASrG,CAAC;AAGF,eAAO,MAAM,QAAQ,SAAgB,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAOxE,CAAC;AAUF,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,OAAyD,CAAC;AAGpG,eAAO,MAAM,QAAQ,QAAa,OAAO,CAAC,IAAI,CAM7C,CAAC"}
@@ -0,0 +1,132 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { once } from "node:events";
3
+ import { createWriteStream } from "node:fs";
4
+ import { mkdir, readdir, rename, rm, stat } from "node:fs/promises";
5
+ import { dirname, join } from "node:path";
6
+ import { livePidRecord, WINDOWS_LAUNCH_STUB } from "@intentic/local-agent";
7
+ import { binDir, upgradeLockPath } from "./config.js";
8
+ export const exe = process.platform === "win32" ? ".exe" : "";
9
+ export const osToken = () => {
10
+ if (process.platform === "linux" || process.platform === "darwin") {
11
+ return process.platform;
12
+ }
13
+ if (process.platform === "win32") {
14
+ return "windows";
15
+ }
16
+ throw new Error(`auto-download isn't supported on ${process.platform}: install mutagen and cloudflared manually, then re-run.`);
17
+ };
18
+ export const archToken = () => {
19
+ if (process.arch === "x64") {
20
+ return "amd64";
21
+ }
22
+ if (process.arch === "arm64") {
23
+ return "arm64";
24
+ }
25
+ throw new Error(`unsupported CPU arch ${process.arch}: install mutagen and cloudflared manually, then re-run.`);
26
+ };
27
+ export const agentPath = join(binDir, `intentic-machine${exe}`);
28
+ export const launcherPath = join(binDir, WINDOWS_LAUNCH_STUB);
29
+ const RELEASES = "https://github.com/intentic/intentic/releases";
30
+ export const agentAssetUrl = (version) => `${RELEASES}/download/v${version}/intentic-machine-${osToken()}-${archToken()}${exe}`;
31
+ export const launcherAssetUrl = (version) => `${RELEASES}/download/v${version}/intentic-launch-windows-${archToken()}.exe`;
32
+ export const publishedVersion = async () => {
33
+ try {
34
+ const response = await fetch(`${RELEASES}/latest`, { method: "HEAD", redirect: "follow", signal: AbortSignal.timeout(20_000) });
35
+ return /\/tag\/v(\d+\.\d+\.\d+)$/.exec(response.url)?.[1];
36
+ }
37
+ catch {
38
+ return undefined;
39
+ }
40
+ };
41
+ const PROBE_TIMEOUT_MS = 30_000;
42
+ export const probeVersion = (binary) => {
43
+ const result = spawnSync(binary, ["version"], { encoding: "utf8", timeout: PROBE_TIMEOUT_MS, windowsHide: true });
44
+ if (result.error !== undefined) {
45
+ return { kind: "unusable" };
46
+ }
47
+ const version = result.status === 0 ? /^\d+\.\d+\.\d+$/.exec(result.stdout.trim())?.[0] : undefined;
48
+ if (version !== undefined) {
49
+ return { kind: "version", version };
50
+ }
51
+ return { kind: result.status === 0 ? "unusable" : "no-version-command" };
52
+ };
53
+ export const versionOf = (binary) => {
54
+ const probed = probeVersion(binary);
55
+ return probed.kind === "version" ? probed.version : undefined;
56
+ };
57
+ const fileSize = async (path) => {
58
+ try {
59
+ return (await stat(path)).size;
60
+ }
61
+ catch {
62
+ return 0;
63
+ }
64
+ };
65
+ const openDownload = async (url, have) => {
66
+ const response = await fetch(url, have > 0 ? { headers: { range: `bytes=${have}-` } } : {});
67
+ if (response.status === 416 && have > 0) {
68
+ return undefined;
69
+ }
70
+ if (!response.ok || response.body === null) {
71
+ throw new Error(`download failed (${response.status}): ${url}`);
72
+ }
73
+ const appending = response.status === 206;
74
+ const length = Number(response.headers.get("content-length") ?? 0);
75
+ return { body: response.body, total: length > 0 ? (appending ? have + length : length) : 0, appending };
76
+ };
77
+ const drainInto = async (file, body, from, total, onProgress) => {
78
+ const reader = body.getReader();
79
+ let received = from;
80
+ try {
81
+ for (;;) {
82
+ const chunk = await reader.read();
83
+ if (chunk.done) {
84
+ break;
85
+ }
86
+ received += chunk.value.byteLength;
87
+ onProgress?.(received, total);
88
+ if (!file.write(chunk.value)) {
89
+ await once(file, "drain");
90
+ }
91
+ }
92
+ file.end();
93
+ await once(file, "close");
94
+ }
95
+ catch (error) {
96
+ file.destroy();
97
+ throw error;
98
+ }
99
+ };
100
+ export const download = async (url, dest, options = {}) => {
101
+ await mkdir(dirname(dest), { recursive: true });
102
+ const have = options.resume === true ? await fileSize(dest) : 0;
103
+ const stream = await openDownload(url, have);
104
+ if (stream === undefined) {
105
+ return;
106
+ }
107
+ const file = createWriteStream(dest, stream.appending ? { flags: "a" } : {});
108
+ await drainInto(file, stream.body, stream.appending ? have : 0, stream.total, options.onProgress);
109
+ };
110
+ export const setAside = async (path, aside) => {
111
+ await rm(aside, { force: true }).catch(() => undefined);
112
+ await rename(path, aside).catch((error) => {
113
+ if (error.code !== "ENOENT") {
114
+ throw error;
115
+ }
116
+ });
117
+ };
118
+ const LEFTOVER = [
119
+ /^intentic-machine(?:\.exe)?\.(?:old|previous)$/,
120
+ /^intentic-launch\.exe\.(?:old|tmp|previous)$/,
121
+ /^mutagen(?:\.exe)?\.old$/,
122
+ /^mutagen\.tar\.gz$/,
123
+ ];
124
+ export const isLeftover = (name) => LEFTOVER.some((pattern) => pattern.test(name));
125
+ export const sweepBin = async () => {
126
+ if ((await livePidRecord(upgradeLockPath)) !== undefined) {
127
+ return;
128
+ }
129
+ const names = await readdir(binDir).catch(() => []);
130
+ await Promise.all(names.filter(isLeftover).map(async (name) => await rm(join(binDir, name), { force: true }).catch(() => undefined)));
131
+ };
132
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
- import { type CliLauncher, type Log } from "@intentic/local-agent";
2
- export declare const machineLauncher: () => CliLauncher;
1
+ import { type Log } from "@intentic/local-agent";
2
+ import type { PeerLink } from "@intentic/sandbox-contract/peer-dial";
3
+ import { type HostLink } from "./device/config.js";
3
4
  export declare const readResidentPid: () => Promise<number | undefined>;
4
5
  export declare const readResidentBuild: () => Promise<string | undefined>;
5
- export declare const startResident: (log: Log) => Promise<void>;
6
- export declare const stopResident: () => Promise<number | undefined>;
7
- export declare const startResidentIfStopped: (log: Log) => Promise<void>;
8
- export declare const reconcileResidency: (log: Log) => Promise<void>;
6
+ export declare const signalExitCode: (signal: NodeJS.Signals) => number;
7
+ export declare const EXIT_REPLACED = 75;
8
+ export declare const ensureResident: (log: Log) => Promise<void>;
9
+ interface Connection {
10
+ readonly link: HostLink;
11
+ readonly peer: PeerLink;
12
+ }
13
+ export declare const reconcileLinks: (connections: Map<string, Connection>, links: readonly HostLink[], dial: (link: HostLink) => PeerLink, log: Log) => void;
9
14
  export declare const runForeground: (log: Log) => Promise<void>;
15
+ export {};
10
16
  //# sourceMappingURL=resident.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resident.d.ts","sourceRoot":"","sources":["../src/resident.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,KAAK,WAAW,EAIhB,KAAK,GAAG,EAMX,MAAM,uBAAuB,CAAC;AAiB/B,eAAO,MAAM,eAAe,QAAO,WAA8C,CAAC;AAGlF,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAA2C,CAAC;AAK/G,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAA4C,CAAC;AASlH,eAAO,MAAM,aAAa,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAQ1D,CAAC;AAKF,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAgB/D,CAAC;AAaF,eAAO,MAAM,sBAAsB,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAInE,CAAC;AAKF,eAAO,MAAM,kBAAkB,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAY/D,CAAC;AA4BF,eAAO,MAAM,aAAa,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CA2D1D,CAAC"}
1
+ {"version":3,"file":"resident.d.ts","sourceRoot":"","sources":["../src/resident.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwC,KAAK,GAAG,EAA+C,MAAM,uBAAuB,CAAC;AACpI,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAIrE,OAAO,EAAE,KAAK,QAAQ,EAA8E,MAAM,oBAAoB,CAAC;AAc/H,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAgC,CAAC;AAGpG,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAkC,CAAC;AAGxG,eAAO,MAAM,cAAc,WAAY,MAAM,CAAC,OAAO,KAAG,MAAiD,CAAC;AAG1G,eAAO,MAAM,aAAa,KAAK,CAAC;AAyBhC,eAAO,MAAM,cAAc,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAM3D,CAAC;AA2BF,UAAU,UAAU;IAChB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CAC3B;AAMD,eAAO,MAAM,cAAc,gBACV,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,SAC7B,SAAS,QAAQ,EAAE,QACpB,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,OAC7B,GAAG,KACT,IAiBF,CAAC;AAoIF,eAAO,MAAM,aAAa,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAiB1D,CAAC"}