@av-pi-studio/server 0.0.67 → 0.0.69
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/.tsbuildinfo +1 -1
- package/dist/terminal/terminal-manager.d.ts +45 -6
- package/dist/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/terminal/terminal-manager.js +201 -12
- package/dist/terminal/terminal-manager.js.map +1 -1
- package/dist/terminal/terminal-rpc.d.ts.map +1 -1
- package/dist/terminal/terminal-rpc.js +29 -1
- package/dist/terminal/terminal-rpc.js.map +1 -1
- package/package.json +4 -4
|
@@ -4,10 +4,16 @@ import { type PtyBackend } from "./pty-backend.js";
|
|
|
4
4
|
* Workspace-scoped PTY terminal manager (features/terminals.md § Behavior, § PTY size ownership,
|
|
5
5
|
* § Output coalescing). PTYs are multiplexed over the binary terminal stream protocol by `slot`.
|
|
6
6
|
*
|
|
7
|
-
* Size ownership is **last-interacting-client-wins** and is a client concern
|
|
8
|
-
* resizes
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* Size ownership is **last-interacting-client-wins** and which client may claim is a client concern.
|
|
8
|
+
* The manager resizes only when told to explicitly, never as a side effect of subscribe/attach, and
|
|
9
|
+
* never broadcasts resize ownership — a resized PTY simply redraws via normal Output, which every
|
|
10
|
+
* attached client renders in its own viewport. (`subscribe_terminal_request` in `terminal-rpc.ts`
|
|
11
|
+
* does resize before it calls `subscribe()`, using the size the attaching client sent; that is the
|
|
12
|
+
* handler's decision, not something this class does on its own.)
|
|
13
|
+
*
|
|
14
|
+
* Every requested size is validated here — see `isValidGrid`. This is the single choke point every
|
|
15
|
+
* path funnels through (create, binary Resize frame, subscribe payload), and a client is not a
|
|
16
|
+
* trusted source of dimensions.
|
|
11
17
|
*/
|
|
12
18
|
/** A subscriber sink receives fully-encoded binary terminal frames. */
|
|
13
19
|
export type TerminalFrameSink = (frame: Uint8Array) => void;
|
|
@@ -45,6 +51,22 @@ export interface TerminalManagerOptions {
|
|
|
45
51
|
/** Operational logger: terminal opened/killed/exited (info), spawn failures (error). */
|
|
46
52
|
logger?: Logger;
|
|
47
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Whether a client-supplied grid may be applied to a real PTY. Rejects rather than clamps: a clamp
|
|
56
|
+
* silently invents a size neither side asked for, and the client's own belief would then disagree
|
|
57
|
+
* with the PTY forever. A rejected resize is visible (`resize()` returns `false`) and the client's
|
|
58
|
+
* next genuine change still reports.
|
|
59
|
+
*
|
|
60
|
+
* Takes the pair as one object so it narrows both fields for the caller — the values arrive from the
|
|
61
|
+
* wire as `unknown`/possibly-`NaN` numbers, and no caller should have to assert them afterwards.
|
|
62
|
+
*/
|
|
63
|
+
export declare function isValidGrid(grid: {
|
|
64
|
+
cols?: unknown;
|
|
65
|
+
rows?: unknown;
|
|
66
|
+
} | undefined): grid is {
|
|
67
|
+
cols: number;
|
|
68
|
+
rows: number;
|
|
69
|
+
};
|
|
48
70
|
export declare class TerminalManager {
|
|
49
71
|
private readonly backend;
|
|
50
72
|
private readonly coalesceMs;
|
|
@@ -76,8 +98,13 @@ export declare class TerminalManager {
|
|
|
76
98
|
/** Forward input bytes to the PTY. */
|
|
77
99
|
input(slot: number, bytes: Uint8Array): boolean;
|
|
78
100
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
101
|
+
* Apply a client-requested size. Returns `false` and does nothing for an unknown/closed slot or an
|
|
102
|
+
* invalid grid — the binary `Resize` frame path reaches this with whatever bytes were on the wire,
|
|
103
|
+
* so this is where a hostile or malformed size is stopped rather than handed to a real PTY.
|
|
104
|
+
*
|
|
105
|
+
* The PTY and screen model are updated **before** `entry`, so a throw from either leaves the entry
|
|
106
|
+
* describing the size the terminal actually has instead of one that was only requested — `entry` is
|
|
107
|
+
* what `list()`/the subscribe echo report, and a lying entry propagates to every client.
|
|
81
108
|
*/
|
|
82
109
|
resize(slot: number, cols: number, rows: number): boolean;
|
|
83
110
|
/** One-shot current screen text (for CLI/MCP capture). Does not subscribe. Screen-accurate. */
|
|
@@ -93,4 +120,16 @@ export declare class TerminalManager {
|
|
|
93
120
|
private flush;
|
|
94
121
|
private onExit;
|
|
95
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Index of the first byte in `buffer` at or after `from` that can safely start a replay — i.e.
|
|
125
|
+
* not inside an incomplete escape/CSI/OSC/DCS/SOS/PM/APC sequence and not a UTF-8 continuation
|
|
126
|
+
* byte split off from its lead byte. Parses from the start of `buffer`, not from `from`, because
|
|
127
|
+
* whether `from` lands inside a sequence depends on where that sequence began, which may be
|
|
128
|
+
* before `from` — the exact case a raw byte-offset cut produces.
|
|
129
|
+
*
|
|
130
|
+
* Bounded: if the sequence straddling `from` never terminates before `buffer.length`, drops to
|
|
131
|
+
* `buffer.length` (nothing left of that unterminated tail is safe to replay) rather than scanning
|
|
132
|
+
* past the buffer or emitting a partial sequence.
|
|
133
|
+
*/
|
|
134
|
+
export declare function safeReplayStart(buffer: Uint8Array, from: number): number;
|
|
96
135
|
//# sourceMappingURL=terminal-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-manager.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,kBAAkB,CAAC;AAG1B
|
|
1
|
+
{"version":3,"file":"terminal-manager.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
import { encodeTerminalFrame, nextFreeSlot, SLOT_SPACE } from "@av-pi-studio/protocol";
|
|
2
2
|
import { createDefaultPtyBackend, resolveExecutable, } from "./pty-backend.js";
|
|
3
3
|
import { ScreenBuffer } from "./screen-buffer.js";
|
|
4
|
+
/**
|
|
5
|
+
* Grid bounds for any client-supplied size (`terminals.md` § PTY size ownership: "the daemon MUST
|
|
6
|
+
* validate every requested size, whatever path it arrives on").
|
|
7
|
+
*
|
|
8
|
+
* The floor is `ScreenBuffer`'s own minimum. The ceiling is far past any real display — a 5120px
|
|
9
|
+
* ultrawide at a 6px cell is ~850 columns — and exists to bound what one frame can make the headless
|
|
10
|
+
* grid allocate: cells scale with `cols * rows`, so an unchecked `1e9` is an instant OOM.
|
|
11
|
+
*/
|
|
12
|
+
const MIN_GRID_COLS = 2;
|
|
13
|
+
const MIN_GRID_ROWS = 1;
|
|
14
|
+
const MAX_GRID_COLS = 1000;
|
|
15
|
+
const MAX_GRID_ROWS = 1000;
|
|
16
|
+
/**
|
|
17
|
+
* Whether a client-supplied grid may be applied to a real PTY. Rejects rather than clamps: a clamp
|
|
18
|
+
* silently invents a size neither side asked for, and the client's own belief would then disagree
|
|
19
|
+
* with the PTY forever. A rejected resize is visible (`resize()` returns `false`) and the client's
|
|
20
|
+
* next genuine change still reports.
|
|
21
|
+
*
|
|
22
|
+
* Takes the pair as one object so it narrows both fields for the caller — the values arrive from the
|
|
23
|
+
* wire as `unknown`/possibly-`NaN` numbers, and no caller should have to assert them afterwards.
|
|
24
|
+
*/
|
|
25
|
+
export function isValidGrid(grid) {
|
|
26
|
+
if (grid === undefined)
|
|
27
|
+
return false;
|
|
28
|
+
const { cols, rows } = grid;
|
|
29
|
+
return (typeof cols === "number" &&
|
|
30
|
+
Number.isInteger(cols) &&
|
|
31
|
+
cols >= MIN_GRID_COLS &&
|
|
32
|
+
cols <= MAX_GRID_COLS &&
|
|
33
|
+
typeof rows === "number" &&
|
|
34
|
+
Number.isInteger(rows) &&
|
|
35
|
+
rows >= MIN_GRID_ROWS &&
|
|
36
|
+
rows <= MAX_GRID_ROWS);
|
|
37
|
+
}
|
|
4
38
|
export class TerminalManager {
|
|
5
39
|
backend;
|
|
6
40
|
coalesceMs;
|
|
@@ -37,8 +71,10 @@ export class TerminalManager {
|
|
|
37
71
|
if (slot === null)
|
|
38
72
|
throw new Error("no free terminal slot (256 terminals already open)");
|
|
39
73
|
this.slotCursor = (slot + 1) % SLOT_SPACE;
|
|
40
|
-
|
|
41
|
-
|
|
74
|
+
// An invalid client-supplied grid falls back to the 80×24 default rather than failing the spawn:
|
|
75
|
+
// the caller merely loses its size claim, and its first real measurement will reconcile. The
|
|
76
|
+
// response echoes what the PTY actually got, so the client never believes the size it asked for.
|
|
77
|
+
const { cols, rows } = isValidGrid(options) ? options : { cols: 80, rows: 24 };
|
|
42
78
|
const shell = options.shell ?? this.defaultShell;
|
|
43
79
|
let pty;
|
|
44
80
|
try {
|
|
@@ -85,7 +121,7 @@ export class TerminalManager {
|
|
|
85
121
|
entry,
|
|
86
122
|
pty,
|
|
87
123
|
subscribers: new Set(),
|
|
88
|
-
screen: new
|
|
124
|
+
screen: new SnapshotRing(this.snapshotBytes),
|
|
89
125
|
screenModel: new ScreenBuffer(cols, rows),
|
|
90
126
|
pending: [],
|
|
91
127
|
flushTimer: null,
|
|
@@ -104,7 +140,7 @@ export class TerminalManager {
|
|
|
104
140
|
if (!managed)
|
|
105
141
|
throw new Error(`no terminal in slot ${slot}`);
|
|
106
142
|
// Snapshot first (rebuilds screen state), then live output.
|
|
107
|
-
sink(encodeTerminalFrame({ opcode: "Snapshot", slot, data: managed.screen.
|
|
143
|
+
sink(encodeTerminalFrame({ opcode: "Snapshot", slot, data: managed.screen.bytes() }));
|
|
108
144
|
managed.subscribers.add(sink);
|
|
109
145
|
return () => {
|
|
110
146
|
managed.subscribers.delete(sink);
|
|
@@ -126,17 +162,26 @@ export class TerminalManager {
|
|
|
126
162
|
return true;
|
|
127
163
|
}
|
|
128
164
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
165
|
+
* Apply a client-requested size. Returns `false` and does nothing for an unknown/closed slot or an
|
|
166
|
+
* invalid grid — the binary `Resize` frame path reaches this with whatever bytes were on the wire,
|
|
167
|
+
* so this is where a hostile or malformed size is stopped rather than handed to a real PTY.
|
|
168
|
+
*
|
|
169
|
+
* The PTY and screen model are updated **before** `entry`, so a throw from either leaves the entry
|
|
170
|
+
* describing the size the terminal actually has instead of one that was only requested — `entry` is
|
|
171
|
+
* what `list()`/the subscribe echo report, and a lying entry propagates to every client.
|
|
131
172
|
*/
|
|
132
173
|
resize(slot, cols, rows) {
|
|
133
174
|
const managed = this.terminals.get(slot);
|
|
134
175
|
if (!managed || managed.entry.closed)
|
|
135
176
|
return false;
|
|
136
|
-
|
|
137
|
-
|
|
177
|
+
if (!isValidGrid({ cols, rows }))
|
|
178
|
+
return false;
|
|
179
|
+
if (managed.entry.cols === cols && managed.entry.rows === rows)
|
|
180
|
+
return true;
|
|
138
181
|
managed.pty.resize(cols, rows);
|
|
139
182
|
managed.screenModel.resize(cols, rows);
|
|
183
|
+
managed.entry.cols = cols;
|
|
184
|
+
managed.entry.rows = rows;
|
|
140
185
|
return true;
|
|
141
186
|
}
|
|
142
187
|
/** One-shot current screen text (for CLI/MCP capture). Does not subscribe. Screen-accurate. */
|
|
@@ -168,7 +213,7 @@ export class TerminalManager {
|
|
|
168
213
|
// ─── Internals ───────────────────────────────────────────────────────────
|
|
169
214
|
onOutput(managed, data) {
|
|
170
215
|
// Append to the transient screen snapshot (bounded ring) for binary client replay.
|
|
171
|
-
managed.screen
|
|
216
|
+
managed.screen.append(data);
|
|
172
217
|
// Feed the headless grid for screen-accurate text capture.
|
|
173
218
|
managed.screenModel.write(data);
|
|
174
219
|
// Coalesce before broadcast.
|
|
@@ -203,9 +248,153 @@ export class TerminalManager {
|
|
|
203
248
|
managed.subscribers.clear();
|
|
204
249
|
}
|
|
205
250
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
251
|
+
/**
|
|
252
|
+
* Escape-safe trim: cutting the retained ring at a raw byte offset frequently lands
|
|
253
|
+
* mid-escape-sequence (`terminals.md` § Restore / snapshot, tier 1). The bytes after such a cut are
|
|
254
|
+
* the sequence's tail — parameter digits, an SGR/cursor final byte, an OSC payload — which the
|
|
255
|
+
* emulator on replay consumes as garbage input instead of the printable text it actually is,
|
|
256
|
+
* corrupting everything after it. `safeReplayStart` finds the nearest safe boundary at or after the
|
|
257
|
+
* naive cut instead; `SnapshotRing.compact` is its only caller.
|
|
258
|
+
*/
|
|
259
|
+
const ESC = 0x1b;
|
|
260
|
+
const BEL = 0x07;
|
|
261
|
+
function isCsiFinalByte(byte) {
|
|
262
|
+
return byte >= 0x40 && byte <= 0x7e;
|
|
263
|
+
}
|
|
264
|
+
function isUtf8ContinuationByte(byte) {
|
|
265
|
+
return byte >= 0x80 && byte <= 0xbf;
|
|
266
|
+
}
|
|
267
|
+
/** DCS (`P`), SOS (`X`), PM (`^`), APC (`_`) — all string-typed, all terminated by ST (`ESC \`). */
|
|
268
|
+
function startsStringSequence(byte) {
|
|
269
|
+
return byte === 0x50 || byte === 0x58 || byte === 0x5e || byte === 0x5f;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Index of the first byte in `buffer` at or after `from` that can safely start a replay — i.e.
|
|
273
|
+
* not inside an incomplete escape/CSI/OSC/DCS/SOS/PM/APC sequence and not a UTF-8 continuation
|
|
274
|
+
* byte split off from its lead byte. Parses from the start of `buffer`, not from `from`, because
|
|
275
|
+
* whether `from` lands inside a sequence depends on where that sequence began, which may be
|
|
276
|
+
* before `from` — the exact case a raw byte-offset cut produces.
|
|
277
|
+
*
|
|
278
|
+
* Bounded: if the sequence straddling `from` never terminates before `buffer.length`, drops to
|
|
279
|
+
* `buffer.length` (nothing left of that unterminated tail is safe to replay) rather than scanning
|
|
280
|
+
* past the buffer or emitting a partial sequence.
|
|
281
|
+
*/
|
|
282
|
+
export function safeReplayStart(buffer, from) {
|
|
283
|
+
if (from <= 0)
|
|
284
|
+
return 0;
|
|
285
|
+
if (from >= buffer.length)
|
|
286
|
+
return buffer.length;
|
|
287
|
+
let state = "normal";
|
|
288
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
289
|
+
if (state === "normal" && i >= from && !isUtf8ContinuationByte(buffer[i]))
|
|
290
|
+
return i;
|
|
291
|
+
const byte = buffer[i];
|
|
292
|
+
switch (state) {
|
|
293
|
+
case "normal":
|
|
294
|
+
if (byte === ESC)
|
|
295
|
+
state = "esc";
|
|
296
|
+
break;
|
|
297
|
+
case "esc":
|
|
298
|
+
if (byte === 0x5b /* [ */)
|
|
299
|
+
state = "csi";
|
|
300
|
+
else if (byte === 0x5d /* ] */)
|
|
301
|
+
state = "osc";
|
|
302
|
+
else if (startsStringSequence(byte))
|
|
303
|
+
state = "string";
|
|
304
|
+
else
|
|
305
|
+
state = "normal"; // two-byte ESC form: this byte was its own terminator
|
|
306
|
+
break;
|
|
307
|
+
case "csi":
|
|
308
|
+
if (isCsiFinalByte(byte))
|
|
309
|
+
state = "normal";
|
|
310
|
+
break;
|
|
311
|
+
case "osc":
|
|
312
|
+
if (byte === BEL)
|
|
313
|
+
state = "normal";
|
|
314
|
+
else if (byte === ESC)
|
|
315
|
+
state = "osc-esc";
|
|
316
|
+
break;
|
|
317
|
+
case "osc-esc":
|
|
318
|
+
if (byte === 0x5c /* \ */)
|
|
319
|
+
state = "normal";
|
|
320
|
+
else if (byte !== ESC)
|
|
321
|
+
state = "osc";
|
|
322
|
+
break;
|
|
323
|
+
case "string":
|
|
324
|
+
if (byte === ESC)
|
|
325
|
+
state = "string-esc";
|
|
326
|
+
break;
|
|
327
|
+
case "string-esc":
|
|
328
|
+
if (byte === 0x5c)
|
|
329
|
+
state = "normal";
|
|
330
|
+
else if (byte !== ESC)
|
|
331
|
+
state = "string";
|
|
332
|
+
break;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
// Ran off the end still inside an unterminated sequence (or a run of continuation bytes with no
|
|
336
|
+
// following lead byte) — nothing from `from` onward is a safe start.
|
|
337
|
+
return buffer.length;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Fraction of the cap the ring keeps when it compacts. The reclaimed headroom (the remaining
|
|
341
|
+
* quarter) is what makes both costs below amortized rather than per-chunk.
|
|
342
|
+
*/
|
|
343
|
+
const RING_LOW_WATER = 0.75;
|
|
344
|
+
/**
|
|
345
|
+
* Bounded, contiguous byte ring holding the transient replay snapshot for one terminal.
|
|
346
|
+
*
|
|
347
|
+
* This sits on the daemon's hottest path — every byte of every terminal passes through `append` —
|
|
348
|
+
* so the two O(ring) costs are deliberately amortized. The naive version rebuilt the whole buffer
|
|
349
|
+
* per chunk (`concat`) *and* re-ran the escape-safe scan per chunk once full, which on a build
|
|
350
|
+
* spewing megabytes meant tens of thousands of full-ring copies and scans.
|
|
351
|
+
*
|
|
352
|
+
* - **Append is O(chunk).** Bytes are memcpy'd into spare capacity behind a write cursor; nothing
|
|
353
|
+
* else moves. Only when the cap would be exceeded does a compaction run.
|
|
354
|
+
* - **Compaction is O(ring) but rare.** It reclaims down to `RING_LOW_WATER`, so the next one is a
|
|
355
|
+
* whole quarter-cap of output away instead of one chunk away.
|
|
356
|
+
*
|
|
357
|
+
* The bytes stay contiguous because `safeReplayStart` must parse from the start of the retained
|
|
358
|
+
* region — whether an offset sits mid-sequence depends on where that sequence began, which a
|
|
359
|
+
* chunk-list representation could not answer without flattening first.
|
|
360
|
+
*/
|
|
361
|
+
class SnapshotRing {
|
|
362
|
+
max;
|
|
363
|
+
buf;
|
|
364
|
+
lowWater;
|
|
365
|
+
len = 0;
|
|
366
|
+
constructor(max) {
|
|
367
|
+
this.max = max;
|
|
368
|
+
this.buf = new Uint8Array(max);
|
|
369
|
+
// `max` can be tiny in tests; never let the target reclaim the entire ring.
|
|
370
|
+
this.lowWater = Math.max(1, Math.floor(max * RING_LOW_WATER));
|
|
371
|
+
}
|
|
372
|
+
/** The retained bytes. A view, not a copy — `encodeTerminalFrame` copies into the frame it builds. */
|
|
373
|
+
bytes() {
|
|
374
|
+
return this.buf.subarray(0, this.len);
|
|
375
|
+
}
|
|
376
|
+
append(data) {
|
|
377
|
+
// A single chunk at least as large as the whole ring replaces it outright: everything currently
|
|
378
|
+
// retained is older than bytes we are about to drop anyway.
|
|
379
|
+
if (data.length >= this.max) {
|
|
380
|
+
const start = safeReplayStart(data, data.length - this.lowWater);
|
|
381
|
+
this.len = data.length - start;
|
|
382
|
+
this.buf.set(data.subarray(start), 0);
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
if (this.len + data.length > this.max) {
|
|
386
|
+
// Drop enough that the post-append length lands on the low-water mark.
|
|
387
|
+
this.compact(this.len + data.length - this.lowWater);
|
|
388
|
+
}
|
|
389
|
+
this.buf.set(data, this.len);
|
|
390
|
+
this.len += data.length;
|
|
391
|
+
}
|
|
392
|
+
/** Discard the oldest `drop` bytes, rounded forward to the next escape-safe boundary. */
|
|
393
|
+
compact(drop) {
|
|
394
|
+
const start = safeReplayStart(this.bytes(), drop);
|
|
395
|
+
this.buf.copyWithin(0, start, this.len);
|
|
396
|
+
this.len -= start;
|
|
397
|
+
}
|
|
209
398
|
}
|
|
210
399
|
function concat(parts) {
|
|
211
400
|
const total = parts.reduce((n, p) => n + p.length, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-manager.js","sourceRoot":"","sources":["../../src/terminal/terminal-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal-manager.js","sourceRoot":"","sources":["../../src/terminal/terminal-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-rpc.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal-rpc.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,0EAA0E;IAC1E,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wFAAwF;IACxF,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,eAAe,EACrB,iBAAiB,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,GACzC,IAAI,
|
|
1
|
+
{"version":3,"file":"terminal-rpc.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal-rpc.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,0EAA0E;IAC1E,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wFAAwF;IACxF,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,eAAe,EACrB,iBAAiB,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,GACzC,IAAI,CAkJN;AAED,2FAA2F;AAC3F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAOjF"}
|
|
@@ -46,9 +46,37 @@ export function registerTerminalHandlers(registry, deps, getActiveSessions) {
|
|
|
46
46
|
const restoreMode = deps.restoreModesEnabled && clientReflowable ? (requestedMode ?? "basic") : "basic";
|
|
47
47
|
streamUnsubs.get(key(session, slot))?.(); // replace existing subscription
|
|
48
48
|
try {
|
|
49
|
+
// Resize BEFORE subscribing, using the grid the attaching client sent (if any).
|
|
50
|
+
//
|
|
51
|
+
// The basic Snapshot is a raw byte ring, so it reproduces the wrapping and absolute cursor
|
|
52
|
+
// positioning of whatever width the PTY had when those bytes were written (`terminals.md`
|
|
53
|
+
// § Restore / snapshot: "replaying at a different width is approximate by construction").
|
|
54
|
+
// For a full-screen app that paints by absolute position — htop, vim — replaying an 80-column
|
|
55
|
+
// stream into a 190-column emulator is not approximate, it is scrambled.
|
|
56
|
+
//
|
|
57
|
+
// A client-side resize after attaching cannot fix this: `subscribe` emits the snapshot
|
|
58
|
+
// synchronously below, long before any client Resize frame could arrive, so the mangled bytes
|
|
59
|
+
// are already on the wire. Resizing first means the PTY sees SIGWINCH and the app repaints at
|
|
60
|
+
// the right width, and that repaint arrives as live Output right behind the snapshot — which
|
|
61
|
+
// is exactly why manually dragging the pane "fixed" it before.
|
|
62
|
+
//
|
|
63
|
+
// Validation and the same-size no-op both live in `manager.resize` — the one choke point every
|
|
64
|
+
// size path funnels through — so this passes the raw values straight through rather than
|
|
65
|
+
// growing a second, drifting copy of those rules here.
|
|
66
|
+
manager.resize(slot, Number(ctx.message.cols), Number(ctx.message.rows));
|
|
49
67
|
const unsub = manager.subscribe(slot, (frame) => session.sendBinary(frame));
|
|
50
68
|
streamUnsubs.set(key(session, slot), unsub);
|
|
51
|
-
|
|
69
|
+
// Echo the PTY's real size so the client can seed its belief instead of guessing. Without
|
|
70
|
+
// this a reattaching client cannot know what it is attaching to, and has to send a blind
|
|
71
|
+
// reconcile that is either redundant or, worse, indistinguishable from a stale claim.
|
|
72
|
+
const entry = manager.get(slot);
|
|
73
|
+
return {
|
|
74
|
+
type: "subscribe_terminal_response",
|
|
75
|
+
slot,
|
|
76
|
+
ok: true,
|
|
77
|
+
restoreMode,
|
|
78
|
+
...(entry ? { cols: entry.cols, rows: entry.rows } : {}),
|
|
79
|
+
};
|
|
52
80
|
}
|
|
53
81
|
catch {
|
|
54
82
|
return { type: "subscribe_terminal_response", slot, ok: false, error: "no_such_terminal" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-rpc.js","sourceRoot":"","sources":["../../src/terminal/terminal-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAoBhE,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,IAAqB,EACrB,iBAA0C;IAE1C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,4CAA4C;IAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;IACnD,MAAM,GAAG,GAAG,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;IAExE,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE;KAC1B,CAAC,CAAC,CAAC;IAEJ,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,8BAA8B;QACpC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE;KAC1B,CAAC,CAAC,CAAC;IACJ,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,gCAAgC;QACtC,EAAE,EAAE,IAAI;KACT,CAAC,CAAC,CAAC;IAEJ,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;YACnC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;YAClD,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAyB;YAC1C,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAA2B;YAC9C,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAA0B;YAC5C,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAA0B;YAC5C,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAA0B;SAC7C,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7F,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,EAAE;YACJ,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/F,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC,GAAG,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,gGAAgG;QAChG,+FAA+F;QAC/F,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,WAAiC,CAAC;QACpE,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;QAC1E,MAAM,WAAW,GACf,IAAI,CAAC,mBAAmB,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEtF,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gCAAgC;QAC1E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"terminal-rpc.js","sourceRoot":"","sources":["../../src/terminal/terminal-rpc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@av-pi-studio/server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.69",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
"clean": "rm -rf dist *.tsbuildinfo"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@av-pi-studio/highlight": "^0.0.
|
|
26
|
-
"@av-pi-studio/protocol": "^0.0.
|
|
27
|
-
"@av-pi-studio/relay": "^0.0.
|
|
25
|
+
"@av-pi-studio/highlight": "^0.0.69",
|
|
26
|
+
"@av-pi-studio/protocol": "^0.0.69",
|
|
27
|
+
"@av-pi-studio/relay": "^0.0.69",
|
|
28
28
|
"@earendil-works/pi-coding-agent": "^0.83.0",
|
|
29
29
|
"@xterm/headless": "^6.0.0",
|
|
30
30
|
"bcryptjs": "^3.0.3",
|