@kdonev/termscape 0.1.2 → 0.1.4

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 (120) hide show
  1. package/README.md +35 -4
  2. package/dist/agents/polling.d.ts +31 -0
  3. package/dist/agents/polling.d.ts.map +1 -0
  4. package/dist/agents/polling.js +65 -0
  5. package/dist/agents/polling.js.map +1 -0
  6. package/dist/agents/profiles.d.ts +21 -6
  7. package/dist/agents/profiles.d.ts.map +1 -1
  8. package/dist/agents/profiles.js +121 -3
  9. package/dist/agents/profiles.js.map +1 -1
  10. package/dist/agents/router.d.ts.map +1 -1
  11. package/dist/agents/router.js +2 -2
  12. package/dist/agents/router.js.map +1 -1
  13. package/dist/agents/shares.d.ts +32 -0
  14. package/dist/agents/shares.d.ts.map +1 -0
  15. package/dist/agents/shares.js +46 -0
  16. package/dist/agents/shares.js.map +1 -0
  17. package/dist/agents/wiring.d.ts +8 -0
  18. package/dist/agents/wiring.d.ts.map +1 -1
  19. package/dist/agents/wiring.js +72 -7
  20. package/dist/agents/wiring.js.map +1 -1
  21. package/dist/cli-args.d.ts +61 -0
  22. package/dist/cli-args.d.ts.map +1 -0
  23. package/dist/cli-args.js +35 -0
  24. package/dist/cli-args.js.map +1 -0
  25. package/dist/cli.js +10 -17
  26. package/dist/cli.js.map +1 -1
  27. package/dist/db/migrations.d.ts.map +1 -1
  28. package/dist/db/migrations.js +69 -0
  29. package/dist/db/migrations.js.map +1 -1
  30. package/dist/db/store.d.ts +21 -1
  31. package/dist/db/store.d.ts.map +1 -1
  32. package/dist/db/store.js +79 -3
  33. package/dist/db/store.js.map +1 -1
  34. package/dist/debug.d.ts +11 -0
  35. package/dist/debug.d.ts.map +1 -0
  36. package/dist/debug.js +45 -0
  37. package/dist/debug.js.map +1 -0
  38. package/dist/folders.d.ts +33 -0
  39. package/dist/folders.d.ts.map +1 -0
  40. package/dist/folders.js +88 -0
  41. package/dist/folders.js.map +1 -0
  42. package/dist/hub.d.ts +128 -3
  43. package/dist/hub.d.ts.map +1 -1
  44. package/dist/hub.js +498 -44
  45. package/dist/hub.js.map +1 -1
  46. package/dist/hub.tgz +0 -0
  47. package/dist/mcp/server.d.ts +2 -0
  48. package/dist/mcp/server.d.ts.map +1 -1
  49. package/dist/mcp/server.js +38 -5
  50. package/dist/mcp/server.js.map +1 -1
  51. package/dist/paths.d.ts +9 -0
  52. package/dist/paths.d.ts.map +1 -1
  53. package/dist/paths.js +9 -0
  54. package/dist/paths.js.map +1 -1
  55. package/dist/protocol/domain.d.ts +74 -0
  56. package/dist/protocol/domain.d.ts.map +1 -1
  57. package/dist/protocol/domain.js +58 -0
  58. package/dist/protocol/domain.js.map +1 -1
  59. package/dist/protocol/index.d.ts +1 -0
  60. package/dist/protocol/index.d.ts.map +1 -1
  61. package/dist/protocol/index.js +1 -0
  62. package/dist/protocol/index.js.map +1 -1
  63. package/dist/protocol/inject.d.ts +22 -2
  64. package/dist/protocol/inject.d.ts.map +1 -1
  65. package/dist/protocol/inject.js +24 -4
  66. package/dist/protocol/inject.js.map +1 -1
  67. package/dist/protocol/mcp-tools.d.ts +4 -0
  68. package/dist/protocol/mcp-tools.d.ts.map +1 -1
  69. package/dist/protocol/mcp-tools.js +16 -2
  70. package/dist/protocol/mcp-tools.js.map +1 -1
  71. package/dist/protocol/mouse.d.ts +54 -0
  72. package/dist/protocol/mouse.d.ts.map +1 -0
  73. package/dist/protocol/mouse.js +187 -0
  74. package/dist/protocol/mouse.js.map +1 -0
  75. package/dist/protocol/peer.d.ts +53 -1
  76. package/dist/protocol/peer.d.ts.map +1 -1
  77. package/dist/protocol/peer.js +96 -3
  78. package/dist/protocol/peer.js.map +1 -1
  79. package/dist/protocol/ws.d.ts +127 -2
  80. package/dist/protocol/ws.d.ts.map +1 -1
  81. package/dist/protocol/ws.js +83 -1
  82. package/dist/protocol/ws.js.map +1 -1
  83. package/dist/remote/deployer.d.ts.map +1 -1
  84. package/dist/remote/deployer.js +5 -1
  85. package/dist/remote/deployer.js.map +1 -1
  86. package/dist/remote/enroll.d.ts.map +1 -1
  87. package/dist/remote/enroll.js +25 -11
  88. package/dist/remote/enroll.js.map +1 -1
  89. package/dist/remote/join-script.d.ts.map +1 -1
  90. package/dist/remote/join-script.js +156 -31
  91. package/dist/remote/join-script.js.map +1 -1
  92. package/dist/remote/join.d.ts +2 -0
  93. package/dist/remote/join.d.ts.map +1 -1
  94. package/dist/remote/join.js +40 -1
  95. package/dist/remote/join.js.map +1 -1
  96. package/dist/remote/peer-serve.d.ts +19 -2
  97. package/dist/remote/peer-serve.d.ts.map +1 -1
  98. package/dist/remote/peer-serve.js +95 -7
  99. package/dist/remote/peer-serve.js.map +1 -1
  100. package/dist/remote/registry.d.ts +10 -0
  101. package/dist/remote/registry.d.ts.map +1 -1
  102. package/dist/remote/registry.js +31 -5
  103. package/dist/remote/registry.js.map +1 -1
  104. package/dist/server.d.ts.map +1 -1
  105. package/dist/server.js +269 -10
  106. package/dist/server.js.map +1 -1
  107. package/dist/session/manager.d.ts +25 -0
  108. package/dist/session/manager.d.ts.map +1 -1
  109. package/dist/session/manager.js +42 -0
  110. package/dist/session/manager.js.map +1 -1
  111. package/dist/session/pty.d.ts +30 -1
  112. package/dist/session/pty.d.ts.map +1 -1
  113. package/dist/session/pty.js +98 -1
  114. package/dist/session/pty.js.map +1 -1
  115. package/package.json +1 -1
  116. package/web/assets/index-Z03Ta4g3.js +111 -0
  117. package/web/assets/index-u_uCiaPD.css +1 -0
  118. package/web/index.html +2 -2
  119. package/web/assets/index-9Z_8xZqk.js +0 -111
  120. package/web/assets/index-DheUm5dl.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/remote/deployer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/remote/deployer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"enroll.d.ts","sourceRoot":"","sources":["../../src/remote/enroll.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AA0BrC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,kFAAkF;IAClF,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,IAAI,IAAI,MAAM,CAAC;IACf,YAAY,IAAI,MAAM,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,aAAa,GAClB,UAAU,CAoKZ"}
1
+ {"version":3,"file":"enroll.d.ts","sourceRoot":"","sources":["../../src/remote/enroll.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AA0BrC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,kFAAkF;IAClF,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,IAAI,IAAI,MAAM,CAAC;IACf,YAAY,IAAI,MAAM,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,aAAa,GAClB,UAAU,CA0LZ"}
@@ -109,8 +109,8 @@ export function registerEnrollment(app, opts) {
109
109
  if (socket.readyState === socket.OPEN)
110
110
  socket.send(JSON.stringify(msg));
111
111
  };
112
- const refuse = (message) => {
113
- reply({ t: 'err', id: 'hello', message });
112
+ const refuse = (message, code) => {
113
+ reply({ t: 'err', id: 'hello', message, code });
114
114
  socket.close();
115
115
  };
116
116
  const onHello = (raw) => {
@@ -123,15 +123,15 @@ export function registerEnrollment(app, opts) {
123
123
  parsed = PeerRequest.safeParse(JSON.parse(raw.toString('utf8')));
124
124
  }
125
125
  catch {
126
- return refuse('unparseable hello');
126
+ return refuse('unparseable hello', 'bad-hello');
127
127
  }
128
128
  if (!parsed.success || parsed.data.t !== 'hello') {
129
- return refuse('expected hello');
129
+ return refuse('expected hello', 'bad-hello');
130
130
  }
131
131
  const hello = parsed.data;
132
132
  if (hello.schemaVersion !== PEER_SCHEMA_VERSION) {
133
133
  return refuse(`peer schema mismatch: you speak v${hello.schemaVersion}, this hub speaks ` +
134
- `v${PEER_SCHEMA_VERSION}. Re-run the join command to get a matching hub.`);
134
+ `v${PEER_SCHEMA_VERSION}. Re-run the join command to get a matching hub.`, 'schema-mismatch');
135
135
  }
136
136
  let host = null;
137
137
  let issuedToken;
@@ -142,11 +142,25 @@ export function registerEnrollment(app, opts) {
142
142
  hub.store.upsertHost(host);
143
143
  }
144
144
  else if (consume(hello.token)) {
145
- if (!hello.enroll)
146
- return refuse('enrollment token used without host details');
145
+ if (!hello.enroll) {
146
+ return refuse('enrollment token used without host details', 'bad-hello');
147
+ }
147
148
  issuedToken = randomBytes(24).toString('base64url');
149
+ const machineId = hello.enroll.machineId ?? null;
150
+ /*
151
+ * A machine we already have a row for, enrolling again. It lost its
152
+ * host token - a wiped ~/.termscape, or a refusal it read as being
153
+ * forgotten - and without this it would land on the canvas a second
154
+ * time, with its own windows, beside the row that is the same box.
155
+ * So the row is kept and handed the new token; only the details it
156
+ * reports are refreshed.
157
+ */
158
+ const sameMachine = machineId ? hub.store.hostByMachineId(machineId) : null;
148
159
  host = {
149
- id: randomUUID(),
160
+ id: sameMachine?.id ?? randomUUID(),
161
+ // Its own name for itself wins: it is what the person running the
162
+ // join command typed, and a label edited here is not worth keeping
163
+ // over a machine that has just told us what it is called.
150
164
  label: hello.enroll.label,
151
165
  kind: 'enrolled',
152
166
  sshHost: null,
@@ -155,14 +169,14 @@ export function registerEnrollment(app, opts) {
155
169
  platform: `${hello.enroll.platform}-${hello.enroll.arch}`,
156
170
  hubVersion: hello.hubVersion,
157
171
  state: 'connecting',
158
- lastSeenAt: null,
172
+ lastSeenAt: sameMachine?.lastSeenAt ?? null,
159
173
  error: null,
160
174
  };
161
- hub.store.upsertHost({ ...host, hostToken: issuedToken });
175
+ hub.store.upsertHost({ ...host, hostToken: issuedToken, machineId });
162
176
  hub.emit('host', host);
163
177
  }
164
178
  else {
165
- return refuse('unknown or expired enrollment token; open the join page again');
179
+ return refuse('unknown or expired enrollment token; open the join page again', 'unknown-token');
166
180
  }
167
181
  settled = true;
168
182
  reply({
@@ -1 +1 @@
1
- {"version":3,"file":"enroll.js","sourceRoot":"","sources":["../../src/remote/enroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EACL,WAAW,EACX,mBAAmB,GAGpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;GAWG;AAEH,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC;;;;GAIG;AACH,MAAM,WAAW,GAAG,EAAE,CAAC;AAcvB,MAAM,UAAU,kBAAkB,CAChC,GAAoB,EACpB,IAAmB;IAEnB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACnC,qDAAqD;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,SAAS,KAAK;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;YACvC,IAAI,OAAO,IAAI,GAAG;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,SAAS,IAAI;QACX,KAAK,EAAE,CAAC;QACR,OAAO,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;YACnC,yEAAyE;YACzE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,OAAO,CAAC,KAAa;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAE5E;;;;OAIG;IACH,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,0BAA0B,CAAC;iBAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,KAAK;aACT,IAAI,CAAC,0BAA0B,CAAC;aAChC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;aACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAC9F,OAAO,KAAK;aACT,IAAI,CAAC,mCAAmC,CAAC;aACzC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;aACnC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAC9F,OAAO,KAAK;aACT,IAAI,CAAC,2BAA2B,CAAC;aACjC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;aACnC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E;;;;OAIG;IACH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,MAAiB,EAAE,EAAE;QAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,KAAK,GAAG,CAAC,GAAiB,EAAQ,EAAE;YACxC,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,OAAe,EAAQ,EAAE;YACvC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAQ,EAAE;YACpC,oEAAoE;YACpE,iCAAiC;YACjC,IAAI,OAAO;gBAAE,OAAO;YAEpB,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;gBACjD,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YAE1B,IAAI,KAAK,CAAC,aAAa,KAAK,mBAAmB,EAAE,CAAC;gBAChD,OAAO,MAAM,CACX,oCAAoC,KAAK,CAAC,aAAa,oBAAoB;oBACzE,IAAI,mBAAmB,kDAAkD,CAC5E,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,GAAgB,IAAI,CAAC;YAC7B,IAAI,WAA+B,CAAC;YAEpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,qEAAqE;gBACrE,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBAClD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,OAAO,MAAM,CAAC,4CAA4C,CAAC,CAAC;gBAC/E,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACpD,IAAI,GAAG;oBACL,EAAE,EAAE,UAAU,EAAE;oBAChB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;oBACzB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;oBACzD,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,KAAK,EAAE,YAAY;oBACnB,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,IAAI;iBACZ,CAAC;gBACF,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,CAAC,+DAA+D,CAAC,CAAC;YACjF,CAAC;YAED,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,CAAC;gBACJ,CAAC,EAAE,SAAS;gBACZ,UAAU,EAAE,WAAW;gBACvB,aAAa,EAAE,mBAAmB;gBAClC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAC,CAAC;YACH,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,8EAA8E;AAE9E,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBhB,CAAC;AAEF,SAAS,QAAQ,CAAC,MAAc;IAC9B,OAAO;;;;SAIA,QAAQ;;;;2DAI0C,UAAU,CAAC,MAAM,CAAC;;;oBAGzD,UAAU,CAAC,MAAM,CAAC;;;aAGzB,UAAU,CAAC,MAAM,CAAC;;;;;;;CAO9B,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;;;SAGA,QAAQ;;;;;;;;CAQhB,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"enroll.js","sourceRoot":"","sources":["../../src/remote/enroll.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"join-script.d.ts","sourceRoot":"","sources":["../../src/remote/join-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAUH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAmUrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA+X1E"}
1
+ {"version":3,"file":"join-script.d.ts","sourceRoot":"","sources":["../../src/remote/join-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAUH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA+UrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgf1E"}
@@ -307,8 +307,20 @@ fi
307
307
 
308
308
  # --- join -------------------------------------------------------------------
309
309
  step 4/4 "connecting to $HUB_URL"
310
+ # --opt=value, not --opt value, and it is not a style choice: an enrollment
311
+ # token is base64url, whose alphabet includes '-', so one token in sixty-four
312
+ # begins with a dash. Node's parseArgs runs in strict mode and refuses a
313
+ # separate argument that looks like another option, which made roughly 1.5% of
314
+ # joins die with ERR_PARSE_ARGS_INVALID_OPTION_VALUE after the install had
315
+ # already finished. The '=' form has no such ambiguity.
316
+ #
317
+ # Still nohup with stdout redirected, unlike the PowerShell half, which had to
318
+ # stop doing that to keep the hub attached to a console. That fix is for a
319
+ # Windows problem and only a Windows problem: a pty here is a pty whether or
320
+ # not the process that opened it has a controlling terminal, so detaching
321
+ # costs nothing and the daemon behaviour is worth more.
310
322
  TERMSCAPE_HOME="$HOME_DIR" nohup "$NODE_BIN" "$HOME_DIR/hub/dist/cli.js" \\
311
- --headless --port 0 --join "$HUB_URL" --join-token "$JOIN_TOKEN" \\
323
+ --headless --port 0 --join="$HUB_URL" --join-token="$JOIN_TOKEN" \\
312
324
  >"$HOME_DIR/hub.log" 2>&1 &
313
325
  HUB_PID=$!
314
326
 
@@ -436,45 +448,135 @@ function Invoke-Ticking($label, $exe, $argString, $log) {
436
448
  return $p.ExitCode
437
449
  }
438
450
 
439
- # A hub from an earlier join is still running and still holds its own install
440
- # open. On Windows a loaded .node cannot be deleted at all, so without this the
441
- # whole re-join dies on an access-denied removing better-sqlite3. It also stops
442
- # this machine appearing twice on the canvas.
451
+ # A hub from an earlier join is still running, and Windows never kills a
452
+ # process's children with it: force-killing only node.exe left every terminal
453
+ # it opened - the ConPTY conhost.exe and the shell or agent inside it - still
454
+ # holding the install directory open, so Remove-Item failed with "something
455
+ # still has a file open there" even though the hub itself was gone. This walks
456
+ # the whole tree instead: the hub's own pid (or pids), everything descended
457
+ # from them, and anything else with a handle on $hubDir, however it got there.
443
458
  function Stop-RunningHub($hubDir) {
444
459
  $pidFile = Join-Path $HomeDir 'hub.pid'
445
- $targets = @()
460
+
461
+ # One snapshot: walking a tree against a process list that can change under
462
+ # us would either miss a child or, worse, follow a pid that has already been
463
+ # recycled into something unrelated.
464
+ $all = @(Get-CimInstance Win32_Process -ErrorAction SilentlyContinue)
465
+ $byPid = @{}
466
+ $byParent = @{}
467
+ # CIM hands pids back as UInt32, and a hashtable never matches a UInt32 key
468
+ # against the Int32 read from hub.pid - so every key is an [int].
469
+ foreach ($proc in $all) {
470
+ $byPid[[int]$proc.ProcessId] = $proc
471
+ $pp = [int]$proc.ParentProcessId
472
+ if ($byParent.ContainsKey($pp)) { $byParent[$pp] += $proc } else { $byParent[$pp] = @($proc) }
473
+ }
474
+
475
+ # Root pids: the hub recorded in hub.pid, even if it is no longer running -
476
+ # its orphans still carry it as their ParentProcessId - plus the existing
477
+ # fallback for a hub that predates the pid file or lost it: a node.exe still
478
+ # pointing at this install.
479
+ $roots = @()
446
480
 
447
481
  if (Test-Path $pidFile) {
448
482
  $recorded = (Get-Content $pidFile -Raw).Trim()
449
483
  if ($recorded -match '^\\d+$') {
450
- $p = Get-Process -Id ([int]$recorded) -ErrorAction SilentlyContinue
451
- if ($p) { $targets += $p }
484
+ $rpid = [int]$recorded
485
+ if ($byPid.ContainsKey($rpid)) {
486
+ $roots += @{ Pid = $rpid; Since = $byPid[$rpid].CreationDate }
487
+ } else {
488
+ # The hub is already dead, so there is no CreationDate to anchor the
489
+ # pid-reuse guard below on. The pid file's own write time stands in
490
+ # for it instead - a few seconds early, since the hub wrote the file
491
+ # before it went on to start anything.
492
+ $since = $null
493
+ try { $since = (Get-Item $pidFile).LastWriteTime.AddSeconds(-5) } catch {}
494
+ $roots += @{ Pid = $rpid; Since = $since }
495
+ }
452
496
  }
453
497
  }
454
498
 
455
- # A hub predating the pid file, or one whose file was lost: find it by the
456
- # install it was started from.
457
- if (-not $targets) {
458
- $targets = @(Get-CimInstance Win32_Process -Filter "Name='node.exe'" -ErrorAction SilentlyContinue |
459
- Where-Object {
460
- $_.CommandLine -and
461
- ($_.CommandLine -like "*$hubDir*" -or $_.CommandLine -like "*$HomeDir*")
462
- } |
463
- ForEach-Object { Get-Process -Id $_.ProcessId -ErrorAction SilentlyContinue })
499
+ # Only when hub.pid names no live hub, as before: an agent CLI started by a
500
+ # hub on this same machine carries ~/.termscape/run/... on its command line,
501
+ # and matching it here would kill its whole tree.
502
+ $liveRoot = @($roots | Where-Object { $byPid.ContainsKey($_.Pid) }).Count -gt 0
503
+ $seenRoots = @($roots | ForEach-Object { $_.Pid })
504
+ foreach ($proc in $all) {
505
+ if ($liveRoot) { break }
506
+ if ($proc.Name -ne 'node.exe' -or -not $proc.CommandLine) { continue }
507
+ if ($seenRoots -contains [int]$proc.ProcessId) { continue }
508
+ if ($proc.CommandLine -like "*$hubDir*" -or $proc.CommandLine -like "*$HomeDir*") {
509
+ $roots += @{ Pid = [int]$proc.ProcessId; Since = $proc.CreationDate }
510
+ }
464
511
  }
465
512
 
466
- foreach ($p in $targets) {
467
- Note "stopping the hub already running here (pid $($p.Id))"
468
- try {
469
- $p.CloseMainWindow() | Out-Null
470
- Stop-Process -Id $p.Id -Force -ErrorAction Stop
471
- $p.WaitForExit(10000) | Out-Null
472
- } catch {
473
- Note "could not stop pid $($p.Id): $($_.Exception.Message)"
513
+ # Walk descendants breadth-first. $order records the discovery order so
514
+ # roots - enqueued first - end up last once it is reversed below, which is
515
+ # what puts every descendant ahead of the root that started it without
516
+ # having to track depth explicitly.
517
+ $victims = @{}
518
+ $order = New-Object System.Collections.Generic.List[int]
519
+ $frontier = New-Object System.Collections.Generic.Queue[object]
520
+ foreach ($r in $roots) { $frontier.Enqueue($r) }
521
+
522
+ while ($frontier.Count -gt 0) {
523
+ $cur = $frontier.Dequeue()
524
+ if ($cur.Pid -eq $PID -or $victims.ContainsKey($cur.Pid)) { continue }
525
+ $victims[$cur.Pid] = $true
526
+ $order.Add($cur.Pid)
527
+ $children = $byParent[$cur.Pid]
528
+ if (-not $children) { continue }
529
+ foreach ($child in $children) {
530
+ $cpid = [int]$child.ProcessId
531
+ if ($cpid -eq $PID -or $victims.ContainsKey($cpid)) { continue }
532
+ # Pid reuse guard: a child counts only if Windows created it at or
533
+ # after its parent (or the parent is dead and $cur.Since is the pid
534
+ # file's write time standing in for that, from above).
535
+ if ($cur.Since -and $child.CreationDate -and $child.CreationDate -lt $cur.Since) { continue }
536
+ $frontier.Enqueue(@{ Pid = $cpid; Since = $child.CreationDate })
537
+ }
538
+ }
539
+
540
+ # Anything with a handle open inside the install folder, whatever its
541
+ # parent - this is what catches node-pty's bundled OpenConsole.exe if it is
542
+ # ever enabled, and an orphan from a hub that started before the pid file
543
+ # existed at all.
544
+ foreach ($proc in $all) {
545
+ $spid = [int]$proc.ProcessId
546
+ if ($spid -eq $PID -or $victims.ContainsKey($spid)) { continue }
547
+ if ($proc.ExecutablePath -like "*$hubDir*" -or $proc.CommandLine -like "*$hubDir*") {
548
+ $victims[$spid] = $true
549
+ $order.Add($spid)
474
550
  }
475
551
  }
476
- # Windows releases the file handles a moment after the process goes.
477
- if ($targets) { Start-Sleep -Milliseconds 750 }
552
+
553
+ if ($order.Count -gt 0) {
554
+ $rootPids = @($roots | ForEach-Object { $_.Pid })
555
+ $childCount = $order.Count - $rootPids.Count
556
+ if ($rootPids.Count -gt 0 -and $childCount -gt 0) {
557
+ $plural = if ($childCount -eq 1) { '' } else { 'es' }
558
+ Note "stopping the hub already running here (pid $($rootPids -join ', ')) and its $childCount terminal process$plural"
559
+ } elseif ($rootPids.Count -gt 0) {
560
+ Note "stopping the hub already running here (pid $($rootPids -join ', '))"
561
+ } else {
562
+ # No live root and no dead one recorded either - only stray processes
563
+ # still pointing at this folder, from step 4's sweep.
564
+ $plural = if ($order.Count -eq 1) { '' } else { 'es' }
565
+ Note "stopping $($order.Count) leftover process$plural from an earlier hub"
566
+ }
567
+
568
+ $order.Reverse()
569
+ foreach ($vpid in $order) {
570
+ $proc = Get-Process -Id $vpid -ErrorAction SilentlyContinue
571
+ if (-not $proc) { continue }
572
+ try { $proc.CloseMainWindow() | Out-Null } catch {}
573
+ Stop-Process -Id $vpid -Force -ErrorAction SilentlyContinue
574
+ try { $proc.WaitForExit(10000) | Out-Null } catch {}
575
+ }
576
+ # Windows releases the file handles a moment after the processes go.
577
+ Start-Sleep -Milliseconds 750
578
+ }
579
+
478
580
  Remove-Item $pidFile -Force -ErrorAction SilentlyContinue
479
581
  }
480
582
 
@@ -586,9 +688,26 @@ if (Test-Path $hubDir) {
586
688
  try {
587
689
  Remove-Item -Recurse -Force $hubDir
588
690
  } catch {
589
- Fail ("Could not replace the previous install at $hubDir - something still has a file open there." + [Environment]::NewLine +
590
- "A hub from an earlier join is probably still running. Close it and re-run this command." + [Environment]::NewLine +
591
- $_.Exception.Message)
691
+ # A late child can still turn up during the first sweep, and Windows
692
+ # releases handles a moment after the process holding them goes - so one
693
+ # more sweep and a short wait usually finishes what the first one missed.
694
+ Stop-RunningHub $hubDir
695
+ Start-Sleep -Seconds 1
696
+ try {
697
+ Remove-Item -Recurse -Force $hubDir
698
+ } catch {
699
+ # Captured first: the pipelines below rebind $_.
700
+ $removeError = $_.Exception.Message
701
+ $holders = @(Get-CimInstance Win32_Process -ErrorAction SilentlyContinue |
702
+ Where-Object { $_.ExecutablePath -like "*$hubDir*" -or $_.CommandLine -like "*$hubDir*" })
703
+ $holderText = 'something'
704
+ if ($holders) {
705
+ $holderText = ($holders | ForEach-Object { "$($_.Name) (pid $($_.ProcessId))" }) -join ', '
706
+ }
707
+ Fail ("Could not replace the previous install at $hubDir - $holderText still has a file open there." + [Environment]::NewLine +
708
+ "Close it and re-run this command." + [Environment]::NewLine +
709
+ $removeError)
710
+ }
592
711
  }
593
712
  }
594
713
  New-Item -ItemType Directory -Force -Path $hubDir | Out-Null
@@ -673,10 +792,16 @@ Pop-Location
673
792
  Step '4/4' "connecting to $HubUrl"
674
793
  $hubLog = Join-Path $HomeDir 'hub.log'
675
794
  $env:TERMSCAPE_HOME = $HomeDir
795
+ # Two things here are deliberate and neither is obvious.
796
+ #
676
797
  # cli.js is named absolutely so this hub is findable in the process list by
677
798
  # the install it came from - which is how a later re-join knows what to stop.
799
+ #
800
+ # --opt=value rather than two arguments: a base64url token may begin with a
801
+ # dash, and Node's strict parseArgs refuses a separate value that looks like
802
+ # an option. See the POSIX half for what that cost.
678
803
  $cliArgs = '"' + (Join-Path $hubDir 'dist/cli.js') + '"' +
679
- ' --headless --port 0 --join "' + $HubUrl + '" --join-token "' + $JoinToken + '"'
804
+ ' --headless --port 0 --join="' + $HubUrl + '" --join-token="' + $JoinToken + '"'
680
805
  $hubProc = Start-Process -FilePath $NodeExe -ArgumentList $cliArgs -PassThru \`
681
806
  -WorkingDirectory $hubDir -RedirectStandardOutput $hubLog \`
682
807
  -RedirectStandardError (Join-Path $HomeDir 'hub.err.log') -WindowStyle Hidden
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsUxB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAue3B,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,6 +1,14 @@
1
1
  import { type PeerAgent, type PeerRelayAsk } from '../protocol/index.js';
2
2
  import type { WebSocket } from 'ws';
3
3
  import type { Hub } from '../hub.js';
4
+ /**
5
+ * A relayed spawn waits for a real PTY to start, possibly on a third machine
6
+ * the canvas still has to reach — longer than any other ask gets. No deadlock
7
+ * from holding it open that long: when the canvas turns this into a
8
+ * `startSession` frame down the same socket, this hub's own message handler
9
+ * serves that independently of the relay awaiting its result.
10
+ */
11
+ export declare const SPAWN_RELAY_TIMEOUT_MS = 60000;
4
12
  /**
5
13
  * The link back to the canvas, as the rest of this hub needs it. Separated
6
14
  * from the serving machinery because a hub that owns a canvas has no uplink at
@@ -11,8 +19,17 @@ export interface Uplink {
11
19
  readonly attached: boolean;
12
20
  /** Agents the canvas has told us about. Never this hub's own. */
13
21
  agents(): PeerAgent[];
14
- /** Ask the canvas to act on an address we cannot resolve ourselves. */
15
- ask<T>(ask: PeerRelayAsk): Promise<T>;
22
+ /**
23
+ * What the canvas calls this machine, or null before its first `directory`
24
+ * has arrived. This hub holds no row for itself — only the canvas does —
25
+ * so this is the only way it can answer `host: 'local'`/`'self'` about its
26
+ * own agents, or recognise a spawn_agent `host` naming itself.
27
+ */
28
+ hostLabel(): string | null;
29
+ /** Ask the canvas to act on something we cannot resolve ourselves. */
30
+ ask<T>(ask: PeerRelayAsk, opts?: {
31
+ timeoutMs?: number;
32
+ }): Promise<T>;
16
33
  }
17
34
  export interface PeerServer extends Uplink {
18
35
  /** Wire one accepted or dialled socket into this hub. */
@@ -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,CA6R1E"}
1
+ {"version":3,"file":"peer-serve.d.ts","sourceRoot":"","sources":["../../src/remote/peer-serve.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,YAAY,EAQlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAwBrC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,MAAM,IAAI,SAAS,EAAE,CAAC;IACtB;;;;;OAKG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;IAC3B,sEAAsE;IACtE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACtE;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,CAmX1E"}