@thenewlabs/entangle-serve 2.7.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +51 -19
- package/dist/daemon.js.map +1 -1
- package/dist/host-terminal.d.ts.map +1 -1
- package/dist/host-terminal.js +177 -48
- package/dist/host-terminal.js.map +1 -1
- package/dist/multi-session.d.ts.map +1 -1
- package/dist/multi-session.js +29 -10
- package/dist/multi-session.js.map +1 -1
- package/dist/shared-workspace.d.ts +102 -49
- package/dist/shared-workspace.d.ts.map +1 -1
- package/dist/shared-workspace.js +210 -108
- package/dist/shared-workspace.js.map +1 -1
- package/package.json +4 -4
package/dist/shared-workspace.js
CHANGED
|
@@ -4,24 +4,36 @@ const CLEAR = Buffer.from('\x1b[2J\x1b[3J\x1b[H', 'utf8');
|
|
|
4
4
|
/** Hard cap on concurrent windows so a client can't spawn unbounded shells. */
|
|
5
5
|
const DEFAULT_MAX_WINDOWS = 16;
|
|
6
6
|
/**
|
|
7
|
-
* A shared, tmux-style workspace of windows
|
|
7
|
+
* A shared, tmux-style workspace of windows with a PER-CONSUMER active window.
|
|
8
8
|
*
|
|
9
|
-
* The workspace holds N windows, each its own {@link SharedSession} PTY
|
|
10
|
-
* window keeps running in the background
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* The workspace holds N windows, each its own {@link SharedSession} PTY. Every
|
|
10
|
+
* window keeps running in the background and its output is tapped once (in
|
|
11
|
+
* {@link spawnWindow}); each chunk is routed only to the CONSUMERS whose active
|
|
12
|
+
* window is the one that emitted it. A "consumer" is either the HOST (the
|
|
13
|
+
* host-channel callbacks, with its own {@link hostActiveIndex}) or a viewport
|
|
14
|
+
* (each with its own active index tracked in {@link viewportActive}). This lets
|
|
15
|
+
* connected viewers work on different windows independently instead of all
|
|
16
|
+
* following a single global active window.
|
|
14
17
|
*
|
|
15
18
|
* The host terminal binds to a workspace exactly as it used to bind to a single
|
|
16
19
|
* SharedSession — {@link onHostData}, {@link onViewersChange}, {@link onExit},
|
|
17
|
-
* {@link resize}, {@link write}, {@link getReplay}, {@link viewerCount}
|
|
18
|
-
*
|
|
20
|
+
* {@link resize}, {@link write}, {@link getReplay}, {@link viewerCount}, and the
|
|
21
|
+
* window ops {@link newWindow}/{@link selectWindow}/{@link nextWindow}/
|
|
22
|
+
* {@link prevWindow}/{@link closeWindow}/{@link renameWindow} — which now drive
|
|
23
|
+
* the HOST's own active window. So from the host's point of view a single-window
|
|
24
|
+
* workspace behaves identically to the old shared terminal.
|
|
25
|
+
*
|
|
26
|
+
* Window sizing stays global: the host terminal size is authoritative and every
|
|
27
|
+
* window is sized to it (per-viewport sizing is out of scope).
|
|
19
28
|
*/
|
|
20
29
|
export class SharedWorkspace {
|
|
21
30
|
output;
|
|
22
31
|
windows = [];
|
|
23
|
-
|
|
32
|
+
/** The HOST consumer's active window (host is just one consumer). */
|
|
33
|
+
hostActiveIndex = 0;
|
|
24
34
|
viewports = new Map();
|
|
35
|
+
/** Per-viewport active window index, keyed by sid. Defaults to 0 on attach. */
|
|
36
|
+
viewportActive = new Map();
|
|
25
37
|
exited = false;
|
|
26
38
|
cwd;
|
|
27
39
|
maxReplayBytes;
|
|
@@ -45,30 +57,29 @@ export class SharedWorkspace {
|
|
|
45
57
|
// preserved when nobody ever creates a second one.
|
|
46
58
|
const first = this.spawnWindow();
|
|
47
59
|
this.windows.push(first);
|
|
48
|
-
this.
|
|
49
|
-
this.bindActiveOutput();
|
|
60
|
+
this.hostActiveIndex = 0;
|
|
50
61
|
this.output.info(`Shared workspace started: 1 window, cols=${this.cols}, rows=${this.rows}`);
|
|
51
62
|
}
|
|
52
63
|
// --- host-facing API (mirrors the old SharedSession surface) -------------
|
|
53
|
-
/** Register the host's local rendering callback for the active window. */
|
|
64
|
+
/** Register the host's local rendering callback for the host's active window. */
|
|
54
65
|
onHostData(cb) { this.hostDataCb = cb; }
|
|
55
66
|
/** Register a callback fired once when the workspace ends (last window exits). */
|
|
56
67
|
onExit(cb) { this.exitCb = cb; }
|
|
57
68
|
/** Register a callback fired whenever the attached-viewport count changes. */
|
|
58
69
|
onViewersChange(cb) { this.viewersChangedCb = cb; }
|
|
59
70
|
/**
|
|
60
|
-
* Register a host callback fired whenever the window
|
|
61
|
-
* close, switch, or rename. Lets the host render its own tab bar
|
|
62
|
-
* (the analogue of the {@link Viewport.onWindowState} push sent to
|
|
63
|
-
* Fires with the current {@link windowState}.
|
|
71
|
+
* Register a host callback fired whenever the host's window view changes —
|
|
72
|
+
* create, close, switch, or rename. Lets the host render its own tab bar
|
|
73
|
+
* in-process (the analogue of the {@link Viewport.onWindowState} push sent to
|
|
74
|
+
* clients). Fires with the host's current {@link windowState}.
|
|
64
75
|
*/
|
|
65
76
|
onWindowState(cb) { this.hostWindowStateCb = cb; }
|
|
66
77
|
get hasExited() { return this.exited; }
|
|
67
|
-
/** Merge input (from the host) into the
|
|
78
|
+
/** Merge input (from the host) into the HOST's active window. */
|
|
68
79
|
write(data) {
|
|
69
80
|
if (this.exited)
|
|
70
81
|
return;
|
|
71
|
-
this.windows[this.
|
|
82
|
+
this.windows[this.hostActiveIndex]?.write(data);
|
|
72
83
|
}
|
|
73
84
|
/** Resize the workspace (host is authoritative) — every window is sized to it. */
|
|
74
85
|
resize(cols, rows) {
|
|
@@ -79,9 +90,9 @@ export class SharedWorkspace {
|
|
|
79
90
|
for (const w of this.windows)
|
|
80
91
|
w.resize(cols, rows);
|
|
81
92
|
}
|
|
82
|
-
/** Recent-output snapshot of the
|
|
93
|
+
/** Recent-output snapshot of the HOST's active window (host's initial paint). */
|
|
83
94
|
getReplay() {
|
|
84
|
-
return this.windows[this.
|
|
95
|
+
return this.windows[this.hostActiveIndex]?.getReplay() ?? new Uint8Array(0);
|
|
85
96
|
}
|
|
86
97
|
/** Number of attached client viewports. */
|
|
87
98
|
viewerCount() { return this.viewports.size; }
|
|
@@ -96,35 +107,38 @@ export class SharedWorkspace {
|
|
|
96
107
|
}
|
|
97
108
|
// --- viewport-facing API (clients) ---------------------------------------
|
|
98
109
|
/**
|
|
99
|
-
* Attach a client viewport.
|
|
100
|
-
* caller can send it as the viewport's initial output. The
|
|
101
|
-
*
|
|
110
|
+
* Attach a client viewport. The viewport starts on window 0. Returns window
|
|
111
|
+
* 0's replay so the caller can send it as the viewport's initial output. The
|
|
112
|
+
* caller should then send {@link windowStateForViewport} so the client's tab
|
|
113
|
+
* bar populates with the viewport's own active index.
|
|
102
114
|
*/
|
|
103
115
|
attachViewport(v) {
|
|
104
116
|
this.viewports.set(v.sid, v);
|
|
117
|
+
this.viewportActive.set(v.sid, 0);
|
|
105
118
|
this.output.info(`Viewport attached: ${v.sid} (${this.viewports.size} total)`);
|
|
106
119
|
this.viewersChangedCb?.(this.viewports.size);
|
|
107
|
-
return { replay: this.getReplay() };
|
|
120
|
+
return { replay: this.windows[0]?.getReplay() ?? new Uint8Array(0) };
|
|
108
121
|
}
|
|
109
122
|
/** Detach a client viewport (disconnect / stream close). */
|
|
110
123
|
detachViewport(sid) {
|
|
111
124
|
if (this.viewports.delete(sid)) {
|
|
125
|
+
this.viewportActive.delete(sid);
|
|
112
126
|
this.output.info(`Viewport detached: ${sid} (${this.viewports.size} remaining)`);
|
|
113
127
|
this.viewersChangedCb?.(this.viewports.size);
|
|
114
128
|
}
|
|
115
129
|
}
|
|
116
|
-
/** Route a viewport's keystrokes to
|
|
130
|
+
/** Route a viewport's keystrokes to THAT viewport's active window. */
|
|
117
131
|
writeFromViewport(sid, data) {
|
|
118
132
|
if (this.exited || !this.viewports.has(sid))
|
|
119
133
|
return;
|
|
120
|
-
this.windows[this.
|
|
134
|
+
this.windows[this.viewportActive.get(sid) ?? 0]?.write(data);
|
|
121
135
|
}
|
|
122
136
|
/**
|
|
123
|
-
* Repaint a SINGLE viewport with
|
|
124
|
-
* clear + replay a window switch sends, scoped to one sid). The
|
|
125
|
-
* authoritative over the shell size, so when a remote viewer
|
|
126
|
-
* resize the PTY under everyone else; instead we re-send
|
|
127
|
-
*
|
|
137
|
+
* Repaint a SINGLE viewport with ITS OWN active window's screen (the same
|
|
138
|
+
* clear + replay a per-viewport window switch sends, scoped to one sid). The
|
|
139
|
+
* host stays authoritative over the shell size, so when a remote viewer
|
|
140
|
+
* resizes we can't resize the PTY under everyone else; instead we re-send that
|
|
141
|
+
* viewer's active window's screen so its locally-corrupted display is redrawn.
|
|
128
142
|
*/
|
|
129
143
|
repaintViewport(sid) {
|
|
130
144
|
if (this.exited)
|
|
@@ -132,7 +146,7 @@ export class SharedWorkspace {
|
|
|
132
146
|
const v = this.viewports.get(sid);
|
|
133
147
|
if (!v)
|
|
134
148
|
return;
|
|
135
|
-
const active = this.windows[this.
|
|
149
|
+
const active = this.windows[this.viewportActive.get(sid) ?? 0];
|
|
136
150
|
if (!active)
|
|
137
151
|
return;
|
|
138
152
|
const payload = Buffer.concat([CLEAR, Buffer.from(active.getReplay())]);
|
|
@@ -141,45 +155,110 @@ export class SharedWorkspace {
|
|
|
141
155
|
}
|
|
142
156
|
catch { }
|
|
143
157
|
}
|
|
144
|
-
|
|
145
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Switch a viewport's active window to `index` and repaint just it (no-op if
|
|
160
|
+
* out of range or already there). Only the given viewport moves; the host and
|
|
161
|
+
* every other viewport keep their own active window.
|
|
162
|
+
*/
|
|
163
|
+
selectWindowForViewport(sid, index) {
|
|
164
|
+
if (this.exited || !this.viewports.has(sid))
|
|
165
|
+
return;
|
|
166
|
+
if (index < 0 || index >= this.windows.length)
|
|
167
|
+
return;
|
|
168
|
+
if (index === (this.viewportActive.get(sid) ?? 0))
|
|
169
|
+
return;
|
|
170
|
+
this.viewportActive.set(sid, index);
|
|
171
|
+
this.repaintViewport(sid);
|
|
172
|
+
this.pushViewportWindowState(sid);
|
|
173
|
+
}
|
|
174
|
+
/** Switch a viewport to its next window (wraps). */
|
|
175
|
+
nextWindowForViewport(sid) {
|
|
176
|
+
if (this.exited || !this.viewports.has(sid) || this.windows.length < 2)
|
|
177
|
+
return;
|
|
178
|
+
const cur = this.viewportActive.get(sid) ?? 0;
|
|
179
|
+
this.selectWindowForViewport(sid, (cur + 1) % this.windows.length);
|
|
180
|
+
}
|
|
181
|
+
/** Switch a viewport to its previous window (wraps). */
|
|
182
|
+
prevWindowForViewport(sid) {
|
|
183
|
+
if (this.exited || !this.viewports.has(sid) || this.windows.length < 2)
|
|
184
|
+
return;
|
|
185
|
+
const cur = this.viewportActive.get(sid) ?? 0;
|
|
186
|
+
this.selectWindowForViewport(sid, (cur - 1 + this.windows.length) % this.windows.length);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Create a new (global) window and switch ONLY this viewport onto it. The
|
|
190
|
+
* window list changed, so broadcast window-state to every consumer (each gets
|
|
191
|
+
* its OWN active index); the creating viewport is also repainted onto the new
|
|
192
|
+
* window. Respects the {@link maxWindows} cap.
|
|
193
|
+
*/
|
|
194
|
+
newWindowForViewport(sid) {
|
|
195
|
+
if (this.exited || !this.viewports.has(sid))
|
|
196
|
+
return;
|
|
197
|
+
const win = this.spawnAndAppend();
|
|
198
|
+
if (!win)
|
|
199
|
+
return;
|
|
200
|
+
this.viewportActive.set(sid, this.windows.length - 1);
|
|
201
|
+
this.repaintViewport(sid);
|
|
202
|
+
this.broadcastWindowState();
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Close the (global) window at `index` on behalf of a viewport. Killing its
|
|
206
|
+
* PTY drives the shared exit path, which removes the window and re-homes every
|
|
207
|
+
* consumer's active index. Closing the last window ends the whole workspace.
|
|
208
|
+
*/
|
|
209
|
+
closeWindowFromViewport(sid, index) {
|
|
210
|
+
if (this.exited || !this.viewports.has(sid))
|
|
211
|
+
return;
|
|
212
|
+
if (index < 0 || index >= this.windows.length)
|
|
213
|
+
return;
|
|
214
|
+
try {
|
|
215
|
+
this.windows[index].kill();
|
|
216
|
+
}
|
|
217
|
+
catch { }
|
|
218
|
+
}
|
|
219
|
+
/** Current window state as seen by a viewport (shared list + its own active). */
|
|
220
|
+
windowStateForViewport(sid) {
|
|
221
|
+
const windows = this.windows.map((w) => ({ id: w.id, title: w.title }));
|
|
222
|
+
return { v: 1, kind: 'window-state', windows, activeIndex: this.viewportActive.get(sid) ?? 0 };
|
|
223
|
+
}
|
|
224
|
+
// --- window operations (drive the HOST's active window) ------------------
|
|
225
|
+
/** Create a new window and switch the HOST to it. */
|
|
146
226
|
newWindow() {
|
|
147
227
|
if (this.exited)
|
|
148
228
|
return;
|
|
149
|
-
|
|
150
|
-
|
|
229
|
+
const win = this.spawnAndAppend();
|
|
230
|
+
if (!win)
|
|
151
231
|
return;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
this.windows.push(win);
|
|
155
|
-
this.setActive(this.windows.length - 1);
|
|
232
|
+
this.hostActiveIndex = this.windows.length - 1;
|
|
233
|
+
this.repaintHost();
|
|
156
234
|
this.broadcastWindowState();
|
|
157
235
|
}
|
|
158
|
-
/** Switch the
|
|
236
|
+
/** Switch the HOST's active window to `index` (no-op if out of range/current). */
|
|
159
237
|
selectWindow(index) {
|
|
160
238
|
if (this.exited)
|
|
161
239
|
return;
|
|
162
|
-
if (index < 0 || index >= this.windows.length || index === this.
|
|
240
|
+
if (index < 0 || index >= this.windows.length || index === this.hostActiveIndex)
|
|
163
241
|
return;
|
|
164
|
-
this.
|
|
165
|
-
this.
|
|
242
|
+
this.hostActiveIndex = index;
|
|
243
|
+
this.repaintHost();
|
|
244
|
+
this.sendHostWindowState();
|
|
166
245
|
}
|
|
167
|
-
/** Switch to the next window (wraps). */
|
|
246
|
+
/** Switch the HOST to the next window (wraps). */
|
|
168
247
|
nextWindow() {
|
|
169
248
|
if (this.windows.length < 2)
|
|
170
249
|
return;
|
|
171
|
-
this.selectWindow((this.
|
|
250
|
+
this.selectWindow((this.hostActiveIndex + 1) % this.windows.length);
|
|
172
251
|
}
|
|
173
|
-
/** Switch to the previous window (wraps). */
|
|
252
|
+
/** Switch the HOST to the previous window (wraps). */
|
|
174
253
|
prevWindow() {
|
|
175
254
|
if (this.windows.length < 2)
|
|
176
255
|
return;
|
|
177
|
-
this.selectWindow((this.
|
|
256
|
+
this.selectWindow((this.hostActiveIndex - 1 + this.windows.length) % this.windows.length);
|
|
178
257
|
}
|
|
179
258
|
/**
|
|
180
259
|
* Close the window at `index`. Killing its PTY drives the shared exit path,
|
|
181
|
-
* which removes the window, re-homes
|
|
182
|
-
* the last window ends the whole workspace.
|
|
260
|
+
* which removes the window, re-homes every consumer's active index, and
|
|
261
|
+
* broadcasts. Closing the last window ends the whole workspace.
|
|
183
262
|
*/
|
|
184
263
|
closeWindow(index) {
|
|
185
264
|
if (this.exited)
|
|
@@ -201,10 +280,10 @@ export class SharedWorkspace {
|
|
|
201
280
|
win.title = title;
|
|
202
281
|
this.broadcastWindowState();
|
|
203
282
|
}
|
|
204
|
-
/** Current window state
|
|
283
|
+
/** Current window state from the HOST's point of view (activeIndex = host's). */
|
|
205
284
|
windowState() {
|
|
206
285
|
const windows = this.windows.map((w) => ({ id: w.id, title: w.title }));
|
|
207
|
-
return { v: 1, kind: 'window-state', windows, activeIndex: this.
|
|
286
|
+
return { v: 1, kind: 'window-state', windows, activeIndex: this.hostActiveIndex };
|
|
208
287
|
}
|
|
209
288
|
// --- internals -----------------------------------------------------------
|
|
210
289
|
spawnWindow() {
|
|
@@ -215,77 +294,94 @@ export class SharedWorkspace {
|
|
|
215
294
|
...(this.maxReplayBytes !== undefined ? { maxReplayBytes: this.maxReplayBytes } : {}),
|
|
216
295
|
});
|
|
217
296
|
win.onExit((code, signal) => this.handleWindowExit(win, code, signal));
|
|
297
|
+
// Tap EVERY window once, for its whole lifetime; the router delivers each
|
|
298
|
+
// chunk only to the consumers whose active window is this one.
|
|
299
|
+
win.onHostData((chunk) => this.routeWindowOutput(win, chunk));
|
|
300
|
+
return win;
|
|
301
|
+
}
|
|
302
|
+
/** Spawn + append a window, honoring the cap. Returns undefined at the cap. */
|
|
303
|
+
spawnAndAppend() {
|
|
304
|
+
if (this.windows.length >= this.maxWindows) {
|
|
305
|
+
this.output.warn(`Window cap reached (${this.maxWindows}); ignoring new-window`);
|
|
306
|
+
return undefined;
|
|
307
|
+
}
|
|
308
|
+
const win = this.spawnWindow();
|
|
309
|
+
this.windows.push(win);
|
|
218
310
|
return win;
|
|
219
311
|
}
|
|
220
312
|
/**
|
|
221
|
-
*
|
|
222
|
-
*
|
|
313
|
+
* Route one window's output to the consumers currently viewing it: the host
|
|
314
|
+
* (if its active window is `win`) and each viewport whose active window is
|
|
315
|
+
* `win`. Background windows keep running; a consumer only sees its own active.
|
|
223
316
|
*/
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
if (!active)
|
|
317
|
+
routeWindowOutput(win, chunk) {
|
|
318
|
+
if (this.exited)
|
|
227
319
|
return;
|
|
228
|
-
|
|
320
|
+
if (this.windows[this.hostActiveIndex] === win)
|
|
229
321
|
this.hostDataCb?.(chunk);
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
322
|
+
if (this.viewports.size === 0)
|
|
323
|
+
return;
|
|
324
|
+
let bytes;
|
|
325
|
+
for (const [sid, v] of this.viewports) {
|
|
326
|
+
if (this.windows[this.viewportActive.get(sid) ?? 0] === win) {
|
|
327
|
+
if (bytes === undefined)
|
|
328
|
+
bytes = new Uint8Array(chunk);
|
|
234
329
|
try {
|
|
235
330
|
v.onData(bytes);
|
|
236
331
|
}
|
|
237
332
|
catch { }
|
|
238
333
|
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Switch the active window: detach the old window's output tap, tap the new
|
|
243
|
-
* one, and repaint the host + every viewport (clear + new window's replay).
|
|
244
|
-
* Does NOT broadcast window-state — callers pair this with broadcastWindowState.
|
|
245
|
-
*/
|
|
246
|
-
setActive(index) {
|
|
247
|
-
const prev = this.windows[this.activeIndex];
|
|
248
|
-
if (prev)
|
|
249
|
-
prev.onHostData(() => { }); // stop tapping the now-background window
|
|
250
|
-
this.activeIndex = index;
|
|
251
|
-
this.bindActiveOutput();
|
|
252
|
-
this.repaintAll();
|
|
334
|
+
}
|
|
253
335
|
}
|
|
254
|
-
/** Repaint the
|
|
255
|
-
|
|
256
|
-
const active = this.windows[this.
|
|
336
|
+
/** Repaint the HOST with a clear + its active window's replay. */
|
|
337
|
+
repaintHost() {
|
|
338
|
+
const active = this.windows[this.hostActiveIndex];
|
|
257
339
|
if (!active)
|
|
258
340
|
return;
|
|
259
341
|
const payload = Buffer.concat([CLEAR, Buffer.from(active.getReplay())]);
|
|
260
342
|
this.hostDataCb?.(payload);
|
|
261
|
-
if (this.viewports.size > 0) {
|
|
262
|
-
const bytes = new Uint8Array(payload);
|
|
263
|
-
for (const v of this.viewports.values()) {
|
|
264
|
-
try {
|
|
265
|
-
v.onData(bytes);
|
|
266
|
-
}
|
|
267
|
-
catch { }
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
343
|
}
|
|
271
|
-
/**
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
344
|
+
/** Push the host its own window-state (host's active index). */
|
|
345
|
+
sendHostWindowState() {
|
|
346
|
+
this.hostWindowStateCb?.(this.windowState());
|
|
347
|
+
}
|
|
348
|
+
/** Push a single viewport its own window-state (its active index). */
|
|
349
|
+
pushViewportWindowState(sid) {
|
|
350
|
+
const v = this.viewports.get(sid);
|
|
351
|
+
if (!v)
|
|
276
352
|
return;
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
v.onWindowState(state);
|
|
280
|
-
}
|
|
281
|
-
catch { }
|
|
353
|
+
try {
|
|
354
|
+
v.onWindowState(this.windowStateForViewport(sid));
|
|
282
355
|
}
|
|
356
|
+
catch { }
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Notify EVERY consumer of the current window-state: the host with its own
|
|
360
|
+
* active index, and each viewport with its own. Called when the shared window
|
|
361
|
+
* list changes (create / close / rename).
|
|
362
|
+
*/
|
|
363
|
+
broadcastWindowState() {
|
|
364
|
+
this.sendHostWindowState();
|
|
365
|
+
for (const sid of this.viewports.keys())
|
|
366
|
+
this.pushViewportWindowState(sid);
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Re-home one consumer's active index after the window at `idx` was removed.
|
|
370
|
+
* `len` is the post-removal window count. Returns the new active index and
|
|
371
|
+
* whether the consumer must be repainted (only when its active window was the
|
|
372
|
+
* one that vanished).
|
|
373
|
+
*/
|
|
374
|
+
rehomeAfterClose(active, idx, len) {
|
|
375
|
+
if (active === idx)
|
|
376
|
+
return { active: Math.min(idx, len - 1), repaint: true };
|
|
377
|
+
if (active > idx)
|
|
378
|
+
return { active: active - 1, repaint: false };
|
|
379
|
+
return { active, repaint: false };
|
|
283
380
|
}
|
|
284
381
|
handleWindowExit(win, code, signal) {
|
|
285
382
|
const idx = this.windows.indexOf(win);
|
|
286
383
|
if (idx === -1)
|
|
287
384
|
return;
|
|
288
|
-
const wasActive = idx === this.activeIndex;
|
|
289
385
|
this.windows.splice(idx, 1);
|
|
290
386
|
// Last window gone: the whole workspace ends. Tell every viewport and the
|
|
291
387
|
// host so the client streams and host process wind down.
|
|
@@ -298,18 +394,24 @@ export class SharedWorkspace {
|
|
|
298
394
|
catch { }
|
|
299
395
|
}
|
|
300
396
|
this.viewports.clear();
|
|
397
|
+
this.viewportActive.clear();
|
|
301
398
|
this.exitCb?.(code, signal);
|
|
302
399
|
return;
|
|
303
400
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
401
|
+
const len = this.windows.length;
|
|
402
|
+
// Re-home the HOST: if it was viewing the closed window, move it onto a
|
|
403
|
+
// surviving neighbor and repaint it; if it was after the closed one, shift
|
|
404
|
+
// down to keep pointing at the same window.
|
|
405
|
+
const host = this.rehomeAfterClose(this.hostActiveIndex, idx, len);
|
|
406
|
+
this.hostActiveIndex = host.active;
|
|
407
|
+
if (host.repaint)
|
|
408
|
+
this.repaintHost();
|
|
409
|
+
// Re-home every viewport the same way, each independently.
|
|
410
|
+
for (const sid of this.viewports.keys()) {
|
|
411
|
+
const r = this.rehomeAfterClose(this.viewportActive.get(sid) ?? 0, idx, len);
|
|
412
|
+
this.viewportActive.set(sid, r.active);
|
|
413
|
+
if (r.repaint)
|
|
414
|
+
this.repaintViewport(sid);
|
|
313
415
|
}
|
|
314
416
|
this.broadcastWindowState();
|
|
315
417
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-workspace.js","sourceRoot":"","sources":["../src/shared-workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared-workspace.js","sourceRoot":"","sources":["../src/shared-workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thenewlabs/entangle-serve",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@homebridge/node-pty-prebuilt-multiarch": "^0.13.1",
|
|
20
|
-
"@thenewlabs/entangle-crypto": "^2.
|
|
21
|
-
"@thenewlabs/entangle-protocol": "^2.
|
|
22
|
-
"@thenewlabs/entangle-utils": "^2.
|
|
20
|
+
"@thenewlabs/entangle-crypto": "^2.9.0",
|
|
21
|
+
"@thenewlabs/entangle-protocol": "^2.9.0",
|
|
22
|
+
"@thenewlabs/entangle-utils": "^2.9.0",
|
|
23
23
|
"cborg": "^4.5.8",
|
|
24
24
|
"commander": "^15.0.0",
|
|
25
25
|
"ws": "^8.21.0"
|