@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
package/dist/server.js CHANGED
@@ -5,8 +5,9 @@ import { fileURLToPath } from 'node:url';
5
5
  import Fastify from 'fastify';
6
6
  import websocket from '@fastify/websocket';
7
7
  import fastifyStatic from '@fastify/static';
8
- import { ClientMsg, BinaryFrameKind, decodeBinaryFrame, encodeBinaryFrame, } from './protocol/index.js';
8
+ import { ClientMsg, BinaryFrameKind, decodeBinaryFrame, encodeBinaryFrame, describeInput, describeModeChanges, describeSnapshotModes, } from './protocol/index.js';
9
9
  import { HUB_VERSION } from './hub.js';
10
+ import { debug, debugOn } from './debug.js';
10
11
  import { createPeerServer } from './remote/peer-serve.js';
11
12
  import { registerEnrollment } from './remote/enroll.js';
12
13
  import { advertisedHost, coversLoopback, preferredHostname, urlHost, } from './remote/lan.js';
@@ -126,18 +127,71 @@ export async function serve(opts) {
126
127
  const enrollment = registerEnrollment(app, { hub, enrollOrigin: () => enrollOrigin });
127
128
  /* ---------------------------------------------------------- WebSocket */
128
129
  const clients = new Set();
130
+ /**
131
+ * What a socket may see and touch: `null` for the canvas token (today's
132
+ * full-canvas behaviour, unchanged), or one session id for a share link.
133
+ * Absent entirely before `hello` lands.
134
+ */
135
+ const scopes = new Map();
129
136
  const send = (ws, msg) => {
130
137
  if (ws.readyState === ws.OPEN)
131
138
  ws.send(JSON.stringify(msg));
132
139
  };
140
+ /**
141
+ * Whether a scoped socket may be told this. Only the messages about its own
142
+ * session pass; everything else - another agent's title, a host, a
143
+ * template - is exactly what a reviewer holding one link must not learn.
144
+ * `snapshot`, `error` and `ack` never go through here: they are already
145
+ * addressed to one socket at the point they are sent.
146
+ */
147
+ const scopedBroadcast = (msg, scope) => {
148
+ switch (msg.t) {
149
+ case 'sessionUpserted':
150
+ return msg.session.id === scope;
151
+ case 'sessionRemoved':
152
+ return msg.sessionId === scope;
153
+ default:
154
+ return false;
155
+ }
156
+ };
133
157
  const broadcast = (msg) => {
134
- for (const ws of clients)
158
+ for (const ws of clients) {
159
+ // Not yet authenticated: unset, not null, and left alone rather than
160
+ // filtered - the same as it was before scoping existed. `hello` is the
161
+ // very next thing such a socket will send.
162
+ const scope = scopes.get(ws);
163
+ if (typeof scope === 'string' && !scopedBroadcast(msg, scope))
164
+ continue;
135
165
  send(ws, msg);
166
+ }
167
+ };
168
+ /**
169
+ * Like `broadcast`, but never back to `origin`.
170
+ *
171
+ * Notes are the one thing on the canvas that changes on every keystroke and
172
+ * every drag frame, sent straight through with no debounce (see
173
+ * `hub.saveNote`). Echoing the write back to the socket that made it would
174
+ * land under an active drag or an active caret a moment after it moved,
175
+ * jittering the drag rect or resetting the textarea's cursor position - the
176
+ * exact bug `moveWindow` never has to worry about, because nothing ever
177
+ * broadcasts a window move at all.
178
+ */
179
+ const broadcastExcept = (origin, msg) => {
180
+ for (const ws of clients) {
181
+ if (ws === origin)
182
+ continue;
183
+ const scope = scopes.get(ws);
184
+ if (typeof scope === 'string' && !scopedBroadcast(msg, scope))
185
+ continue;
186
+ send(ws, msg);
187
+ }
136
188
  };
137
189
  const snapshotState = () => ({
138
190
  hubVersion: HUB_VERSION,
139
191
  enrollUrl: enrollOrigin ? `${enrollOrigin}/join` : null,
140
192
  enrollAltUrl: enrollAltOrigin ? `${enrollAltOrigin}/join` : null,
193
+ lanOrigin,
194
+ lanAltOrigin,
141
195
  hosts: hub.store.listHosts(),
142
196
  workspaces: hub.store.listWorkspaces(),
143
197
  sessions: hub.allSessions(),
@@ -152,7 +206,43 @@ export async function serve(opts) {
152
206
  // see it, and the agent that asked is still waiting on an answer.
153
207
  templateProposals: hub.pendingProposals(),
154
208
  hostProfiles: hub.peers.agentsByHost(),
209
+ shares: hub.shares.list(),
210
+ notes: hub.store.listNotes(),
155
211
  });
212
+ /**
213
+ * What a share-scoped socket is told on `hello`: the one session it names,
214
+ * its workspace if this hub can resolve one for it, and empty everything
215
+ * else. The browser's own `apply('ready')` needs no change at all - it
216
+ * already replaces its state wholesale on every `ready`, so a state this
217
+ * thin just means a canvas of one window.
218
+ */
219
+ const scopedState = (sessionId) => {
220
+ const session = hub.allSessions().find((s) => s.id === sessionId) ?? null;
221
+ // A remote session's workspaceId is the *peer's* local id, meaningless
222
+ // here (see the note on peer-serve's startSession) - getWorkspace simply
223
+ // returns null for it, which is exactly "nothing to show".
224
+ const workspace = session ? hub.store.getWorkspace(session.workspaceId) : null;
225
+ return {
226
+ hubVersion: HUB_VERSION,
227
+ enrollUrl: null,
228
+ enrollAltUrl: null,
229
+ lanOrigin: null,
230
+ lanAltOrigin: null,
231
+ hosts: [],
232
+ workspaces: workspace ? [workspace] : [],
233
+ sessions: session ? [session] : [],
234
+ messages: [],
235
+ viewport: { panX: 0, panY: 0, zoom: 1 },
236
+ profiles: [],
237
+ templates: [],
238
+ templateProposals: [],
239
+ hostProfiles: {},
240
+ shares: [],
241
+ // A reviewer holding one share link sees the one terminal it names,
242
+ // nothing else on the canvas - notes included.
243
+ notes: [],
244
+ };
245
+ };
156
246
  hub.on('session', (s) => broadcast({ t: 'sessionUpserted', session: s }));
157
247
  hub.on('removed', (id) => broadcast({ t: 'sessionRemoved', sessionId: id }));
158
248
  hub.on('workspace', (w) => broadcast({ t: 'workspaceUpserted', workspace: w }));
@@ -163,6 +253,17 @@ export async function serve(opts) {
163
253
  hub.on('message', (m) => broadcast({ t: 'messageSent', message: m }));
164
254
  hub.on('host', (h) => broadcast({ t: 'hostUpserted', host: h }));
165
255
  hub.on('hostRemoved', (id) => broadcast({ t: 'hostRemoved', hostId: id }));
256
+ hub.on('shares', (shares) => broadcast({ t: 'sharesChanged', shares }));
257
+ // Revocation has to reach an already-open tab, not just the row that let it
258
+ // in - otherwise "revoked" is untrue for the one case it exists for.
259
+ hub.on('shareRevoked', (sessionId) => {
260
+ for (const [ws, scope] of scopes) {
261
+ if (scope !== sessionId)
262
+ continue;
263
+ send(ws, { t: 'error', message: 'unauthorized' });
264
+ ws.close();
265
+ }
266
+ });
166
267
  hub.on('agents', (profiles) => broadcast({ t: 'agentsDetected', hostId: null, profiles }));
167
268
  hub.on('hostAgents', (hostId, profiles) => broadcast({ t: 'agentsDetected', hostId, profiles }));
168
269
  // Deploy progress. Installing on a remote can take minutes; the panel shows
@@ -178,6 +279,20 @@ export async function serve(opts) {
178
279
  // so a canvas showing 20 terminals zoomed out is not paying for 20 streams.
179
280
  const attached = new Map();
180
281
  hub.on('data', (sessionId, chunk) => {
282
+ /*
283
+ * Not the output itself - only the moments a program changes the terms.
284
+ *
285
+ * Whether a wheel belongs to the program or to xterm's own scrollback is
286
+ * decided entirely by these modes, and they are set once, early, in a
287
+ * chunk indistinguishable from any other. Logging the flips gives a trace
288
+ * the one fact the input side cannot supply: whether the program ever
289
+ * asked for mouse reports at all.
290
+ */
291
+ if (debugOn('output')) {
292
+ const modes = describeModeChanges(chunk);
293
+ if (modes)
294
+ debug('output', `${sessionId} program set ${modes}`);
295
+ }
181
296
  const frame = encodeBinaryFrame(BinaryFrameKind.PtyOutput, sessionId, Buffer.from(chunk, 'utf8'));
182
297
  for (const ws of clients) {
183
298
  if (attached.get(ws)?.has(sessionId) && ws.readyState === ws.OPEN)
@@ -196,20 +311,70 @@ export async function serve(opts) {
196
311
  if (!authed)
197
312
  return;
198
313
  const f = decodeBinaryFrame(new Uint8Array(raw));
199
- if (f.kind === BinaryFrameKind.PtyInput) {
200
- const data = Buffer.from(f.payload).toString('utf8');
314
+ const isInput = f.kind === BinaryFrameKind.PtyInput ||
315
+ f.kind === BinaryFrameKind.PtyInputRaw;
316
+ // The gate that matters most: this is the only path that writes to
317
+ // a PTY, and a share link is otherwise indistinguishable from the
318
+ // canvas token once a socket is past `hello`.
319
+ const scope = scopes.get(socket);
320
+ if (isInput && typeof scope === 'string' && f.sessionId !== scope)
321
+ return;
322
+ if (isInput) {
323
+ // Raw frames are bytes and stay bytes: latin1 is the encoding that
324
+ // survives a JSON hop to a peer without inventing code points, and
325
+ // locally the Buffer never becomes a string at all.
326
+ const bytes = Buffer.from(f.payload);
327
+ const isRaw = f.kind === BinaryFrameKind.PtyInputRaw;
201
328
  const remote = hub.peers.find(f.sessionId);
329
+ /*
330
+ * Where a wheel goes, and whether it is still the same bytes.
331
+ *
332
+ * The local and remote branches below are the whole of the
333
+ * asymmetry a scroll bug has to be somewhere in: one of them
334
+ * hands a Buffer to a pty in this process, the other spells it as
335
+ * a string, puts it through JSON, and waits for another machine
336
+ * to answer. Both are traced with the same description of the
337
+ * same bytes, so a report that changes shape between them shows
338
+ * up as two lines that disagree.
339
+ */
340
+ if (debugOn('input')) {
341
+ const where = remote
342
+ ? `remote host=${hub.peers.hostIdFor(f.sessionId) ?? '?'} ` +
343
+ `link=${remote.peer.connected ? 'up' : 'DOWN'}`
344
+ : 'local';
345
+ debug('input', `browser -> hub ${f.sessionId} ${isRaw ? 'raw' : 'utf8'} ` +
346
+ `${where}: ${describeInput(f.payload)}`);
347
+ }
202
348
  if (remote) {
203
349
  // Typing into a remote terminal whose PTY has since exited is
204
350
  // ordinary, and the peer says so by rejecting. Unhandled, that
205
351
  // rejection reaches the process and takes the whole canvas with
206
352
  // it — so it is reported to this browser and goes no further.
353
+ const id = randomUUID();
207
354
  void remote.peer
208
- .request({ t: 'input', id: randomUUID(), address: f.sessionId, data })
209
- .catch((e) => send(socket, { t: 'error', message: e.message, sessionId: f.sessionId }));
355
+ .request({
356
+ t: 'input',
357
+ id,
358
+ address: f.sessionId,
359
+ data: bytes.toString(isRaw ? 'latin1' : 'utf8'),
360
+ ...(isRaw ? { encoding: 'binary' } : {}),
361
+ })
362
+ .then(() => debug('input', `hub -> peer ${id} accepted`))
363
+ .catch((e) => {
364
+ // Named rather than counted: "timed out" and "not
365
+ // connected" are different diagnoses, and a wheel that
366
+ // silently stops working looks the same either way.
367
+ debug('input', `hub -> peer ${id} FAILED: ${e.message}`);
368
+ send(socket, { t: 'error', message: e.message, sessionId: f.sessionId });
369
+ });
370
+ debug('input', `hub -> peer ${id} ${f.sessionId} ` +
371
+ `encoding=${isRaw ? 'binary' : 'utf8'} ${bytes.length}B sent`);
372
+ }
373
+ else if (isRaw) {
374
+ hub.sessions.writeBytes(f.sessionId, bytes);
210
375
  }
211
376
  else {
212
- hub.sessions.write(f.sessionId, data);
377
+ hub.sessions.write(f.sessionId, bytes.toString('utf8'));
213
378
  }
214
379
  }
215
380
  return;
@@ -221,13 +386,27 @@ export async function serve(opts) {
221
386
  }
222
387
  const msg = parsed.data;
223
388
  if (!authed) {
224
- if (msg.t !== 'hello' || msg.token !== clientToken) {
389
+ if (msg.t !== 'hello') {
225
390
  send(socket, { t: 'error', message: 'unauthorized' });
226
391
  socket.close();
227
392
  return;
228
393
  }
229
- authed = true;
230
- send(socket, { t: 'ready', state: snapshotState() });
394
+ if (msg.token === clientToken) {
395
+ authed = true;
396
+ scopes.set(socket, null);
397
+ send(socket, { t: 'ready', state: snapshotState() });
398
+ return;
399
+ }
400
+ // Not the canvas token; try it as a share link before giving up.
401
+ const sharedSessionId = hub.resolveShareToken(msg.token);
402
+ if (sharedSessionId) {
403
+ authed = true;
404
+ scopes.set(socket, sharedSessionId);
405
+ send(socket, { t: 'ready', state: scopedState(sharedSessionId) });
406
+ return;
407
+ }
408
+ send(socket, { t: 'error', message: 'unauthorized' });
409
+ socket.close();
231
410
  return;
232
411
  }
233
412
  void handleClientMsg(socket, msg);
@@ -240,6 +419,7 @@ export async function serve(opts) {
240
419
  clients.delete(socket);
241
420
  hub.setViewers(clients.size);
242
421
  attached.delete(socket);
422
+ scopes.delete(socket);
243
423
  });
244
424
  });
245
425
  /**
@@ -266,6 +446,28 @@ export async function serve(opts) {
266
446
  }
267
447
  }
268
448
  async function dispatchClientMsg(socket, msg) {
449
+ /*
450
+ * A share-scoped socket may only ask about the one session it was
451
+ * handed. Everything downstream of `hello` for the canvas token is a
452
+ * permission system nobody asked for; this is deliberately not that -
453
+ * one value, checked once, before the switch below ever sees the
454
+ * message. Each allowed message still names its own sessionId, which is
455
+ * checked against the scope rather than trusted.
456
+ *
457
+ * `resize` is deliberately NOT on this list. A share view renders with
458
+ * `grid: 'follow'` and never sends one - it fits itself to the grid the
459
+ * owner's window drives, precisely so two browsers do not fight over one
460
+ * PTY's size and leave the *owner* rendering on a grid the PTY no longer
461
+ * has. Accepting a resize here would be a permission nothing uses whose
462
+ * only effect is to reopen that.
463
+ */
464
+ const scope = scopes.get(socket);
465
+ if (typeof scope === 'string') {
466
+ const allowed = msg.t === 'hello' || msg.t === 'attach' || msg.t === 'detach';
467
+ if (!allowed || ('sessionId' in msg && msg.sessionId !== scope)) {
468
+ throw new Error('not permitted on a shared-session link');
469
+ }
470
+ }
269
471
  switch (msg.t) {
270
472
  case 'hello':
271
473
  return;
@@ -275,11 +477,25 @@ export async function serve(opts) {
275
477
  attached.get(socket)?.add(msg.sessionId);
276
478
  const remote = hub.peers.find(msg.sessionId);
277
479
  if (remote) {
480
+ /*
481
+ * The other half of the asymmetry, and the one that is easy to miss.
482
+ *
483
+ * A local attach answers with a `snapshot` message. A remote one
484
+ * cannot: the screen lives on the other machine, so it arrives as
485
+ * ordinary output on the stream instead. Same pixels, different
486
+ * route - and the route matters here, because a serialized screen
487
+ * is also what restores the mouse modes into a freshly mounted
488
+ * window. This line says the request went out; the peer's own log
489
+ * says what came back.
490
+ */
491
+ debug('attach', `attach ${msg.sessionId} -> peer (snapshot arrives as output)`);
278
492
  await remote.peer.attach(msg.sessionId);
279
493
  return;
280
494
  }
281
495
  const snap = hub.sessions.snapshotForAttach(msg.sessionId);
282
496
  if (snap) {
497
+ debug('attach', `attach ${msg.sessionId} local ${snap.cols}x${snap.rows} ` +
498
+ `snapshot restores: ${describeSnapshotModes(snap.serialized)}`);
283
499
  send(socket, {
284
500
  t: 'snapshot',
285
501
  sessionId: msg.sessionId,
@@ -288,6 +504,9 @@ export async function serve(opts) {
288
504
  rows: snap.rows,
289
505
  });
290
506
  }
507
+ else {
508
+ debug('attach', `attach ${msg.sessionId} local, no snapshot`);
509
+ }
291
510
  return;
292
511
  }
293
512
  case 'detach': {
@@ -299,6 +518,16 @@ export async function serve(opts) {
299
518
  }
300
519
  case 'resize': {
301
520
  const remote = hub.peers.find(msg.sessionId);
521
+ /*
522
+ * Worth tracing next to the input, because a mouse report is a pair
523
+ * of coordinates and both ends have to agree on what they can be.
524
+ * xterm drops a report whose column or row falls outside its own
525
+ * grid before it is ever encoded, so a window and a pty that disagree
526
+ * on size lose wheels at the edges and nowhere else - which reads
527
+ * like an intermittent bug rather than a size one.
528
+ */
529
+ debug('attach', `resize ${msg.sessionId} -> ${msg.cols}x${msg.rows} ` +
530
+ `(${remote ? 'remote' : 'local'})`);
302
531
  if (remote) {
303
532
  await remote.peer.request({
304
533
  t: 'resize',
@@ -312,6 +541,12 @@ export async function serve(opts) {
312
541
  hub.sessions.resize(msg.sessionId, msg.cols, msg.rows);
313
542
  return;
314
543
  }
544
+ case 'checkFolder':
545
+ // Nothing to hand back beyond ok/err: the dialog already knows the
546
+ // path it asked about, and a throw here is turned into ack{ok:false}
547
+ // by handleClientMsg the same way any other refusal is.
548
+ await hub.checkHostFolder(msg.hostId ?? null, msg.path);
549
+ return;
315
550
  case 'createWorkspace':
316
551
  hub.createWorkspace(msg.name, msg.rootPath, msg.hostId ?? null);
317
552
  return;
@@ -392,6 +627,16 @@ export async function serve(opts) {
392
627
  case 'resumeWorkspace':
393
628
  await hub.resumeWorkspace(msg.workspaceId);
394
629
  return;
630
+ case 'shareSession':
631
+ // The token itself does not ride the ack: it arrives on the
632
+ // `sharesChanged` broadcast that `hub.shareSession` triggers before
633
+ // this even returns, the same way `saveTemplate` answers through
634
+ // `templatesChanged` rather than the ack.
635
+ hub.shareSession(msg.sessionId);
636
+ return;
637
+ case 'unshareSession':
638
+ hub.unshareSession(msg.sessionId);
639
+ return;
395
640
  case 'moveWindow':
396
641
  // Layout is always local, even for a peer's session.
397
642
  if (!hub.peers.saveLayout(msg.sessionId, msg.rect)) {
@@ -401,6 +646,20 @@ export async function serve(opts) {
401
646
  case 'setViewport':
402
647
  hub.setViewport(msg.viewport);
403
648
  return;
649
+ case 'putNote': {
650
+ // Broadcast the note as the hub clamped it, not as the client sent
651
+ // it - a peer browser applying the raw message would otherwise never
652
+ // see the size floor take effect. A non-finite write is silently
653
+ // dropped (see hub.saveNote) rather than broadcast at all.
654
+ const saved = hub.saveNote(msg.note);
655
+ if (saved)
656
+ broadcastExcept(socket, { t: 'noteUpserted', note: saved });
657
+ return;
658
+ }
659
+ case 'removeNote':
660
+ hub.removeNote(msg.noteId);
661
+ broadcastExcept(socket, { t: 'noteRemoved', noteId: msg.noteId });
662
+ return;
404
663
  case 'addHost': {
405
664
  const host = hub.addHost(msg);
406
665
  // Connect immediately: adding a host the user then has to connect
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -118,6 +118,31 @@ export declare class SessionManager extends EventEmitter {
118
118
  resume(sessionId: string): Promise<Session>;
119
119
  private spawn;
120
120
  write(sessionId: string, data: string): void;
121
+ /**
122
+ * Paste a message into a session and send it.
123
+ *
124
+ * Not `write` with a CR on the end: the Enter has to be its own keypress,
125
+ * arriving after the paste has settled, or an agent TUI folds it into the
126
+ * pasted text and the message is never submitted. PtySession.inject owns the
127
+ * timing; this is here so callers say what they mean rather than assembling
128
+ * the bytes themselves.
129
+ */
130
+ inject(sessionId: string, paste: string, submit: string): void;
131
+ /**
132
+ * Input that is bytes rather than text - mouse reports in the default
133
+ * encoding. Kept apart from `write` all the way down so nothing on the path
134
+ * decodes it; see PtySession.writeBytes.
135
+ */
136
+ writeBytes(sessionId: string, data: Buffer): void;
137
+ /**
138
+ * A share view follows this rather than driving it (see `TerminalView`'s
139
+ * `grid` prop), and it learns of a later resize only through
140
+ * `sessionUpserted` - there is no dedicated message for it. So the guard
141
+ * here matters, not just as an optimisation: `applyGrid` already suppresses
142
+ * a resize that would not change anything, but a caller that sends one
143
+ * anyway (a second owner window, a stale retry) must not turn that into a
144
+ * broadcast every follower has to redraw for.
145
+ */
121
146
  resize(sessionId: string, cols: number, rows: number): void;
122
147
  setStatusText(sessionId: string, text: string): void;
123
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
@@ -223,6 +223,7 @@ export class SessionManager extends EventEmitter {
223
223
  settings_path: w.settingsPath,
224
224
  gemini_settings_path: w.geminiSettingsPath,
225
225
  opencode_config: w.opencodeConfig,
226
+ kilocode_config_path: w.kilocodeConfigPath,
226
227
  mcp_url: `${this.hubOrigin}/mcp`,
227
228
  /*
228
229
  * Only ever expanded into a profile's `env`, never its `args`. A CLI
@@ -405,10 +406,51 @@ export class SessionManager extends EventEmitter {
405
406
  p.write(data);
406
407
  this.store.updateSession(sessionId, { lastActiveAt: Date.now() });
407
408
  }
409
+ /**
410
+ * Paste a message into a session and send it.
411
+ *
412
+ * Not `write` with a CR on the end: the Enter has to be its own keypress,
413
+ * arriving after the paste has settled, or an agent TUI folds it into the
414
+ * pasted text and the message is never submitted. PtySession.inject owns the
415
+ * timing; this is here so callers say what they mean rather than assembling
416
+ * the bytes themselves.
417
+ */
418
+ inject(sessionId, paste, submit) {
419
+ const p = this.live.get(sessionId);
420
+ if (!p?.running)
421
+ throw new Error(`session ${sessionId} is not running`);
422
+ p.inject(paste, submit);
423
+ this.store.updateSession(sessionId, { lastActiveAt: Date.now() });
424
+ }
425
+ /**
426
+ * Input that is bytes rather than text - mouse reports in the default
427
+ * encoding. Kept apart from `write` all the way down so nothing on the path
428
+ * decodes it; see PtySession.writeBytes.
429
+ */
430
+ writeBytes(sessionId, data) {
431
+ const p = this.live.get(sessionId);
432
+ if (!p?.running)
433
+ throw new Error(`session ${sessionId} is not running`);
434
+ p.writeBytes(data);
435
+ this.store.updateSession(sessionId, { lastActiveAt: Date.now() });
436
+ }
437
+ /**
438
+ * A share view follows this rather than driving it (see `TerminalView`'s
439
+ * `grid` prop), and it learns of a later resize only through
440
+ * `sessionUpserted` - there is no dedicated message for it. So the guard
441
+ * here matters, not just as an optimisation: `applyGrid` already suppresses
442
+ * a resize that would not change anything, but a caller that sends one
443
+ * anyway (a second owner window, a stale retry) must not turn that into a
444
+ * broadcast every follower has to redraw for.
445
+ */
408
446
  resize(sessionId, cols, rows) {
409
447
  const p = this.live.get(sessionId);
410
448
  p?.resize(cols, rows);
449
+ const current = this.get(sessionId);
450
+ if (current && current.cols === cols && current.rows === rows)
451
+ return;
411
452
  this.store.updateSession(sessionId, { cols, rows });
453
+ this.emitSession(sessionId);
412
454
  }
413
455
  setStatusText(sessionId, text) {
414
456
  this.store.updateSession(sessionId, { statusText: text });