@ozaiya/openclaw-channel 0.10.18 → 0.10.20

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.
@@ -32,6 +32,9 @@ export declare const ozaiyaPluginConfigSchema: {
32
32
  readonly userToken: {
33
33
  readonly type: "string";
34
34
  };
35
+ readonly provisionSecret: {
36
+ readonly type: "string";
37
+ };
35
38
  readonly gatewayName: {
36
39
  readonly type: "string";
37
40
  };
@@ -32,6 +32,9 @@ export const ozaiyaPluginConfigSchema = {
32
32
  userToken: {
33
33
  type: "string",
34
34
  },
35
+ provisionSecret: {
36
+ type: "string",
37
+ },
35
38
  gatewayName: {
36
39
  type: "string",
37
40
  },
@@ -1 +1 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/configSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/configSchema.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ import { decryptBox } from "./crypto.js";
26
26
  import { resolveOzaiyaSttConfig } from "./transcribeAudio.js";
27
27
  import * as desktop from "./desktopContainer.js";
28
28
  import { createSandboxFileSession, handleSandboxFileMessage } from "./sandboxFileTransfer.js";
29
+ import { createSandboxRtcSession } from "./sandboxScreenRtc.js";
29
30
  import { WeChatMonitorSession, getMonitor, getAllMonitors } from "./wechatMonitor.js";
30
31
  let sodiumReady = false;
31
32
  async function ensureSodium() {
@@ -118,6 +119,35 @@ async function registerGateway(apiBaseUrl, userToken, id, publicKey, name, webho
118
119
  const data = (await res.json());
119
120
  return data.gatewayToken;
120
121
  }
122
+ /**
123
+ * Register a FLEET/system gateway via the scoped internal endpoint (no per-user JWT).
124
+ * Auth is the shared x-provision-secret (== ozaiya's PROVISION_CALLBACK_SECRET). The row is created
125
+ * under the system account; the returned gatewayToken is bound to this gateway id, so the node polls
126
+ * GET /v1/gateways/:id/bots with it and decrypts configs with its own keypair. Mirrors registerGateway.
127
+ */
128
+ async function registerGatewayInternal(apiBaseUrl, provisionSecret, id, publicKey, name, webhookBase) {
129
+ const sodium = await ensureSodium();
130
+ const res = await fetch(`${apiBaseUrl}/v1/internal/gateways`, {
131
+ method: "POST",
132
+ headers: {
133
+ "Content-Type": "application/json",
134
+ "x-provision-secret": provisionSecret,
135
+ },
136
+ body: JSON.stringify({
137
+ id,
138
+ name,
139
+ publicKey: sodium.to_base64(publicKey, sodium.base64_variants.ORIGINAL),
140
+ ...(webhookBase ? { webhookBase } : {}),
141
+ }),
142
+ signal: AbortSignal.timeout(15_000),
143
+ });
144
+ if (!res.ok) {
145
+ const text = await res.text().catch(() => "");
146
+ throw new Error(`Gateway internal-registration failed ${res.status}: ${text}`);
147
+ }
148
+ const data = (await res.json());
149
+ return data.gatewayToken;
150
+ }
121
151
  /**
122
152
  * Fetch encrypted bot configs and decrypt them using the gateway's private key.
123
153
  * Also bumps Gateway.lastSeenAt on the server side.
@@ -204,6 +234,7 @@ async function updateGatewayWebhookBase(apiBaseUrl, gatewayId, gatewayToken, web
204
234
  export async function startGatewayMode(options) {
205
235
  const { channelCfg, stateDir, abortSignal, onBotsChanged, onWebhookEvent, log } = options;
206
236
  const apiBaseUrl = channelCfg.apiBaseUrl ?? DEFAULT_API_BASE_URL;
237
+ const provisionSecret = channelCfg.provisionSecret;
207
238
  const userToken = channelCfg.userToken;
208
239
  const gatewayName = channelCfg.gatewayName ?? "OpenClaw Gateway";
209
240
  const webhookBase = channelCfg.webhookBase ?? process.env.OZAIYA_WEBHOOK_BASE;
@@ -212,11 +243,21 @@ export async function startGatewayMode(options) {
212
243
  // Load or generate keypair
213
244
  const keypair = await loadOrGenerateGatewayKeypair(stateDir);
214
245
  log?.info(`[gateway] id=${keypair.id}`);
215
- // Register with server using user's token
246
+ // Register with the server. A fleet/system node uses the scoped internal endpoint (shared secret);
247
+ // a user-owned gateway uses the public endpoint (user JWT). Either yields this gateway's poll token.
216
248
  let gatewayToken;
217
249
  try {
218
- gatewayToken = await registerGateway(apiBaseUrl, userToken, keypair.id, keypair.publicKey, gatewayName, webhookBase);
219
- log?.info(`[gateway] registered successfully`);
250
+ if (provisionSecret) {
251
+ gatewayToken = await registerGatewayInternal(apiBaseUrl, provisionSecret, keypair.id, keypair.publicKey, gatewayName, webhookBase);
252
+ log?.info(`[gateway] registered (system/internal endpoint)`);
253
+ }
254
+ else if (userToken) {
255
+ gatewayToken = await registerGateway(apiBaseUrl, userToken, keypair.id, keypair.publicKey, gatewayName, webhookBase);
256
+ log?.info(`[gateway] registered successfully`);
257
+ }
258
+ else {
259
+ throw new Error("gateway mode needs channels.ozaiya.userToken or channels.ozaiya.provisionSecret");
260
+ }
220
261
  }
221
262
  catch (err) {
222
263
  log?.warn(`[gateway] registration failed: ${String(err)}`);
@@ -415,9 +456,11 @@ export async function startGatewayMode(options) {
415
456
  ack({ ok: true, result: files });
416
457
  }
417
458
  else if (payload.method === 'sandbox-screen-open') {
418
- // Open sandbox browser VNC relay — connect to Docker noVNC + relay WS back to server
419
- const { channelId, botId } = payload.params;
420
- log?.info(`[gateway] sandbox-screen-open channelId=${channelId} botId=${botId}`);
459
+ // Open sandbox browser VNC relay — connect to Docker noVNC + relay WS back to server.
460
+ // supportsRtc/iceServers are capability-gated by the server (only set when the
461
+ // viewer asked for WebRTC), so old viewers transparently keep the raw relay.
462
+ const { channelId, botId, supportsRtc, iceServers } = payload.params;
463
+ log?.info(`[gateway] sandbox-screen-open channelId=${channelId} botId=${botId} rtc=${!!supportsRtc}`);
421
464
  // Find the Docker sandbox container's noVNC port
422
465
  let port;
423
466
  if (desktop.isInContainer) {
@@ -483,11 +526,23 @@ export async function startGatewayMode(options) {
483
526
  return;
484
527
  }
485
528
  screenConnections.set(channelId, { dockerWs, relayWs });
529
+ // Transport ladder: 'rtc' = VNC over the WebRTC DataChannel (P2P/TURN),
530
+ // 'relay' = raw-binary over the relay WS (the original path), 'none' =
531
+ // still negotiating (buffer noVNC's opening bytes — x11vnc waits ~20s for
532
+ // the client handshake, which comfortably covers ICE).
533
+ let transport = supportsRtc ? 'none' : 'relay';
534
+ let rtc = null;
535
+ const earlyDockerMsgs = [];
536
+ let relayOpen = false;
486
537
  const cleanupScreen = (reason) => {
487
538
  const entry = screenConnections.get(channelId);
488
539
  if (!entry)
489
540
  return;
490
541
  screenConnections.delete(channelId);
542
+ try {
543
+ rtc?.close();
544
+ }
545
+ catch { /* ignore */ }
491
546
  try {
492
547
  if (entry.dockerWs.readyState !== 3 /* CLOSED */)
493
548
  entry.dockerWs.close();
@@ -500,6 +555,41 @@ export async function startGatewayMode(options) {
500
555
  catch { /* ignore */ }
501
556
  log?.info(`[gateway] sandbox-screen: closed channelId=${channelId} reason=${reason}`);
502
557
  };
558
+ const flushToRelay = () => {
559
+ if (!relayOpen)
560
+ return;
561
+ for (const m of earlyDockerMsgs) {
562
+ if (relayWs.readyState === 1)
563
+ relayWs.send(m);
564
+ }
565
+ earlyDockerMsgs.length = 0;
566
+ };
567
+ if (supportsRtc) {
568
+ rtc = createSandboxRtcSession({
569
+ iceServers,
570
+ sendSignal: (text) => { try {
571
+ if (relayWs.readyState === 1)
572
+ relayWs.send(text);
573
+ }
574
+ catch { /* ignore */ } },
575
+ onData: (buf) => { try {
576
+ if (dockerWs.readyState === 1)
577
+ dockerWs.send(buf);
578
+ }
579
+ catch { /* ignore */ } },
580
+ onActive: () => {
581
+ transport = 'rtc';
582
+ log?.info(`[gateway] sandbox-screen: P2P DataChannel active channelId=${channelId}`);
583
+ for (const m of earlyDockerMsgs)
584
+ rtc?.sendToViewer(m);
585
+ earlyDockerMsgs.length = 0;
586
+ },
587
+ onClosed: () => { },
588
+ log: { info: (m) => log?.info(m), warn: (m) => log?.warn(m) },
589
+ });
590
+ if (!rtc)
591
+ transport = 'relay'; // werift unavailable → straight to relay
592
+ }
503
593
  dockerWs.on("open", () => {
504
594
  // Disable Nagle so small RFB messages aren't batched behind ACKs.
505
595
  try {
@@ -508,12 +598,6 @@ export async function startGatewayMode(options) {
508
598
  catch { /* ignore */ }
509
599
  log?.info(`[gateway] sandbox-screen: connected to Docker noVNC on port ${port}`);
510
600
  });
511
- // Buffer Docker messages until relay WS is open.
512
- // Docker noVNC sends the VNC handshake immediately on connect (local, fast),
513
- // but relay WS (over internet) may not be open yet. Without buffering, the
514
- // handshake is dropped and the VNC server times out waiting for a response.
515
- const earlyDockerMsgs = [];
516
- let relayOpen = false;
517
601
  relayWs.on("open", () => {
518
602
  // Disable Nagle on the WAN leg to the server (lower input latency).
519
603
  try {
@@ -522,23 +606,45 @@ export async function startGatewayMode(options) {
522
606
  catch { /* ignore */ }
523
607
  log?.info(`[gateway] sandbox-screen: relay WS connected channelId=${channelId}`);
524
608
  relayOpen = true;
525
- for (const msg of earlyDockerMsgs) {
526
- if (relayWs.readyState === 1)
527
- relayWs.send(msg);
609
+ // Tell an RTC-capable viewer the relay is paired so it can send its offer
610
+ // (avoids the offer racing ahead of pairing and being dropped).
611
+ if (rtc) {
612
+ try {
613
+ relayWs.send(JSON.stringify({ type: 'rtc-ready' }));
614
+ }
615
+ catch { /* ignore */ }
528
616
  }
529
- earlyDockerMsgs.length = 0;
617
+ // Pure-relay viewer (old / no werift): start piping VNC immediately.
618
+ if (transport === 'relay')
619
+ flushToRelay();
530
620
  });
531
- // Raw binary pipe: Docker noVNC relay WS (server browser)
621
+ // Docker noVNC viewer: route to whichever transport won.
532
622
  dockerWs.on("message", (data) => {
533
623
  const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
534
- if (relayOpen && relayWs.readyState === 1 /* OPEN */) {
624
+ if (transport === 'rtc') {
625
+ rtc?.sendToViewer(buf);
626
+ }
627
+ else if (transport === 'relay' && relayOpen && relayWs.readyState === 1 /* OPEN */) {
535
628
  relayWs.send(buf);
536
629
  }
537
630
  else {
538
- earlyDockerMsgs.push(buf);
631
+ earlyDockerMsgs.push(buf); // still choosing, or relay not open yet
539
632
  }
540
633
  });
541
- relayWs.on("message", (data) => {
634
+ // Viewer → docker (over the relay WS). Text frames = WebRTC signaling /
635
+ // control; binary frames = raw VNC (the relay fallback path).
636
+ relayWs.on("message", (data, isBinary) => {
637
+ if (rtc && !isBinary) {
638
+ const text = (Buffer.isBuffer(data) ? data : Buffer.from(data)).toString();
639
+ if (text.includes('"rtc-fallback"')) {
640
+ // Viewer gave up on P2P → commit to the relay and release the buffer.
641
+ transport = 'relay';
642
+ flushToRelay();
643
+ return;
644
+ }
645
+ rtc.handleSignaling(text);
646
+ return;
647
+ }
542
648
  if (dockerWs.readyState === 1 /* OPEN */) {
543
649
  dockerWs.send(Buffer.isBuffer(data) ? data : Buffer.from(data));
544
650
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export interface SandboxRtcSession {
2
+ /** Feed an inbound signaling message (JSON text from the viewer). */
3
+ handleSignaling: (text: string) => void;
4
+ /** Send one VNC chunk (noVNC → viewer) over the DataChannel. */
5
+ sendToViewer: (buf: Buffer) => void;
6
+ /** True once the DataChannel is open (P2P is carrying the VNC stream). */
7
+ isActive: () => boolean;
8
+ /** Tear down the peer connection. */
9
+ close: () => void;
10
+ }
11
+ export interface SandboxRtcOptions {
12
+ /** STUN/TURN servers (from the server's sandbox-screen-open params). */
13
+ iceServers?: Array<{
14
+ urls: string | string[];
15
+ username?: string;
16
+ credential?: string;
17
+ }>;
18
+ /** Emit a signaling message (JSON text) back to the viewer over the relay WS. */
19
+ sendSignal: (text: string) => void;
20
+ /** Inbound VNC chunk from the viewer (DataChannel → noVNC). */
21
+ onData: (buf: Buffer) => void;
22
+ /** DataChannel opened — P2P is live; stop using the relay for VNC. */
23
+ onActive: () => void;
24
+ /** DataChannel closed / peer failed before it ever opened. */
25
+ onClosed: () => void;
26
+ log?: {
27
+ info?: (m: string) => void;
28
+ warn?: (m: string) => void;
29
+ };
30
+ }
31
+ /**
32
+ * Create an answerer WebRTC session for one viewer. Returns null when werift is
33
+ * unavailable so the caller transparently falls back to the relay pipe.
34
+ */
35
+ export declare function createSandboxRtcSession(opts: SandboxRtcOptions): SandboxRtcSession | null;
@@ -0,0 +1,156 @@
1
+ /**
2
+ * WebRTC P2P transport for the bot sandbox computer view (RustDesk-style direct tier).
3
+ *
4
+ * Normally the bot screen is relayed: browser → server → gateway → noVNC. This adds
5
+ * a direct tier — the viewer and this plugin negotiate a WebRTC DataChannel (P2P when
6
+ * the NAT allows it, TURN via coturn otherwise) and the plugin bridges that channel ↔
7
+ * the local noVNC websockify, so the actual VNC bytes skip the cloud relay.
8
+ *
9
+ * Transport ladder: P2P DataChannel → TURN → raw-binary relay (the existing path).
10
+ * Signaling rides the existing sandbox-screen relay WS as JSON **text**; raw-binary
11
+ * VNC over the same WS stays the fallback, so the server never has to parse anything.
12
+ *
13
+ * The viewer is the OFFERER (mirrors the machine-screen path); this plugin is the
14
+ * ANSWERER. `werift` is pure-TS (no native build) and loaded lazily, so a gateway
15
+ * without it simply keeps using the relay.
16
+ */
17
+ import { createRequire } from "node:module";
18
+ const esmRequire = createRequire(import.meta.url);
19
+ let weriftModule;
20
+ function getWerift() {
21
+ if (weriftModule === undefined) {
22
+ try {
23
+ weriftModule = esmRequire("werift");
24
+ }
25
+ catch {
26
+ weriftModule = null;
27
+ }
28
+ }
29
+ return weriftModule;
30
+ }
31
+ /**
32
+ * Create an answerer WebRTC session for one viewer. Returns null when werift is
33
+ * unavailable so the caller transparently falls back to the relay pipe.
34
+ */
35
+ export function createSandboxRtcSession(opts) {
36
+ const werift = getWerift();
37
+ if (!werift) {
38
+ opts.log?.warn?.("[sandbox-rtc] werift not available; relay only");
39
+ return null;
40
+ }
41
+ const iceServers = opts.iceServers && opts.iceServers.length
42
+ ? opts.iceServers
43
+ : [{ urls: "stun:stun.l.google.com:19302" }];
44
+ let pc;
45
+ let dc = null;
46
+ let active = false;
47
+ let closed = false;
48
+ try {
49
+ pc = new werift.RTCPeerConnection({ iceServers });
50
+ }
51
+ catch (err) {
52
+ opts.log?.warn?.(`[sandbox-rtc] failed to create peer: ${String(err)}`);
53
+ return null;
54
+ }
55
+ pc.onIceCandidate.subscribe((candidate) => {
56
+ if (!candidate || closed)
57
+ return;
58
+ opts.sendSignal(JSON.stringify({
59
+ type: "rtc-ice",
60
+ candidate: JSON.stringify({
61
+ candidate: candidate.candidate,
62
+ sdpMid: candidate.sdpMid ?? null,
63
+ sdpMLineIndex: candidate.sdpMLineIndex ?? null,
64
+ }),
65
+ }));
66
+ });
67
+ pc.connectionStateChange.subscribe((state) => {
68
+ // Terminal failure before the channel ever opened → let the caller keep the
69
+ // relay alive (it does anyway). 'disconnected' may recover, so ignore it.
70
+ if ((state === "failed" || state === "closed") && !active && !closed) {
71
+ opts.onClosed();
72
+ }
73
+ });
74
+ pc.onDataChannel.subscribe((channel) => {
75
+ dc = channel;
76
+ opts.log?.info?.(`[sandbox-rtc] onDataChannel readyState=${channel.readyState}`);
77
+ channel.onMessage.subscribe((msg) => {
78
+ if (closed)
79
+ return;
80
+ opts.onData(Buffer.isBuffer(msg) ? msg : Buffer.from(msg));
81
+ });
82
+ const markOpen = () => {
83
+ if (active || closed)
84
+ return;
85
+ active = true;
86
+ opts.log?.info?.("[sandbox-rtc] DataChannel open — P2P carrying VNC");
87
+ opts.onActive();
88
+ };
89
+ channel.stateChanged.subscribe((state) => {
90
+ if (state === "open")
91
+ markOpen();
92
+ else if (state === "closed") {
93
+ active = false;
94
+ if (!closed)
95
+ opts.onClosed();
96
+ }
97
+ });
98
+ // werift may hand over an ALREADY-open channel (more likely over the slower
99
+ // TURN-relayed path) — stateChanged won't re-fire 'open', so check now.
100
+ if (channel.readyState === "open")
101
+ markOpen();
102
+ });
103
+ async function handleOffer(sdp) {
104
+ await pc.setRemoteDescription({ type: "offer", sdp });
105
+ const answer = await pc.createAnswer();
106
+ await pc.setLocalDescription(answer);
107
+ opts.sendSignal(JSON.stringify({ type: "rtc-answer", sdp: pc.localDescription?.sdp ?? answer.sdp }));
108
+ }
109
+ async function handleIce(candidate) {
110
+ const parsed = typeof candidate === "string" ? JSON.parse(candidate) : candidate;
111
+ await pc.addIceCandidate(parsed);
112
+ }
113
+ return {
114
+ handleSignaling: (text) => {
115
+ if (closed)
116
+ return;
117
+ let msg;
118
+ try {
119
+ msg = JSON.parse(text);
120
+ }
121
+ catch {
122
+ return;
123
+ }
124
+ if (msg?.type === "rtc-offer" && typeof msg.sdp === "string") {
125
+ handleOffer(msg.sdp).catch((e) => opts.log?.warn?.(`[sandbox-rtc] offer error: ${String(e)}`));
126
+ }
127
+ else if (msg?.type === "rtc-ice" && msg.candidate) {
128
+ handleIce(msg.candidate).catch((e) => opts.log?.warn?.(`[sandbox-rtc] ice error: ${String(e)}`));
129
+ }
130
+ },
131
+ sendToViewer: (buf) => {
132
+ if (!active || !dc)
133
+ return;
134
+ try {
135
+ dc.send(buf);
136
+ }
137
+ catch {
138
+ /* channel closing */
139
+ }
140
+ },
141
+ isActive: () => active,
142
+ close: () => {
143
+ closed = true;
144
+ active = false;
145
+ try {
146
+ dc?.close?.();
147
+ }
148
+ catch { /* ignore */ }
149
+ try {
150
+ pc?.close?.();
151
+ }
152
+ catch { /* ignore */ }
153
+ },
154
+ };
155
+ }
156
+ //# sourceMappingURL=sandboxScreenRtc.js.map