@intentic/machine 1.252.1 → 1.254.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 CHANGED
@@ -83,6 +83,9 @@ halves in one process ([src/resident.ts](src/resident.ts)):
83
83
  that bought that rule is written out in [src/sync/mirror.ts](src/sync/mirror.ts).
84
84
  - It stamps **the build it is running** into its pidfile (`pid boot build`). Nothing else knows it: replacing the
85
85
  binary does not touch the process, so a machine can hold a current agent and keep serving a months-old one.
86
+ - It stamps **what each link's socket is doing** into `links.tick` every five seconds, for the same reason: the
87
+ only process that knows is this one and the only process that is asked is `status`, in another terminal. See
88
+ **Linked vs connected**.
86
89
 
87
90
  ### Installed vs running
88
91
 
@@ -101,6 +104,22 @@ its loop posts to and its installed build to one reading over a `host` capabilit
101
104
  - A loop already on the installed build is never bounced, and a loop that is stopped is never started: `run
102
105
  --stop` is a thing people do on purpose.
103
106
 
107
+ ### Linked vs connected
108
+
109
+ The same gap one level down, on the command whose entire job is to answer "is my machine connected". `device.json`
110
+ records the sandboxes this machine is **meant** to answer to and nothing whatever about whether it reaches any of
111
+ them, so `status` printed `connected as <id>` for every line in it — including, on the machine this was written
112
+ for, a sandbox whose host had been answering 502 for four hours while the loop retried it every 30 seconds and
113
+ said so in a log nobody had been pointed at.
114
+
115
+ - The loop's stamp is the answer: `status` prints `connected`, `NOT connected (retrying)` or `NOT connected`
116
+ per link, and the summary the tray reads counts the links that are actually up (`1 of 2 sandboxes connected`).
117
+ - The stamp **ages** on purpose, since it describes sockets held in a process that may be gone. Four ticks past
118
+ the last write it is no answer at all — which is also what an agent too old to write one leaves behind — and
119
+ both cases print `linked as <id>` with the reason in words. A link nothing can vouch for must not read like a
120
+ healthy one; the permissions line beneath it had been hedged as "last pushed by the sandbox" for years for the
121
+ same reason, and this line had not.
122
+
104
123
  ## Key files
105
124
 
106
125
  - [src/commands.ts](src/commands.ts) — the CLI surface: `device setup|uninstall|updates`, `sync setup|pause|resume|mirror|uninstall`, shared `run|status|version|upgrade|uninstall`.
@@ -108,9 +127,10 @@ its loop posts to and its installed build to one reading over a `host` capabilit
108
127
  - [src/upgrade.ts](src/upgrade.ts) — `upgrade`: what is published, then download → probe → stop → swap → start, with a rollback behind every step, and a restart when the file is current but the loop is not.
109
128
  - [src/installed.ts](src/installed.ts) — which build the *file* at `bin/intentic-machine` is, as opposed to the one running: free while the two agree, one probe per swap after they stop.
110
129
  - [src/daemon-base.ts](src/daemon-base.ts) — where a sandbox's daemon is dialled, for both halves: loopback first when `/health` proves it is ours, the public URL as the floor.
111
- - [src/resident.ts](src/resident.ts) — the one loop, its pidfile, and `reconcileResidency`.
130
+ - [src/resident.ts](src/resident.ts) — the one loop, its pidfile, its link stamp, and `reconcileResidency`.
112
131
  - [src/device/auto-prepare.ts](src/device/auto-prepare.ts) — the background update-download tick; the judgement about *what* to download stays in `ic sandbox prepare --auto`, on purpose.
113
132
  - [src/status.ts](src/status.ts) — both halves as one answer; `--json` is what the desktop app and tray read.
133
+ - [src/wsl.ts](src/wsl.ts) — whether this is a WSL distro, and which one. WSL hands a distro the Windows machine's own hostname, so without this the sandbox cannot tell a distro from the Windows install hosting it, or one distro from its neighbour, and folds two machines into one row.
114
134
  - [src/device/policy.ts](src/device/policy.ts) — what the sandbox is permitted to do here; the security surface.
115
135
  - [src/device/tools/sandboxes.ts](src/device/tools/sandboxes.ts) — the fleet: the `docker ps`/`inspect` readers, the docker verbs, and the `ic` flows (swap, reshape, remove, runners) with the pure argv builders beside them.
116
136
  - [src/sync/mirror.ts](src/sync/mirror.ts) — the sync tick: ports reconcile, git bridge, revocation handling.
@@ -1,6 +1,12 @@
1
1
  import type { HostScopes } from "@intentic/sandbox-contract";
2
+ import type { PeerLinkState } from "@intentic/sandbox-contract/peer-dial";
2
3
  export declare const configPath: string;
3
4
  export declare const auditPath: string;
5
+ export declare const linkStatePath: string;
6
+ export declare const LINK_STAMP_MS = 5000;
7
+ export declare const LINK_STAMP_STALE_MS: number;
8
+ export declare const stampLinkStates: (links: Readonly<Record<string, PeerLinkState>>) => Promise<void>;
9
+ export declare const readLinkStates: (now?: number) => Promise<Readonly<Record<string, PeerLinkState>> | undefined>;
4
10
  export interface HostLink {
5
11
  readonly sandboxUrl: string;
6
12
  readonly id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/device/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7D,eAAO,MAAM,UAAU,QAA+B,CAAC;AACvD,eAAO,MAAM,SAAS,QAA+B,CAAC;AAItD,MAAM,WAAW,QAAQ;IAErB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC/B;AAID,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAEpC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,cAAc,CAAqE,CAAC;AAEpI,eAAO,MAAM,eAAe,WAAkB,cAAc,KAAG,OAAO,CAAC,IAAI,CACS,CAAC;AAWrF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAiE,CAAC;AAIhI,eAAO,MAAM,UAAU,SAAgB,QAAQ,KAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAM5E,CAAC;AAGF,eAAO,MAAM,WAAW,gBAAuB,MAAM,KAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAKlF,CAAC;AAIF,eAAO,MAAM,cAAc,eAAsB,MAAM,UAAU,UAAU,KAAG,OAAO,CAAC,IAAI,CAOzF,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,OAAO,CAA8E,CAAC;AAE1I,eAAO,MAAM,mBAAmB,OAAc,OAAO,KAAG,OAAO,CAAC,IAAI,CAEnE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/device/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAI1E,eAAO,MAAM,UAAU,QAA+B,CAAC;AACvD,eAAO,MAAM,SAAS,QAA+B,CAAC;AAWtD,eAAO,MAAM,aAAa,QAA8B,CAAC;AAIzD,eAAO,MAAM,aAAa,OAAQ,CAAC;AACnC,eAAO,MAAM,mBAAmB,QAAoB,CAAC;AASrD,eAAO,MAAM,eAAe,UAAiB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,CAElG,CAAC;AAeF,eAAO,MAAM,cAAc,oBAA6B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,SAAS,CAGlH,CAAC;AAIF,MAAM,WAAW,QAAQ;IAErB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC/B;AAID,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAEpC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,cAAc,CAAqE,CAAC;AAEpI,eAAO,MAAM,eAAe,WAAkB,cAAc,KAAG,OAAO,CAAC,IAAI,CACS,CAAC;AAWrF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAiE,CAAC;AAIhI,eAAO,MAAM,UAAU,SAAgB,QAAQ,KAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAM5E,CAAC;AAGF,eAAO,MAAM,WAAW,gBAAuB,MAAM,KAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAKlF,CAAC;AAIF,eAAO,MAAM,cAAc,eAAsB,MAAM,UAAU,UAAU,KAAG,OAAO,CAAC,IAAI,CAOzF,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,OAAO,CAA8E,CAAC;AAE1I,eAAO,MAAM,mBAAmB,OAAc,OAAO,KAAG,OAAO,CAAC,IAAI,CAEnE,CAAC"}
@@ -1,9 +1,28 @@
1
- import { readFile } from "node:fs/promises";
1
+ import { readFile, writeFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { writeSecretFile } from "@intentic/local-agent";
4
4
  import { baseDir } from "../config.js";
5
5
  export const configPath = join(baseDir, "device.json");
6
6
  export const auditPath = join(baseDir, "audit.jsonl");
7
+ export const linkStatePath = join(baseDir, "links.tick");
8
+ export const LINK_STAMP_MS = 5_000;
9
+ export const LINK_STAMP_STALE_MS = LINK_STAMP_MS * 4;
10
+ export const stampLinkStates = async (links) => {
11
+ await writeFile(linkStatePath, JSON.stringify({ at: Date.now(), links })).catch(() => undefined);
12
+ };
13
+ const parseStamp = (raw) => {
14
+ try {
15
+ const parsed = raw === undefined ? undefined : JSON.parse(raw);
16
+ return typeof parsed?.at === "number" && parsed.links !== undefined ? { at: parsed.at, links: parsed.links } : undefined;
17
+ }
18
+ catch {
19
+ return undefined;
20
+ }
21
+ };
22
+ export const readLinkStates = async (now = Date.now()) => {
23
+ const stamped = parseStamp(await readFile(linkStatePath, "utf8").catch(() => undefined));
24
+ return stamped === undefined || now - stamped.at > LINK_STAMP_STALE_MS ? undefined : stamped.links;
25
+ };
7
26
  export const readHostConfig = async () => JSON.parse(await readFile(configPath, "utf8"));
8
27
  export const writeHostConfig = async (config) => await writeSecretFile(configPath, baseDir, JSON.stringify(config, undefined, 2));
9
28
  const updateHostConfig = async (mutate) => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/device/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/device/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resident.d.ts","sourceRoot":"","sources":["../src/resident.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,WAAW,EAIhB,KAAK,GAAG,EAMX,MAAM,uBAAuB,CAAC;AAgB/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;AAYF,eAAO,MAAM,kBAAkB,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAY/D,CAAC;AAWF,eAAO,MAAM,aAAa,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAyD1D,CAAC"}
1
+ {"version":3,"file":"resident.d.ts","sourceRoot":"","sources":["../src/resident.ts"],"names":[],"mappings":"AAEA,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,kBAAkB,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAY/D,CAAC;AA4BF,eAAO,MAAM,aAAa,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CA2D1D,CAAC"}
package/dist/resident.js CHANGED
@@ -3,7 +3,7 @@ import { setTimeout as sleep } from "node:timers/promises";
3
3
  import { cliLauncher, isProcessAlive, livePidRecord, pidFileBody, registerAutostart, spawnDetached, unregisterAutostart, writeSecretFile, } from "@intentic/local-agent";
4
4
  import { MACHINE_AUTOSTART } from "./autostart.js";
5
5
  import { startAutoPrepare } from "./device/auto-prepare.js";
6
- import { readLinks } from "./device/config.js";
6
+ import { LINK_STAMP_MS, linkStatePath, readLinks, stampLinkStates } from "./device/config.js";
7
7
  import { connect } from "./device/connection.js";
8
8
  import { baseDir, runLogPath, runPidPath } from "./config.js";
9
9
  import { mirrorHeartbeatPath, readState } from "./sync/config.js";
@@ -41,6 +41,7 @@ export const stopResident = async () => {
41
41
  const cleanup = async () => {
42
42
  await rm(runPidPath, { force: true });
43
43
  await rm(mirrorHeartbeatPath, { force: true });
44
+ await rm(linkStatePath, { force: true });
44
45
  };
45
46
  export const reconcileResidency = async (log) => {
46
47
  await stopResident();
@@ -54,6 +55,16 @@ export const reconcileResidency = async (log) => {
54
55
  }
55
56
  };
56
57
  const deviceTick = (links, log) => (links > 0 ? startAutoPrepare(log) : undefined);
58
+ const stampLinks = (links, connections) => {
59
+ if (links.length === 0) {
60
+ return () => undefined;
61
+ }
62
+ const stamp = () => void stampLinkStates(Object.fromEntries(links.map((link, at) => [link.sandboxUrl, connections[at]?.state() ?? "closed"])));
63
+ stamp();
64
+ const timer = setInterval(stamp, LINK_STAMP_MS);
65
+ timer.unref();
66
+ return () => clearInterval(timer);
67
+ };
57
68
  export const runForeground = async (log) => {
58
69
  const holder = await readResidentPid();
59
70
  if (holder !== undefined && holder !== process.pid) {
@@ -70,8 +81,10 @@ export const runForeground = async (log) => {
70
81
  }
71
82
  const connections = links.map((link) => connect(link, MACHINE_VERSION, log));
72
83
  const autoPrepare = deviceTick(links.length, log);
84
+ const stopStamping = stampLinks(links, connections);
73
85
  const shutdown = (signal) => {
74
86
  autoPrepare?.stop();
87
+ stopStamping();
75
88
  for (const connection of connections) {
76
89
  connection.stop();
77
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resident.js","sourceRoot":"","sources":["../src/resident.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resident.js","sourceRoot":"","sources":["../src/resident.ts"],"names":[],"mappings":"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"}
package/dist/status.d.ts CHANGED
@@ -1,23 +1,27 @@
1
1
  import type { HostScopes, DeviceReport } from "@intentic/sandbox-contract";
2
+ import type { PeerLinkState } from "@intentic/sandbox-contract/peer-dial";
2
3
  import { type CommandContext } from "@stricli/core";
3
4
  export interface DeviceStatus {
4
5
  readonly version: string;
5
6
  readonly running?: number;
6
7
  readonly summary: string;
7
8
  readonly device: {
8
- readonly links: readonly {
9
- readonly sandboxUrl: string;
10
- readonly id: string;
11
- readonly scopes: HostScopes;
12
- }[];
9
+ readonly links: readonly StatusLink[];
13
10
  };
14
11
  readonly sync: DeviceReport;
15
12
  }
16
- export declare const statusSummary: (running: number | undefined, links: number, sync: DeviceReport, now: number) => string;
13
+ export interface StatusLink {
14
+ readonly sandboxUrl: string;
15
+ readonly id: string;
16
+ readonly scopes: HostScopes;
17
+ readonly state?: PeerLinkState;
18
+ }
19
+ export declare const statusSummary: (running: number | undefined, links: number, sync: DeviceReport, now: number, connected?: number) => string;
17
20
  export declare const deviceStatus: (mutagen: string | undefined) => Promise<DeviceStatus>;
18
21
  export declare const conflictLines: (pairing: DeviceReport["pairings"][number]) => string[];
19
22
  export declare const pairingLine: (pairing: DeviceReport["pairings"][number]) => string;
20
23
  export declare const agentLine: (agent: DeviceReport["agent"], now: number) => string;
21
24
  export declare const buildSkewLine: (report: DeviceReport) => string | undefined;
25
+ export declare const linkLine: (link: StatusLink) => string;
22
26
  export declare const status: import("@stricli/core").Command<CommandContext>;
23
27
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAoD,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC7H,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAalE,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS;YAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAClI,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B;AAID,eAAO,MAAM,aAAa,YAAa,MAAM,GAAG,SAAS,SAAS,MAAM,QAAQ,YAAY,OAAO,MAAM,KAAG,MA0B3G,CAAC;AAEF,eAAO,MAAM,YAAY,YAAmB,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,YAAY,CASpF,CAAC;AAkDF,eAAO,MAAM,aAAa,YAAa,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAG,MAAM,EAe/E,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAG,MASvE,CAAC;AAMF,eAAO,MAAM,SAAS,UAAW,YAAY,CAAC,OAAO,CAAC,OAAO,MAAM,KAAG,MAarE,CAAC;AAKF,eAAO,MAAM,aAAa,WAAY,YAAY,KAAG,MAAM,GAAG,SAY7D,CAAC;AAqCF,eAAO,MAAM,MAAM,iDAyDjB,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAoD,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC7H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAalE,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B;AAKD,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAClC;AAeD,eAAO,MAAM,aAAa,YAAa,MAAM,GAAG,SAAS,SAAS,MAAM,QAAQ,YAAY,OAAO,MAAM,cAAc,MAAM,KAAG,MA0B/H,CAAC;AAEF,eAAO,MAAM,YAAY,YAAmB,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,YAAY,CAmBpF,CAAC;AAkDF,eAAO,MAAM,aAAa,YAAa,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAG,MAAM,EAe/E,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAG,MASvE,CAAC;AAMF,eAAO,MAAM,SAAS,UAAW,YAAY,CAAC,OAAO,CAAC,OAAO,MAAM,KAAG,MAarE,CAAC;AAKF,eAAO,MAAM,aAAa,WAAY,YAAY,KAAG,MAAM,GAAG,SAY7D,CAAC;AAOF,eAAO,MAAM,QAAQ,SAAU,UAAU,KAAG,MAW3C,CAAC;AAqCF,eAAO,MAAM,MAAM,iDAyDjB,CAAC"}
package/dist/status.js CHANGED
@@ -1,18 +1,25 @@
1
1
  import { buildCommand } from "@stricli/core";
2
2
  import { agentBuildSkew, agentStalled } from "@intentic/sandbox-contract";
3
- import { auditPath, readLinks } from "./device/config.js";
3
+ import { auditPath, readLinks, readLinkStates } from "./device/config.js";
4
4
  import { runLogPath } from "./config.js";
5
5
  import { readResidentPid } from "./resident.js";
6
6
  import { ensureMutagen, existingSyncSessions, runMutagen, syncSessionNames } from "./sync/mutagen.js";
7
7
  import { deviceReport } from "./sync/report.js";
8
8
  import { MACHINE_VERSION } from "./version.js";
9
- export const statusSummary = (running, links, sync, now) => {
9
+ const linksHalf = (links, connected) => {
10
+ if (links === 0) {
11
+ return undefined;
12
+ }
13
+ const sandboxes = `sandbox${links === 1 ? "" : "es"}`;
14
+ return connected === undefined || connected === links ? `${links} ${sandboxes} connected` : `${connected} of ${links} ${sandboxes} connected`;
15
+ };
16
+ export const statusSummary = (running, links, sync, now, connected) => {
10
17
  const working = links > 0 || sync.pairings.length > 0;
11
18
  if (!working) {
12
19
  return "nothing connected";
13
20
  }
14
21
  const halves = [
15
- links === 0 ? undefined : `${links} sandbox${links === 1 ? "" : "es"} connected`,
22
+ linksHalf(links, connected),
16
23
  sync.pairings.length === 0 ? undefined : `syncing ${sync.pairings.length} sandbox${sync.pairings.length === 1 ? "" : "es"}`,
17
24
  ].filter((part) => part !== undefined);
18
25
  if (running === undefined) {
@@ -29,12 +36,19 @@ export const statusSummary = (running, links, sync, now) => {
29
36
  return halves.join(" · ");
30
37
  };
31
38
  export const deviceStatus = async (mutagen) => {
32
- const [pid, links, sync] = await Promise.all([readResidentPid(), readLinks(), deviceReport(mutagen)]);
39
+ const [pid, links, sync, stamped] = await Promise.all([readResidentPid(), readLinks(), deviceReport(mutagen), readLinkStates()]);
40
+ const states = links.map((link) => (pid === undefined ? "closed" : stamped?.[link.sandboxUrl]));
41
+ const connected = states.every((state) => state !== undefined) ? states.filter((state) => state === "open").length : undefined;
33
42
  return {
34
43
  version: MACHINE_VERSION,
35
44
  ...(pid === undefined ? {} : { running: pid }),
36
- summary: statusSummary(pid, links.length, sync, Date.now()),
37
- device: { links: links.map((link) => ({ sandboxUrl: link.sandboxUrl, id: link.id, scopes: link.scopes })) },
45
+ summary: statusSummary(pid, links.length, sync, Date.now(), connected),
46
+ device: {
47
+ links: links.map((link, at) => {
48
+ const state = states[at];
49
+ return { sandboxUrl: link.sandboxUrl, id: link.id, scopes: link.scopes, ...(state === undefined ? {} : { state }) };
50
+ }),
51
+ },
38
52
  sync,
39
53
  };
40
54
  };
@@ -110,6 +124,18 @@ export const buildSkewLine = (report) => {
110
124
  : `Agent: running ${skew.running}, but ${skew.installed} is installed on this machine`;
111
125
  return `${which} — the loop keeps the build it started with. Restart it with \`intentic-machine run --stop\` then \`intentic-machine run\`.`;
112
126
  };
127
+ export const linkLine = (link) => {
128
+ switch (link.state) {
129
+ case "open":
130
+ return ` ${link.sandboxUrl} connected as ${link.id}`;
131
+ case "connecting":
132
+ return ` ${link.sandboxUrl} NOT connected (retrying) as ${link.id}`;
133
+ case "closed":
134
+ return ` ${link.sandboxUrl} NOT connected as ${link.id}`;
135
+ default:
136
+ return ` ${link.sandboxUrl} linked as ${link.id} (this machine's agent doesn't report whether the link is up)`;
137
+ }
138
+ };
113
139
  const printReport = (report, out) => {
114
140
  out(`Paired sandboxes (${report.pairings.length}):`);
115
141
  for (const pairing of report.pairings) {
@@ -153,7 +179,7 @@ export const status = buildCommand({
153
179
  out("");
154
180
  out(`Linked sandboxes (${links.length}):`);
155
181
  for (const link of links) {
156
- out(` ${link.sandboxUrl} connected as ${link.id}`);
182
+ out(linkLine(link));
157
183
  out(` permissions (last pushed by the sandbox): commands ${link.scopes.shell}, writes ${link.scopes.write}, screen ${link.scopes.screen}; folders ${link.scopes.roots ?? "(your home folder)"}`);
158
184
  }
159
185
  out("");
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { DeviceAgent, DeviceReport } from "@intentic/sandbox-contract";
2
2
  import { type SyncState } from "./config.js";
3
- export declare const buildReport: (state: SyncState, mutagen: string | undefined, agent: DeviceAgent, capturedAt: number) => DeviceReport;
3
+ export declare const buildReport: (state: SyncState, mutagen: string | undefined, agent: DeviceAgent, capturedAt: number, wsl?: {
4
+ readonly distro: string;
5
+ } | undefined) => DeviceReport;
4
6
  export declare const deviceReport: (mutagen: string | undefined) => Promise<DeviceReport>;
5
7
  export declare const scopedReport: (report: DeviceReport, sandboxId: string) => DeviceReport;
6
8
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/sync/report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAA6B,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGvG,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAwE3F,eAAO,MAAM,WAAW,UAAW,SAAS,WAAW,MAAM,GAAG,SAAS,SAAS,WAAW,cAAc,MAAM,KAAG,YAQlH,CAAC;AAGH,eAAO,MAAM,YAAY,YAAmB,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,YAAY,CACM,CAAC;AAI5F,eAAO,MAAM,YAAY,WAAY,YAAY,aAAa,MAAM,KAAG,YAIrE,CAAC"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/sync/report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAA6B,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAIvG,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAyE3F,eAAO,MAAM,WAAW,UACb,SAAS,WACP,MAAM,GAAG,SAAS,SACpB,WAAW,cACN,MAAM,QACZ;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,KAC9C,YAUD,CAAC;AAGH,eAAO,MAAM,YAAY,YAAmB,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,YAAY,CAGpF,CAAC;AAIF,eAAO,MAAM,YAAY,WAAY,YAAY,aAAa,MAAM,KAAG,YAIrE,CAAC"}
@@ -3,6 +3,7 @@ import { hostname, platform } from "node:os";
3
3
  import { livePidRecord } from "@intentic/local-agent";
4
4
  import { runPidPath } from "../config.js";
5
5
  import { installedBuild } from "../installed.js";
6
+ import { wslEnvironment } from "../wsl.js";
6
7
  import { mirrorHeartbeatPath, readState } from "./config.js";
7
8
  import { backupSessionName, readSessionState, sessionName } from "./mutagen.js";
8
9
  const lastTick = async () => {
@@ -50,16 +51,20 @@ const portRows = (pairing) => [
50
51
  command: port.command,
51
52
  })),
52
53
  ];
53
- export const buildReport = (state, mutagen, agent, capturedAt) => ({
54
+ export const buildReport = (state, mutagen, agent, capturedAt, wsl) => ({
54
55
  hostname: hostname(),
55
56
  os: platform(),
57
+ ...(wsl === undefined ? {} : { wsl }),
56
58
  sandboxes: [],
57
59
  pairings: state.pairings.map((pairing) => pairingReport(mutagen, pairing)),
58
60
  ports: state.pairings.flatMap(portRows),
59
61
  agent,
60
62
  capturedAt,
61
63
  });
62
- export const deviceReport = async (mutagen) => buildReport(await readState(), mutagen, await agentState(installedBuild()), Date.now());
64
+ export const deviceReport = async (mutagen) => {
65
+ const [state, agent, wsl] = await Promise.all([readState(), agentState(installedBuild()), wslEnvironment()]);
66
+ return buildReport(state, mutagen, agent, Date.now(), wsl);
67
+ };
63
68
  export const scopedReport = (report, sandboxId) => ({
64
69
  ...report,
65
70
  pairings: report.pairings.filter((pairing) => pairing.sandboxId === sandboxId),
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/sync/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/sync/report.ts"],"names":[],"mappings":"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"}
package/dist/wsl.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export declare const wslFrom: (procVersion: string | undefined, distroEnv: string | undefined, osRelease: string | undefined) => {
2
+ readonly distro: string;
3
+ } | undefined;
4
+ export declare const wslEnvironment: () => Promise<{
5
+ readonly distro: string;
6
+ } | undefined>;
7
+ //# sourceMappingURL=wsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsl.d.ts","sourceRoot":"","sources":["../src/wsl.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,OAAO,gBACH,MAAM,GAAG,SAAS,aACpB,MAAM,GAAG,SAAS,aAClB,MAAM,GAAG,SAAS,KAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAQhC,CAAC;AAWF,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAGtF,CAAC"}
package/dist/wsl.js ADDED
@@ -0,0 +1,19 @@
1
+ import { readFile } from "node:fs/promises";
2
+ const WSL_KERNEL = /microsoft/i;
3
+ export const wslFrom = (procVersion, distroEnv, osRelease) => {
4
+ const named = (distroEnv ?? "").trim();
5
+ if (named === "" && !WSL_KERNEL.test(procVersion ?? "")) {
6
+ return undefined;
7
+ }
8
+ return { distro: named === "" ? nameFrom(osRelease) : named };
9
+ };
10
+ const nameFrom = (osRelease) => {
11
+ const line = (osRelease ?? "").split(/\r?\n/).find((entry) => entry.startsWith("NAME="));
12
+ return line === undefined ? "" : line.slice("NAME=".length).trim().replaceAll(/^"|"$/g, "");
13
+ };
14
+ const readable = (path) => readFile(path, "utf8").catch(() => undefined);
15
+ export const wslEnvironment = async () => {
16
+ const [procVersion, osRelease] = await Promise.all([readable("/proc/version"), readable("/etc/os-release")]);
17
+ return wslFrom(procVersion, process.env["WSL_DISTRO_NAME"], osRelease);
18
+ };
19
+ //# sourceMappingURL=wsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsl.js","sourceRoot":"","sources":["../src/wsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C,MAAM,UAAU,GAAG,YAAY,CAAC;AAIhC,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,WAA+B,EAC/B,SAA6B,EAC7B,SAA6B,EACU,EAAE;IACzC,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACrB,CAAC;IAGD,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAClE,CAAC,CAAC;AAGF,MAAM,QAAQ,GAAG,CAAC,SAA6B,EAAU,EAAE;IACvD,MAAM,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAA+B,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAG9G,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAsD,EAAE;IACvF,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC7G,OAAO,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3E,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentic/machine",
3
- "version": "1.252.1",
3
+ "version": "1.254.0",
4
4
  "description": "The one agent that lives on a user's own device: lets an intentic sandbox work on it (outbound WebSocket, MCP tools, scopes enforced here) and keeps folders and ports mirrored with it (Mutagen over tunnel SSH)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -20,13 +20,13 @@
20
20
  "intentic-machine": "./dist/cli.js"
21
21
  },
22
22
  "dependencies": {
23
- "@intentic/base": "1.252.1",
24
- "@intentic/browser": "1.252.1",
25
- "@intentic/constants": "1.252.1",
26
- "@intentic/desktop-automation": "1.252.1",
27
- "@intentic/local-agent": "1.252.1",
28
- "@intentic/sandbox-contract": "1.252.1",
29
- "@intentic/sandbox-run": "1.252.1",
23
+ "@intentic/base": "1.254.0",
24
+ "@intentic/browser": "1.254.0",
25
+ "@intentic/constants": "1.254.0",
26
+ "@intentic/desktop-automation": "1.254.0",
27
+ "@intentic/local-agent": "1.254.0",
28
+ "@intentic/sandbox-contract": "1.254.0",
29
+ "@intentic/sandbox-run": "1.254.0",
30
30
  "@orpc/server": "1.14.13",
31
31
  "@stricli/core": "1.3.0",
32
32
  "tslib": "2.8.1",