@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.
- package/README.md +111 -52
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +2 -5
- package/dist/app.js.map +1 -1
- package/dist/commands.d.ts +1 -9
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +41 -27
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon-base.d.ts +4 -3
- package/dist/daemon-base.d.ts.map +1 -1
- package/dist/daemon-base.js.map +1 -1
- package/dist/device/auto-prepare.js +3 -3
- package/dist/device/auto-prepare.js.map +1 -1
- package/dist/device/commands.d.ts +2 -1
- package/dist/device/commands.d.ts.map +1 -1
- package/dist/device/commands.js +48 -30
- package/dist/device/commands.js.map +1 -1
- package/dist/device/config.d.ts +17 -12
- package/dist/device/config.d.ts.map +1 -1
- package/dist/device/config.js +29 -17
- package/dist/device/config.js.map +1 -1
- package/dist/device/connection.d.ts +3 -1
- package/dist/device/connection.d.ts.map +1 -1
- package/dist/device/connection.js +7 -3
- package/dist/device/connection.js.map +1 -1
- package/dist/device/mcp.js.map +1 -1
- package/dist/device/policy.d.ts +4 -4
- package/dist/device/policy.d.ts.map +1 -1
- package/dist/device/policy.js.map +1 -1
- package/dist/device/router.d.ts +76 -3
- package/dist/device/router.d.ts.map +1 -1
- package/dist/device/router.js +12 -4
- package/dist/device/router.js.map +1 -1
- package/dist/device/tools/agent.d.ts +3 -3
- package/dist/device/tools/agent.d.ts.map +1 -1
- package/dist/device/tools/agent.js +25 -11
- package/dist/device/tools/agent.js.map +1 -1
- package/dist/device/tools/apps.d.ts +6 -6
- package/dist/device/tools/apps.d.ts.map +1 -1
- package/dist/device/tools/apps.js.map +1 -1
- package/dist/device/tools/browser.d.ts +9 -9
- package/dist/device/tools/browser.d.ts.map +1 -1
- package/dist/device/tools/browser.js.map +1 -1
- package/dist/device/tools/describe.d.ts +5 -3
- package/dist/device/tools/describe.d.ts.map +1 -1
- package/dist/device/tools/describe.js +19 -2
- package/dist/device/tools/describe.js.map +1 -1
- package/dist/device/tools/device.d.ts +2 -2
- package/dist/device/tools/device.d.ts.map +1 -1
- package/dist/device/tools/device.js.map +1 -1
- package/dist/device/tools/files.d.ts +5 -5
- package/dist/device/tools/files.d.ts.map +1 -1
- package/dist/device/tools/files.js.map +1 -1
- package/dist/device/tools/sandboxes.d.ts +16 -11
- package/dist/device/tools/sandboxes.d.ts.map +1 -1
- package/dist/device/tools/sandboxes.js +36 -54
- package/dist/device/tools/sandboxes.js.map +1 -1
- package/dist/device/tools/shell.d.ts +2 -24
- package/dist/device/tools/shell.d.ts.map +1 -1
- package/dist/device/tools/shell.js +2 -53
- package/dist/device/tools/shell.js.map +1 -1
- package/dist/environments/auto-upgrade.d.ts +20 -0
- package/dist/environments/auto-upgrade.d.ts.map +1 -0
- package/dist/environments/auto-upgrade.js +77 -0
- package/dist/environments/auto-upgrade.js.map +1 -0
- package/dist/environments/children.d.ts +27 -0
- package/dist/environments/children.d.ts.map +1 -0
- package/dist/environments/children.js +106 -0
- package/dist/environments/children.js.map +1 -0
- package/dist/environments/commands.d.ts +12 -0
- package/dist/environments/commands.d.ts.map +1 -0
- package/dist/environments/commands.js +102 -0
- package/dist/environments/commands.js.map +1 -0
- package/dist/environments/crossing.d.ts +31 -0
- package/dist/environments/crossing.d.ts.map +1 -0
- package/dist/environments/crossing.js +64 -0
- package/dist/environments/crossing.js.map +1 -0
- package/dist/environments/machine-upgrade.d.ts +26 -0
- package/dist/environments/machine-upgrade.d.ts.map +1 -0
- package/dist/environments/machine-upgrade.js +153 -0
- package/dist/environments/machine-upgrade.js.map +1 -0
- package/dist/environments/machine.d.ts +29 -0
- package/dist/environments/machine.d.ts.map +1 -0
- package/dist/environments/machine.js +88 -0
- package/dist/environments/machine.js.map +1 -0
- package/dist/install.d.ts +4 -6
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +35 -47
- package/dist/install.js.map +1 -1
- package/dist/installed.d.ts +1 -1
- package/dist/installed.d.ts.map +1 -1
- package/dist/installed.js +3 -8
- package/dist/installed.js.map +1 -1
- package/dist/release.d.ts +27 -0
- package/dist/release.d.ts.map +1 -0
- package/dist/release.js +132 -0
- package/dist/release.js.map +1 -0
- package/dist/resident.d.ts +12 -6
- package/dist/resident.d.ts.map +1 -1
- package/dist/resident.js +163 -84
- package/dist/resident.js.map +1 -1
- package/dist/status.d.ts +3 -2
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +21 -7
- package/dist/status.js.map +1 -1
- package/dist/supervision.d.ts +11 -0
- package/dist/supervision.d.ts.map +1 -0
- package/dist/supervision.js +98 -0
- package/dist/supervision.js.map +1 -0
- package/dist/sync/commands.d.ts.map +1 -1
- package/dist/sync/commands.js +7 -5
- package/dist/sync/commands.js.map +1 -1
- package/dist/sync/config.d.ts +0 -1
- package/dist/sync/config.d.ts.map +1 -1
- package/dist/sync/config.js +0 -1
- package/dist/sync/config.js.map +1 -1
- package/dist/sync/mirror.d.ts +1 -2
- package/dist/sync/mirror.d.ts.map +1 -1
- package/dist/sync/mirror.js +2 -3
- package/dist/sync/mirror.js.map +1 -1
- package/dist/sync/mutagen.d.ts +0 -8
- package/dist/sync/mutagen.d.ts.map +1 -1
- package/dist/sync/mutagen.js +12 -80
- package/dist/sync/mutagen.js.map +1 -1
- package/dist/sync/report.d.ts +2 -0
- package/dist/sync/report.d.ts.map +1 -1
- package/dist/sync/report.js +4 -2
- package/dist/sync/report.js.map +1 -1
- package/dist/sync/residue.d.ts.map +1 -1
- package/dist/sync/residue.js +8 -0
- package/dist/sync/residue.js.map +1 -1
- package/dist/upgrade.d.ts +7 -16
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +93 -116
- package/dist/upgrade.js.map +1 -1
- package/dist/wsl.d.ts +6 -0
- package/dist/wsl.d.ts.map +1 -1
- package/dist/wsl.js +23 -2
- package/dist/wsl.js.map +1 -1
- package/package.json +12 -12
- package/dist/device/testing.d.ts +0 -10
- package/dist/device/testing.d.ts.map +0 -1
- package/dist/device/testing.js +0 -51
- 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
|
|
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: () =>
|
|
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
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,
|
|
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 {
|
|
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 {
|
|
7
|
+
import { spawnDetached } from "@intentic/local-agent";
|
|
8
8
|
import { DEV_VERSION } from "@intentic/sandbox-contract";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
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[
|
|
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
|
|
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
|
-
|
|
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
|
|
125
|
-
const staged = `${stub}.tmp`;
|
|
107
|
+
const staged = `${launcherPath}.tmp`;
|
|
126
108
|
try {
|
|
127
109
|
await rm(staged, { force: true });
|
|
128
|
-
await download(
|
|
129
|
-
await
|
|
130
|
-
await rename(
|
|
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 (!
|
|
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
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/installed.d.ts
CHANGED
package/dist/installed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installed.d.ts","sourceRoot":"","sources":["../src/installed.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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
|
|
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
|
};
|
package/dist/installed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installed.js","sourceRoot":"","sources":["../src/installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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"}
|
package/dist/release.js
ADDED
|
@@ -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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"}
|
package/dist/resident.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
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
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
|
|
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
|
package/dist/resident.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resident.d.ts","sourceRoot":"","sources":["../src/resident.ts"],"names":[],"mappings":"
|
|
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"}
|