@desklink/host 0.3.0 → 0.4.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/NOTICE +3 -0
- package/README.md +92 -23
- package/bin/desklink-host.mjs +14 -5
- package/dist/bridge.d.ts +3 -4
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +18 -7
- package/dist/bridge.js.map +1 -1
- package/dist/engineProcess.d.ts +6 -1
- package/dist/engineProcess.d.ts.map +1 -1
- package/dist/engineProcess.js +34 -5
- package/dist/engineProcess.js.map +1 -1
- package/dist/protocol.d.ts +35 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/resolveEngine.d.ts +6 -0
- package/dist/resolveEngine.d.ts.map +1 -1
- package/dist/resolveEngine.js +45 -6
- package/dist/resolveEngine.js.map +1 -1
- package/docs/BOUNDARY.md +8 -8
- package/docs/PROTOCOL.md +185 -45
- package/engine/Cargo.lock +2 -2
- package/engine/Cargo.toml +7 -12
- package/engine/build.rs +62 -5
- package/engine/native/agent_indicator.h +57 -0
- package/engine/native/agent_overlay_mac.m +51 -4
- package/engine/native/agent_overlay_wayland.c +189 -35
- package/engine/native/agent_overlay_x11.c +186 -55
- package/engine/src/capture.rs +96 -5
- package/engine/src/capture_win.rs +23 -0
- package/engine/src/clipboard.rs +174 -0
- package/engine/src/clipboard_win.rs +8 -0
- package/engine/src/cursor.rs +118 -0
- package/engine/src/indicator.rs +271 -5
- package/engine/src/input_win.rs +91 -0
- package/engine/src/keymap_win.rs +39 -0
- package/engine/src/mac.rs +28 -6
- package/engine/src/main.rs +167 -25
- package/engine/src/peer.rs +10 -4
- package/engine/src/portal.rs +42 -4
- package/engine/src/portal_win.rs +37 -0
- package/engine/src/protocol.rs +56 -10
- package/engine/src/session.rs +749 -203
- package/engine/src/win.rs +110 -0
- package/engine/src/x11.rs +44 -29
- package/engine/src/x11_mac.rs +4 -0
- package/examples/reference-client.html +3 -5
- package/package.json +4 -4
package/dist/protocol.d.ts
CHANGED
|
@@ -29,6 +29,11 @@ export interface EngineCapabilities {
|
|
|
29
29
|
backends: string[];
|
|
30
30
|
formats: string[];
|
|
31
31
|
cursor: string;
|
|
32
|
+
cursor_modes?: Array<'embedded' | 'hidden'>;
|
|
33
|
+
cursor_positions?: {
|
|
34
|
+
x11: boolean;
|
|
35
|
+
portal: 'negotiated';
|
|
36
|
+
};
|
|
32
37
|
audio: boolean;
|
|
33
38
|
displays?: Array<{
|
|
34
39
|
id: number;
|
|
@@ -102,10 +107,16 @@ export type SourceRequest = {
|
|
|
102
107
|
kind: 'x11';
|
|
103
108
|
display?: string;
|
|
104
109
|
};
|
|
110
|
+
export interface CursorInfo {
|
|
111
|
+
mode: 'embedded' | 'hidden' | 'metadata' | 'unavailable';
|
|
112
|
+
positions: boolean;
|
|
113
|
+
}
|
|
105
114
|
export interface OpenSessionRequest {
|
|
115
|
+
/** Cursor-free frames with independent source-coordinate position events. */
|
|
116
|
+
cursor?: 'embedded' | 'hidden';
|
|
106
117
|
source?: SourceRequest;
|
|
107
|
-
/**
|
|
108
|
-
permissions
|
|
118
|
+
/** @deprecated Pairing grants all available access; accepted and ignored. */
|
|
119
|
+
permissions?: Array<'view' | 'control' | 'clipboard'>;
|
|
109
120
|
maxWidth?: number;
|
|
110
121
|
maxHeight?: number;
|
|
111
122
|
bitrateKbps?: number;
|
|
@@ -130,6 +141,8 @@ export interface OpenSessionRequest {
|
|
|
130
141
|
localFrames?: boolean;
|
|
131
142
|
}
|
|
132
143
|
export interface OpenedSession {
|
|
144
|
+
agentIndicator?: boolean;
|
|
145
|
+
cursor?: CursorInfo;
|
|
133
146
|
sessionId: string;
|
|
134
147
|
generation: number;
|
|
135
148
|
source: {
|
|
@@ -144,6 +157,15 @@ export interface OpenedSession {
|
|
|
144
157
|
geometry: SurfaceGeometry;
|
|
145
158
|
}
|
|
146
159
|
export type EngineEvent = {
|
|
160
|
+
event: 'session.cursor';
|
|
161
|
+
params: {
|
|
162
|
+
sessionId: string;
|
|
163
|
+
x: number;
|
|
164
|
+
y: number;
|
|
165
|
+
visible: boolean;
|
|
166
|
+
timestamp_us: number;
|
|
167
|
+
};
|
|
168
|
+
} | {
|
|
147
169
|
event: 'session.description';
|
|
148
170
|
params: {
|
|
149
171
|
sessionId: string;
|
|
@@ -168,6 +190,7 @@ export type EngineEvent = {
|
|
|
168
190
|
sessionId: string;
|
|
169
191
|
seq: number;
|
|
170
192
|
damage: number[][];
|
|
193
|
+
timestamp_us?: number;
|
|
171
194
|
};
|
|
172
195
|
} | {
|
|
173
196
|
event: 'session.state';
|
|
@@ -229,4 +252,14 @@ export declare class EngineRefused extends Error {
|
|
|
229
252
|
readonly code: string;
|
|
230
253
|
constructor(code: string, message: string);
|
|
231
254
|
}
|
|
255
|
+
/** A visual cue in selected-desktop pixels, not input. */
|
|
256
|
+
export type PointRequest = {
|
|
257
|
+
x: number;
|
|
258
|
+
y: number;
|
|
259
|
+
label?: string;
|
|
260
|
+
timeoutMs?: number;
|
|
261
|
+
clear?: false;
|
|
262
|
+
} | {
|
|
263
|
+
clear: true;
|
|
264
|
+
};
|
|
232
265
|
//# sourceMappingURL=protocol.d.ts.map
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AA6JlC,wEAAwE;AACxE,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC3B,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ"}
|
package/dist/resolveEngine.d.ts
CHANGED
|
@@ -17,6 +17,12 @@ export interface ResolvedEngine {
|
|
|
17
17
|
origin: 'configured' | 'prebuilt' | 'package';
|
|
18
18
|
}
|
|
19
19
|
export declare function macosEngineEnabled(platform?: NodeJS.Platform, flag?: string | undefined): boolean;
|
|
20
|
+
export declare function windowsEngineEnabled(platform?: NodeJS.Platform, flag?: string | undefined): boolean;
|
|
21
|
+
export declare function windowsBuildSupported(release?: string): {
|
|
22
|
+
supported: boolean;
|
|
23
|
+
build: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function windowsBuildError(release?: string): string | null;
|
|
20
26
|
export declare function enginePackageRoot(): string;
|
|
21
27
|
/**
|
|
22
28
|
* The platform package for this machine.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveEngine.d.ts","sourceRoot":"","sources":["../src/resolveEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolveEngine.d.ts","sourceRoot":"","sources":["../src/resolveEngine.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;CACjD;AAKD,wBAAgB,kBAAkB,CAAC,QAAQ,kBAAmB,EAAE,IAAI,qBAA6B,GAAG,OAAO,CAE1G;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,kBAAmB,EAAE,IAAI,qBAA+B,GAAG,OAAO,CAE9G;AAED,wBAAgB,qBAAqB,CAAC,OAAO,SAAc,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAOlG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAc,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACvB,QAAQ,GAAE,MAAyB,EACnC,IAAI,GAAE,MAAqB,EAC3B,KAAK,GAAE,OAAO,GAAG,SAAsB,GACxC,MAAM,CAIR;AA+CD,wBAAgB,aAAa,CAAC,UAAU,qBAAyB,EAAE,IAAI,SAAsB,GAAG,cAAc,GAAG,IAAI,CAkBpH;AAWD;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,qBAAyB,EACnC,IAAI,SAAsB,GAC3B,MAAM,GAAG,IAAI,CAwCf"}
|
package/dist/resolveEngine.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync, statSync } from 'node:fs';
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
+
import { release as osRelease } from 'node:os';
|
|
3
4
|
import { dirname, join, resolve } from 'node:path';
|
|
4
5
|
import { fileURLToPath } from 'node:url';
|
|
5
6
|
/** Platforms with a published platform package. */
|
|
@@ -7,6 +8,23 @@ const PREBUILT_PLATFORMS = ['linux-x64-gnu', 'darwin-arm64'];
|
|
|
7
8
|
export function macosEngineEnabled(platform = process.platform, flag = process.env.DESKLINK_MACOS) {
|
|
8
9
|
return platform !== 'darwin' || flag !== '0';
|
|
9
10
|
}
|
|
11
|
+
export function windowsEngineEnabled(platform = process.platform, flag = process.env.DESKLINK_WINDOWS) {
|
|
12
|
+
return platform !== 'win32' || flag === '1';
|
|
13
|
+
}
|
|
14
|
+
export function windowsBuildSupported(release = osRelease()) {
|
|
15
|
+
const match = /^10\.0\.(\d+)(?:\.\d+)*$/.exec(release);
|
|
16
|
+
if (!match)
|
|
17
|
+
return { supported: false, build: `unknown (${release})` };
|
|
18
|
+
const buildText = match[1];
|
|
19
|
+
if (buildText === undefined)
|
|
20
|
+
return { supported: false, build: `unknown (${release})` };
|
|
21
|
+
const build = Number(buildText);
|
|
22
|
+
return { supported: Number.isSafeInteger(build) && build >= 22621, build: buildText };
|
|
23
|
+
}
|
|
24
|
+
export function windowsBuildError(release = osRelease()) {
|
|
25
|
+
const { supported, build } = windowsBuildSupported(release);
|
|
26
|
+
return supported ? null : `The Windows desktop engine preview requires Windows 11 22H2+ x64; detected Windows build ${build}.`;
|
|
27
|
+
}
|
|
10
28
|
export function enginePackageRoot() {
|
|
11
29
|
return resolve(dirname(fileURLToPath(import.meta.url)), '..');
|
|
12
30
|
}
|
|
@@ -18,6 +36,8 @@ export function enginePackageRoot() {
|
|
|
18
36
|
* because npm's own `libc` selector is not honoured by every client.
|
|
19
37
|
*/
|
|
20
38
|
export function platformTag(platform = process.platform, arch = process.arch, glibc = hasGlibc()) {
|
|
39
|
+
if (platform === 'win32')
|
|
40
|
+
return `win32-${arch}-msvc`;
|
|
21
41
|
if (platform === 'linux')
|
|
22
42
|
return `linux-${arch}-${glibc === false ? 'musl' : 'gnu'}`;
|
|
23
43
|
return `${platform}-${arch}`;
|
|
@@ -47,10 +67,11 @@ function prebuiltBinary() {
|
|
|
47
67
|
}
|
|
48
68
|
}
|
|
49
69
|
function buildCandidates(root) {
|
|
70
|
+
const binary = process.platform === 'win32' ? 'desklink-host.exe' : 'desklink-host';
|
|
50
71
|
return [
|
|
51
|
-
join(root, 'engine', 'target', 'release',
|
|
52
|
-
join(root, 'engine', 'target', 'debug',
|
|
53
|
-
join(root, 'bin',
|
|
72
|
+
join(root, 'engine', 'target', 'release', binary),
|
|
73
|
+
join(root, 'engine', 'target', 'debug', binary),
|
|
74
|
+
join(root, 'bin', binary),
|
|
54
75
|
];
|
|
55
76
|
}
|
|
56
77
|
/**
|
|
@@ -67,7 +88,11 @@ function configuredEnginePath() {
|
|
|
67
88
|
return process.env.MUXR_DESKLINK_ENGINE;
|
|
68
89
|
}
|
|
69
90
|
export function resolveEngine(configured = configuredEnginePath(), root = enginePackageRoot()) {
|
|
70
|
-
if (!macosEngineEnabled())
|
|
91
|
+
if (!macosEngineEnabled() || !windowsEngineEnabled())
|
|
92
|
+
return null;
|
|
93
|
+
if (process.platform === 'win32' && process.arch !== 'x64')
|
|
94
|
+
return null;
|
|
95
|
+
if (process.platform === 'win32' && windowsBuildError() !== null)
|
|
71
96
|
return null;
|
|
72
97
|
if (configured !== undefined && configured.trim() !== '') {
|
|
73
98
|
if (!isExecutable(configured))
|
|
@@ -93,13 +118,24 @@ function isExecutable(path) {
|
|
|
93
118
|
return false;
|
|
94
119
|
// A file that is not executable is an install that went wrong, and saying so
|
|
95
120
|
// is more useful than an EACCES three calls later.
|
|
96
|
-
return (stat.mode & 0o111) !== 0;
|
|
121
|
+
return process.platform === 'win32' || (stat.mode & 0o111) !== 0;
|
|
97
122
|
}
|
|
98
123
|
/**
|
|
99
124
|
* Why the engine is missing, in words fit to show a user. `null` means it is
|
|
100
125
|
* there.
|
|
101
126
|
*/
|
|
102
127
|
export function explainMissingEngine(configured = configuredEnginePath(), root = enginePackageRoot()) {
|
|
128
|
+
if (!windowsEngineEnabled()) {
|
|
129
|
+
return 'The Windows desktop engine preview is disabled; set DESKLINK_WINDOWS=1 to opt in (Windows 11 22H2+ x64 only).';
|
|
130
|
+
}
|
|
131
|
+
if (process.platform === 'win32' && process.arch !== 'x64') {
|
|
132
|
+
return 'The Windows desktop engine preview requires Windows 11 22H2+ x64; this architecture is unsupported.';
|
|
133
|
+
}
|
|
134
|
+
if (process.platform === 'win32') {
|
|
135
|
+
const buildError = windowsBuildError();
|
|
136
|
+
if (buildError !== null)
|
|
137
|
+
return buildError;
|
|
138
|
+
}
|
|
103
139
|
if (!macosEngineEnabled()) {
|
|
104
140
|
return 'The macOS desktop engine is disabled by DESKLINK_MACOS=0; unset it to enable the engine.';
|
|
105
141
|
}
|
|
@@ -112,6 +148,9 @@ export function explainMissingEngine(configured = configuredEnginePath(), root =
|
|
|
112
148
|
}
|
|
113
149
|
return `The desktop engine at ${configured} is not an executable file.`;
|
|
114
150
|
}
|
|
151
|
+
if (process.platform === 'win32') {
|
|
152
|
+
return 'No Windows preview engine was found. Build desklink-host.exe from source and set DESKLINK_ENGINE to its path; Windows platform packages are not published yet.';
|
|
153
|
+
}
|
|
115
154
|
if (process.platform === 'darwin') {
|
|
116
155
|
const tag = platformTag();
|
|
117
156
|
if (PREBUILT_PLATFORMS.includes(tag)) {
|
|
@@ -120,7 +159,7 @@ export function explainMissingEngine(configured = configuredEnginePath(), root =
|
|
|
120
159
|
return `There is no prebuilt desktop engine for ${tag}. Build it from source (see the @desklink/host README) and point DESKLINK_ENGINE at the binary.`;
|
|
121
160
|
}
|
|
122
161
|
if (process.platform !== 'linux') {
|
|
123
|
-
return `The desktop engine runs on Linux and macOS; ${process.platform} is not supported yet.`;
|
|
162
|
+
return `The desktop engine runs on Linux and macOS (preview); ${process.platform} is not supported yet.`;
|
|
124
163
|
}
|
|
125
164
|
const tag = platformTag();
|
|
126
165
|
if (PREBUILT_PLATFORMS.includes(tag)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveEngine.js","sourceRoot":"","sources":["../src/resolveEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsBzC,mDAAmD;AACnD,MAAM,kBAAkB,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAE7D,MAAM,UAAU,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc;IAC7F,OAAO,QAAQ,KAAK,QAAQ,IAAI,IAAI,KAAK,GAAG,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACvB,WAAmB,OAAO,CAAC,QAAQ,EACnC,OAAe,OAAO,CAAC,IAAI,EAC3B,QAA6B,QAAQ,EAAE;IAEvC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACrF,OAAO,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,yEAAyE;AACzE,SAAS,QAAQ;IACb,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,EAA+D,CAAC;IAC1G,OAAO,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc;IACnB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,kBAAkB,WAAW,EAAE,EAAE,CAAC;IAC/C,IAAI,CAAC;QACD,mEAAmE;QACnE,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,eAAe,CAA0D,CAAC;QAC1G,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO;QACH,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"resolveEngine.js","sourceRoot":"","sources":["../src/resolveEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsBzC,mDAAmD;AACnD,MAAM,kBAAkB,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAE7D,MAAM,UAAU,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc;IAC7F,OAAO,QAAQ,KAAK,QAAQ,IAAI,IAAI,KAAK,GAAG,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB;IACjG,OAAO,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAO,GAAG,SAAS,EAAE;IACvD,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,OAAO,GAAG,EAAE,CAAC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,OAAO,GAAG,EAAE,CAAC;IACxF,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAO,GAAG,SAAS,EAAE;IACnD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4FAA4F,KAAK,GAAG,CAAC;AACnI,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACvB,WAAmB,OAAO,CAAC,QAAQ,EACnC,OAAe,OAAO,CAAC,IAAI,EAC3B,QAA6B,QAAQ,EAAE;IAEvC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,IAAI,OAAO,CAAC;IACtD,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACrF,OAAO,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,yEAAyE;AACzE,SAAS,QAAQ;IACb,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,EAA+D,CAAC;IAC1G,OAAO,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc;IACnB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,kBAAkB,WAAW,EAAE,EAAE,CAAC;IAC/C,IAAI,CAAC;QACD,mEAAmE;QACnE,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,eAAe,CAA0D,CAAC;QAC1G,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC;IACpF,OAAO;QACH,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;KAC5B,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC/C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,UAAU,CAAC;IAC5E,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAU,GAAG,oBAAoB,EAAE,EAAE,IAAI,GAAG,iBAAiB,EAAE;IACzF,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,iBAAiB,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9E,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,QAAQ,KAAK,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACtE,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACtE,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,6EAA6E;IAC7E,mDAAmD;IACnD,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAChC,UAAU,GAAG,oBAAoB,EAAE,EACnC,IAAI,GAAG,iBAAiB,EAAE;IAE1B,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC1B,OAAO,+GAA+G,CAAC;IAC3H,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzD,OAAO,qGAAqG,CAAC;IACjH,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,UAAU,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QACxB,OAAO,0FAA0F,CAAC;IACtG,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,OAAO,qDAAqD,UAAU,IAAI,CAAC;QAC/E,CAAC;QACD,OAAO,yBAAyB,UAAU,6BAA6B,CAAC;IAC5E,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO,gKAAgK,CAAC;IAC5K,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,mCAAmC,GAAG,qEAAqE,GAAG,8GAA8G,CAAC;QACxO,CAAC;QACD,OAAO,2CAA2C,GAAG,iGAAiG,CAAC;IAC3J,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO,yDAAyD,OAAO,CAAC,QAAQ,wBAAwB,CAAC;IAC7G,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,mCAAmC,GAAG,qEAAqE,GAAG,8GAA8G,CAAC;IACxO,CAAC;IACD,OAAO,2CAA2C,GAAG,iGAAiG,CAAC;AAC3J,CAAC"}
|
package/docs/BOUNDARY.md
CHANGED
|
@@ -17,7 +17,7 @@ mean the phone pins a native host build, or the host pins a mobile runtime.
|
|
|
17
17
|
**Boundary:** "given a granted desktop source, produce a WebRTC video track and
|
|
18
18
|
apply authenticated input to the same desktop".
|
|
19
19
|
|
|
20
|
-
- In: `session.open`, SDP/ICE,
|
|
20
|
+
- In: `session.open`, SDP/ICE, the session's WebRTC control-channel input, explicit
|
|
21
21
|
clipboard read/write, close — and `session.feed`, which supplies the access
|
|
22
22
|
units of a consumer-encoded `encoded` source. See `docs/PROTOCOL.md`.
|
|
23
23
|
- Out: one video track — VP9 or H.264 (the receiver's answer picks) the engine
|
|
@@ -45,7 +45,7 @@ local gestures into that session's input".
|
|
|
45
45
|
|
|
46
46
|
- `useDesktopSession({ authorize, onStateChange, onError })` owns connection,
|
|
47
47
|
negotiation, readiness, reconnect and typed errors. `authorize()` returns the
|
|
48
|
-
session's `signaling` channel
|
|
48
|
+
session's authenticated `signaling` channel.
|
|
49
49
|
- `<DesktopView sessionId style />` owns the live surface and gesture mapping. It
|
|
50
50
|
owns nothing about layout, chrome, navigation or the conversation it sits in.
|
|
51
51
|
- `session.showKeyboard()/hideKeyboard()`,
|
|
@@ -57,8 +57,8 @@ local gestures into that session's input".
|
|
|
57
57
|
decodes in hardware), the renderer and the IME/text
|
|
58
58
|
connection. For input enablement and release on background/unmount, see the
|
|
59
59
|
[client contract](../../desktop-client/README.md#what-the-package-guarantees).
|
|
60
|
-
- The app supplies `authorize()` (
|
|
61
|
-
|
|
60
|
+
- The app supplies `authorize()` (its pairing check plus the authenticated
|
|
61
|
+
`signaling` channel it carries). The package never sees a
|
|
62
62
|
pairing blob, a machine id or a token format, and never persists one.
|
|
63
63
|
- Platform files: `.native.ts` uses WebRTC through the app's existing native
|
|
64
64
|
binding; `.web.ts` uses the browser's own `RTCPeerConnection`, so the same
|
|
@@ -70,10 +70,10 @@ local gestures into that session's input".
|
|
|
70
70
|
## What the consumer (this application) keeps
|
|
71
71
|
|
|
72
72
|
- The computer action in the conversation and the return.
|
|
73
|
-
- Its own pairing, machine identity
|
|
73
|
+
- Its own pairing, machine identity and revocation; revoking ends live and
|
|
74
|
+
future sessions.
|
|
74
75
|
- Carrying SDP/ICE over its existing authenticated encrypted channel.
|
|
75
|
-
-
|
|
76
|
-
product's own start/loading/error copy.
|
|
76
|
+
- The product's own start/loading/error copy.
|
|
77
77
|
- Where the keyboard and clipboard controls sit, and the fact that internal ids
|
|
78
78
|
are never displayed.
|
|
79
79
|
|
|
@@ -97,7 +97,7 @@ local gestures into that session's input".
|
|
|
97
97
|
| H.264 encode (Linux GPU) | NVENC, VA-API — loaded at runtime from the driver | NVIDIA driver / libva MIT |
|
|
98
98
|
| H.264 encode (Linux, no GPU encoder) | Cisco's prebuilt openh264, downloaded at runtime, never built or shipped | BSD-2-Clause (Cisco's binary licence) |
|
|
99
99
|
| Virtual mouse/keyboard | inputtino (uinput/libevdev) | MIT |
|
|
100
|
-
| Clipboard
|
|
100
|
+
| Clipboard adapters | [Linux implementation](../engine/src/clipboard.rs) | See [provenance](../README.md#licence-and-provenance) |
|
|
101
101
|
| Keyboard layout mapping | `xkbcommon` | MIT |
|
|
102
102
|
|
|
103
103
|
Not adopted: libwebrtc (a multi-gigabyte source build with an LGPL/GIO portal
|