@kdonev/termscape 0.1.1 → 0.1.3

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 (97) hide show
  1. package/README.md +53 -82
  2. package/dist/agents/profiles.d.ts +12 -5
  3. package/dist/agents/profiles.d.ts.map +1 -1
  4. package/dist/agents/profiles.js +44 -7
  5. package/dist/agents/profiles.js.map +1 -1
  6. package/dist/agents/router.d.ts.map +1 -1
  7. package/dist/agents/router.js +2 -2
  8. package/dist/agents/router.js.map +1 -1
  9. package/dist/agents/templates.d.ts +15 -0
  10. package/dist/agents/templates.d.ts.map +1 -1
  11. package/dist/agents/templates.js +32 -0
  12. package/dist/agents/templates.js.map +1 -1
  13. package/dist/agents/wiring.d.ts.map +1 -1
  14. package/dist/agents/wiring.js +14 -1
  15. package/dist/agents/wiring.js.map +1 -1
  16. package/dist/cli.js +21 -11
  17. package/dist/cli.js.map +1 -1
  18. package/dist/db/migrations.d.ts.map +1 -1
  19. package/dist/db/migrations.js +39 -0
  20. package/dist/db/migrations.js.map +1 -1
  21. package/dist/db/store.d.ts +19 -1
  22. package/dist/db/store.d.ts.map +1 -1
  23. package/dist/db/store.js +64 -9
  24. package/dist/db/store.js.map +1 -1
  25. package/dist/hub.d.ts +38 -1
  26. package/dist/hub.d.ts.map +1 -1
  27. package/dist/hub.js +49 -4
  28. package/dist/hub.js.map +1 -1
  29. package/dist/hub.tgz +0 -0
  30. package/dist/mcp/server.d.ts +1 -0
  31. package/dist/mcp/server.d.ts.map +1 -1
  32. package/dist/mcp/server.js +9 -1
  33. package/dist/mcp/server.js.map +1 -1
  34. package/dist/paths.d.ts +9 -0
  35. package/dist/paths.d.ts.map +1 -1
  36. package/dist/paths.js +9 -0
  37. package/dist/paths.js.map +1 -1
  38. package/dist/protocol/domain.d.ts +1 -0
  39. package/dist/protocol/domain.d.ts.map +1 -1
  40. package/dist/protocol/domain.js +10 -0
  41. package/dist/protocol/domain.js.map +1 -1
  42. package/dist/protocol/inject.d.ts +22 -2
  43. package/dist/protocol/inject.d.ts.map +1 -1
  44. package/dist/protocol/inject.js +24 -4
  45. package/dist/protocol/inject.js.map +1 -1
  46. package/dist/protocol/mcp-tools.d.ts +13 -0
  47. package/dist/protocol/mcp-tools.d.ts.map +1 -1
  48. package/dist/protocol/mcp-tools.js +15 -0
  49. package/dist/protocol/mcp-tools.js.map +1 -1
  50. package/dist/protocol/peer.d.ts +13 -1
  51. package/dist/protocol/peer.d.ts.map +1 -1
  52. package/dist/protocol/peer.js +45 -2
  53. package/dist/protocol/peer.js.map +1 -1
  54. package/dist/protocol/ws.d.ts +17 -0
  55. package/dist/protocol/ws.d.ts.map +1 -1
  56. package/dist/protocol/ws.js +21 -0
  57. package/dist/protocol/ws.js.map +1 -1
  58. package/dist/remote/deployer.d.ts.map +1 -1
  59. package/dist/remote/deployer.js +15 -2
  60. package/dist/remote/deployer.js.map +1 -1
  61. package/dist/remote/enroll.d.ts.map +1 -1
  62. package/dist/remote/enroll.js +25 -11
  63. package/dist/remote/enroll.js.map +1 -1
  64. package/dist/remote/join-script.d.ts.map +1 -1
  65. package/dist/remote/join-script.js +34 -2
  66. package/dist/remote/join-script.js.map +1 -1
  67. package/dist/remote/join.d.ts +2 -0
  68. package/dist/remote/join.d.ts.map +1 -1
  69. package/dist/remote/join.js +40 -1
  70. package/dist/remote/join.js.map +1 -1
  71. package/dist/remote/lan.d.ts +45 -22
  72. package/dist/remote/lan.d.ts.map +1 -1
  73. package/dist/remote/lan.js +95 -30
  74. package/dist/remote/lan.js.map +1 -1
  75. package/dist/remote/peer-serve.d.ts.map +1 -1
  76. package/dist/remote/peer-serve.js +9 -1
  77. package/dist/remote/peer-serve.js.map +1 -1
  78. package/dist/remote/registry.d.ts +1 -0
  79. package/dist/remote/registry.d.ts.map +1 -1
  80. package/dist/remote/registry.js.map +1 -1
  81. package/dist/server.d.ts.map +1 -1
  82. package/dist/server.js +21 -4
  83. package/dist/server.js.map +1 -1
  84. package/dist/session/manager.d.ts +32 -0
  85. package/dist/session/manager.d.ts.map +1 -1
  86. package/dist/session/manager.js +65 -7
  87. package/dist/session/manager.js.map +1 -1
  88. package/dist/session/pty.d.ts +48 -0
  89. package/dist/session/pty.d.ts.map +1 -1
  90. package/dist/session/pty.js +167 -1
  91. package/dist/session/pty.js.map +1 -1
  92. package/package.json +1 -1
  93. package/web/assets/index-CHlXyCCd.css +1 -0
  94. package/web/assets/index-DTl8am-O.js +111 -0
  95. package/web/index.html +2 -2
  96. package/web/assets/index-Bq_Y0JcC.js +0 -107
  97. package/web/assets/index-DQYDkOwJ.css +0 -1
@@ -243,10 +243,19 @@ WANT_STAMP="$FINGERPRINT-$NODE_ABI"
243
243
  # The stamp claims this tree still works. Confirming it does costs one Node
244
244
  # start, and is the whole difference between an optimisation and a machine
245
245
  # that joins with a hub unable to load its own modules.
246
+ #
247
+ # The confirmation is an import of the hub's own entry point rather than a
248
+ # require of the two native modules. It links the whole graph - node-pty and
249
+ # better-sqlite3 among it - so it still catches a module built for the wrong
250
+ # ABI, and it additionally catches the one thing a require of those two never
251
+ # could: a stale @termscape/protocol, which fails at link time with "does not
252
+ # provide an export named X". Importing it is side-effect free and leaves no
253
+ # handles open; the hub only starts from cli.js.
246
254
  deps_reusable() {
247
255
  [ -d "$HOME_DIR/hub/node_modules" ] || return 1
248
256
  [ "$(cat "$STAMP_FILE" 2>/dev/null || true)" = "$WANT_STAMP" ] || return 1
249
- "$NODE_BIN" -e "require('node-pty'); require('better-sqlite3')" >>"$HOME_DIR/install.log" 2>&1
257
+ "$NODE_BIN" -e "import('./dist/hub.js').catch(e => { console.error(e); process.exit(1); })" \\
258
+ >>"$HOME_DIR/install.log" 2>&1
250
259
  }
251
260
 
252
261
  install_deps() {
@@ -254,6 +263,18 @@ install_deps() {
254
263
  # A half-finished tree must not inherit the last run's stamp.
255
264
  rm -f "$STAMP_FILE"
256
265
 
266
+ # The vendored workspace package has to go before npm runs.
267
+ #
268
+ # Every other dependency is a registry package whose version moves when its
269
+ # code does, so npm reinstalls it on its own. @termscape/protocol is a
270
+ # file: tarball whose version stands still across builds while its code
271
+ # changes underneath, and npm reads the copy already in node_modules as
272
+ # satisfying the spec and leaves it there - so a hub built against a new
273
+ # protocol was installed beside last build's copy, and died on its first
274
+ # import. Deleting it is what makes npm extract the tarball again; the
275
+ # expensive native modules beside it are untouched.
276
+ rm -rf "$HOME_DIR/hub/node_modules/@termscape"
277
+
257
278
  # Prebuilt binaries first: node-pty and better-sqlite3 publish them for the
258
279
  # mainstream platforms, and downloading one beats compiling it every time.
259
280
  if run_ticking "installing" "$NPM_BIN" install --omit=dev --no-audit --no-fund; then
@@ -608,7 +629,13 @@ if ((Test-Path $hubModules) -and ($haveStamp -eq $wantStamp)) {
608
629
  # its own errors and reports through stdout and an exit code, so nothing
609
630
  # reaches PowerShell's error stream - where 5.1 turns a native command's
610
631
  # stderr into a terminating error.
611
- $probe = "try { require('node-pty'); require('better-sqlite3') } catch (e) { console.log('dependency probe failed: ' + e.message); process.exit(1) }"
632
+ #
633
+ # It imports the hub's own entry rather than requiring the two native
634
+ # modules: that links the whole graph, so it still catches a module built
635
+ # for the wrong ABI and additionally catches a stale @termscape/protocol,
636
+ # which fails at link time with "does not provide an export named X". See
637
+ # the POSIX half for why that can happen at all.
638
+ $probe = "import('./dist/hub.js').catch(e => { console.log('dependency probe failed: ' + e.message); process.exit(1) })"
612
639
  & $NodeExe -e $probe > $log
613
640
  $reusable = ($LASTEXITCODE -eq 0)
614
641
  }
@@ -620,6 +647,11 @@ if ($reusable) {
620
647
  # A half-finished tree must not inherit the last run's stamp.
621
648
  if (Test-Path $stampFile) { Remove-Item $stampFile -Force }
622
649
 
650
+ # The vendored workspace package has to go before npm runs - see the POSIX
651
+ # half for why npm will otherwise keep last build's copy of it.
652
+ $vendored = Join-Path $hubModules '@termscape'
653
+ if (Test-Path $vendored) { Remove-Item $vendored -Recurse -Force }
654
+
623
655
  # Prebuilt binaries first; compiling is the fallback, not the default.
624
656
  $npmArgs = '"' + $NpmCli + '" install --omit=dev --no-audit --no-fund'
625
657
  $rc = Invoke-Ticking 'installing' $NodeExe $npmArgs $log
@@ -1 +1 @@
1
- {"version":3,"file":"join-script.js","sourceRoot":"","sources":["../../src/remote/join-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,kFAAkF;AAClF,SAAS,EAAE,CAAC,CAAS;IACnB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,uEAAuE;AACvE,MAAM,SAAS,GAAG,sCAAsC,CAAC;AAEzD,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,KAAa;IAC3D,OAAO;kDACyC,MAAM;;;UAG9C,EAAE,CAAC,MAAM,CAAC;aACP,EAAE,CAAC,KAAK,CAAC;;YAEV,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqSxB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,KAAa;IAChE,OAAO,mDAAmD,MAAM;;;;eAInD,EAAE,CAAC,MAAM,CAAC;eACV,EAAE,CAAC,KAAK,CAAC;;eAET,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2W3B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"join-script.js","sourceRoot":"","sources":["../../src/remote/join-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,kFAAkF;AAClF,SAAS,EAAE,CAAC,CAAS;IACnB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,uEAAuE;AACvE,MAAM,SAAS,GAAG,sCAAsC,CAAC;AAEzD,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,KAAa;IAC3D,OAAO;kDACyC,MAAM;;;UAG9C,EAAE,CAAC,MAAM,CAAC;aACP,EAAE,CAAC,KAAK,CAAC;;YAEV,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0TxB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,KAAa;IAChE,OAAO,mDAAmD,MAAM;;;;eAInD,EAAE,CAAC,MAAM,CAAC;eACV,EAAE,CAAC,KAAK,CAAC;;eAET,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsX3B,CAAC;AACF,CAAC"}
@@ -10,6 +10,8 @@ export interface JoinOptions {
10
10
  label?: string;
11
11
  /** Where to keep the durable host token. Defaults to the hub home. */
12
12
  tokenFile?: string;
13
+ /** Where to keep this machine's own id. Defaults to the hub home. */
14
+ machineIdFile?: string;
13
15
  log?: (line: string) => void;
14
16
  }
15
17
  export interface JoinLink {
@@ -1 +1 @@
1
- {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../src/remote/join.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuBlD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,UAAU,CAAC;IACvB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,IAAI,IAAI,CAAC;CACd;AAkCD,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAgJtD"}
1
+ {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../src/remote/join.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuBlD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,UAAU,CAAC;IACvB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,IAAI,IAAI,CAAC;CACd;AA2DD,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,CA4JtD"}
@@ -1,3 +1,4 @@
1
+ import { randomUUID } from 'node:crypto';
1
2
  import { readFileSync, writeFileSync, mkdirSync, rmSync } from 'node:fs';
2
3
  import { hostname, platform, arch, homedir } from 'node:os';
3
4
  import { dirname } from 'node:path';
@@ -37,6 +38,33 @@ function writeHostToken(file, token) {
37
38
  mkdirSync(dirname(file), { recursive: true });
38
39
  writeFileSync(file, token, { mode: 0o600 });
39
40
  }
41
+ /**
42
+ * This machine's id, minted on first use and kept from then on.
43
+ *
44
+ * Unlike the host token it is ours rather than a canvas's, so it survives
45
+ * being forgotten by one - which is exactly the case it exists for. An
46
+ * unwritable home is not worth failing a join over: a per-process id still
47
+ * behaves like the old code did, and enrollment simply does not recognise us.
48
+ */
49
+ function machineId(file) {
50
+ try {
51
+ const existing = readFileSync(file, 'utf8').trim();
52
+ if (existing)
53
+ return existing;
54
+ }
55
+ catch {
56
+ // Not there yet, which is the ordinary first-run case.
57
+ }
58
+ const minted = randomUUID();
59
+ try {
60
+ mkdirSync(dirname(file), { recursive: true });
61
+ writeFileSync(file, minted, { mode: 0o600 });
62
+ }
63
+ catch {
64
+ // See above: worth trying, not worth stopping for.
65
+ }
66
+ return minted;
67
+ }
40
68
  /** Drop a credential the canvas has told us it does not recognise. */
41
69
  function clearHostToken(file) {
42
70
  try {
@@ -67,6 +95,7 @@ export function joinCanvas(opts) {
67
95
  opts.hub.emit('joinFailed', message);
68
96
  };
69
97
  const tokenFile = opts.tokenFile ?? paths.hostTokenFile();
98
+ const idFile = opts.machineIdFile ?? paths.machineIdFile();
70
99
  const url = peerInUrl(opts.hubUrl);
71
100
  let backoff = 500;
72
101
  let stopped = false;
@@ -108,6 +137,7 @@ export function joinCanvas(opts) {
108
137
  platform: platform(),
109
138
  arch: arch(),
110
139
  homeDir: homedir(),
140
+ machineId: machineId(idFile),
111
141
  },
112
142
  }),
113
143
  };
@@ -132,7 +162,16 @@ export function joinCanvas(opts) {
132
162
  // dropping the host and then re-running the join command. The fresh
133
163
  // key they were just handed is exactly the answer, so use it rather
134
164
  // than failing while holding an unused one.
135
- if (usedHostToken && opts.joinToken && !hostTokenSpent) {
165
+ //
166
+ // Only for that refusal, though. A schema gap is not the canvas
167
+ // saying it has forgotten us, and reading it as one is how a hub that
168
+ // had merely been upgraded threw its identity away and came back as a
169
+ // second machine. An older canvas sends no code at all, and the
170
+ // message is the only thing left to go on there.
171
+ const forgotten = msg.code === undefined
172
+ ? /unknown|expired/i.test(msg.message)
173
+ : msg.code === 'unknown-token';
174
+ if (forgotten && usedHostToken && opts.joinToken && !hostTokenSpent) {
136
175
  hostTokenSpent = true;
137
176
  clearHostToken(tokenFile);
138
177
  log('this canvas no longer knows this machine; enrolling again');
@@ -1 +1 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/remote/join.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/remote/join.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,25 @@
1
1
  /**
2
- * Picking the address another machine can reach us on.
2
+ * The IPv4 address another machine should be pointed at.
3
3
  *
4
- * `--listen lan` exists because the alternative is asking someone to work out
5
- * their own IPv4 address before they can attach a second machine, which is
6
- * exactly the kind of step that makes a feature go unused.
4
+ * Public beats private beats link-local, and a real NIC beats a virtual one
5
+ * within each class. Ties keep the order the OS reported, which is the closest
6
+ * thing to a preference the machine itself expresses.
7
7
  */
8
- /** First non-internal IPv4 address, preferring real NICs over virtual ones. */
9
8
  export declare function lanAddress(): string | null;
9
+ /** One entry of what `os.networkInterfaces()` returns, narrowed to what matters. */
10
+ export interface NicAddress {
11
+ address: string;
12
+ family: string;
13
+ internal: boolean;
14
+ }
15
+ /**
16
+ * The pick itself, over an interface map rather than the machine's own.
17
+ *
18
+ * Split out so the ordering can be tested against a machine shape that is not
19
+ * the one running the test — a VPS with a public address beside a Docker
20
+ * bridge is exactly the case this exists for, and no CI runner has one.
21
+ */
22
+ export declare function pickLanAddress(interfaces: Record<string, NicAddress[] | undefined>): string | null;
10
23
  /**
11
24
  * Turn a `--listen` value into a bind address.
12
25
  *
@@ -35,25 +48,35 @@ export interface ListenPlan {
35
48
  /**
36
49
  * Decide what to bind, and whether to hand out enrollments, from `--listen`.
37
50
  *
38
- * A hub with a UI binds wide by default. The canvas is worth opening on a
39
- * phone or a second screen and a second machine is worth attaching, and
40
- * neither is discoverable from a hub that only ever prints 127.0.0.1. Every
41
- * route that matters still requires the client token, so what widens is which
42
- * interfaces answer, not who gets in.
51
+ * A hub with a UI binds wide by default, and hands out enrollments on that
52
+ * bind. The canvas is worth opening on a phone or a second screen and a second
53
+ * machine is worth attaching, and neither is discoverable from a hub that only
54
+ * ever prints 127.0.0.1.
55
+ *
56
+ * Enrollment used to be the exception — reachable by default, enrollable only
57
+ * on `--listen lan`. That was the wrong line to draw, for a plain reason: the
58
+ * add-machine dialog is the *only* place a second machine is ever attached
59
+ * from, and on a default hub it had nothing to show but an instruction to
60
+ * restart with a flag. A feature reachable only by restarting the process with
61
+ * a flag you have to already know about is a feature nobody uses, and this one
62
+ * is the product. So the default now answers `/join`, and `--listen loopback`
63
+ * is the way to say no.
64
+ *
65
+ * What that costs is worth stating plainly, because it is real: `/join` is the
66
+ * one route served without the client token — it has to be typed by hand on a
67
+ * machine that has nothing yet — so on a network you do not trust, anyone who
68
+ * can reach this hub can pull the installer and put a machine on your canvas.
69
+ * That is what `--listen loopback` is for, and what the banner says out loud on
70
+ * every start. Everything else still needs the token.
43
71
  *
44
- * Two things are deliberately *not* covered by that default:
72
+ * One thing is still *not* covered by the default:
45
73
  *
46
- * - **A headless hub stays on loopback.** Headless means a hub that joined a
47
- * canvas or was deployed over SSH, and the SSH one is reached only through
48
- * its tunnel — binding it wide would put a hub on a network that its
49
- * operator never asked to expose and cannot see. It has no UI to reach
50
- * anyway, so there is nothing to gain against that.
51
- * - **Enrollment stays opt-in.** `/join` is the one route served without the
52
- * token, because it has to be typed by hand on a machine that has nothing
53
- * yet. A token-gated canvas on the café wi-fi is a different proposition
54
- * from a page that hands anyone an installer and a slot on your canvas. So
55
- * the default is reachable, and `--listen lan` is still what makes it
56
- * enrollable.
74
+ * - **A headless hub stays on loopback, and never enrolls.** Headless means a
75
+ * hub that joined a canvas or was deployed over SSH, and the SSH one is
76
+ * reached only through its tunnel — binding it wide would put a hub on a
77
+ * network that its operator never asked to expose and cannot see. It has no
78
+ * UI to reach anyway, and a machine attaching to *it* rather than to the
79
+ * canvas is not a thing anyone wants.
57
80
  *
58
81
  * `hasLan` is injected so this is testable without a network interface; the
59
82
  * fallback matters because a machine with no non-loopback address must still
@@ -1 +1 @@
1
- {"version":3,"file":"lan.d.ts","sourceRoot":"","sources":["../../src/remote/lan.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,+EAA+E;AAC/E,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAa1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,UAAU,CAUZ;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAkB,GAC5D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB"}
1
+ {"version":3,"file":"lan.d.ts","sourceRoot":"","sources":["../../src/remote/lan.ts"],"names":[],"mappings":"AAgDA;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C;AAED,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,GACnD,MAAM,GAAG,IAAI,CAWf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,UAAU,CAYZ;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAkB,GAC5D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB"}
@@ -7,23 +7,76 @@ import { lookup } from 'node:dns/promises';
7
7
  * their own IPv4 address before they can attach a second machine, which is
8
8
  * exactly the kind of step that makes a feature go unused.
9
9
  */
10
- /** First non-internal IPv4 address, preferring real NICs over virtual ones. */
10
+ /**
11
+ * How good an address is as the one to hand another machine, lower is better.
12
+ *
13
+ * The ordering is "who can reach me on this": a globally routable address can
14
+ * be reached from anywhere, an RFC1918 address only from the same network, a
15
+ * link-local one only from the same wire and usually not even then. A machine
16
+ * with a public IP — a VPS, a box with a routable interface beside its LAN one
17
+ * — has to advertise that one, or it hands out an address the machine being
18
+ * attached has no route to.
19
+ *
20
+ * Interface kind is the tie-break rather than the rule: Docker bridges, WSL
21
+ * adapters and VM host-only networks carry private addresses that are
22
+ * reachable from almost nothing, so they lose to a real interface holding an
23
+ * address of the same class.
24
+ */
25
+ function addressRank(name, address) {
26
+ const virtual = /^(docker|br-|veth|vEthernet|virbr|utun|tailscale)/i.test(name) ? 1 : 0;
27
+ if (isLinkLocalV4(address))
28
+ return 6 + virtual;
29
+ if (isPrivateV4(address))
30
+ return 2 + virtual;
31
+ return 0 + virtual;
32
+ }
33
+ /** RFC1918 plus the shared-address and carrier-grade NAT range. */
34
+ function isPrivateV4(address) {
35
+ const [a = 0, b = 0] = address.split('.').map(Number);
36
+ if (a === 10)
37
+ return true;
38
+ if (a === 172 && b >= 16 && b <= 31)
39
+ return true;
40
+ if (a === 192 && b === 168)
41
+ return true;
42
+ if (a === 100 && b >= 64 && b <= 127)
43
+ return true;
44
+ return false;
45
+ }
46
+ /** 169.254.0.0/16 — what an interface holds when DHCP never answered. */
47
+ function isLinkLocalV4(address) {
48
+ return address.startsWith('169.254.');
49
+ }
50
+ /**
51
+ * The IPv4 address another machine should be pointed at.
52
+ *
53
+ * Public beats private beats link-local, and a real NIC beats a virtual one
54
+ * within each class. Ties keep the order the OS reported, which is the closest
55
+ * thing to a preference the machine itself expresses.
56
+ */
11
57
  export function lanAddress() {
58
+ return pickLanAddress(networkInterfaces());
59
+ }
60
+ /**
61
+ * The pick itself, over an interface map rather than the machine's own.
62
+ *
63
+ * Split out so the ordering can be tested against a machine shape that is not
64
+ * the one running the test — a VPS with a public address beside a Docker
65
+ * bridge is exactly the case this exists for, and no CI runner has one.
66
+ */
67
+ export function pickLanAddress(interfaces) {
12
68
  const candidates = [];
13
- for (const [name, addrs] of Object.entries(networkInterfaces())) {
69
+ for (const [name, addrs] of Object.entries(interfaces)) {
14
70
  for (const a of addrs ?? []) {
15
71
  if (a.family !== 'IPv4' || a.internal)
16
72
  continue;
17
- // Docker bridges, WSL adapters and VM host-only networks are reachable
18
- // from almost nothing, so they lose to a real interface.
19
- const virtual = /^(docker|br-|veth|vEthernet|virbr|utun|tailscale)/i.test(name);
20
- if (virtual)
21
- candidates.push(a.address);
22
- else
23
- candidates.unshift(a.address);
73
+ candidates.push({ address: a.address, rank: addressRank(name, a.address) });
24
74
  }
25
75
  }
26
- return candidates[0] ?? null;
76
+ if (candidates.length === 0)
77
+ return null;
78
+ // Stable: only a strictly better rank moves ahead of what came first.
79
+ return candidates.reduce((best, c) => (c.rank < best.rank ? c : best)).address;
27
80
  }
28
81
  /**
29
82
  * Turn a `--listen` value into a bind address.
@@ -54,25 +107,35 @@ export function resolveBindHost(spec) {
54
107
  /**
55
108
  * Decide what to bind, and whether to hand out enrollments, from `--listen`.
56
109
  *
57
- * A hub with a UI binds wide by default. The canvas is worth opening on a
58
- * phone or a second screen and a second machine is worth attaching, and
59
- * neither is discoverable from a hub that only ever prints 127.0.0.1. Every
60
- * route that matters still requires the client token, so what widens is which
61
- * interfaces answer, not who gets in.
110
+ * A hub with a UI binds wide by default, and hands out enrollments on that
111
+ * bind. The canvas is worth opening on a phone or a second screen and a second
112
+ * machine is worth attaching, and neither is discoverable from a hub that only
113
+ * ever prints 127.0.0.1.
114
+ *
115
+ * Enrollment used to be the exception — reachable by default, enrollable only
116
+ * on `--listen lan`. That was the wrong line to draw, for a plain reason: the
117
+ * add-machine dialog is the *only* place a second machine is ever attached
118
+ * from, and on a default hub it had nothing to show but an instruction to
119
+ * restart with a flag. A feature reachable only by restarting the process with
120
+ * a flag you have to already know about is a feature nobody uses, and this one
121
+ * is the product. So the default now answers `/join`, and `--listen loopback`
122
+ * is the way to say no.
123
+ *
124
+ * What that costs is worth stating plainly, because it is real: `/join` is the
125
+ * one route served without the client token — it has to be typed by hand on a
126
+ * machine that has nothing yet — so on a network you do not trust, anyone who
127
+ * can reach this hub can pull the installer and put a machine on your canvas.
128
+ * That is what `--listen loopback` is for, and what the banner says out loud on
129
+ * every start. Everything else still needs the token.
62
130
  *
63
- * Two things are deliberately *not* covered by that default:
131
+ * One thing is still *not* covered by the default:
64
132
  *
65
- * - **A headless hub stays on loopback.** Headless means a hub that joined a
66
- * canvas or was deployed over SSH, and the SSH one is reached only through
67
- * its tunnel — binding it wide would put a hub on a network that its
68
- * operator never asked to expose and cannot see. It has no UI to reach
69
- * anyway, so there is nothing to gain against that.
70
- * - **Enrollment stays opt-in.** `/join` is the one route served without the
71
- * token, because it has to be typed by hand on a machine that has nothing
72
- * yet. A token-gated canvas on the café wi-fi is a different proposition
73
- * from a page that hands anyone an installer and a slot on your canvas. So
74
- * the default is reachable, and `--listen lan` is still what makes it
75
- * enrollable.
133
+ * - **A headless hub stays on loopback, and never enrolls.** Headless means a
134
+ * hub that joined a canvas or was deployed over SSH, and the SSH one is
135
+ * reached only through its tunnel — binding it wide would put a hub on a
136
+ * network that its operator never asked to expose and cannot see. It has no
137
+ * UI to reach anyway, and a machine attaching to *it* rather than to the
138
+ * canvas is not a thing anyone wants.
76
139
  *
77
140
  * `hasLan` is injected so this is testable without a network interface; the
78
141
  * fallback matters because a machine with no non-loopback address must still
@@ -82,11 +145,13 @@ export function listenPlan(spec, opts = {}) {
82
145
  const hasLan = opts.hasLan ?? lanAddress() !== null;
83
146
  if (spec === undefined) {
84
147
  const wide = !opts.headless && hasLan;
85
- return { host: wide ? '0.0.0.0' : '127.0.0.1', enroll: false };
148
+ // Enrollment follows the bind, both ways: a hub that fell back to loopback
149
+ // for want of an address has nothing to advertise and must not claim a
150
+ // join page, and a headless one is not a canvas to attach to.
151
+ return { host: wide ? '0.0.0.0' : '127.0.0.1', enroll: wide };
86
152
  }
87
153
  const host = resolveBindHost(spec);
88
- // Asking for a wider bind by hand is the deliberate act that turns the join
89
- // page on; it is what `--listen lan` has always meant.
154
+ // Same rule when it was asked for by hand: anything but loopback enrolls.
90
155
  return { host, enroll: !isLoopback(host) };
91
156
  }
92
157
  /** Whether a bind on this address also answers on 127.0.0.1. */
@@ -1 +1 @@
1
- {"version":3,"file":"lan.js","sourceRoot":"","sources":["../../src/remote/lan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lan.js","sourceRoot":"","sources":["../../src/remote/lan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;GAMG;AAEH;;;;;;;;;;;;;;GAcG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,OAAe;IAChD,MAAM,OAAO,GAAG,oDAAoD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,IAAI,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC/C,IAAI,WAAW,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7C,OAAO,CAAC,GAAG,OAAO,CAAC;AACrB,CAAC;AAED,mEAAmE;AACnE,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yEAAyE;AACzE,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC7C,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAoD;IAEpD,MAAM,UAAU,GAAwC,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ;gBAAE,SAAS;YAChD,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,sEAAsE;IACtE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,WAAW,CAAC;IAC5C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,8DAA8D;gBAC5D,mCAAmC,CACtC,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,UAAU,CACxB,IAAwB,EACxB,OAAiD,EAAE;IAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,KAAK,IAAI,CAAC;IACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;QACtC,2EAA2E;QAC3E,uEAAuE;QACvE,8DAA8D;QAC9D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAChE,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,0EAA0E;IAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,UAAU,EAAE,CAAC;IAC7D,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAU,EACV,UAA+C,cAAc;IAE7D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;IAE9E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,OAAO,SAAS,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"peer-serve.d.ts","sourceRoot":"","sources":["../../src/remote/peer-serve.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,YAAY,EAIlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAuBrC;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,MAAM,IAAI,SAAS,EAAE,CAAC;IACtB,uEAAuE;IACvE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,yDAAyD;IACzD,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CA4R1E"}
1
+ {"version":3,"file":"peer-serve.d.ts","sourceRoot":"","sources":["../../src/remote/peer-serve.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,YAAY,EAIlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAuBrC;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,MAAM,IAAI,SAAS,EAAE,CAAC;IACtB,uEAAuE;IACvE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,yDAAyD;IACzD,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAmS1E"}
@@ -168,6 +168,7 @@ export function createPeerServer(hub, clientToken) {
168
168
  model: req.model,
169
169
  effort: req.effort,
170
170
  prompt: req.prompt,
171
+ env: req.env,
171
172
  name: req.name,
172
173
  // Deliberately no `spawnedBy` here even though the request
173
174
  // carries one: the spawner lives on the canvas hub, its id
@@ -224,7 +225,14 @@ export function createPeerServer(hub, clientToken) {
224
225
  const t = hub.sessions.getByAddress(req.address);
225
226
  if (!t)
226
227
  return err(`no agent at address "${req.address}"`);
227
- hub.sessions.write(t.id, req.data);
228
+ // `binary` carries bytes one per code unit; anything else, including
229
+ // an older canvas that sends no encoding at all, is text.
230
+ if (req.encoding === 'binary') {
231
+ hub.sessions.writeBytes(t.id, Buffer.from(req.data, 'latin1'));
232
+ }
233
+ else {
234
+ hub.sessions.write(t.id, req.data);
235
+ }
228
236
  return ok({ ok: true });
229
237
  }
230
238
  case 'resize': {
@@ -1 +1 @@
1
- {"version":3,"file":"peer-serve.js","sourceRoot":"","sources":["../../src/remote/peer-serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer-serve.js","sourceRoot":"","sources":["../../src/remote/peer-serve.ts"],"names":[],"mappings":"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"}
@@ -157,6 +157,7 @@ export declare class PeerRegistry extends EventEmitter {
157
157
  model?: string;
158
158
  effort?: string;
159
159
  prompt?: string;
160
+ env?: Record<string, string>;
160
161
  name?: string;
161
162
  spawnedByAddress: string | null;
162
163
  }): Promise<Session>;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/remote/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/remote/registry.ts"],"names":[],"mappings":"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"}