ds-harness-remote 0.3.32 → 0.3.34

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.
Files changed (42) hide show
  1. package/README.md +3 -3
  2. package/dist/client-runtime.d.ts +2 -1
  3. package/dist/client-runtime.d.ts.map +1 -1
  4. package/dist/client-runtime.js +73 -31
  5. package/dist/client-runtime.js.map +1 -1
  6. package/dist/client.d.ts +1 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.github.js +88 -54
  9. package/dist/client.js +88 -54
  10. package/dist/client.js.map +1 -1
  11. package/dist/harness-api-bridge.d.ts.map +1 -1
  12. package/dist/harness-api-bridge.js +2 -5
  13. package/dist/harness-api-bridge.js.map +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1384 -113
  16. package/dist/index.js.map +4 -4
  17. package/dist/native-rtc-helper.d.ts +4 -0
  18. package/dist/native-rtc-helper.d.ts.map +1 -0
  19. package/dist/native-rtc-helper.js +539 -0
  20. package/dist/native-rtc-helper.js.map +1 -0
  21. package/dist/rpc-router.d.ts +1 -6
  22. package/dist/rpc-router.d.ts.map +1 -1
  23. package/dist/rpc-router.js +5 -20
  24. package/dist/rpc-router.js.map +1 -1
  25. package/dist/safe-error.d.ts +8 -0
  26. package/dist/safe-error.d.ts.map +1 -0
  27. package/dist/safe-error.js +20 -0
  28. package/dist/safe-error.js.map +1 -0
  29. package/dist/server-connection.d.ts.map +1 -1
  30. package/dist/server-connection.js +43 -2
  31. package/dist/server-connection.js.map +1 -1
  32. package/dist/service.d.ts.map +1 -1
  33. package/dist/service.js +4 -2
  34. package/dist/service.js.map +1 -1
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/dist/werift-rtc.d.ts +45 -9
  38. package/dist/werift-rtc.d.ts.map +1 -1
  39. package/dist/werift-rtc.js +356 -35
  40. package/dist/werift-rtc.js.map +1 -1
  41. package/package.json +4 -1
  42. package/public.d.ts +1 -1
@@ -0,0 +1,4 @@
1
+ import type { RtcPeerConnectionFactory } from '@dsh-remote/webrtc';
2
+ export declare function loadExternalNativeRtcFactory(): Promise<RtcPeerConnectionFactory | undefined>;
3
+ export declare function buildExternalNativeRtcFactory(nodeBinary: string, requireFrom?: string): RtcPeerConnectionFactory;
4
+ //# sourceMappingURL=native-rtc-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-rtc-helper.d.ts","sourceRoot":"","sources":["../src/native-rtc-helper.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAOV,wBAAwB,EAIzB,MAAM,oBAAoB,CAAA;AA6C3B,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAQlG;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,MAAM,EAClB,WAAW,SAAiC,GAC3C,wBAAwB,CAM1B"}
@@ -0,0 +1,539 @@
1
+ import { spawn, spawnSync } from 'node:child_process';
2
+ import { existsSync, readdirSync, statSync } from 'node:fs';
3
+ import { delimiter, dirname, join } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ let cachedExternalFactory;
6
+ let cachedExternalFactoryResolved = false;
7
+ let cachedNodeBinary;
8
+ let cachedNodeBinaryResolved = false;
9
+ export async function loadExternalNativeRtcFactory() {
10
+ if (cachedExternalFactory !== undefined)
11
+ return cachedExternalFactory;
12
+ if (cachedExternalFactoryResolved)
13
+ return undefined;
14
+ cachedExternalFactoryResolved = true;
15
+ const nodeBinary = resolveExternalNodeBinaryForRtc();
16
+ if (nodeBinary === undefined)
17
+ return undefined;
18
+ cachedExternalFactory = buildExternalNativeRtcFactory(nodeBinary);
19
+ return cachedExternalFactory;
20
+ }
21
+ export function buildExternalNativeRtcFactory(nodeBinary, requireFrom = fileURLToPath(import.meta.url)) {
22
+ return {
23
+ create(configuration) {
24
+ return new ExternalNativePeerConnection(nodeBinary, requireFrom, configuration);
25
+ },
26
+ };
27
+ }
28
+ function resolveExternalNodeBinaryForRtc() {
29
+ if (cachedNodeBinaryResolved)
30
+ return cachedNodeBinary;
31
+ cachedNodeBinaryResolved = true;
32
+ const requireFrom = fileURLToPath(import.meta.url);
33
+ for (const candidate of nodeBinaryCandidates()) {
34
+ if (isUsableExternalNode(candidate, requireFrom)) {
35
+ cachedNodeBinary = candidate;
36
+ return candidate;
37
+ }
38
+ }
39
+ return undefined;
40
+ }
41
+ function nodeBinaryCandidates() {
42
+ const candidates = [];
43
+ const add = (value) => {
44
+ if (value === undefined || value.trim() === '')
45
+ return;
46
+ if (!candidates.includes(value))
47
+ candidates.push(value);
48
+ };
49
+ add(process.env.DSH_REMOTE_NODE);
50
+ add(process.env.NODE);
51
+ add(process.execPath);
52
+ for (const part of (process.env.PATH ?? '').split(delimiter))
53
+ add(join(part, process.platform === 'win32' ? 'node.exe' : 'node'));
54
+ add('/opt/homebrew/bin/node');
55
+ add('/usr/local/bin/node');
56
+ add('/usr/bin/node');
57
+ add(join(process.env.HOME ?? '', '.volta', 'bin', process.platform === 'win32' ? 'node.exe' : 'node'));
58
+ add(join(process.env.HOME ?? '', '.asdf', 'shims', process.platform === 'win32' ? 'node.exe' : 'node'));
59
+ add(join(process.env.HOME ?? '', '.local', 'bin', process.platform === 'win32' ? 'node.exe' : 'node'));
60
+ for (const nvmNode of nvmNodeCandidates())
61
+ add(nvmNode);
62
+ return candidates;
63
+ }
64
+ function nvmNodeCandidates() {
65
+ const root = join(process.env.HOME ?? '', '.nvm', 'versions', 'node');
66
+ if (root === '' || !existsSync(root))
67
+ return [];
68
+ try {
69
+ return readdirSync(root)
70
+ .map(version => join(root, version, 'bin', process.platform === 'win32' ? 'node.exe' : 'node'))
71
+ .sort((left, right) => right.localeCompare(left, 'en', { numeric: true }));
72
+ }
73
+ catch {
74
+ return [];
75
+ }
76
+ }
77
+ function isUsableExternalNode(candidate, requireFrom) {
78
+ if (!isExecutableFile(candidate))
79
+ return false;
80
+ const env = { ...process.env, DSH_REMOTE_RTC_HELPER_REQUIRE_FROM: requireFrom };
81
+ delete env.ELECTRON_RUN_AS_NODE;
82
+ const probe = spawnSync(candidate, [
83
+ '--input-type=module',
84
+ '--eval',
85
+ [
86
+ "import { createRequire } from 'node:module';",
87
+ "const require = createRequire(process.env.DSH_REMOTE_RTC_HELPER_REQUIRE_FROM);",
88
+ "if (process.versions.electron) throw new Error('electron-node');",
89
+ "const wrtc = require('@roamhq/wrtc');",
90
+ "const RTCPeerConnection = wrtc.RTCPeerConnection ?? wrtc.default?.RTCPeerConnection;",
91
+ "if (typeof RTCPeerConnection !== 'function') throw new Error('missing-rtc');",
92
+ "console.log(`node:${process.versions.node}`);",
93
+ ].join(''),
94
+ ], {
95
+ cwd: dirname(requireFrom),
96
+ env,
97
+ encoding: 'utf8',
98
+ timeout: 3_000,
99
+ });
100
+ return probe.status === 0 && probe.stdout.startsWith('node:');
101
+ }
102
+ function isExecutableFile(candidate) {
103
+ try {
104
+ const stat = statSync(candidate);
105
+ if (!stat.isFile())
106
+ return false;
107
+ if (process.platform === 'win32')
108
+ return true;
109
+ return (stat.mode & 0o111) !== 0;
110
+ }
111
+ catch {
112
+ return false;
113
+ }
114
+ }
115
+ class ExternalNativePeerConnection {
116
+ nodeBinary;
117
+ requireFrom;
118
+ connectionState = 'new';
119
+ iceConnectionState = 'new';
120
+ iceGatheringState = 'new';
121
+ signalingState = 'stable';
122
+ onconnectionstatechange = null;
123
+ oniceconnectionstatechange = null;
124
+ onicegatheringstatechange = null;
125
+ onicecandidate = null;
126
+ ondatachannel = null;
127
+ child;
128
+ pending = new Map();
129
+ channels = new Map();
130
+ nextRequestId = 1;
131
+ nextChannelId = 1;
132
+ stdout = '';
133
+ closed = false;
134
+ ready;
135
+ constructor(nodeBinary, requireFrom, configuration) {
136
+ this.nodeBinary = nodeBinary;
137
+ this.requireFrom = requireFrom;
138
+ this.child = spawn(this.nodeBinary, ['--input-type=module', '--eval', HELPER_SOURCE], {
139
+ cwd: dirname(this.requireFrom),
140
+ env: { ...process.env, DSH_REMOTE_RTC_HELPER_REQUIRE_FROM: this.requireFrom },
141
+ stdio: ['pipe', 'pipe', 'pipe'],
142
+ });
143
+ this.child.stdout.setEncoding('utf8');
144
+ this.child.stdout.on('data', chunk => this.handleStdout(String(chunk)));
145
+ this.child.stderr.on('data', () => undefined);
146
+ this.child.on('exit', () => this.handleExit());
147
+ this.child.on('error', error => this.handleExit(error));
148
+ this.child.stdin.on('error', error => this.handleExit(error));
149
+ this.ready = this.request('init', { iceServers: configuration.iceServers ?? [] }).then(() => undefined);
150
+ }
151
+ createDataChannel(label, options) {
152
+ const channelId = this.nextChannelId++;
153
+ const channel = new ExternalNativeDataChannel(this, channelId, label, options?.ordered ?? true);
154
+ this.channels.set(channelId, channel);
155
+ this.notify('createDataChannel', { channelId, label, options: { ordered: options?.ordered ?? true } });
156
+ return channel;
157
+ }
158
+ async createOffer() {
159
+ await this.ready;
160
+ return this.request('createOffer', {});
161
+ }
162
+ async createAnswer() {
163
+ await this.ready;
164
+ return this.request('createAnswer', {});
165
+ }
166
+ async setLocalDescription(description) {
167
+ await this.ready;
168
+ await this.request('setLocalDescription', { description });
169
+ }
170
+ async setRemoteDescription(description) {
171
+ await this.ready;
172
+ await this.request('setRemoteDescription', { description });
173
+ }
174
+ async addIceCandidate(candidate) {
175
+ await this.ready;
176
+ await this.request('addIceCandidate', { candidate: candidate ?? null });
177
+ }
178
+ async getStats() {
179
+ await this.ready;
180
+ return this.request('getStats', {});
181
+ }
182
+ close() {
183
+ if (this.closed)
184
+ return;
185
+ this.closed = true;
186
+ this.notify('close', {});
187
+ const timer = setTimeout(() => {
188
+ if (this.child.exitCode === null && this.child.signalCode === null)
189
+ this.child.kill();
190
+ }, 1_000);
191
+ timer.unref?.();
192
+ }
193
+ sendChannelData(channelId, data) {
194
+ const payload = typeof data === 'string'
195
+ ? { channelId, text: data }
196
+ : { channelId, base64: Buffer.from(data).toString('base64') };
197
+ this.notify('channelSend', payload);
198
+ }
199
+ closeChannel(channelId) {
200
+ this.notify('channelClose', { channelId });
201
+ }
202
+ request(method, payload) {
203
+ if (this.closed)
204
+ return Promise.reject(new Error('native rtc helper is closed'));
205
+ const id = this.nextRequestId++;
206
+ const promise = new Promise((resolve, reject) => {
207
+ this.pending.set(id, { resolve, reject });
208
+ });
209
+ this.write({ id, method, payload });
210
+ return promise;
211
+ }
212
+ notify(method, payload) {
213
+ if (this.closed && method !== 'close')
214
+ return;
215
+ this.write({ method, payload });
216
+ }
217
+ write(message) {
218
+ try {
219
+ this.child.stdin.write(`${JSON.stringify(message)}\n`);
220
+ }
221
+ catch {
222
+ this.handleExit(new Error('native rtc helper stdin is closed'));
223
+ }
224
+ }
225
+ handleStdout(chunk) {
226
+ this.stdout += chunk;
227
+ for (;;) {
228
+ const newline = this.stdout.indexOf('\n');
229
+ if (newline < 0)
230
+ return;
231
+ const line = this.stdout.slice(0, newline);
232
+ this.stdout = this.stdout.slice(newline + 1);
233
+ if (line.trim() === '')
234
+ continue;
235
+ try {
236
+ this.handleMessage(JSON.parse(line));
237
+ }
238
+ catch {
239
+ this.handleExit(new Error('native rtc helper sent invalid JSON'));
240
+ }
241
+ }
242
+ }
243
+ handleMessage(message) {
244
+ if ('id' in message) {
245
+ const pending = this.pending.get(message.id);
246
+ if (pending === undefined)
247
+ return;
248
+ this.pending.delete(message.id);
249
+ if (message.ok)
250
+ pending.resolve(message.value);
251
+ else
252
+ pending.reject(new Error(message.error ?? 'native rtc helper command failed'));
253
+ return;
254
+ }
255
+ if (message.event === 'state') {
256
+ this.connectionState = message.connectionState;
257
+ this.iceConnectionState = message.iceConnectionState;
258
+ this.iceGatheringState = message.iceGatheringState;
259
+ this.signalingState = message.signalingState;
260
+ this.onconnectionstatechange?.();
261
+ this.oniceconnectionstatechange?.();
262
+ this.onicegatheringstatechange?.();
263
+ return;
264
+ }
265
+ if (message.event === 'icecandidate') {
266
+ this.onicecandidate?.({ candidate: message.candidate });
267
+ return;
268
+ }
269
+ if (message.event === 'datachannel') {
270
+ const channel = this.channelFor(message.channelId, message.label, message.ordered);
271
+ this.ondatachannel?.({ channel });
272
+ channel.updateState(message.readyState, message.bufferedAmount);
273
+ return;
274
+ }
275
+ if (message.event === 'channel-state') {
276
+ this.channels.get(message.channelId)?.updateState(message.readyState, message.bufferedAmount);
277
+ return;
278
+ }
279
+ if (message.event === 'channel-message') {
280
+ const channel = this.channels.get(message.channelId);
281
+ if (channel === undefined)
282
+ return;
283
+ if (message.text !== undefined)
284
+ channel.emitMessage(message.text);
285
+ else if (message.base64 !== undefined)
286
+ channel.emitMessage(bufferToArrayBuffer(Buffer.from(message.base64, 'base64')));
287
+ return;
288
+ }
289
+ if (message.event === 'channel-error') {
290
+ this.channels.get(message.channelId)?.emitError();
291
+ }
292
+ }
293
+ channelFor(channelId, label, ordered) {
294
+ const existing = this.channels.get(channelId);
295
+ if (existing !== undefined)
296
+ return existing;
297
+ const channel = new ExternalNativeDataChannel(this, channelId, label, ordered);
298
+ this.channels.set(channelId, channel);
299
+ return channel;
300
+ }
301
+ handleExit(error) {
302
+ if (!this.closed)
303
+ this.closed = true;
304
+ const reason = error ?? new Error('native rtc helper exited');
305
+ for (const pending of this.pending.values())
306
+ pending.reject(reason);
307
+ this.pending.clear();
308
+ for (const channel of this.channels.values())
309
+ channel.updateState('closed', 0);
310
+ }
311
+ }
312
+ class ExternalNativeDataChannel {
313
+ owner;
314
+ channelId;
315
+ label;
316
+ ordered;
317
+ readyState = 'connecting';
318
+ bufferedAmount = 0;
319
+ binaryType = 'arraybuffer';
320
+ onopen = null;
321
+ onmessage = null;
322
+ onclose = null;
323
+ onerror = null;
324
+ onbufferedamountlow = null;
325
+ constructor(owner, channelId, label, ordered) {
326
+ this.owner = owner;
327
+ this.channelId = channelId;
328
+ this.label = label;
329
+ this.ordered = ordered;
330
+ }
331
+ send(data) {
332
+ this.owner.sendChannelData(this.channelId, data);
333
+ }
334
+ close() {
335
+ this.owner.closeChannel(this.channelId);
336
+ }
337
+ updateState(readyState, bufferedAmount) {
338
+ const previous = this.readyState;
339
+ this.readyState = readyState;
340
+ this.bufferedAmount = bufferedAmount;
341
+ if (previous !== 'open' && readyState === 'open')
342
+ this.onopen?.();
343
+ if (previous !== 'closed' && readyState === 'closed')
344
+ this.onclose?.();
345
+ if (bufferedAmount === 0)
346
+ this.onbufferedamountlow?.();
347
+ }
348
+ emitMessage(data) {
349
+ this.onmessage?.({ data });
350
+ }
351
+ emitError() {
352
+ this.onerror?.();
353
+ }
354
+ }
355
+ function bufferToArrayBuffer(buffer) {
356
+ return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
357
+ }
358
+ const HELPER_SOURCE = String.raw `
359
+ import { createRequire } from 'node:module'
360
+ import { createInterface } from 'node:readline'
361
+
362
+ const require = createRequire(process.env.DSH_REMOTE_RTC_HELPER_REQUIRE_FROM || (process.cwd() + '/package.json'))
363
+ const wrtc = require('@roamhq/wrtc')
364
+ const RTCPeerConnection = wrtc.RTCPeerConnection ?? wrtc.default?.RTCPeerConnection
365
+ if (typeof RTCPeerConnection !== 'function') throw new Error('missing RTCPeerConnection')
366
+
367
+ let pc
368
+ let nextRemoteChannelId = 100000
369
+ const channels = new Map()
370
+ let chain = Promise.resolve()
371
+
372
+ function send(message) {
373
+ process.stdout.write(JSON.stringify(message) + '\n')
374
+ }
375
+
376
+ function respond(id, ok, value, error) {
377
+ if (id === undefined) return
378
+ send(ok ? { id, ok: true, value } : { id, ok: false, error: String(error?.message ?? error ?? 'command failed') })
379
+ }
380
+
381
+ function state() {
382
+ return {
383
+ event: 'state',
384
+ connectionState: pc?.connectionState ?? 'closed',
385
+ iceConnectionState: pc?.iceConnectionState ?? 'closed',
386
+ iceGatheringState: pc?.iceGatheringState ?? 'complete',
387
+ signalingState: pc?.signalingState ?? 'closed',
388
+ }
389
+ }
390
+
391
+ function emitState() {
392
+ send(state())
393
+ }
394
+
395
+ function normalizeCandidate(candidate) {
396
+ if (candidate === null || candidate === undefined) return null
397
+ if (typeof candidate.toJSON === 'function') return candidate.toJSON()
398
+ return {
399
+ candidate: candidate.candidate,
400
+ sdpMid: candidate.sdpMid,
401
+ sdpMLineIndex: candidate.sdpMLineIndex,
402
+ usernameFragment: candidate.usernameFragment,
403
+ }
404
+ }
405
+
406
+ function attachChannel(channelId, channel) {
407
+ channels.set(channelId, channel)
408
+ try { channel.binaryType = 'arraybuffer' } catch {}
409
+ const emitChannel = () => send({
410
+ event: 'channel-state',
411
+ channelId,
412
+ readyState: channel.readyState,
413
+ bufferedAmount: channel.bufferedAmount ?? 0,
414
+ })
415
+ channel.onopen = emitChannel
416
+ channel.onclose = emitChannel
417
+ channel.onerror = () => send({ event: 'channel-error', channelId })
418
+ channel.onmessage = event => {
419
+ const data = event.data
420
+ if (typeof data === 'string') {
421
+ send({ event: 'channel-message', channelId, text: data })
422
+ return
423
+ }
424
+ send({ event: 'channel-message', channelId, base64: Buffer.from(data).toString('base64') })
425
+ }
426
+ send({
427
+ event: 'datachannel',
428
+ channelId,
429
+ label: channel.label,
430
+ ordered: channel.ordered,
431
+ readyState: channel.readyState,
432
+ bufferedAmount: channel.bufferedAmount ?? 0,
433
+ })
434
+ }
435
+
436
+ function serializeStats(stats) {
437
+ const entries = []
438
+ const push = (key, value) => {
439
+ const copy = {}
440
+ for (const [entryKey, entryValue] of Object.entries(value ?? {})) {
441
+ if (typeof entryValue !== 'function') copy[entryKey] = entryValue
442
+ }
443
+ entries.push([String(key), copy])
444
+ }
445
+ if (typeof stats?.forEach === 'function') stats.forEach((value, key) => push(key, value))
446
+ else for (const [key, value] of stats ?? []) push(key, value)
447
+ return entries
448
+ }
449
+
450
+ async function handle(command) {
451
+ const { id, method, payload = {} } = command
452
+ try {
453
+ if (method === 'init') {
454
+ pc = new RTCPeerConnection({ iceServers: payload.iceServers ?? [] })
455
+ pc.onconnectionstatechange = emitState
456
+ pc.oniceconnectionstatechange = emitState
457
+ pc.onicegatheringstatechange = emitState
458
+ pc.onsignalingstatechange = emitState
459
+ pc.onicecandidate = event => send({ event: 'icecandidate', candidate: normalizeCandidate(event.candidate) })
460
+ pc.ondatachannel = event => attachChannel(nextRemoteChannelId++, event.channel)
461
+ emitState()
462
+ respond(id, true, {})
463
+ return
464
+ }
465
+ if (method === 'createDataChannel') {
466
+ const channel = pc.createDataChannel(payload.label, payload.options)
467
+ attachChannel(payload.channelId, channel)
468
+ respond(id, true, {})
469
+ return
470
+ }
471
+ if (method === 'createOffer') {
472
+ respond(id, true, await pc.createOffer())
473
+ return
474
+ }
475
+ if (method === 'createAnswer') {
476
+ respond(id, true, await pc.createAnswer())
477
+ return
478
+ }
479
+ if (method === 'setLocalDescription') {
480
+ await pc.setLocalDescription(payload.description)
481
+ emitState()
482
+ respond(id, true, {})
483
+ return
484
+ }
485
+ if (method === 'setRemoteDescription') {
486
+ await pc.setRemoteDescription(payload.description)
487
+ emitState()
488
+ respond(id, true, {})
489
+ return
490
+ }
491
+ if (method === 'addIceCandidate') {
492
+ await pc.addIceCandidate(payload.candidate)
493
+ respond(id, true, {})
494
+ return
495
+ }
496
+ if (method === 'getStats') {
497
+ respond(id, true, serializeStats(await pc.getStats()))
498
+ return
499
+ }
500
+ if (method === 'channelSend') {
501
+ const channel = channels.get(payload.channelId)
502
+ if (channel === undefined) throw new Error('unknown data channel')
503
+ channel.send(payload.text ?? Buffer.from(payload.base64, 'base64'))
504
+ respond(id, true, {})
505
+ return
506
+ }
507
+ if (method === 'channelClose') {
508
+ channels.get(payload.channelId)?.close()
509
+ respond(id, true, {})
510
+ return
511
+ }
512
+ if (method === 'close') {
513
+ for (const channel of channels.values()) {
514
+ try { channel.close() } catch {}
515
+ }
516
+ channels.clear()
517
+ try { pc?.close() } catch {}
518
+ respond(id, true, {})
519
+ setTimeout(() => process.exit(0), 0)
520
+ return
521
+ }
522
+ throw new Error('unknown method ' + method)
523
+ } catch (error) {
524
+ respond(id, false, undefined, error)
525
+ }
526
+ }
527
+
528
+ const rl = createInterface({ input: process.stdin })
529
+ rl.on('line', line => {
530
+ chain = chain.then(() => handle(JSON.parse(line))).catch(error => {
531
+ send({ id: -1, ok: false, error: String(error?.message ?? error) })
532
+ })
533
+ })
534
+ process.stdin.on('end', () => {
535
+ try { pc?.close() } catch {}
536
+ process.exit(0)
537
+ })
538
+ `;
539
+ //# sourceMappingURL=native-rtc-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-rtc-helper.js","sourceRoot":"","sources":["../src/native-rtc-helper.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { type RemoteMessage } from '@dsh-remote/protocol';
2
2
  import type { RemoteFileViewerBridge } from './file-viewer-bridge.js';
3
3
  import type { HarnessApiBridge } from './harness-api-bridge.js';
4
4
  import type { SafeLogger } from './logging.js';
5
+ export { RpcError } from './safe-error.js';
5
6
  export declare const HOST_CAPABILITIES: readonly ["harness.api.v1", "harness.api.transfer.v1", "fileviewer.read.v1"];
6
7
  export declare class RpcRouter {
7
8
  private readonly harnessApi;
@@ -14,10 +15,4 @@ export declare class RpcRouter {
14
15
  handle(message: RemoteMessage): Promise<RemoteMessage>;
15
16
  private invoke;
16
17
  }
17
- export declare class RpcError extends Error {
18
- readonly code: string;
19
- readonly details?: unknown | undefined;
20
- readonly retryable: boolean;
21
- constructor(code: string, message: string, details?: unknown | undefined, retryable?: boolean);
22
- }
23
18
  //# sourceMappingURL=rpc-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-router.d.ts","sourceRoot":"","sources":["../src/rpc-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAgB9C,eAAO,MAAM,iBAAiB,8EAA+E,CAAA;AAE7G,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAN9B,OAAO,CAAC,MAAM,CAAI;gBAGC,UAAU,EAAE,gBAAgB,EAC5B,UAAU,SAAM,EAChB,MAAM,CAAC,EAAE,UAAU,YAAA,EACnB,UAAU,CAAC,EAAE,sBAAsB,YAAA;IAGtD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3B,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAqC5D,OAAO,CAAC,MAAM;CAoBf;AAED,qBAAa,QAAS,SAAQ,KAAK;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAmB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO;IAAE,QAAQ,CAAC,SAAS;gBAA7E,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAW,OAAO,CAAC,EAAE,OAAO,YAAA,EAAW,SAAS,UAAQ;CAC3G"}
1
+ {"version":3,"file":"rpc-router.d.ts","sourceRoot":"","sources":["../src/rpc-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAgB1C,eAAO,MAAM,iBAAiB,8EAA+E,CAAA;AAE7G,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAN9B,OAAO,CAAC,MAAM,CAAI;gBAGC,UAAU,EAAE,gBAAgB,EAC5B,UAAU,SAAM,EAChB,MAAM,CAAC,EAAE,UAAU,YAAA,EACnB,UAAU,CAAC,EAAE,sBAAsB,YAAA;IAGtD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3B,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAoC5D,OAAO,CAAC,MAAM;CAoBf"}
@@ -1,5 +1,7 @@
1
1
  import { createRpcError, createRpcResponse, } from '@dsh-remote/protocol';
2
2
  import { z } from 'zod';
3
+ import { RpcError, safeErrorCode } from './safe-error.js';
4
+ export { RpcError } from './safe-error.js';
3
5
  const wireRequestSchema = z.object({ method: z.string().min(1), params: z.unknown() }).strict();
4
6
  const apiMethods = new Set([
5
7
  'harness.api.call',
@@ -58,7 +60,6 @@ export class RpcRouter {
58
60
  durationMs: Math.round(performance.now() - startedAt),
59
61
  code: response.payload.code,
60
62
  retryable: response.payload.retryable,
61
- reason: diagnosticReason(error),
62
63
  });
63
64
  return response;
64
65
  }
@@ -87,26 +88,10 @@ export class RpcRouter {
87
88
  }
88
89
  }
89
90
  }
90
- export class RpcError extends Error {
91
- code;
92
- details;
93
- retryable;
94
- constructor(code, message, details, retryable = false) {
95
- super(message);
96
- this.code = code;
97
- this.details = details;
98
- this.retryable = retryable;
99
- }
100
- }
101
91
  function errorResponse(requestId, error) {
92
+ const code = safeErrorCode(error);
102
93
  if (error instanceof RpcError)
103
- return createRpcError(requestId, error.code, error.message, error.details, error.retryable);
104
- if (error instanceof z.ZodError)
105
- return createRpcError(requestId, 'INVALID_MESSAGE', 'The RPC parameters are invalid.');
106
- return createRpcError(requestId, 'INTERNAL_ERROR', 'The Host could not complete the request.');
107
- }
108
- function diagnosticReason(error) {
109
- const message = error instanceof Error ? error.message : String(error);
110
- return message.replace(/[\r\n]+/g, ' ').slice(0, 160) || 'Unknown Host request failure.';
94
+ return createRpcError(requestId, code, error.message, error.details, error.retryable);
95
+ return createRpcError(requestId, code, code === 'INVALID_MESSAGE' ? 'The RPC parameters are invalid.' : 'The Host could not complete the request.');
111
96
  }
112
97
  //# sourceMappingURL=rpc-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-router.js","sourceRoot":"","sources":["../src/rpc-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-router.js","sourceRoot":"","sources":["../src/rpc-router.ts"],"names":[],"mappings":"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"}