@linkshell/host 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/host/src/direct.d.ts +32 -0
- package/dist/host/src/direct.js +144 -0
- package/dist/host/src/direct.js.map +1 -0
- package/dist/host/src/drivers/acp/connection.js +3 -0
- package/dist/host/src/drivers/acp/connection.js.map +1 -1
- package/dist/host/src/drivers/acp/driver.d.ts +10 -1
- package/dist/host/src/drivers/acp/driver.js +48 -0
- package/dist/host/src/drivers/acp/driver.js.map +1 -1
- package/dist/host/src/drivers/claude/transcript.d.ts +40 -13
- package/dist/host/src/drivers/claude/transcript.js +8 -0
- package/dist/host/src/drivers/claude/transcript.js.map +1 -1
- package/dist/host/src/drivers/codex/app-server.d.ts +4 -0
- package/dist/host/src/drivers/codex/app-server.js +28 -2
- package/dist/host/src/drivers/codex/app-server.js.map +1 -1
- package/dist/host/src/drivers/codex/driver.d.ts +2 -1
- package/dist/host/src/drivers/codex/driver.js +17 -4
- package/dist/host/src/drivers/codex/driver.js.map +1 -1
- package/dist/host/src/drivers/codex/mapper.d.ts +11 -1
- package/dist/host/src/drivers/codex/mapper.js +80 -0
- package/dist/host/src/drivers/codex/mapper.js.map +1 -1
- package/dist/host/src/drivers/codex/settings.d.ts +7 -2
- package/dist/host/src/drivers/codex/settings.js +21 -2
- package/dist/host/src/drivers/codex/settings.js.map +1 -1
- package/dist/host/src/drivers/types.d.ts +3 -1
- package/dist/host/src/host.d.ts +8 -1
- package/dist/host/src/host.js +14 -0
- package/dist/host/src/host.js.map +1 -1
- package/dist/host/src/hub.d.ts +3 -1
- package/dist/host/src/hub.js +25 -0
- package/dist/host/src/hub.js.map +1 -1
- package/dist/host/src/input-helper.d.ts +1 -0
- package/dist/host/src/input-helper.js +208 -0
- package/dist/host/src/input-helper.js.map +1 -0
- package/dist/host/src/input.d.ts +121 -0
- package/dist/host/src/input.js +159 -0
- package/dist/host/src/input.js.map +1 -0
- package/dist/host/src/ports.d.ts +11 -2
- package/dist/host/src/ports.js +45 -7
- package/dist/host/src/ports.js.map +1 -1
- package/dist/host/src/questions.d.ts +21 -0
- package/dist/host/src/questions.js +102 -0
- package/dist/host/src/questions.js.map +1 -0
- package/dist/host/src/rpc/server.js +11 -2
- package/dist/host/src/rpc/server.js.map +1 -1
- package/dist/host/src/screen-viewer.d.ts +1 -0
- package/dist/host/src/screen-viewer.js +783 -0
- package/dist/host/src/screen-viewer.js.map +1 -0
- package/dist/host/src/screen.d.ts +23 -0
- package/dist/host/src/screen.js +65 -69
- package/dist/host/src/screen.js.map +1 -1
- package/dist/host/src/terminals.d.ts +2 -2
- package/dist/host/tsconfig.tsbuildinfo +1 -1
- package/dist/wire/src/direct.d.ts +22 -0
- package/dist/wire/src/direct.js +37 -0
- package/dist/wire/src/direct.js.map +1 -0
- package/dist/wire/src/index.d.ts +1 -0
- package/dist/wire/src/index.js +1 -0
- package/dist/wire/src/index.js.map +1 -1
- package/dist/wire/src/model.d.ts +385 -104
- package/dist/wire/src/model.js +33 -0
- package/dist/wire/src/model.js.map +1 -1
- package/dist/wire/src/rpc.d.ts +3395 -1700
- package/dist/wire/src/rpc.js +27 -3
- package/dist/wire/src/rpc.js.map +1 -1
- package/dist/wire/src/updates.d.ts +804 -448
- package/dist/wire/src/updates.js +11 -1
- package/dist/wire/src/updates.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-viewer.js","sourceRoot":"","sources":["../../../src/screen-viewer.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,mEAAmE;AACnE,EAAE;AACF,4DAA4D;AAC5D,yEAAyE;AACzE,2CAA2C;AAC3C,6EAA6E;AAC7E,+EAA+E;AAC/E,2CAA2C;AAC3C,6FAA6F;AAE7F,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAC5B,uJAAuJ,IAAI,QAAQ,CAAC;AAEtK,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,IAAI,CAAC,qHAAqH,CAAC;IACjI,QAAQ,EAAE,IAAI,CAAC,6DAA6D,CAAC;IAC7E,KAAK,EAAE,IAAI,CAAC,oGAAoG,CAAC;IACjH,QAAQ,EAAE,IAAI,CAAC,iJAAiJ,CAAC;IACjK,GAAG,EAAE,IAAI,CAAC,0EAA0E,CAAC;IACrF,MAAM,EAAE,IAAI,CAAC,qHAAqH,CAAC;IACnI,MAAM,EAAE,IAAI,CAAC,oDAAoD,CAAC;IAClE,MAAM,EAAE,IAAI,CAAC,oDAAoD,CAAC;IAClE,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC;CACzC,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCvB,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkqBxB,CAAC;AAEF,MAAM,UAAU,UAAU;IACxB,OAAO;;;;SAIA,KAAK;;;;;;;;;;;;kEAYoD,KAAK,CAAC,QAAQ;+DACjB,KAAK,CAAC,GAAG;gEACR,KAAK,CAAC,MAAM;;;;;;;;;;;;;;;;;;6CAkB/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;UACxD,MAAM;eACD,CAAC;AAChB,CAAC"}
|
|
@@ -3,6 +3,26 @@ export interface Display {
|
|
|
3
3
|
index: number;
|
|
4
4
|
name: string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* How the picture is sent. `full` when it goes straight to the device; `low`
|
|
8
|
+
* when it is relayed by a gateway, which should carry messages rather than video.
|
|
9
|
+
*/
|
|
10
|
+
declare const PROFILES: {
|
|
11
|
+
readonly full: {
|
|
12
|
+
readonly fps: 20;
|
|
13
|
+
readonly width: 1600;
|
|
14
|
+
readonly bitrate: "3M";
|
|
15
|
+
readonly ceiling: "4M";
|
|
16
|
+
};
|
|
17
|
+
readonly low: {
|
|
18
|
+
readonly fps: 12;
|
|
19
|
+
readonly width: 1280;
|
|
20
|
+
readonly bitrate: "900k";
|
|
21
|
+
readonly ceiling: "1300k";
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export type ScreenProfile = keyof typeof PROFILES;
|
|
25
|
+
export declare function captureArgs(display: number, quality?: ScreenProfile): string[];
|
|
6
26
|
/** Splits an Annex-B stream at access-unit delimiters (NAL type 9) into whole frames. */
|
|
7
27
|
export declare class AccessUnitSplitter {
|
|
8
28
|
private buffer;
|
|
@@ -27,7 +47,9 @@ export declare class ScreenShare {
|
|
|
27
47
|
private readonly log;
|
|
28
48
|
private server?;
|
|
29
49
|
private token;
|
|
50
|
+
private displays;
|
|
30
51
|
private readonly captures;
|
|
52
|
+
private readonly controls;
|
|
31
53
|
constructor(log: (message: string) => void);
|
|
32
54
|
start(): Promise<{
|
|
33
55
|
port: number;
|
|
@@ -39,3 +61,4 @@ export declare class ScreenShare {
|
|
|
39
61
|
private stream;
|
|
40
62
|
stop(): void;
|
|
41
63
|
}
|
|
64
|
+
export {};
|
package/dist/host/src/screen.js
CHANGED
|
@@ -4,36 +4,49 @@ import { createServer } from "node:http";
|
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
5
|
import { WebSocketServer } from "ws";
|
|
6
6
|
import { RpcError } from "@linkshell/wire";
|
|
7
|
+
import { InputControl } from "./input.js";
|
|
8
|
+
import { viewerPage } from "./screen-viewer.js";
|
|
7
9
|
// Viewing the computer's screen from the phone. The host serves a small
|
|
8
10
|
// viewer page and an H.264 stream on a loopback port; the phone opens it
|
|
9
11
|
// through the same encrypted forwarder as port previews, so the video never
|
|
10
12
|
// leaves the end-to-end channel and needs no NAT traversal. A random token
|
|
11
13
|
// gates the port: other programs on this machine can't watch the screen
|
|
12
|
-
// without having Screen Recording permission themselves.
|
|
14
|
+
// without having Screen Recording permission themselves. The same socket
|
|
15
|
+
// carries the viewer's pointer and key events back (see `input.ts`).
|
|
13
16
|
const run = promisify(execFile);
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
/**
|
|
18
|
+
* How the picture is sent. `full` when it goes straight to the device; `low`
|
|
19
|
+
* when it is relayed by a gateway, which should carry messages rather than video.
|
|
20
|
+
*/
|
|
21
|
+
const PROFILES = {
|
|
22
|
+
full: { fps: 20, width: 1600, bitrate: "3M", ceiling: "4M" },
|
|
23
|
+
low: { fps: 12, width: 1280, bitrate: "900k", ceiling: "1300k" },
|
|
24
|
+
};
|
|
16
25
|
async function hasFfmpeg() {
|
|
17
26
|
return run("ffmpeg", ["-hide_banner", "-version"], { timeout: 5000 }).then(() => true, () => false);
|
|
18
27
|
}
|
|
19
28
|
/** macOS: AVFoundation's "Capture screen N" devices. */
|
|
20
29
|
async function listDisplays() {
|
|
21
30
|
if (process.platform !== "darwin")
|
|
22
|
-
return [{ index: 0, name: "屏幕" }];
|
|
31
|
+
return [{ index: 0, name: "屏幕", screen: 0 }];
|
|
23
32
|
const output = await run("ffmpeg", ["-hide_banner", "-f", "avfoundation", "-list_devices", "true", "-i", ""], { timeout: 8000 }).then(({ stderr }) => stderr, (error) => error.stderr ?? "");
|
|
24
33
|
const displays = [];
|
|
25
34
|
for (const match of output.matchAll(/\[(\d+)\] Capture screen (\d+)/g)) {
|
|
26
|
-
displays.push({ index: Number(match[1]), name: `屏幕 ${Number(match[2]) + 1}
|
|
35
|
+
displays.push({ index: Number(match[1]), name: `屏幕 ${Number(match[2]) + 1}`, screen: Number(match[2]) });
|
|
27
36
|
}
|
|
28
37
|
return displays;
|
|
29
38
|
}
|
|
30
|
-
function captureArgs(display) {
|
|
39
|
+
export function captureArgs(display, quality = "full") {
|
|
40
|
+
const profile = PROFILES[quality];
|
|
31
41
|
const input = process.platform === "darwin"
|
|
32
|
-
? ["-f", "avfoundation", "-capture_cursor", "1", "-framerate", String(
|
|
33
|
-
: ["-f", "x11grab", "-framerate", String(
|
|
42
|
+
? ["-f", "avfoundation", "-capture_cursor", "1", "-framerate", String(profile.fps), "-i", `${display}:none`]
|
|
43
|
+
: ["-f", "x11grab", "-framerate", String(profile.fps), "-i", process.env.DISPLAY ?? ":0"];
|
|
34
44
|
const encode = process.platform === "darwin"
|
|
35
|
-
? ["-c:v", "h264_videotoolbox", "-realtime", "1", "-profile:v", "baseline", "-b:v",
|
|
36
|
-
: [
|
|
45
|
+
? ["-c:v", "h264_videotoolbox", "-realtime", "1", "-profile:v", "baseline", "-b:v", profile.bitrate, "-maxrate", profile.ceiling]
|
|
46
|
+
: [
|
|
47
|
+
"-c:v", "libx264", "-preset", "ultrafast", "-tune", "zerolatency", "-profile:v", "baseline", "-x264-params", "sliced-threads=0",
|
|
48
|
+
"-b:v", profile.bitrate, "-maxrate", profile.ceiling, "-bufsize", profile.ceiling,
|
|
49
|
+
];
|
|
37
50
|
return [
|
|
38
51
|
"-hide_banner",
|
|
39
52
|
"-loglevel",
|
|
@@ -42,10 +55,10 @@ function captureArgs(display) {
|
|
|
42
55
|
"-vf",
|
|
43
56
|
// AVFoundation captures a screen at its refresh rate whatever -framerate asks (120 a second on a
|
|
44
57
|
// ProMotion display): the frames are dropped here, before the encoder and the network pay for them.
|
|
45
|
-
`fps=${
|
|
58
|
+
`fps=${profile.fps},scale='min(${profile.width},iw)':-2,format=yuv420p`,
|
|
46
59
|
...encode,
|
|
47
60
|
"-g",
|
|
48
|
-
String(
|
|
61
|
+
String(profile.fps * 2),
|
|
49
62
|
"-bf",
|
|
50
63
|
"0",
|
|
51
64
|
// An access-unit delimiter before every frame, so the stream splits into frames cleanly.
|
|
@@ -142,63 +155,14 @@ export async function reapOrphanCaptures(log) {
|
|
|
142
155
|
return 0;
|
|
143
156
|
}
|
|
144
157
|
}
|
|
145
|
-
function viewerPage() {
|
|
146
|
-
return `<!doctype html>
|
|
147
|
-
<html><head><meta charset="utf-8">
|
|
148
|
-
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=6, user-scalable=yes">
|
|
149
|
-
<title>屏幕</title>
|
|
150
|
-
<style>
|
|
151
|
-
html, body { margin: 0; height: 100%; background: #000; overflow: hidden; }
|
|
152
|
-
body { display: flex; align-items: center; justify-content: center; }
|
|
153
|
-
canvas { max-width: 100vw; max-height: 100vh; object-fit: contain; }
|
|
154
|
-
#note { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; padding: 32px;
|
|
155
|
-
color: rgba(255,255,255,0.72); font: 15px/1.5 -apple-system, system-ui, sans-serif; text-align: center; }
|
|
156
|
-
</style></head>
|
|
157
|
-
<body><canvas></canvas><div id="note">正在连接电脑屏幕…</div>
|
|
158
|
-
<script>
|
|
159
|
-
const note = document.getElementById("note");
|
|
160
|
-
const canvas = document.querySelector("canvas");
|
|
161
|
-
const ctx = canvas.getContext("2d");
|
|
162
|
-
const say = (text) => { note.textContent = text; note.style.display = text ? "flex" : "none"; };
|
|
163
|
-
if (!("VideoDecoder" in window)) say("这个系统版本的浏览器内核不支持视频解码,请升级系统后再试。");
|
|
164
|
-
const hex = (n) => n.toString(16).padStart(2, "0");
|
|
165
|
-
function sps(unit) {
|
|
166
|
-
for (let i = 0; i + 3 < unit.length; i++)
|
|
167
|
-
if (unit[i] === 0 && unit[i + 1] === 0 && unit[i + 2] === 1 && (unit[i + 3] & 0x1f) === 7) return unit.subarray(i + 3);
|
|
168
|
-
}
|
|
169
|
-
let decoder;
|
|
170
|
-
const ws = new WebSocket("ws://" + location.host + "/stream" + location.search);
|
|
171
|
-
ws.binaryType = "arraybuffer";
|
|
172
|
-
ws.onmessage = (event) => {
|
|
173
|
-
if (typeof event.data === "string") { const message = JSON.parse(event.data); if (message.error) say(message.error); return; }
|
|
174
|
-
const bytes = new Uint8Array(event.data);
|
|
175
|
-
const key = bytes[0] === 1;
|
|
176
|
-
const unit = bytes.subarray(1);
|
|
177
|
-
if (!decoder) {
|
|
178
|
-
const params = key && sps(unit);
|
|
179
|
-
if (!params) return;
|
|
180
|
-
decoder = new VideoDecoder({
|
|
181
|
-
output: (frame) => {
|
|
182
|
-
if (canvas.width !== frame.displayWidth) { canvas.width = frame.displayWidth; canvas.height = frame.displayHeight; }
|
|
183
|
-
ctx.drawImage(frame, 0, 0);
|
|
184
|
-
frame.close();
|
|
185
|
-
say("");
|
|
186
|
-
},
|
|
187
|
-
error: (error) => say("解码失败:" + error.message),
|
|
188
|
-
});
|
|
189
|
-
decoder.configure({ codec: "avc1." + hex(params[1]) + hex(params[2]) + hex(params[3]), optimizeForLatency: true });
|
|
190
|
-
}
|
|
191
|
-
decoder.decode(new EncodedVideoChunk({ type: key ? "key" : "delta", timestamp: performance.now() * 1000, data: unit }));
|
|
192
|
-
};
|
|
193
|
-
ws.onclose = () => { if (note.style.display === "none" || note.textContent.startsWith("正在")) say("屏幕连接已断开"); };
|
|
194
|
-
</script></body></html>`;
|
|
195
|
-
}
|
|
196
158
|
/** The loopback viewer server; started on first use, one capture per watching device. */
|
|
197
159
|
export class ScreenShare {
|
|
198
160
|
log;
|
|
199
161
|
server;
|
|
200
162
|
token = "";
|
|
163
|
+
displays = [];
|
|
201
164
|
captures = new Set();
|
|
165
|
+
controls = new Set();
|
|
202
166
|
constructor(log) {
|
|
203
167
|
this.log = log;
|
|
204
168
|
void reapOrphanCaptures(log);
|
|
@@ -208,13 +172,13 @@ export class ScreenShare {
|
|
|
208
172
|
throw RpcError.app("not_supported", "这台电脑的系统暂不支持查看屏幕");
|
|
209
173
|
if (!(await hasFfmpeg()))
|
|
210
174
|
throw RpcError.app("not_supported", "查看屏幕需要电脑上装有 ffmpeg(brew install ffmpeg)");
|
|
211
|
-
const displays = await listDisplays();
|
|
175
|
+
const displays = (this.displays = await listDisplays());
|
|
212
176
|
if (!displays.length)
|
|
213
177
|
throw RpcError.app("not_supported", "没有找到可以捕获的屏幕");
|
|
214
178
|
// A fresh token per start: an old viewer URL stops working.
|
|
215
179
|
this.token = randomBytes(24).toString("base64url");
|
|
216
180
|
const port = await this.listen();
|
|
217
|
-
return { port, token: this.token, displays };
|
|
181
|
+
return { port, token: this.token, displays: displays.map(({ index, name }) => ({ index, name })) };
|
|
218
182
|
}
|
|
219
183
|
listen() {
|
|
220
184
|
if (this.server)
|
|
@@ -234,7 +198,8 @@ export class ScreenShare {
|
|
|
234
198
|
socket.destroy();
|
|
235
199
|
return;
|
|
236
200
|
}
|
|
237
|
-
|
|
201
|
+
const quality = url.searchParams.get("q") === "low" ? "low" : "full";
|
|
202
|
+
sockets.handleUpgrade(request, socket, head, (ws) => this.stream(ws, Number(url.searchParams.get("display") ?? NaN), quality));
|
|
238
203
|
});
|
|
239
204
|
this.server = server;
|
|
240
205
|
return new Promise((resolve, reject) => {
|
|
@@ -247,9 +212,33 @@ export class ScreenShare {
|
|
|
247
212
|
const expected = Buffer.from(this.token);
|
|
248
213
|
return this.token.length > 0 && given.length === expected.length && timingSafeEqual(given, expected);
|
|
249
214
|
}
|
|
250
|
-
stream(ws, display) {
|
|
251
|
-
const
|
|
215
|
+
stream(ws, display, quality) {
|
|
216
|
+
const shown = this.displays.find((entry) => entry.index === display) ?? this.displays[0];
|
|
217
|
+
const capture = spawn("ffmpeg", captureArgs(shown?.index ?? 0, quality), { stdio: ["ignore", "pipe", "pipe"] });
|
|
252
218
|
this.captures.add(capture);
|
|
219
|
+
const tell = (message) => ws.readyState === ws.OPEN && ws.send(JSON.stringify(message));
|
|
220
|
+
// The viewer's hands: started when it first asks to control, for the display it is watching.
|
|
221
|
+
const control = new InputControl({
|
|
222
|
+
state: (state) => tell({ control: state }),
|
|
223
|
+
cursor: (x, y) => tell({ cursor: { x, y } }),
|
|
224
|
+
posted: (event) => this.log(`[screen] dry run: ${JSON.stringify(event)}`),
|
|
225
|
+
}, this.log);
|
|
226
|
+
this.controls.add(control);
|
|
227
|
+
ws.on("message", (data, binary) => {
|
|
228
|
+
if (binary)
|
|
229
|
+
return;
|
|
230
|
+
let message;
|
|
231
|
+
try {
|
|
232
|
+
message = JSON.parse(String(data));
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
if (message?.t === "control")
|
|
238
|
+
void control.start(shown?.screen ?? 0);
|
|
239
|
+
else
|
|
240
|
+
control.send(message);
|
|
241
|
+
});
|
|
253
242
|
const splitter = new AccessUnitSplitter();
|
|
254
243
|
let errors = "";
|
|
255
244
|
capture.stdout.on("data", (chunk) => splitter.push(chunk, (unit, key) => {
|
|
@@ -270,13 +259,20 @@ export class ScreenShare {
|
|
|
270
259
|
}
|
|
271
260
|
ws.close();
|
|
272
261
|
});
|
|
273
|
-
ws.on("close", () =>
|
|
262
|
+
ws.on("close", () => {
|
|
263
|
+
endCapture(capture);
|
|
264
|
+
control.stop();
|
|
265
|
+
this.controls.delete(control);
|
|
266
|
+
});
|
|
274
267
|
}
|
|
275
268
|
stop() {
|
|
276
269
|
// The host is going: there is no later to insist in.
|
|
277
270
|
for (const capture of this.captures)
|
|
278
271
|
endCapture(capture, true);
|
|
279
272
|
this.captures.clear();
|
|
273
|
+
for (const control of this.controls)
|
|
274
|
+
control.stop();
|
|
275
|
+
this.controls.clear();
|
|
280
276
|
this.server?.close();
|
|
281
277
|
this.server = undefined;
|
|
282
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/screen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/screen.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,15 +33,15 @@ export declare class TerminalManager {
|
|
|
33
33
|
reset: boolean;
|
|
34
34
|
seq: number;
|
|
35
35
|
terminal: {
|
|
36
|
-
id: string;
|
|
37
36
|
title: string;
|
|
37
|
+
id: string;
|
|
38
38
|
cwd: string;
|
|
39
39
|
createdAt: number;
|
|
40
40
|
cols: number;
|
|
41
41
|
rows: number;
|
|
42
42
|
activeAt: number;
|
|
43
|
-
command?: string | undefined;
|
|
44
43
|
exitCode?: number | null | undefined;
|
|
44
|
+
command?: string | undefined;
|
|
45
45
|
interrupted?: boolean | undefined;
|
|
46
46
|
};
|
|
47
47
|
};
|