@thenewlabs/entangle-serve 2.14.0 → 2.15.1
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/agent.d.ts +2 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +7 -2
- package/dist/agent.js.map +1 -1
- package/dist/daemon-server.d.ts +7 -18
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +42 -7
- package/dist/daemon-server.js.map +1 -1
- package/dist/host-session.d.ts +7 -0
- package/dist/host-session.d.ts.map +1 -1
- package/dist/host-session.js.map +1 -1
- package/dist/host-terminal.js +25 -2
- package/dist/host-terminal.js.map +1 -1
- package/dist/ipc.d.ts +11 -1
- package/dist/ipc.d.ts.map +1 -1
- package/dist/ipc.js.map +1 -1
- package/dist/multi-session.d.ts +16 -2
- package/dist/multi-session.d.ts.map +1 -1
- package/dist/multi-session.js +92 -62
- package/dist/multi-session.js.map +1 -1
- package/dist/remote-host-session.d.ts +8 -0
- package/dist/remote-host-session.d.ts.map +1 -1
- package/dist/remote-host-session.js +12 -2
- package/dist/remote-host-session.js.map +1 -1
- package/dist/session.d.ts +3 -3
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +4 -4
- package/dist/session.js.map +1 -1
- package/dist/shared-workspace.d.ts +26 -0
- package/dist/shared-workspace.d.ts.map +1 -1
- package/dist/shared-workspace.js +94 -10
- package/dist/shared-workspace.js.map +1 -1
- package/package.json +3 -3
|
@@ -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,EACd,KAAK,YAAY,EAClB,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;IAG9B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
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,EACd,KAAK,YAAY,EAClB,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;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,MAAM,GAAG,SAAS,KACpB,eAAe,CAAC;AAErB,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;IAG9B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IASrB,YAAY,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC7C,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACjD;AAmcD,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,CA8If;AAGD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAa/D"}
|
package/dist/multi-session.js
CHANGED
|
@@ -56,12 +56,20 @@ async function sendEncrypted(session, frameType, message, sid) {
|
|
|
56
56
|
// Ordering matters: the 'opened' confirmation and the replay snapshot must be
|
|
57
57
|
// the first frames the client sees for this sid, so any live output produced
|
|
58
58
|
// during setup is buffered and flushed only after they are sent.
|
|
59
|
-
async function handleSharedAttach(session,
|
|
60
|
-
|
|
59
|
+
async function handleSharedAttach(session, message) {
|
|
60
|
+
// Multi-workspace selection: the workspace KEY and initial CWD ride the pty
|
|
61
|
+
// open's `exec` field — argv[0] is the key (a Locus tab id), `cwd` the tab's
|
|
62
|
+
// directory. Absent/empty argv → key undefined → the resolver's default
|
|
63
|
+
// workspace (back-compat with clients that send no key). argv beyond [0] is
|
|
64
|
+
// ignored here: in shared mode it is never executed as a command.
|
|
65
|
+
const exec = message.msg?.exec;
|
|
66
|
+
const key = exec?.argv && exec.argv.length > 0 ? exec.argv[0] : undefined;
|
|
67
|
+
const cwd = exec?.cwd;
|
|
68
|
+
const workspace = session.getWorkspace(key, cwd);
|
|
61
69
|
const sid = randomBytes(8).toString('base64url');
|
|
62
|
-
if (!session.
|
|
63
|
-
session.
|
|
64
|
-
session.
|
|
70
|
+
if (!session.viewerWorkspaces)
|
|
71
|
+
session.viewerWorkspaces = new Map();
|
|
72
|
+
session.viewerWorkspaces.set(sid, workspace);
|
|
65
73
|
let live = false;
|
|
66
74
|
const pending = [];
|
|
67
75
|
const { replay } = workspace.attachViewport({
|
|
@@ -74,10 +82,10 @@ async function handleSharedAttach(session, _message) {
|
|
|
74
82
|
void sendStreamData(session, sid, chunk, 'stdout');
|
|
75
83
|
},
|
|
76
84
|
onExit: (code, signal) => {
|
|
77
|
-
session.
|
|
85
|
+
session.viewerWorkspaces?.delete(sid);
|
|
78
86
|
void sendStreamExit(session, sid, code, signal);
|
|
79
87
|
},
|
|
80
|
-
onWindowState: (state) => { void sendWindowState(session, state); },
|
|
88
|
+
onWindowState: (state) => { void sendWindowState(session, sid, state); },
|
|
81
89
|
});
|
|
82
90
|
// Confirm the open with the agent-assigned sid (first frame for this sid).
|
|
83
91
|
const openedMsg = {
|
|
@@ -96,23 +104,26 @@ async function handleSharedAttach(session, _message) {
|
|
|
96
104
|
}
|
|
97
105
|
// Populate the client's tab bar with THIS viewport's own window state (its
|
|
98
106
|
// active index), not the host's global view.
|
|
99
|
-
await sendWindowState(session, workspace.windowStateForViewport(sid));
|
|
107
|
+
await sendWindowState(session, sid, workspace.windowStateForViewport(sid));
|
|
100
108
|
}
|
|
101
|
-
//
|
|
102
|
-
// A session's `
|
|
103
|
-
// in handleSharedAttach), so the first one is the pty viewport.
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
// Fallback viewport sid for a window op that carried no explicit `sid` (a legacy
|
|
110
|
+
// single-viewport client). A session's `viewerWorkspaces` holds only pty-viewport
|
|
111
|
+
// sids (added only in handleSharedAttach), so the first one is the pty viewport.
|
|
112
|
+
// Multi-viewport clients always send an explicit sid, so this fallback only ever
|
|
113
|
+
// fires for the single-viewport back-compat case.
|
|
114
|
+
function firstViewerSid(session) {
|
|
115
|
+
if (!session.viewerWorkspaces)
|
|
106
116
|
return undefined;
|
|
107
|
-
for (const sid of session.
|
|
117
|
+
for (const sid of session.viewerWorkspaces.keys())
|
|
108
118
|
return sid;
|
|
109
119
|
return undefined;
|
|
110
120
|
}
|
|
111
121
|
// Handle stream open request
|
|
112
122
|
async function handleStreamOpen(session, message) {
|
|
113
|
-
// In shared-workspace mode a PTY open binds a viewport to
|
|
114
|
-
// 'cmd' open still spawns normally so one-off
|
|
115
|
-
|
|
123
|
+
// In shared-workspace mode a PTY open binds a viewport to a workspace (the
|
|
124
|
+
// resolver picks which); a 'cmd' open still spawns normally so one-off
|
|
125
|
+
// `connect <url> ls` keeps working.
|
|
126
|
+
if (session.getWorkspace && message.msg?.mode === 'pty') {
|
|
116
127
|
await handleSharedAttach(session, message);
|
|
117
128
|
return;
|
|
118
129
|
}
|
|
@@ -188,9 +199,11 @@ async function handleStreamOpen(session, message) {
|
|
|
188
199
|
}
|
|
189
200
|
// Handle stream data (stdin)
|
|
190
201
|
async function handleStreamData(session, message) {
|
|
191
|
-
// Collaborative input: a viewport's keystrokes merge into
|
|
192
|
-
|
|
193
|
-
|
|
202
|
+
// Collaborative input: a viewport's keystrokes merge into ITS workspace's
|
|
203
|
+
// active window.
|
|
204
|
+
const inputWs = session.viewerWorkspaces?.get(message.msg.sid);
|
|
205
|
+
if (inputWs) {
|
|
206
|
+
inputWs.writeFromViewport(message.msg.sid, message.msg.chunk);
|
|
194
207
|
return;
|
|
195
208
|
}
|
|
196
209
|
if (!session.streamManager) {
|
|
@@ -218,13 +231,13 @@ async function handleStreamResize(session, message) {
|
|
|
218
231
|
// TTY, e.g. Locus): there the browser viewport IS the terminal, so its resize
|
|
219
232
|
// reshapes the whole workspace — otherwise every shell would stay at the
|
|
220
233
|
// 80×24 construction default forever.
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if (
|
|
224
|
-
|
|
234
|
+
const resizeWs = session.viewerWorkspaces?.get(message.msg.sid);
|
|
235
|
+
if (resizeWs) {
|
|
236
|
+
if (resizeWs.viewerResizeAuthoritative) {
|
|
237
|
+
resizeWs.resize(message.msg.cols, message.msg.rows);
|
|
225
238
|
}
|
|
226
239
|
else {
|
|
227
|
-
|
|
240
|
+
resizeWs.repaintViewportScreen(message.msg.sid);
|
|
228
241
|
}
|
|
229
242
|
return;
|
|
230
243
|
}
|
|
@@ -244,7 +257,7 @@ async function handleStreamSignal(session, message) {
|
|
|
244
257
|
// In the shared shell, control chars (e.g. Ctrl-C) arrive as raw data and are
|
|
245
258
|
// written through; explicit signal frames from a viewer are ignored so one
|
|
246
259
|
// participant can't kill the shell out from under the others.
|
|
247
|
-
if (session.
|
|
260
|
+
if (session.viewerWorkspaces?.has(message.msg.sid))
|
|
248
261
|
return;
|
|
249
262
|
if (!session.streamManager) {
|
|
250
263
|
await sendStreamError(session, message.msg.sid, 'No active streams');
|
|
@@ -259,11 +272,12 @@ async function handleStreamSignal(session, message) {
|
|
|
259
272
|
}
|
|
260
273
|
// Handle stream close
|
|
261
274
|
async function handleStreamClose(session, message) {
|
|
262
|
-
// A viewport leaving
|
|
263
|
-
//
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
session.
|
|
275
|
+
// A viewport leaving its workspace just detaches — the windows keep running
|
|
276
|
+
// for everyone else.
|
|
277
|
+
const closeWs = session.viewerWorkspaces?.get(message.msg.sid);
|
|
278
|
+
if (closeWs) {
|
|
279
|
+
session.viewerWorkspaces.delete(message.msg.sid);
|
|
280
|
+
closeWs.detachViewport(message.msg.sid);
|
|
267
281
|
const closedMsg = {
|
|
268
282
|
ctr: 0,
|
|
269
283
|
msg: { v: 1, kind: 'closed', sid: message.msg.sid },
|
|
@@ -333,47 +347,50 @@ async function sendStreamError(session, sid, error) {
|
|
|
333
347
|
};
|
|
334
348
|
await sendEncrypted(session, FrameType.STREAM_ERROR, msg, sid);
|
|
335
349
|
}
|
|
336
|
-
// Send a window-state
|
|
337
|
-
//
|
|
338
|
-
//
|
|
339
|
-
|
|
350
|
+
// Send a window-state push for a specific viewport. WINDOW_CTL frames are not
|
|
351
|
+
// stream-scoped, so they ride the session GLOBAL counter (the same sequence
|
|
352
|
+
// AUTH_PW / ERROR use), not a per-stream counter. The viewport's pty `sid` is
|
|
353
|
+
// carried IN the message body (additive optional field) so a multi-viewport
|
|
354
|
+
// client can route the state to the owning stream handle; single-viewport
|
|
355
|
+
// clients ignore it.
|
|
356
|
+
async function sendWindowState(session, sid, state) {
|
|
340
357
|
const msg = {
|
|
341
358
|
ctr: session.counters.outgoing.next(),
|
|
342
|
-
msg: state,
|
|
359
|
+
msg: { ...state, sid },
|
|
343
360
|
};
|
|
344
361
|
await sendEncrypted(session, FrameType.WINDOW_CTL, msg);
|
|
345
362
|
}
|
|
346
|
-
// Handle a client->server window operation (WINDOW_CTL). Window ops drive
|
|
347
|
-
//
|
|
348
|
-
//
|
|
349
|
-
//
|
|
350
|
-
//
|
|
363
|
+
// Handle a client->server window operation (WINDOW_CTL). Window ops drive the
|
|
364
|
+
// active window of the TARGET viewport, so viewers/tabs can sit on different
|
|
365
|
+
// windows independently; the workspace pushes each affected viewport its own
|
|
366
|
+
// window-state and repaints. The op names its viewport via `op.sid` (additive
|
|
367
|
+
// field): with several pty viewports on one connection, "the first viewport" is
|
|
368
|
+
// no longer a valid assumption. A legacy op without a sid falls back to the
|
|
369
|
+
// session's first/only viewport. The workspace is resolved BY that sid, so an op
|
|
370
|
+
// always lands on the workspace the viewport is actually attached to.
|
|
351
371
|
async function handleWindowCtl(session, message) {
|
|
352
|
-
const
|
|
372
|
+
const op = message.msg;
|
|
373
|
+
const sid = op.sid ?? firstViewerSid(session);
|
|
374
|
+
if (!sid)
|
|
375
|
+
return;
|
|
376
|
+
const workspace = session.viewerWorkspaces?.get(sid);
|
|
353
377
|
if (!workspace)
|
|
354
378
|
return;
|
|
355
|
-
const sid = ptyViewportSid(session);
|
|
356
|
-
const op = message.msg;
|
|
357
379
|
switch (op.op) {
|
|
358
380
|
case 'new-window':
|
|
359
|
-
|
|
360
|
-
workspace.newWindowForViewport(sid);
|
|
381
|
+
workspace.newWindowForViewport(sid);
|
|
361
382
|
break;
|
|
362
383
|
case 'next-window':
|
|
363
|
-
|
|
364
|
-
workspace.nextWindowForViewport(sid);
|
|
384
|
+
workspace.nextWindowForViewport(sid);
|
|
365
385
|
break;
|
|
366
386
|
case 'prev-window':
|
|
367
|
-
|
|
368
|
-
workspace.prevWindowForViewport(sid);
|
|
387
|
+
workspace.prevWindowForViewport(sid);
|
|
369
388
|
break;
|
|
370
389
|
case 'select-window':
|
|
371
|
-
|
|
372
|
-
workspace.selectWindowForViewport(sid, op.index);
|
|
390
|
+
workspace.selectWindowForViewport(sid, op.index);
|
|
373
391
|
break;
|
|
374
392
|
case 'close-window':
|
|
375
|
-
|
|
376
|
-
workspace.closeWindowFromViewport(sid, op.index);
|
|
393
|
+
workspace.closeWindowFromViewport(sid, op.index);
|
|
377
394
|
break;
|
|
378
395
|
case 'rename-window':
|
|
379
396
|
workspace.renameWindow(op.index, op.title);
|
|
@@ -404,8 +421,16 @@ export async function handleMultiStreamFrame(session, frame) {
|
|
|
404
421
|
terminateSession(session, 'Malformed message envelope');
|
|
405
422
|
return;
|
|
406
423
|
}
|
|
407
|
-
//
|
|
408
|
-
|
|
424
|
+
// WINDOW_CTL and KEEPALIVE ride the SESSION GLOBAL counter, never a
|
|
425
|
+
// per-stream one — even though a WINDOW_CTL op now carries a `sid` (the
|
|
426
|
+
// target VIEWPORT for attribution, not a stream-counter selector). Keying the
|
|
427
|
+
// counter off `msg.sid` here would route these onto a per-stream sequence the
|
|
428
|
+
// client never uses and trip the replay defense. Only genuine STREAM_* frames
|
|
429
|
+
// (which carry the stream's own sid) use the per-stream counter.
|
|
430
|
+
const streamScoped = frame.type !== FrameType.WINDOW_CTL &&
|
|
431
|
+
frame.type !== FrameType.KEEPALIVE &&
|
|
432
|
+
message.msg && typeof message.msg.sid === 'string';
|
|
433
|
+
if (streamScoped) {
|
|
409
434
|
const sid = message.msg.sid;
|
|
410
435
|
const expectedCounter = session.streamCounters.getNext(sid, 'incoming');
|
|
411
436
|
if (message.ctr !== expectedCounter) {
|
|
@@ -415,7 +440,7 @@ export async function handleMultiStreamFrame(session, frame) {
|
|
|
415
440
|
session.streamCounters.increment(sid, 'incoming');
|
|
416
441
|
}
|
|
417
442
|
else {
|
|
418
|
-
// Non-stream messages use global counter
|
|
443
|
+
// Non-stream messages (incl. WINDOW_CTL / KEEPALIVE) use the global counter.
|
|
419
444
|
try {
|
|
420
445
|
session.counters.incoming.validate(message.ctr);
|
|
421
446
|
}
|
|
@@ -518,12 +543,17 @@ export async function handleMultiStreamFrame(session, frame) {
|
|
|
518
543
|
}
|
|
519
544
|
// Clean up session
|
|
520
545
|
export function cleanupMultiSession(session) {
|
|
521
|
-
// Detach this invoker's viewports from
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
546
|
+
// Detach this invoker's viewports from their workspaces without killing
|
|
547
|
+
// windows. Each viewport may belong to a DIFFERENT workspace (multi-workspace),
|
|
548
|
+
// so detach each on the workspace it actually attached to.
|
|
549
|
+
if (session.viewerWorkspaces) {
|
|
550
|
+
for (const [sid, ws] of session.viewerWorkspaces) {
|
|
551
|
+
try {
|
|
552
|
+
ws.detachViewport(sid);
|
|
553
|
+
}
|
|
554
|
+
catch { /* best effort */ }
|
|
525
555
|
}
|
|
526
|
-
session.
|
|
556
|
+
session.viewerWorkspaces.clear();
|
|
527
557
|
}
|
|
528
558
|
if (session.streamManager) {
|
|
529
559
|
session.streamManager.closeAllStreams('Session cleanup');
|
|
@@ -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":"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"}
|
|
@@ -33,6 +33,8 @@ export declare class RemoteHostSession implements HostSession {
|
|
|
33
33
|
private exited;
|
|
34
34
|
private closed;
|
|
35
35
|
private pendingExitCode;
|
|
36
|
+
/** Why the daemon said it was ending, from its `exit` frame (see exitReason). */
|
|
37
|
+
private reason;
|
|
36
38
|
constructor(socket: Socket, initial: {
|
|
37
39
|
cols: number;
|
|
38
40
|
rows: number;
|
|
@@ -70,6 +72,12 @@ export declare class RemoteHostSession implements HostSession {
|
|
|
70
72
|
getUrl(): string | null;
|
|
71
73
|
onUrl(cb: (url: string) => void): void;
|
|
72
74
|
onExit(cb: (code: number | null, signal: string | null) => void): void;
|
|
75
|
+
/**
|
|
76
|
+
* Why the session ended, as stated by the daemon's `exit` frame — or null
|
|
77
|
+
* when the socket simply dropped without one (an older daemon, or a daemon
|
|
78
|
+
* that died without shutting down cleanly), which is itself diagnostic.
|
|
79
|
+
*/
|
|
80
|
+
exitReason(): string | null;
|
|
73
81
|
/**
|
|
74
82
|
* Detach without ending the daemon session: tell the daemon to drop this
|
|
75
83
|
* client (it keeps running), end the socket, then run the local exit path so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-host-session.d.ts","sourceRoot":"","sources":["../src/remote-host-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAGhC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAIvC,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C,OAAO,CAAC,aAAa,CAAC,CAA+B;IACrD,OAAO,CAAC,SAAS,CAAC,CAAsB;IACxC,OAAO,CAAC,KAAK,CAAC,CAAyB;IACvC,OAAO,CAAC,KAAK,CAAC,CAAwB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAuD;IACtE,OAAO,CAAC,OAAO,CAAC,CAA8B;IAC9C,OAAO,CAAC,YAAY,CAAC,CAA4B;IAKjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAuB;
|
|
1
|
+
{"version":3,"file":"remote-host-session.d.ts","sourceRoot":"","sources":["../src/remote-host-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,8 @@ export class RemoteHostSession {
|
|
|
46
46
|
exited = false;
|
|
47
47
|
closed = false;
|
|
48
48
|
pendingExitCode = null;
|
|
49
|
+
/** Why the daemon said it was ending, from its `exit` frame (see exitReason). */
|
|
50
|
+
reason = null;
|
|
49
51
|
constructor(socket, initial) {
|
|
50
52
|
this.socket = socket;
|
|
51
53
|
createMessageReader(socket, (msg) => this.dispatch(msg), () => this.handleClose(null));
|
|
@@ -95,9 +97,11 @@ export class RemoteHostSession {
|
|
|
95
97
|
this.scrollbackCb?.(m.lines);
|
|
96
98
|
break;
|
|
97
99
|
case 'exit':
|
|
98
|
-
// Record the clean exit code
|
|
99
|
-
// then fire the exit path now.
|
|
100
|
+
// Record the clean exit code (and the daemon's stated reason) so a
|
|
101
|
+
// following socket 'close' reports it, then fire the exit path now.
|
|
100
102
|
this.pendingExitCode = m.code;
|
|
103
|
+
if (m.reason)
|
|
104
|
+
this.reason = m.reason;
|
|
101
105
|
this.fireExit(m.code, null);
|
|
102
106
|
break;
|
|
103
107
|
}
|
|
@@ -166,6 +170,12 @@ export class RemoteHostSession {
|
|
|
166
170
|
onUrl(cb) { this.urlCb = cb; }
|
|
167
171
|
// --- lifecycle -----------------------------------------------------------
|
|
168
172
|
onExit(cb) { this.exitCb = cb; }
|
|
173
|
+
/**
|
|
174
|
+
* Why the session ended, as stated by the daemon's `exit` frame — or null
|
|
175
|
+
* when the socket simply dropped without one (an older daemon, or a daemon
|
|
176
|
+
* that died without shutting down cleanly), which is itself diagnostic.
|
|
177
|
+
*/
|
|
178
|
+
exitReason() { return this.reason; }
|
|
169
179
|
/**
|
|
170
180
|
* Detach without ending the daemon session: tell the daemon to drop this
|
|
171
181
|
* client (it keeps running), end the socket, then run the local exit path so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-host-session.js","sourceRoot":"","sources":["../src/remote-host-session.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,YAAY,GAGb,MAAM,UAAU,CAAC;AAElB,qEAAqE;AACrE,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,oFAAoF;AACpF,MAAM,kBAAkB,GAAoB;IAC1C,CAAC,EAAE,CAAC;IACJ,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,iBAAiB;IACX,MAAM,CAAS;IAEhC,wEAAwE;IAChE,MAAM,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACvC,QAAQ,GAAoB,kBAAkB,CAAC;IAC/C,OAAO,GAAG,CAAC,CAAC;IACZ,GAAG,GAAkB,IAAI,CAAC;IACjB,MAAM,GAAa,EAAE,CAAC;IAEvC,mEAAmE;IACnE,4DAA4D;IACpD,UAAU,CAA2B;IACrC,aAAa,CAAgC;IAC7C,SAAS,CAAuB;IAChC,KAAK,CAA0B;IAC/B,KAAK,CAAyB;IAC9B,MAAM,CAAwD;IAC9D,OAAO,CAA+B;IACtC,YAAY,CAA6B;IAEjD,2EAA2E;IAC3E,8EAA8E;IAC9E,qCAAqC;IAC7B,MAAM,GAAG,KAAK,CAAC;IACf,MAAM,GAAG,KAAK,CAAC;IACf,eAAe,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"remote-host-session.js","sourceRoot":"","sources":["../src/remote-host-session.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,YAAY,GAGb,MAAM,UAAU,CAAC;AAElB,qEAAqE;AACrE,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,oFAAoF;AACpF,MAAM,kBAAkB,GAAoB;IAC1C,CAAC,EAAE,CAAC;IACJ,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,iBAAiB;IACX,MAAM,CAAS;IAEhC,wEAAwE;IAChE,MAAM,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACvC,QAAQ,GAAoB,kBAAkB,CAAC;IAC/C,OAAO,GAAG,CAAC,CAAC;IACZ,GAAG,GAAkB,IAAI,CAAC;IACjB,MAAM,GAAa,EAAE,CAAC;IAEvC,mEAAmE;IACnE,4DAA4D;IACpD,UAAU,CAA2B;IACrC,aAAa,CAAgC;IAC7C,SAAS,CAAuB;IAChC,KAAK,CAA0B;IAC/B,KAAK,CAAyB;IAC9B,MAAM,CAAwD;IAC9D,OAAO,CAA+B;IACtC,YAAY,CAA6B;IAEjD,2EAA2E;IAC3E,8EAA8E;IAC9E,qCAAqC;IAC7B,MAAM,GAAG,KAAK,CAAC;IACf,MAAM,GAAG,KAAK,CAAC;IACf,eAAe,GAAkB,IAAI,CAAC;IAC9C,iFAAiF;IACzE,MAAM,GAAkB,IAAI,CAAC;IAErC,YAAY,MAAc,EAAE,OAAuC;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,mBAAmB,CACjB,MAAM,EACN,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAC7B,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAkD,CAAC,CAAC,CAAC;QAE7E,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,4EAA4E;IAEpE,QAAQ,CAAC,GAAe;QAC9B,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,CAAC,GAAG,GAAqB,CAAC;QAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,KAAK,MAAM;gBACT,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,QAAQ;gBACX,yEAAyE;gBACzE,0EAA0E;gBAC1E,yEAAyE;gBACzE,0EAA0E;gBAC1E,yEAAyE;gBACzE,2CAA2C;gBAC3C,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,cAAc;gBACjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC;gBACxB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,MAAM;gBACT,mEAAmE;gBACnE,oEAAoE;gBACpE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC9B,IAAI,CAAC,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC5B,MAAM;QACV,CAAC;IACH,CAAC;IAED,oDAAoD;IAC5C,QAAQ,CAAC,IAAmB,EAAE,MAAqB;QACzD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,iFAAiF;IACzE,WAAW,CAAC,IAAmB;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAE5E,4EAA4E;IACpE,IAAI,CAAC,GAAe;QAC1B,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,UAAU,CAAC,EAA2B,IAAU,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,KAAK,CAAC,IAAyB;QAC7B,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,CAAC,IAAY,EAAE,IAAY,IAAU,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,+EAA+E;IAC/E,+EAA+E;IAC/E,SAAS,CAAC,KAA+B,IAAgB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,EAA+B,IAAU,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;IACrE,2EAA2E;IAC3E,sEAAsE;IACtE,YAAY,CAAC,IAA8B;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/G,CAAC;IACD,YAAY,CAAC,EAA6B,IAAU,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7E,6EAA6E;IAC7E,uEAAuE;IACvE,iBAAiB,KAAW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7D,4EAA4E;IAC5E,aAAa,CAAC,EAAgC,IAAU,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;IAClF,WAAW,KAAsB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,SAAS,KAAW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,UAAU,KAAW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,UAAU,KAAW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,CAAS,IAAU,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClF,WAAW,CAAC,CAAS,IAAU,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhF,4EAA4E;IAC5E,eAAe,CAAC,EAAuB,IAAU,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,WAAW,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9C,4EAA4E;IAC5E,KAAK,CAAC,EAA0B,IAAU,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5D,YAAY,KAAwB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzD,4EAA4E;IAC5E,MAAM,KAAoB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAyB,IAAU,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IAE3D,4EAA4E;IAC5E,MAAM,CAAC,EAAwD,IAAU,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAE5F;;;;OAIG;IACH,UAAU,KAAoB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD;;;;OAIG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,8EAA8E;IAC9E,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
package/dist/session.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import WebSocket from 'ws';
|
|
|
2
2
|
import { type DerivedKeys } from '@thenewlabs/entangle-crypto';
|
|
3
3
|
import { BidirectionalCounters, type PipeEndpoint } from '@thenewlabs/entangle-utils';
|
|
4
4
|
import type { CapabilityInfo } from './capability.js';
|
|
5
|
-
import type
|
|
5
|
+
import { type WorkspaceResolver } from './multi-session.js';
|
|
6
6
|
export interface Session {
|
|
7
7
|
socketId: string;
|
|
8
8
|
ws: WebSocket;
|
|
@@ -19,10 +19,10 @@ export interface Session {
|
|
|
19
19
|
nonceC?: string;
|
|
20
20
|
auth1Seen?: boolean;
|
|
21
21
|
pipeEndpoints?: Map<string, PipeEndpoint>;
|
|
22
|
-
|
|
22
|
+
getWorkspace?: WorkspaceResolver | undefined;
|
|
23
23
|
}
|
|
24
24
|
export declare function sendRelayResponse(session: Session, frame: Uint8Array): void;
|
|
25
|
-
export declare function handleInvokerConnection(agentWs: WebSocket, socketId: string, cap: CapabilityInfo, passwordHash?: string, pipeEndpoints?: Map<string, PipeEndpoint>,
|
|
25
|
+
export declare function handleInvokerConnection(agentWs: WebSocket, socketId: string, cap: CapabilityInfo, passwordHash?: string, pipeEndpoints?: Map<string, PipeEndpoint>, getWorkspace?: WorkspaceResolver): {
|
|
26
26
|
handleFrame: (data: Buffer) => Promise<void>;
|
|
27
27
|
cleanup: () => void;
|
|
28
28
|
};
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAO3B,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,qBAAqB,EAErB,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAO3B,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,qBAAqB,EAErB,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQzG,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAI1C,YAAY,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC9C;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAM3E;AAMD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,cAAc,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACzC,YAAY,CAAC,EAAE,iBAAiB,GAC/B;IAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAqCvE"}
|
package/dist/session.js
CHANGED
|
@@ -20,7 +20,7 @@ export function sendRelayResponse(session, frame) {
|
|
|
20
20
|
// before the next relay message is processed; an `await` here would defer that
|
|
21
21
|
// by a microtask and drop the AUTH1 that the client sends immediately after
|
|
22
22
|
// connecting (breaking concurrent sessions on the same capability).
|
|
23
|
-
export function handleInvokerConnection(agentWs, socketId, cap, passwordHash, pipeEndpoints,
|
|
23
|
+
export function handleInvokerConnection(agentWs, socketId, cap, passwordHash, pipeEndpoints, getWorkspace) {
|
|
24
24
|
const session = {
|
|
25
25
|
socketId,
|
|
26
26
|
ws: agentWs,
|
|
@@ -31,7 +31,7 @@ export function handleInvokerConnection(agentWs, socketId, cap, passwordHash, pi
|
|
|
31
31
|
requiresPassword: !!passwordHash,
|
|
32
32
|
passwordHash: passwordHash || undefined,
|
|
33
33
|
...(pipeEndpoints && { pipeEndpoints }),
|
|
34
|
-
|
|
34
|
+
getWorkspace,
|
|
35
35
|
};
|
|
36
36
|
const reader = new FrameReader();
|
|
37
37
|
const store = {};
|
|
@@ -93,8 +93,8 @@ async function handleFrame(session, store, frame) {
|
|
|
93
93
|
requiresPassword: session.requiresPassword,
|
|
94
94
|
passwordVerified: session.passwordVerified,
|
|
95
95
|
...(session.pipeEndpoints && { pipeEndpoints: session.pipeEndpoints }),
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
getWorkspace: session.getWorkspace,
|
|
97
|
+
viewerWorkspaces: new Map(),
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
100
|
// Keep dynamic gating fields fresh (password may be verified after streams open attempts)
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,GACV,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,OAAO,GAER,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,cAAc,GAEf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,14 @@ export declare class SharedWorkspace {
|
|
|
62
62
|
/** Per-viewport active window index, keyed by sid. Defaults to 0 on attach. */
|
|
63
63
|
private viewportActive;
|
|
64
64
|
private exited;
|
|
65
|
+
/** Set by {@link kill}; suppresses any pending/future persistent respawn. */
|
|
66
|
+
private killed;
|
|
67
|
+
/** Consecutive fast-fail respawns (reset once a shell survives RESPAWN_HEALTHY_MS). */
|
|
68
|
+
private respawnStreak;
|
|
69
|
+
/** Wall-clock of the last persistent respawn ATTEMPT (to measure shell lifetime). */
|
|
70
|
+
private lastRespawnSpawnAt;
|
|
71
|
+
/** Pending backoff timer for the next persistent respawn, if any. */
|
|
72
|
+
private respawnTimer?;
|
|
65
73
|
private readonly cwd?;
|
|
66
74
|
private readonly maxWindows;
|
|
67
75
|
private hostDataCb?;
|
|
@@ -254,6 +262,24 @@ export declare class SharedWorkspace {
|
|
|
254
262
|
* one that vanished).
|
|
255
263
|
*/
|
|
256
264
|
private rehomeAfterClose;
|
|
265
|
+
/**
|
|
266
|
+
* Bring a fresh shell back after the last window of a PERSISTENT workspace
|
|
267
|
+
* exits — WITHOUT ever tight-looping.
|
|
268
|
+
*
|
|
269
|
+
* A normal exit (the shell ran a real session, then the user typed `exit`)
|
|
270
|
+
* respawns immediately, exactly as before. But a shell that CANNOT stay up —
|
|
271
|
+
* an unusable cwd (the tab's directory deleted/renamed mid-session), a
|
|
272
|
+
* missing/misconfigured shell — exits the instant it starts. The previous
|
|
273
|
+
* unconditional synchronous respawn turned that into an unbounded tight loop:
|
|
274
|
+
* respawn → instant exit → respawn …, which pegs a core, churns PTYs + headless
|
|
275
|
+
* emulators, floods logs and eventually exhausts fds/PIDs — taking the whole
|
|
276
|
+
* daemon (and every attached client, local TTY included) down, i.e. the
|
|
277
|
+
* "durable" workspace ENDS after a while. So consecutive fast failures are
|
|
278
|
+
* backed off exponentially (capped); a shell that survives
|
|
279
|
+
* {@link RESPAWN_HEALTHY_MS} resets the streak to the immediate path. The
|
|
280
|
+
* workspace itself never ends — it keeps trying to bring a shell back.
|
|
281
|
+
*/
|
|
282
|
+
private respawnPersistentShell;
|
|
257
283
|
private handleWindowExit;
|
|
258
284
|
}
|
|
259
285
|
//# sourceMappingURL=shared-workspace.d.ts.map
|