@thenewlabs/entangle-serve 2.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAkK/C"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA2L/C"}
package/dist/daemon.js CHANGED
@@ -99,50 +99,56 @@ export async function runDaemon() {
99
99
  };
100
100
  process.on('SIGTERM', () => shutdown(0));
101
101
  process.on('SIGINT', () => shutdown(0));
102
- // Subscribe ONCE to the session and fan each event out to every client.
103
- localSession.onHostData((chunk) => broadcast({ t: 'data', chunk: encodeChunk(chunk) }));
104
- localSession.onWindowState((state) => broadcast({ t: 'window-state', state }));
102
+ // Subscribe ONCE to the SESSION-GLOBAL streams and fan each out to every
103
+ // client. Terminal output and window-state are NOT global anymore: each client
104
+ // gets its own workspace viewport (see onConnection) so it can sit on its own
105
+ // active window, so we deliberately do NOT broadcast onHostData/onWindowState.
105
106
  localSession.onViewersChange((n) => broadcast({ t: 'viewers', n }));
106
107
  localSession.onLog((line) => broadcast({ t: 'log', line }));
107
108
  localSession.onUrl((url) => broadcast({ t: 'url', url }));
108
109
  // Workspace ended (last window's shell exited) → tear the daemon down.
109
110
  localSession.onExit((code) => shutdown(code));
110
111
  // --- inbound client handling ---------------------------------------------
111
- const handleClientMessage = (msg, socket) => {
112
+ // A client's messages drive ITS OWN workspace viewport (keyed by `vpId`), so
113
+ // input/window ops only move that client's active window. Sizing stays global
114
+ // (the host/workspace size is authoritative), so hello/resize resize the whole
115
+ // workspace as before.
116
+ const handleClientMessage = (msg, socket, vpId) => {
112
117
  switch (msg.t) {
113
118
  case 'hello':
114
- localSession.resize(msg.cols, msg.rows);
119
+ workspace.resize(msg.cols, msg.rows);
115
120
  break;
116
121
  case 'input':
117
- localSession.write(decodeChunk(msg.data));
122
+ workspace.writeFromViewport(vpId, decodeChunk(msg.data));
118
123
  break;
119
124
  case 'resize':
120
- localSession.resize(msg.cols, msg.rows);
125
+ workspace.resize(msg.cols, msg.rows);
121
126
  break;
122
127
  case 'win':
123
128
  switch (msg.op) {
124
129
  case 'new':
125
- localSession.newWindow();
130
+ workspace.newWindowForViewport(vpId);
126
131
  break;
127
132
  case 'next':
128
- localSession.nextWindow();
133
+ workspace.nextWindowForViewport(vpId);
129
134
  break;
130
135
  case 'prev':
131
- localSession.prevWindow();
136
+ workspace.prevWindowForViewport(vpId);
132
137
  break;
133
138
  case 'select':
134
139
  if (msg.index !== undefined)
135
- localSession.selectWindow(msg.index);
140
+ workspace.selectWindowForViewport(vpId, msg.index);
136
141
  break;
137
142
  case 'close':
138
143
  if (msg.index !== undefined)
139
- localSession.closeWindow(msg.index);
144
+ workspace.closeWindowFromViewport(vpId, msg.index);
140
145
  break;
141
146
  }
142
147
  break;
143
148
  case 'detach':
144
- // Drop just this client; the daemon (and session) keep running.
149
+ // Drop just this client's viewport; the daemon (and session) keep running.
145
150
  clients.delete(socket);
151
+ workspace.detachViewport(vpId);
146
152
  try {
147
153
  socket.end();
148
154
  }
@@ -150,16 +156,40 @@ export async function runDaemon() {
150
156
  break;
151
157
  }
152
158
  };
159
+ let nextVpId = 0;
153
160
  const onConnection = (socket) => {
161
+ // Each connection is its own workspace viewport with an independent active
162
+ // window; reuse the connection counter as the viewport key.
163
+ const vpId = `client-${nextVpId++}`;
154
164
  clients.add(socket);
155
- const remove = () => { clients.delete(socket); };
165
+ const remove = () => {
166
+ clients.delete(socket);
167
+ workspace.detachViewport(vpId);
168
+ };
156
169
  socket.on('close', remove);
157
170
  socket.on('error', remove);
171
+ // Attach this client's viewport: the workspace multiplexes ITS active
172
+ // window's output onto this socket and pushes ITS own window-state.
173
+ const { replay } = workspace.attachViewport({
174
+ sid: vpId,
175
+ onData: (chunk) => { try {
176
+ writeMessage(socket, { t: 'data', chunk: encodeChunk(chunk) });
177
+ }
178
+ catch { /* dropped */ } },
179
+ onWindowState: (state) => { try {
180
+ writeMessage(socket, { t: 'window-state', state });
181
+ }
182
+ catch { /* dropped */ } },
183
+ onExit: (code) => { try {
184
+ writeMessage(socket, { t: 'exit', code });
185
+ }
186
+ catch { /* dropped */ } },
187
+ });
158
188
  createMessageReader(socket, (msg) => {
159
189
  // Only ClientToDaemon frames are expected inbound; a single bad message
160
190
  // must not take down the daemon.
161
191
  try {
162
- handleClientMessage(msg, socket);
192
+ handleClientMessage(msg, socket, vpId);
163
193
  }
164
194
  catch (err) {
165
195
  output.warn('Client message failed', err instanceof Error ? err.message : String(err));
@@ -168,16 +198,18 @@ export async function runDaemon() {
168
198
  socket.destroy();
169
199
  }
170
200
  catch { /* already gone */ } });
171
- // Push the current state immediately so the client's UI populates fast.
201
+ // Push this viewport's current state immediately so the client's UI
202
+ // populates fast. Sent synchronously (no await) right after attach, so live
203
+ // onData frames can't slip in before the replay.
172
204
  try {
173
205
  const url = localSession.getUrl();
174
206
  if (url)
175
207
  writeMessage(socket, { t: 'url', url });
176
- writeMessage(socket, { t: 'window-state', state: localSession.windowState() });
177
- writeMessage(socket, { t: 'viewers', n: localSession.viewerCount() });
208
+ writeMessage(socket, { t: 'window-state', state: workspace.windowStateForViewport(vpId) });
209
+ writeMessage(socket, { t: 'viewers', n: workspace.viewerCount() });
178
210
  for (const line of localSession.getLogBuffer())
179
211
  writeMessage(socket, { t: 'log', line });
180
- writeMessage(socket, { t: 'replay', chunk: encodeChunk(localSession.getReplay()) });
212
+ writeMessage(socket, { t: 'replay', chunk: encodeChunk(replay) });
181
213
  }
182
214
  catch {
183
215
  remove();
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"multi-session.d.ts","sourceRoot":"","sources":["../src/multi-session.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EACL,SAAS,EAcV,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EAKX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,qBAAqB,EACrB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;IAC9C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IAEvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAgZD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAqIf;AAGD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAW/D"}
1
+ {"version":3,"file":"multi-session.d.ts","sourceRoot":"","sources":["../src/multi-session.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EACL,SAAS,EAcV,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EAKX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,qBAAqB,EACrB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;IAC9C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IAEvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AA6ZD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAqIf;AAGD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAW/D"}
@@ -94,8 +94,19 @@ async function handleSharedAttach(session, _message) {
94
94
  for (const chunk of pending) {
95
95
  await sendStreamData(session, sid, chunk, 'stdout');
96
96
  }
97
- // Populate the client's tab bar with the current window state.
98
- await sendWindowState(session, workspace.windowState());
97
+ // Populate the client's tab bar with THIS viewport's own window state (its
98
+ // active index), not the host's global view.
99
+ await sendWindowState(session, workspace.windowStateForViewport(sid));
100
+ }
101
+ // This viewer's pty viewport sid — the key its per-viewport window ops apply to.
102
+ // A session's `sharedViewers` holds only pty-viewport sids (they are added only
103
+ // in handleSharedAttach), so the first one is the pty viewport.
104
+ function ptyViewportSid(session) {
105
+ if (!session.sharedViewers)
106
+ return undefined;
107
+ for (const sid of session.sharedViewers)
108
+ return sid;
109
+ return undefined;
99
110
  }
100
111
  // Handle stream open request
101
112
  async function handleStreamOpen(session, message) {
@@ -314,29 +325,37 @@ async function sendWindowState(session, state) {
314
325
  };
315
326
  await sendEncrypted(session, FrameType.WINDOW_CTL, msg);
316
327
  }
317
- // Handle a client->server window operation (WINDOW_CTL). The workspace applies
318
- // the op and drives its own window-state broadcast + viewport repaints, so all
319
- // attached clients (across every session) stay in sync.
328
+ // Handle a client->server window operation (WINDOW_CTL). Window ops drive THIS
329
+ // viewer's OWN active window (keyed by its pty-viewport sid), so viewers can sit
330
+ // on different windows independently; the workspace pushes each affected
331
+ // viewport its own window-state and repaints. Rename mutates the shared window
332
+ // list, so it stays global and re-broadcasts to everyone.
320
333
  async function handleWindowCtl(session, message) {
321
334
  const workspace = session.sharedWorkspace;
322
335
  if (!workspace)
323
336
  return;
337
+ const sid = ptyViewportSid(session);
324
338
  const op = message.msg;
325
339
  switch (op.op) {
326
340
  case 'new-window':
327
- workspace.newWindow();
341
+ if (sid)
342
+ workspace.newWindowForViewport(sid);
328
343
  break;
329
344
  case 'next-window':
330
- workspace.nextWindow();
345
+ if (sid)
346
+ workspace.nextWindowForViewport(sid);
331
347
  break;
332
348
  case 'prev-window':
333
- workspace.prevWindow();
349
+ if (sid)
350
+ workspace.prevWindowForViewport(sid);
334
351
  break;
335
352
  case 'select-window':
336
- workspace.selectWindow(op.index);
353
+ if (sid)
354
+ workspace.selectWindowForViewport(sid, op.index);
337
355
  break;
338
356
  case 'close-window':
339
- workspace.closeWindow(op.index);
357
+ if (sid)
358
+ workspace.closeWindowFromViewport(sid, op.index);
340
359
  break;
341
360
  case 'rename-window':
342
361
  workspace.renameWindow(op.index, op.title);
@@ -1 +1 @@
1
- {"version":3,"file":"multi-session.js","sourceRoot":"","sources":["../src/multi-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-session.js","sourceRoot":"","sources":["../src/multi-session.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,WAAW,EAUX,wBAAwB,GAGzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,OAAO,GACR,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,eAAe,GAGhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AA0B/F,yEAAyE;AACzE,wEAAwE;AACxE,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,SAAS,gBAAgB,CAAC,OAAqB,EAAE,MAAc;IAC7D,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO;IAC/B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,CAAC,+BAA+B,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,CAAC;YAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACjE,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,aAAa,CAC1B,OAAqB,EACrB,SAAoB,EACpB,OAAY,EACZ,GAAY;IAEZ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,6CAA6C;IAC7C,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEjD,4DAA4D;IAC5D,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAC7C,CAAC;QACD,OAAO,CAAC,EAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,iEAAiE;AACjE,KAAK,UAAU,kBAAkB,CAC/B,OAAqB,EACrB,QAA2B;IAE3B,MAAM,SAAS,GAAG,OAAO,CAAC,eAAgB,CAAC;IAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa;QAAE,OAAO,CAAC,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACtE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC;QAC1C,GAAG;QACH,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC3C,KAAK,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACvB,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KACpE,CAAC,CAAC;IAEH,2EAA2E;IAC3E,MAAM,SAAS,GAAwB;QACrC,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;KACvE,CAAC;IACF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAEpE,4EAA4E;IAC5E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,sEAAsE;IACtE,IAAI,GAAG,IAAI,CAAC;IACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,2EAA2E;IAC3E,6CAA6C;IAC7C,MAAM,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,iFAAiF;AACjF,gFAAgF;AAChF,gEAAgE;AAChE,SAAS,cAAc,CAAC,OAAqB;IAC3C,IAAI,CAAC,OAAO,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,GAAG,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6BAA6B;AAC7B,KAAK,UAAU,gBAAgB,CAC7B,OAAqB,EACrB,OAA0B;IAE1B,2EAA2E;IAC3E,gFAAgF;IAChF,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3D,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACxC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;YAC1B,MAAM;YACN,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBACzC,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YACD,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC/C,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBAClC,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QACxC,IAAI,SAAiB,CAAC;QAEtB,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACf,CAAC;YACF,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YAC3B,CAAC;YACD,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;gBACd,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC5B,CAAC;YACD,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,UAAU,GAAQ;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YACF,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC5B,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC5B,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,CAAC;YACD,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAwB;YACrC,GAAG,EAAE,CAAC,EAAE,+BAA+B;YACvC,GAAG,EAAE;gBACH,CAAC,EAAE,CAAC;gBACJ,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI;aACL;SACF,CAAC;QAEF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,KAAK,UAAU,gBAAgB,CAC7B,OAAqB,EACrB,OAA0B;IAE1B,6EAA6E;IAC7E,IAAI,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,eAAe,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,KAAK,UAAU,kBAAkB,CAC/B,OAAqB,EACrB,OAA4B;IAE5B,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,+DAA+D;IAC/D,IAAI,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,aAAa,CAAC,eAAe,CACnC,OAAO,CAAC,GAAG,CAAC,GAAG,EACf,OAAO,CAAC,GAAG,CAAC,IAAI,EAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,uBAAuB;AACvB,KAAK,UAAU,kBAAkB,CAC/B,OAAqB,EACrB,OAA4B;IAE5B,8EAA8E;IAC9E,2EAA2E;IAC3E,8DAA8D;IAC9D,IAAI,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAExD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,sBAAsB;AACtB,KAAK,UAAU,iBAAiB,CAC9B,OAAqB,EACrB,OAA2B;IAE3B,2EAA2E;IAC3E,6BAA6B;IAC7B,IAAI,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,SAAS,GAAwB;YACrC,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;SACpD,CAAC;QACF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjF,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IAE7E,2BAA2B;IAC3B,MAAM,SAAS,GAAwB;QACrC,GAAG,EAAE,CAAC,EAAE,+BAA+B;QACvC,GAAG,EAAE;YACH,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;SACrB;KACF,CAAC;IAEF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjF,2BAA2B;IAC3B,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,6BAA6B;AAC7B,KAAK,UAAU,cAAc,CAC3B,OAAqB,EACrB,GAAW,EACX,IAAgB,EAChB,UAA+B,QAAQ;IAEvC,MAAM,GAAG,GAAG;QACV,GAAG,EAAE,CAAC,EAAE,+BAA+B;QACvC,GAAG,EAAE;YACH,CAAC,EAAE,CAAU;YACb,IAAI,EAAE,MAAe;YACrB,GAAG;YACH,KAAK,EAAE,IAAI;YACX,OAAO;SACR;KACF,CAAC;IAEF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,6BAA6B;AAC7B,KAAK,UAAU,cAAc,CAC3B,OAAqB,EACrB,GAAW,EACX,IAAmB,EACnB,MAAqB,EACrB,KAAW;IAEX,MAAM,GAAG,GAAsB;QAC7B,GAAG,EAAE,CAAC,EAAE,+BAA+B;QACvC,GAAG,EAAE;YACH,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,GAAG;YACH,IAAI;YACJ,MAAM;YACN,KAAK;SACN;KACF,CAAC;IAEF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9D,sCAAsC;IACtC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,8BAA8B;AAC9B,KAAK,UAAU,eAAe,CAC5B,OAAqB,EACrB,GAAW,EACX,KAAa;IAEb,MAAM,GAAG,GAAuB;QAC9B,GAAG,EAAE,CAAC,EAAE,+BAA+B;QACvC,GAAG,EAAE;YACH,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,OAAO;YACb,GAAG;YACH,OAAO,EAAE,KAAK;SACf;KACF,CAAC;IAEF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC;AAED,gFAAgF;AAChF,2EAA2E;AAC3E,2DAA2D;AAC3D,KAAK,UAAU,eAAe,CAC5B,OAAqB,EACrB,KAAsB;IAEtB,MAAM,GAAG,GAAG;QACV,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACrC,GAAG,EAAE,KAAK;KACX,CAAC;IACF,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,+EAA+E;AAC/E,iFAAiF;AACjF,yEAAyE;AACzE,+EAA+E;AAC/E,0DAA0D;AAC1D,KAAK,UAAU,eAAe,CAC5B,OAAqB,EACrB,OAA2B;IAE3B,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IACvB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACd,KAAK,YAAY;YAAE,IAAI,GAAG;gBAAE,SAAS,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACvE,KAAK,aAAa;YAAE,IAAI,GAAG;gBAAE,SAAS,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACzE,KAAK,aAAa;YAAE,IAAI,GAAG;gBAAE,SAAS,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACzE,KAAK,eAAe;YAAE,IAAI,GAAG;gBAAE,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAAC,MAAM;QACvF,KAAK,cAAc;YAAE,IAAI,GAAG;gBAAE,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAAC,MAAM;QACtF,KAAK,eAAe;YAAE,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAAC,MAAM;IAC1E,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAqB,EACrB,KAA+C;IAE/C,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO;IAE/B,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,gBAAgB,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC;QACH,yEAAyE;QACzE,kEAAkE;QAClE,sCAAsC;QACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClF,MAAM,OAAO,GAAQ,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvC,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC/E,gBAAgB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,iDAAiD;QACjD,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5B,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;gBACpC,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,cAAc,eAAe,cAAc,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtH,OAAO;YACT,CAAC;YACD,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,IAAI,CAAC;gBACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,oBAAoB,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAErF,6BAA6B;QAC7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,SAAS,CAAC,WAAW;gBACxB,IAAI,oBAAoB,EAAE,CAAC;oBACzB,sCAAsC;oBACtC,IAAI,CAAC;wBACH,MAAM,GAAG,GAAI,OAA6B,CAAC,GAAG,EAAE,GAAG,CAAC;wBACpD,IAAI,GAAG;4BAAE,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;oBACjF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAA4B,CAAC,CAAC;gBAC9D,MAAM;YAER,KAAK,SAAS,CAAC,WAAW;gBACxB,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAI,OAA6B,CAAC,GAAG,EAAE,GAAG,CAAC;wBACpD,IAAI,GAAG;4BAAE,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;oBACjF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAA4B,CAAC,CAAC;gBAC9D,MAAM;YAER,KAAK,SAAS,CAAC,aAAa;gBAC1B,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAI,OAA+B,CAAC,GAAG,EAAE,GAAG,CAAC;wBACtD,IAAI,GAAG;4BAAE,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;oBACjF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAA8B,CAAC,CAAC;gBAClE,MAAM;YAER,KAAK,SAAS,CAAC,aAAa;gBAC1B,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAI,OAA+B,CAAC,GAAG,EAAE,GAAG,CAAC;wBACtD,IAAI,GAAG;4BAAE,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;oBACjF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAA8B,CAAC,CAAC;gBAClE,MAAM;YAER,KAAK,SAAS,CAAC,YAAY;gBACzB,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAI,OAA8B,CAAC,GAAG,EAAE,GAAG,CAAC;wBACrD,IAAI,GAAG;4BAAE,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;oBACjF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAA6B,CAAC,CAAC;gBAChE,MAAM;YAER,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1B,IAAI,oBAAoB;oBAAE,OAAO;gBACjC,sEAAsE;gBACtE,uEAAuE;gBACvE,iDAAiD;gBACjD,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBACzE,OAAO;gBACT,CAAC;gBACD,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,SAAS;gBACtB,sBAAsB;gBACtB,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC3D,MAAM;YAER;gBACE,MAAM,CAAC,IAAI,CAAC,4CAA4C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACpF,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,mBAAmB;AACnB,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACvD,8EAA8E;IAC9E,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -3,13 +3,16 @@ import type { WindowStateBody } from '@thenewlabs/entangle-protocol';
3
3
  /**
4
4
  * A client's viewport onto the shared workspace.
5
5
  *
6
- * Each client keeps ONE pty stream (the sid from STREAM_OPEN); the workspace
7
- * multiplexes the ACTIVE window's output onto it via {@link onData}, repaints it
8
- * on a window switch (also via {@link onData}: a clear + the new window's
9
- * replay), and pushes the current {@link WindowStateBody} to it via
10
- * {@link onWindowState} on every change. `onExit` fires only when the workspace
11
- * as a whole ends (its last window exits) closing a non-last window just
12
- * repaints, it does not end the viewport.
6
+ * Each client keeps ONE pty stream (the sid from STREAM_OPEN) but views ONE
7
+ * window of its own choosing its "active" window. The workspace multiplexes
8
+ * that window's output onto the stream via {@link onData}, repaints it on a
9
+ * per-viewport window switch (also via {@link onData}: a clear + the new
10
+ * window's replay), and pushes that viewport's own {@link WindowStateBody} to
11
+ * it via {@link onWindowState} on every change. Different viewports can sit on
12
+ * different windows independently (or share one by being on the same window).
13
+ * `onExit` fires only when the workspace as a whole ends (its last window
14
+ * exits) — closing a non-last window just re-homes/repaints, it does not end
15
+ * the viewport.
13
16
  */
14
17
  export interface Viewport {
15
18
  sid: string;
@@ -18,24 +21,36 @@ export interface Viewport {
18
21
  onWindowState: (state: WindowStateBody) => void;
19
22
  }
20
23
  /**
21
- * A shared, tmux-style workspace of windows synced across every attached client.
24
+ * A shared, tmux-style workspace of windows with a PER-CONSUMER active window.
22
25
  *
23
- * The workspace holds N windows, each its own {@link SharedSession} PTY; every
24
- * window keeps running in the background but only the ONE global active window's
25
- * output is streamed to clients' viewports and to the host terminal. Client
26
- * keystrokes go to the active window; the host terminal size is authoritative
27
- * and every window is sized to it.
26
+ * The workspace holds N windows, each its own {@link SharedSession} PTY. Every
27
+ * window keeps running in the background and its output is tapped once (in
28
+ * {@link spawnWindow}); each chunk is routed only to the CONSUMERS whose active
29
+ * window is the one that emitted it. A "consumer" is either the HOST (the
30
+ * host-channel callbacks, with its own {@link hostActiveIndex}) or a viewport
31
+ * (each with its own active index tracked in {@link viewportActive}). This lets
32
+ * connected viewers work on different windows independently instead of all
33
+ * following a single global active window.
28
34
  *
29
35
  * The host terminal binds to a workspace exactly as it used to bind to a single
30
36
  * SharedSession — {@link onHostData}, {@link onViewersChange}, {@link onExit},
31
- * {@link resize}, {@link write}, {@link getReplay}, {@link viewerCount} so a
32
- * single-window workspace behaves identically to the old shared terminal.
37
+ * {@link resize}, {@link write}, {@link getReplay}, {@link viewerCount}, and the
38
+ * window ops {@link newWindow}/{@link selectWindow}/{@link nextWindow}/
39
+ * {@link prevWindow}/{@link closeWindow}/{@link renameWindow} — which now drive
40
+ * the HOST's own active window. So from the host's point of view a single-window
41
+ * workspace behaves identically to the old shared terminal.
42
+ *
43
+ * Window sizing stays global: the host terminal size is authoritative and every
44
+ * window is sized to it (per-viewport sizing is out of scope).
33
45
  */
34
46
  export declare class SharedWorkspace {
35
47
  private output;
36
48
  private windows;
37
- private activeIndex;
49
+ /** The HOST consumer's active window (host is just one consumer). */
50
+ private hostActiveIndex;
38
51
  private viewports;
52
+ /** Per-viewport active window index, keyed by sid. Defaults to 0 on attach. */
53
+ private viewportActive;
39
54
  private exited;
40
55
  private readonly cwd?;
41
56
  private readonly maxReplayBytes?;
@@ -53,84 +68,122 @@ export declare class SharedWorkspace {
53
68
  maxReplayBytes?: number;
54
69
  maxWindows?: number;
55
70
  });
56
- /** Register the host's local rendering callback for the active window. */
71
+ /** Register the host's local rendering callback for the host's active window. */
57
72
  onHostData(cb: (chunk: Buffer) => void): void;
58
73
  /** Register a callback fired once when the workspace ends (last window exits). */
59
74
  onExit(cb: (code: number | null, signal: string | null) => void): void;
60
75
  /** Register a callback fired whenever the attached-viewport count changes. */
61
76
  onViewersChange(cb: (count: number) => void): void;
62
77
  /**
63
- * Register a host callback fired whenever the window set changes — create,
64
- * close, switch, or rename. Lets the host render its own tab bar in-process
65
- * (the analogue of the {@link Viewport.onWindowState} push sent to clients).
66
- * Fires with the current {@link windowState}.
78
+ * Register a host callback fired whenever the host's window view changes —
79
+ * create, close, switch, or rename. Lets the host render its own tab bar
80
+ * in-process (the analogue of the {@link Viewport.onWindowState} push sent to
81
+ * clients). Fires with the host's current {@link windowState}.
67
82
  */
68
83
  onWindowState(cb: (state: WindowStateBody) => void): void;
69
84
  get hasExited(): boolean;
70
- /** Merge input (from the host) into the ACTIVE window. */
85
+ /** Merge input (from the host) into the HOST's active window. */
71
86
  write(data: Uint8Array | string): void;
72
87
  /** Resize the workspace (host is authoritative) — every window is sized to it. */
73
88
  resize(cols: number, rows: number): void;
74
- /** Recent-output snapshot of the ACTIVE window (host's initial paint). */
89
+ /** Recent-output snapshot of the HOST's active window (host's initial paint). */
75
90
  getReplay(): Uint8Array;
76
91
  /** Number of attached client viewports. */
77
92
  viewerCount(): number;
78
93
  /** Kill every window (which drives the workspace to exit). */
79
94
  kill(): void;
80
95
  /**
81
- * Attach a client viewport. Returns the current active-window replay so the
82
- * caller can send it as the viewport's initial output. The caller should then
83
- * send the current {@link windowState} so the client's tab bar populates.
96
+ * Attach a client viewport. The viewport starts on window 0. Returns window
97
+ * 0's replay so the caller can send it as the viewport's initial output. The
98
+ * caller should then send {@link windowStateForViewport} so the client's tab
99
+ * bar populates with the viewport's own active index.
84
100
  */
85
101
  attachViewport(v: Viewport): {
86
102
  replay: Uint8Array;
87
103
  };
88
104
  /** Detach a client viewport (disconnect / stream close). */
89
105
  detachViewport(sid: string): void;
90
- /** Route a viewport's keystrokes to the ACTIVE window. */
106
+ /** Route a viewport's keystrokes to THAT viewport's active window. */
91
107
  writeFromViewport(sid: string, data: Uint8Array | string): void;
92
108
  /**
93
- * Repaint a SINGLE viewport with the ACTIVE window's screen (the same
94
- * clear + replay a window switch sends, scoped to one sid). The host stays
95
- * authoritative over the shell size, so when a remote viewer resizes we can't
96
- * resize the PTY under everyone else; instead we re-send the active window's
97
- * screen to that viewer so its locally-corrupted display is redrawn clean.
109
+ * Repaint a SINGLE viewport with ITS OWN active window's screen (the same
110
+ * clear + replay a per-viewport window switch sends, scoped to one sid). The
111
+ * host stays authoritative over the shell size, so when a remote viewer
112
+ * resizes we can't resize the PTY under everyone else; instead we re-send that
113
+ * viewer's active window's screen so its locally-corrupted display is redrawn.
98
114
  */
99
115
  repaintViewport(sid: string): void;
100
- /** Create a new window and switch to it. */
116
+ /**
117
+ * Switch a viewport's active window to `index` and repaint just it (no-op if
118
+ * out of range or already there). Only the given viewport moves; the host and
119
+ * every other viewport keep their own active window.
120
+ */
121
+ selectWindowForViewport(sid: string, index: number): void;
122
+ /** Switch a viewport to its next window (wraps). */
123
+ nextWindowForViewport(sid: string): void;
124
+ /** Switch a viewport to its previous window (wraps). */
125
+ prevWindowForViewport(sid: string): void;
126
+ /**
127
+ * Create a new (global) window and switch ONLY this viewport onto it. The
128
+ * window list changed, so broadcast window-state to every consumer (each gets
129
+ * its OWN active index); the creating viewport is also repainted onto the new
130
+ * window. Respects the {@link maxWindows} cap.
131
+ */
132
+ newWindowForViewport(sid: string): void;
133
+ /**
134
+ * Close the (global) window at `index` on behalf of a viewport. Killing its
135
+ * PTY drives the shared exit path, which removes the window and re-homes every
136
+ * consumer's active index. Closing the last window ends the whole workspace.
137
+ */
138
+ closeWindowFromViewport(sid: string, index: number): void;
139
+ /** Current window state as seen by a viewport (shared list + its own active). */
140
+ windowStateForViewport(sid: string): WindowStateBody;
141
+ /** Create a new window and switch the HOST to it. */
101
142
  newWindow(): void;
102
- /** Switch the global active window to `index` (no-op if out of range/current). */
143
+ /** Switch the HOST's active window to `index` (no-op if out of range/current). */
103
144
  selectWindow(index: number): void;
104
- /** Switch to the next window (wraps). */
145
+ /** Switch the HOST to the next window (wraps). */
105
146
  nextWindow(): void;
106
- /** Switch to the previous window (wraps). */
147
+ /** Switch the HOST to the previous window (wraps). */
107
148
  prevWindow(): void;
108
149
  /**
109
150
  * Close the window at `index`. Killing its PTY drives the shared exit path,
110
- * which removes the window, re-homes the active index, and broadcasts. Closing
111
- * the last window ends the whole workspace.
151
+ * which removes the window, re-homes every consumer's active index, and
152
+ * broadcasts. Closing the last window ends the whole workspace.
112
153
  */
113
154
  closeWindow(index: number): void;
114
155
  /** Rename the window at `index` and broadcast the change. */
115
156
  renameWindow(index: number, title: string): void;
116
- /** Current window state (the `msg` body of a window-state frame). */
157
+ /** Current window state from the HOST's point of view (activeIndex = host's). */
117
158
  windowState(): WindowStateBody;
118
159
  private spawnWindow;
160
+ /** Spawn + append a window, honoring the cap. Returns undefined at the cap. */
161
+ private spawnAndAppend;
119
162
  /**
120
- * Tap the active window's output and fan it out to the host + every viewport.
121
- * Only the active window is tapped; background windows keep running silently.
163
+ * Route one window's output to the consumers currently viewing it: the host
164
+ * (if its active window is `win`) and each viewport whose active window is
165
+ * `win`. Background windows keep running; a consumer only sees its own active.
122
166
  */
123
- private bindActiveOutput;
167
+ private routeWindowOutput;
168
+ /** Repaint the HOST with a clear + its active window's replay. */
169
+ private repaintHost;
170
+ /** Push the host its own window-state (host's active index). */
171
+ private sendHostWindowState;
172
+ /** Push a single viewport its own window-state (its active index). */
173
+ private pushViewportWindowState;
124
174
  /**
125
- * Switch the active window: detach the old window's output tap, tap the new
126
- * one, and repaint the host + every viewport (clear + new window's replay).
127
- * Does NOT broadcast window-state callers pair this with broadcastWindowState.
175
+ * Notify EVERY consumer of the current window-state: the host with its own
176
+ * active index, and each viewport with its own. Called when the shared window
177
+ * list changes (create / close / rename).
128
178
  */
129
- private setActive;
130
- /** Repaint the host + every viewport with a clear + the active window's replay. */
131
- private repaintAll;
132
- /** Notify the host + every attached client of the current window-state. */
133
179
  broadcastWindowState(): void;
180
+ /**
181
+ * Re-home one consumer's active index after the window at `idx` was removed.
182
+ * `len` is the post-removal window count. Returns the new active index and
183
+ * whether the consumer must be repainted (only when its active window was the
184
+ * one that vanished).
185
+ */
186
+ private rehomeAfterClose;
134
187
  private handleWindowExit;
135
188
  }
136
189
  //# sourceMappingURL=shared-workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-workspace.d.ts","sourceRoot":"","sources":["../src/shared-workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-workspace.d.ts","sourceRoot":"","sources":["../src/shared-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGjF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD;AAQD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAe;IAsBxB,OAAO,CAAC,MAAM;IArBhB,OAAO,CAAC,OAAO,CAAuB;IACtC,qEAAqE;IACrE,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,SAAS,CAA+B;IAChD,+EAA+E;IAC/E,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C,OAAO,CAAC,MAAM,CAAC,CAAuD;IACtE,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IACnD,OAAO,CAAC,iBAAiB,CAAC,CAAmC;IAEtD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAGV,MAAM,EAAE,aAAa,EAC7B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAmBlG,iFAAiF;IACjF,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAE7C,kFAAkF;IAClF,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;IAEtE,8EAA8E;IAC9E,eAAe,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAElD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAEzD,IAAI,SAAS,IAAI,OAAO,CAAwB;IAEhD,iEAAiE;IACjE,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAKtC,kFAAkF;IAClF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOxC,iFAAiF;IACjF,SAAS,IAAI,UAAU;IAIvB,2CAA2C;IAC3C,WAAW,IAAI,MAAM;IAErB,8DAA8D;IAC9D,IAAI,IAAI,IAAI;IAQZ;;;;;OAKG;IACH,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE;IAQnD,4DAA4D;IAC5D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQjC,sEAAsE;IACtE,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAK/D;;;;;;OAMG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAUlC;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASzD,oDAAoD;IACpD,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMxC,wDAAwD;IACxD,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMxC;;;;;OAKG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IASvC;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzD,iFAAiF;IACjF,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe;IAOpD,qDAAqD;IACrD,SAAS,IAAI,IAAI;IASjB,kFAAkF;IAClF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjC,kDAAkD;IAClD,UAAU,IAAI,IAAI;IAKlB,sDAAsD;IACtD,UAAU,IAAI,IAAI;IAKlB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC,6DAA6D;IAC7D,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQhD,iFAAiF;IACjF,WAAW,IAAI,eAAe;IAO9B,OAAO,CAAC,WAAW;IAcnB,+EAA+E;IAC/E,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB,kEAAkE;IAClE,OAAO,CAAC,WAAW;IAOnB,gEAAgE;IAChE,OAAO,CAAC,mBAAmB;IAI3B,sEAAsE;IACtE,OAAO,CAAC,uBAAuB;IAM/B;;;;OAIG;IACH,oBAAoB,IAAI,IAAI;IAK5B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,gBAAgB;CAoCzB"}
@@ -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 synced across every attached client.
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; every
10
- * window keeps running in the background but only the ONE global active window's
11
- * output is streamed to clients' viewports and to the host terminal. Client
12
- * keystrokes go to the active window; the host terminal size is authoritative
13
- * and every window is sized to it.
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} so a
18
- * single-window workspace behaves identically to the old shared terminal.
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
- activeIndex = 0;
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.activeIndex = 0;
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 set changes — create,
61
- * close, switch, or rename. Lets the host render its own tab bar in-process
62
- * (the analogue of the {@link Viewport.onWindowState} push sent to clients).
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 ACTIVE window. */
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.activeIndex]?.write(data);
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 ACTIVE window (host's initial paint). */
93
+ /** Recent-output snapshot of the HOST's active window (host's initial paint). */
83
94
  getReplay() {
84
- return this.windows[this.activeIndex]?.getReplay() ?? new Uint8Array(0);
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. Returns the current active-window replay so the
100
- * caller can send it as the viewport's initial output. The caller should then
101
- * send the current {@link windowState} so the client's tab bar populates.
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 the ACTIVE window. */
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.activeIndex]?.write(data);
134
+ this.windows[this.viewportActive.get(sid) ?? 0]?.write(data);
121
135
  }
122
136
  /**
123
- * Repaint a SINGLE viewport with the ACTIVE window's screen (the same
124
- * clear + replay a window switch sends, scoped to one sid). The host stays
125
- * authoritative over the shell size, so when a remote viewer resizes we can't
126
- * resize the PTY under everyone else; instead we re-send the active window's
127
- * screen to that viewer so its locally-corrupted display is redrawn clean.
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.activeIndex];
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
- // --- window operations (WINDOW_CTL client->server) -----------------------
145
- /** Create a new window and switch to it. */
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
- if (this.windows.length >= this.maxWindows) {
150
- this.output.warn(`Window cap reached (${this.maxWindows}); ignoring new-window`);
229
+ const win = this.spawnAndAppend();
230
+ if (!win)
151
231
  return;
152
- }
153
- const win = this.spawnWindow();
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 global active window to `index` (no-op if out of range/current). */
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.activeIndex)
240
+ if (index < 0 || index >= this.windows.length || index === this.hostActiveIndex)
163
241
  return;
164
- this.setActive(index);
165
- this.broadcastWindowState();
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.activeIndex + 1) % this.windows.length);
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.activeIndex - 1 + this.windows.length) % this.windows.length);
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 the active index, and broadcasts. Closing
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 (the `msg` body of a window-state frame). */
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.activeIndex };
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
- * Tap the active window's output and fan it out to the host + every viewport.
222
- * Only the active window is tapped; background windows keep running silently.
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
- bindActiveOutput() {
225
- const active = this.windows[this.activeIndex];
226
- if (!active)
317
+ routeWindowOutput(win, chunk) {
318
+ if (this.exited)
227
319
  return;
228
- active.onHostData((chunk) => {
320
+ if (this.windows[this.hostActiveIndex] === win)
229
321
  this.hostDataCb?.(chunk);
230
- if (this.viewports.size === 0)
231
- return;
232
- const bytes = new Uint8Array(chunk);
233
- for (const v of this.viewports.values()) {
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 host + every viewport with a clear + the active window's replay. */
255
- repaintAll() {
256
- const active = this.windows[this.activeIndex];
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
- /** Notify the host + every attached client of the current window-state. */
272
- broadcastWindowState() {
273
- const state = this.windowState();
274
- this.hostWindowStateCb?.(state);
275
- if (this.viewports.size === 0)
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
- for (const v of this.viewports.values()) {
278
- try {
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
- if (wasActive) {
305
- // Re-home the active index onto a surviving neighbor and repaint everyone.
306
- this.activeIndex = Math.min(idx, this.windows.length - 1);
307
- this.bindActiveOutput();
308
- this.repaintAll();
309
- }
310
- else if (idx < this.activeIndex) {
311
- // A window before the active one vanished; keep pointing at the same window.
312
- this.activeIndex -= 1;
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.8.0",
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.8.0",
21
- "@thenewlabs/entangle-protocol": "^2.8.0",
22
- "@thenewlabs/entangle-utils": "^2.8.0",
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"