@ozaiya/openclaw-channel 0.10.20 → 0.10.22

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.
@@ -26,7 +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
+ import { createCdpScreencast } from "./sandboxScreenCdp.js";
30
30
  import { WeChatMonitorSession, getMonitor, getAllMonitors } from "./wechatMonitor.js";
31
31
  let sodiumReady = false;
32
32
  async function ensureSodium() {
@@ -456,29 +456,26 @@ export async function startGatewayMode(options) {
456
456
  ack({ ok: true, result: files });
457
457
  }
458
458
  else if (payload.method === 'sandbox-screen-open') {
459
- // Open sandbox browser VNC relayconnect 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}`);
464
- // Find the Docker sandbox container's noVNC port
465
- let port;
466
- if (desktop.isInContainer) {
467
- // In-container mode: connect to local noVNC
468
- port = process.env.NOVNC_PORT || '6080';
469
- }
470
- else
459
+ // Open the bot computer viewManus-style CDP screencast of the sandbox
460
+ // browser's Chromium (JPEG frames over the relay the viewer's canvas).
461
+ // (The old Xvfb+x11vnc+websockify+noVNC RFB path is retired.)
462
+ const { channelId, botId } = payload.params;
463
+ log?.info(`[gateway] sandbox-screen-open channelId=${channelId} botId=${botId} (cdp)`);
464
+ // Resolve the browser container's CDP host:port (the socat-proxied DevTools
465
+ // endpoint). In-container: NOVNC_HOST + CDP port. On host: the mapped 9222.
466
+ let cdpHost = process.env.NOVNC_HOST || 'localhost';
467
+ let cdpPort = Number(process.env.OPENCLAW_BROWSER_CDP_PORT || process.env.CDP_PORT || '9222');
468
+ if (!desktop.isInContainer) {
471
469
  try {
472
470
  const dockerEnvLocal = { ...process.env, PATH: `${process.env.PATH}:/usr/local/bin:/Applications/Docker.app/Contents/Resources/bin` };
473
471
  let output = '';
474
- // Try by label, then by name, then by image (compose-style browser containers).
475
472
  for (const sel of [
476
473
  "--filter 'label=openclaw.sandboxBrowser=1'",
477
474
  "--filter 'name=sandbox-browser'",
478
475
  "--filter 'ancestor=openclaw-sandbox-browser:bookworm-slim'",
479
476
  ]) {
480
477
  try {
481
- output = execSync(`docker port $(docker ps -q ${sel} | head -1) 6080 2>/dev/null`, { timeout: 5000, env: dockerEnvLocal }).toString().trim();
478
+ output = execSync(`docker port $(docker ps -q ${sel} | head -1) 9222 2>/dev/null`, { timeout: 5000, env: dockerEnvLocal }).toString().trim();
482
479
  }
483
480
  catch {
484
481
  output = '';
@@ -486,29 +483,13 @@ export async function startGatewayMode(options) {
486
483
  if (output)
487
484
  break;
488
485
  }
489
- const lastLine = output.split('\n').pop() || output;
490
- port = lastLine.split(':').pop() || '6080';
491
- }
492
- catch {
493
- log?.warn(`[gateway] sandbox-screen: no Docker sandbox container found`);
494
- ack({ ok: false, error: 'No Docker sandbox container found' });
495
- return;
486
+ const mapped = (output.split('\n').pop() || output).split(':').pop();
487
+ if (mapped)
488
+ cdpPort = Number(mapped);
496
489
  }
497
- // Connect to noVNC websockify in the Docker container
498
- const noVncHost = process.env.NOVNC_HOST || 'localhost';
499
- let dockerWs;
500
- try {
501
- const WsModule = await import("ws");
502
- const WsCtor = WsModule.default ?? WsModule;
503
- dockerWs = new WsCtor(`ws://${noVncHost}:${port}/websockify`);
504
- dockerWs.binaryType = "arraybuffer";
505
- }
506
- catch (err) {
507
- log?.warn(`[gateway] sandbox-screen: failed to create WS: ${String(err)}`);
508
- ack({ ok: false, error: `Failed to connect to noVNC: ${String(err)}` });
509
- return;
490
+ catch { /* keep default */ }
510
491
  }
511
- // Open dedicated relay WS back to the server
492
+ // Open the relay WS back to the server.
512
493
  const relayUrl = `${apiBaseUrl.replace(/^http/, 'ws')}/v1/ws-relay/${channelId}/ws?token=${encodeURIComponent(gatewayToken)}`;
513
494
  let relayWs;
514
495
  try {
@@ -518,139 +499,81 @@ export async function startGatewayMode(options) {
518
499
  }
519
500
  catch (err) {
520
501
  log?.warn(`[gateway] sandbox-screen: failed to create relay WS: ${String(err)}`);
521
- try {
522
- dockerWs.close();
523
- }
524
- catch { /* ignore */ }
525
502
  ack({ ok: false, error: `Failed to connect relay WS: ${String(err)}` });
526
503
  return;
527
504
  }
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 = [];
505
+ const entry = { relayWs };
506
+ screenConnections.set(channelId, entry);
536
507
  let relayOpen = false;
508
+ const earlyFrames = [];
537
509
  const cleanupScreen = (reason) => {
538
- const entry = screenConnections.get(channelId);
539
- if (!entry)
510
+ if (!screenConnections.has(channelId))
540
511
  return;
541
512
  screenConnections.delete(channelId);
542
513
  try {
543
- rtc?.close();
514
+ entry.cdp?.close();
544
515
  }
545
516
  catch { /* ignore */ }
546
517
  try {
547
- if (entry.dockerWs.readyState !== 3 /* CLOSED */)
548
- entry.dockerWs.close();
549
- }
550
- catch { /* ignore */ }
551
- try {
552
- if (entry.relayWs.readyState !== 3 /* CLOSED */)
553
- entry.relayWs.close();
518
+ if (relayWs.readyState !== 3 /* CLOSED */)
519
+ relayWs.close();
554
520
  }
555
521
  catch { /* ignore */ }
556
522
  log?.info(`[gateway] sandbox-screen: closed channelId=${channelId} reason=${reason}`);
557
523
  };
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;
524
+ // CDP JPEG frame (binary) / dimensions (text) → viewer over the relay.
525
+ const sendToViewer = (data) => {
526
+ if (relayOpen && relayWs.readyState === 1 /* OPEN */)
527
+ relayWs.send(data);
528
+ else if (typeof data !== 'string')
529
+ earlyFrames.push(data);
566
530
  };
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
- }
593
- dockerWs.on("open", () => {
594
- // Disable Nagle so small RFB messages aren't batched behind ACKs.
595
- try {
596
- dockerWs._socket?.setNoDelay?.(true);
531
+ // Drive Chromium's CDP screencast (async target discovery + WS).
532
+ createCdpScreencast({
533
+ host: cdpHost,
534
+ port: cdpPort,
535
+ onFrame: (jpeg) => sendToViewer(jpeg),
536
+ onMeta: (m) => sendToViewer(JSON.stringify({ type: 'dimensions', width: m.width, height: m.height })),
537
+ log: { info: (m) => log?.info(m), warn: (m) => log?.warn(m) },
538
+ }).then((session) => {
539
+ if (!session) {
540
+ cleanupScreen('cdp-init-failed');
541
+ return;
597
542
  }
598
- catch { /* ignore */ }
599
- log?.info(`[gateway] sandbox-screen: connected to Docker noVNC on port ${port}`);
600
- });
543
+ if (!screenConnections.has(channelId)) {
544
+ session.close();
545
+ return;
546
+ } // closed during init
547
+ entry.cdp = session;
548
+ log?.info(`[gateway] sandbox-screen: CDP screencast started channelId=${channelId} (${cdpHost}:${cdpPort})`);
549
+ }).catch((err) => { log?.warn(`[gateway] sandbox-screen: CDP init error ${String(err)}`); cleanupScreen('cdp-error'); });
601
550
  relayWs.on("open", () => {
602
- // Disable Nagle on the WAN leg to the server (lower input latency).
603
551
  try {
604
552
  relayWs._socket?.setNoDelay?.(true);
605
553
  }
606
554
  catch { /* ignore */ }
607
555
  log?.info(`[gateway] sandbox-screen: relay WS connected channelId=${channelId}`);
608
556
  relayOpen = true;
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 */ }
616
- }
617
- // Pure-relay viewer (old / no werift): start piping VNC immediately.
618
- if (transport === 'relay')
619
- flushToRelay();
620
- });
621
- // Docker noVNC → viewer: route to whichever transport won.
622
- dockerWs.on("message", (data) => {
623
- const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
624
- if (transport === 'rtc') {
625
- rtc?.sendToViewer(buf);
626
- }
627
- else if (transport === 'relay' && relayOpen && relayWs.readyState === 1 /* OPEN */) {
628
- relayWs.send(buf);
629
- }
630
- else {
631
- earlyDockerMsgs.push(buf); // still choosing, or relay not open yet
557
+ for (const f of earlyFrames) {
558
+ if (relayWs.readyState === 1)
559
+ relayWs.send(f);
632
560
  }
561
+ earlyFrames.length = 0;
633
562
  });
634
- // Viewer → docker (over the relay WS). Text frames = WebRTC signaling /
635
- // control; binary frames = raw VNC (the relay fallback path).
563
+ // Viewer → gateway: takeover input as JSON {type:'input'|'viewport-size'}.
564
+ // (Binary input from encodeBinaryInput is handled in a follow-up.)
636
565
  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);
566
+ if (isBinary)
646
567
  return;
568
+ try {
569
+ const msg = JSON.parse((Buffer.isBuffer(data) ? data : Buffer.from(data)).toString());
570
+ if (msg.type === 'input')
571
+ entry.cdp?.handleInput(msg);
572
+ else if (msg.type === 'viewport-size')
573
+ entry.cdp?.resize(Number(msg.width), Number(msg.height));
647
574
  }
648
- if (dockerWs.readyState === 1 /* OPEN */) {
649
- dockerWs.send(Buffer.isBuffer(data) ? data : Buffer.from(data));
650
- }
575
+ catch { /* ignore */ }
651
576
  });
652
- dockerWs.on("close", () => cleanupScreen('docker-ws-close'));
653
- dockerWs.on("error", (err) => cleanupScreen(`docker-ws-error(${err.message})`));
654
577
  relayWs.on("close", () => cleanupScreen('relay-ws-close'));
655
578
  relayWs.on("error", (err) => cleanupScreen(`relay-ws-error(${err.message})`));
656
579
  ack({ ok: true });
@@ -847,7 +770,7 @@ export async function startGatewayMode(options) {
847
770
  return;
848
771
  screenConnections.delete(channelId);
849
772
  try {
850
- if (entry.dockerWs.readyState !== 3 /* CLOSED */)
773
+ if (entry.dockerWs && entry.dockerWs.readyState !== 3 /* CLOSED */)
851
774
  entry.dockerWs.close();
852
775
  }
853
776
  catch { /* ignore */ }
@@ -1046,7 +969,11 @@ export async function startGatewayMode(options) {
1046
969
  sock.on("disconnect", () => {
1047
970
  for (const [, entry] of screenConnections) {
1048
971
  try {
1049
- if (entry.dockerWs.readyState !== 3)
972
+ entry.cdp?.close();
973
+ }
974
+ catch { /* ignore */ }
975
+ try {
976
+ if (entry.dockerWs && entry.dockerWs.readyState !== 3)
1050
977
  entry.dockerWs.close();
1051
978
  }
1052
979
  catch { /* ignore */ }
@@ -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,23 @@
1
+ export interface CdpScreencast {
2
+ /** Forward one viewer input event (the app's `native` `{type:'input',...}`). */
3
+ handleInput: (data: Record<string, unknown>) => void;
4
+ /** Match the screencast resolution to the viewer's viewport (adaptive). */
5
+ resize: (width: number, height: number) => void;
6
+ close: () => void;
7
+ }
8
+ export interface CdpScreencastOptions {
9
+ host: string;
10
+ port: number;
11
+ onFrame: (jpeg: Buffer) => void;
12
+ onMeta?: (m: {
13
+ width: number;
14
+ height: number;
15
+ }) => void;
16
+ quality?: number;
17
+ minIntervalMs?: number;
18
+ log?: {
19
+ info?: (m: string) => void;
20
+ warn?: (m: string) => void;
21
+ };
22
+ }
23
+ export declare function createCdpScreencast(opts: CdpScreencastOptions): Promise<CdpScreencast | null>;
@@ -0,0 +1,159 @@
1
+ /**
2
+ * CDP-screencast source for the bot computer view (Manus-style).
3
+ *
4
+ * Replaces the old VNC stack (Xvfb + x11vnc + websockify + noVNC). Instead of an
5
+ * RFB pixel stream, we drive Chromium's DevTools Protocol `Page.startScreencast`,
6
+ * which emits the page viewport as self-contained JPEG frames — exactly what the
7
+ * Manus / Browserbase / Steel agent-browsers stream. Frames are STATELESS (a
8
+ * dropped/late frame just skips), so they render cleanly over BOTH the relay and a
9
+ * WebRTC DataChannel — unlike the stateful RFB handshake, which stalled over P2P.
10
+ *
11
+ * The viewer renders frames on a canvas (the app's existing `native` JPEG mode) and
12
+ * sends input back; we dispatch that input via CDP `Input.*` for takeover.
13
+ *
14
+ * CDP reachability: Chromium rejects DevTools HTTP/WS whose Host header isn't an IP
15
+ * or `localhost`, so we spoof `Host: localhost` when reaching the browser container
16
+ * over the docker network (verified working — no `--remote-allow-origins` needed; a
17
+ * header-less ws client passes the origin check).
18
+ */
19
+ import http from "node:http";
20
+ /** GET a CDP HTTP endpoint with a spoofed localhost Host header. */
21
+ function cdpGet(host, port, path) {
22
+ return new Promise((resolve, reject) => {
23
+ const req = http.request({ host, port, path, headers: { Host: "localhost" }, timeout: 5000 }, (res) => {
24
+ let body = "";
25
+ res.on("data", (c) => (body += c));
26
+ res.on("end", () => resolve(body));
27
+ });
28
+ req.on("error", reject);
29
+ req.on("timeout", () => { req.destroy(new Error("cdp http timeout")); });
30
+ req.end();
31
+ });
32
+ }
33
+ export async function createCdpScreencast(opts) {
34
+ const { host, port } = opts;
35
+ let pageWsPath;
36
+ try {
37
+ const json = await cdpGet(host, port, "/json");
38
+ const targets = JSON.parse(json);
39
+ const page = targets.find((t) => t.type === "page" && t.webSocketDebuggerUrl);
40
+ if (!page?.webSocketDebuggerUrl) {
41
+ opts.log?.warn?.("[sandbox-cdp] no page target");
42
+ return null;
43
+ }
44
+ // webSocketDebuggerUrl is ws://localhost/devtools/page/<id> (Host we spoofed) —
45
+ // keep only the path and dial the real container host.
46
+ pageWsPath = new URL(page.webSocketDebuggerUrl).pathname;
47
+ }
48
+ catch (err) {
49
+ opts.log?.warn?.(`[sandbox-cdp] target discovery failed: ${String(err)}`);
50
+ return null;
51
+ }
52
+ const WsModule = await import("ws");
53
+ const WS = (WsModule.default ?? WsModule);
54
+ const ws = new WS(`ws://${host}:${port}${pageWsPath}`, { headers: { Host: "localhost" } });
55
+ ws.binaryType = "arraybuffer";
56
+ let cmdId = 1;
57
+ let closed = false;
58
+ const quality = opts.quality ?? 55;
59
+ const minIntervalMs = opts.minIntervalMs ?? 60; // ~16fps ceiling; self-paces below
60
+ const send = (method, params) => {
61
+ const id = cmdId++;
62
+ if (!closed && ws.readyState === 1) {
63
+ try {
64
+ ws.send(JSON.stringify({ id, method, params }));
65
+ }
66
+ catch { /* ignore */ }
67
+ }
68
+ return id;
69
+ };
70
+ // Frame source: POLL Page.captureScreenshot. Page.startScreencast is unreliable on
71
+ // a headed Xvfb/--disable-gpu Chromium (the compositor barely ticks → ~0.5fps), but
72
+ // captureScreenshot FORCES a frame each call (~25fps achievable). Sequential
73
+ // (send the next only after each reply) + a min interval self-paces and caps CPU.
74
+ let shotId = -1;
75
+ let shotStartedAt = 0;
76
+ const poll = () => {
77
+ if (closed)
78
+ return;
79
+ shotStartedAt = Date.now();
80
+ shotId = send("Page.captureScreenshot", { format: "jpeg", quality });
81
+ };
82
+ const scheduleNext = () => {
83
+ if (closed)
84
+ return;
85
+ setTimeout(poll, Math.max(0, minIntervalMs - (Date.now() - shotStartedAt)));
86
+ };
87
+ ws.on("open", () => {
88
+ opts.log?.info?.("[sandbox-cdp] CDP connected — capturing frames");
89
+ send("Page.enable");
90
+ poll();
91
+ });
92
+ ws.on("message", (raw) => {
93
+ let msg;
94
+ try {
95
+ msg = JSON.parse(typeof raw === "string" ? raw : Buffer.from(raw).toString());
96
+ }
97
+ catch {
98
+ return;
99
+ }
100
+ if (msg.id === shotId) {
101
+ const data = msg.result?.data;
102
+ if (data && !closed)
103
+ opts.onFrame(Buffer.from(data, "base64"));
104
+ scheduleNext(); // keep the stream alive whether or not this shot returned data
105
+ }
106
+ });
107
+ ws.on("error", (err) => opts.log?.warn?.(`[sandbox-cdp] ws error: ${err.message}`));
108
+ // Mouse buttons: CDP wants "left"/"middle"/"right"/"none".
109
+ const MOUSE_BUTTON = ["left", "middle", "right"];
110
+ return {
111
+ handleInput: (data) => {
112
+ if (closed)
113
+ return;
114
+ const action = String(data.action ?? data.type ?? "");
115
+ const x = Number(data.x ?? 0), y = Number(data.y ?? 0);
116
+ if (action === "mousemove" || action === "move") {
117
+ send("Input.dispatchMouseEvent", { type: "mouseMoved", x, y });
118
+ }
119
+ else if (action === "mousedown" || action === "down") {
120
+ const b = MOUSE_BUTTON[Number(data.button ?? 0)] ?? "left";
121
+ send("Input.dispatchMouseEvent", { type: "mousePressed", x, y, button: b, buttons: 1, clickCount: 1 });
122
+ }
123
+ else if (action === "mouseup" || action === "up") {
124
+ const b = MOUSE_BUTTON[Number(data.button ?? 0)] ?? "left";
125
+ send("Input.dispatchMouseEvent", { type: "mouseReleased", x, y, button: b, buttons: 0, clickCount: 1 });
126
+ }
127
+ else if (action === "scroll" || action === "wheel") {
128
+ send("Input.dispatchMouseEvent", { type: "mouseWheel", x, y, deltaX: Number(data.deltaX ?? data.dx ?? 0), deltaY: Number(data.deltaY ?? data.delta ?? data.dy ?? 0) });
129
+ }
130
+ else if (action === "keydown") {
131
+ send("Input.dispatchKeyEvent", { type: "keyDown", key: String(data.key ?? ""), code: String(data.code ?? ""), text: typeof data.text === "string" ? data.text : undefined });
132
+ }
133
+ else if (action === "keyup") {
134
+ send("Input.dispatchKeyEvent", { type: "keyUp", key: String(data.key ?? ""), code: String(data.code ?? "") });
135
+ }
136
+ },
137
+ resize: (width, height) => {
138
+ if (closed || !width || !height)
139
+ return;
140
+ // Match the page viewport to the viewer so captureScreenshot frames have the
141
+ // right aspect (adaptive resolution).
142
+ const w = Math.min(Math.max(Math.round(width), 320), 1920);
143
+ const h = Math.min(Math.max(Math.round(height), 240), 1200);
144
+ send("Emulation.setDeviceMetricsOverride", { width: w, height: h, deviceScaleFactor: 1, mobile: false });
145
+ },
146
+ close: () => {
147
+ closed = true;
148
+ try {
149
+ send("Page.stopScreencast");
150
+ }
151
+ catch { /* ignore */ }
152
+ try {
153
+ ws.close();
154
+ }
155
+ catch { /* ignore */ }
156
+ },
157
+ };
158
+ }
159
+ //# sourceMappingURL=sandboxScreenCdp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandboxScreenCdp.js","sourceRoot":"","sources":["../../src/sandboxScreenCdp.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "id": "ozaiya",
3
- "channels": ["ozaiya"],
3
+ "channels": [
4
+ "ozaiya"
5
+ ],
4
6
  "configSchema": {
7
+ "$schema": "http://json-schema.org/draft-07/schema#",
5
8
  "type": "object",
6
9
  "additionalProperties": false,
7
10
  "properties": {
@@ -23,6 +26,50 @@
23
26
  "webhookPath": {
24
27
  "type": "string"
25
28
  },
29
+ "webhookBase": {
30
+ "type": "string"
31
+ },
32
+ "botWebhookBases": {
33
+ "type": "object",
34
+ "additionalProperties": {
35
+ "type": "string"
36
+ }
37
+ },
38
+ "userToken": {
39
+ "type": "string"
40
+ },
41
+ "provisionSecret": {
42
+ "type": "string"
43
+ },
44
+ "gatewayName": {
45
+ "type": "string"
46
+ },
47
+ "dmPolicy": {
48
+ "type": "string",
49
+ "enum": [
50
+ "allow",
51
+ "deny",
52
+ "allowlist"
53
+ ]
54
+ },
55
+ "imageGeneration": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "properties": {
59
+ "apiBaseUrl": {
60
+ "type": "string"
61
+ },
62
+ "apiKey": {
63
+ "type": "string"
64
+ },
65
+ "model": {
66
+ "type": "string"
67
+ },
68
+ "defaultSize": {
69
+ "type": "string"
70
+ }
71
+ }
72
+ },
26
73
  "accounts": {
27
74
  "type": "object",
28
75
  "additionalProperties": {
@@ -44,14 +91,88 @@
44
91
  "webhookPath": {
45
92
  "type": "string"
46
93
  },
47
- "stt": {
48
- "$ref": "#/$defs/stt"
94
+ "model": {
95
+ "type": "string"
49
96
  }
50
97
  }
51
98
  }
52
99
  },
53
100
  "stt": {
54
101
  "$ref": "#/$defs/stt"
102
+ },
103
+ "yuanbao": {
104
+ "type": "object",
105
+ "additionalProperties": false,
106
+ "properties": {
107
+ "cookieFile": {
108
+ "type": "string"
109
+ },
110
+ "cookies": {
111
+ "type": "string"
112
+ },
113
+ "agentId": {
114
+ "type": "string"
115
+ },
116
+ "chatModelId": {
117
+ "type": "string"
118
+ }
119
+ }
120
+ },
121
+ "doubao": {
122
+ "type": "object",
123
+ "additionalProperties": false,
124
+ "properties": {
125
+ "apiBaseUrl": {
126
+ "type": "string"
127
+ },
128
+ "apiKey": {
129
+ "type": "string"
130
+ },
131
+ "model": {
132
+ "type": "string"
133
+ },
134
+ "timeoutMs": {
135
+ "type": "integer",
136
+ "minimum": 10000
137
+ }
138
+ }
139
+ },
140
+ "xueqiu": {
141
+ "type": "object",
142
+ "additionalProperties": false,
143
+ "properties": {
144
+ "cookies": {
145
+ "type": "string"
146
+ },
147
+ "cookieFile": {
148
+ "type": "string"
149
+ },
150
+ "maxComments": {
151
+ "type": "integer",
152
+ "minimum": 1
153
+ },
154
+ "timeoutMs": {
155
+ "type": "integer",
156
+ "minimum": 5000
157
+ }
158
+ }
159
+ },
160
+ "socialMedia": {
161
+ "type": "object",
162
+ "additionalProperties": false,
163
+ "properties": {
164
+ "apiBaseUrl": {
165
+ "type": "string"
166
+ },
167
+ "maxComments": {
168
+ "type": "integer",
169
+ "minimum": 0
170
+ },
171
+ "timeoutMs": {
172
+ "type": "integer",
173
+ "minimum": 5000
174
+ }
175
+ }
55
176
  }
56
177
  },
57
178
  "$defs": {
@@ -61,7 +182,13 @@
61
182
  "properties": {
62
183
  "mode": {
63
184
  "type": "string",
64
- "enum": ["disabled", "openai", "local-command"]
185
+ "enum": [
186
+ "disabled",
187
+ "enabled"
188
+ ]
189
+ },
190
+ "url": {
191
+ "type": "string"
65
192
  },
66
193
  "timeoutMs": {
67
194
  "type": "integer",
@@ -70,31 +197,207 @@
70
197
  "maxDurationSeconds": {
71
198
  "type": "integer",
72
199
  "minimum": 1
200
+ }
201
+ }
202
+ }
203
+ }
204
+ },
205
+ "channelConfigs": {
206
+ "ozaiya": {
207
+ "schema": {
208
+ "$schema": "http://json-schema.org/draft-07/schema#",
209
+ "type": "object",
210
+ "additionalProperties": false,
211
+ "properties": {
212
+ "enabled": {
213
+ "type": "boolean"
214
+ },
215
+ "botToken": {
216
+ "type": "string"
217
+ },
218
+ "botPrivateKey": {
219
+ "type": "string"
220
+ },
221
+ "webhookSecret": {
222
+ "type": "string"
223
+ },
224
+ "apiBaseUrl": {
225
+ "type": "string"
226
+ },
227
+ "webhookPath": {
228
+ "type": "string"
229
+ },
230
+ "webhookBase": {
231
+ "type": "string"
232
+ },
233
+ "botWebhookBases": {
234
+ "type": "object",
235
+ "additionalProperties": {
236
+ "type": "string"
237
+ }
238
+ },
239
+ "userToken": {
240
+ "type": "string"
241
+ },
242
+ "provisionSecret": {
243
+ "type": "string"
244
+ },
245
+ "gatewayName": {
246
+ "type": "string"
247
+ },
248
+ "dmPolicy": {
249
+ "type": "string",
250
+ "enum": [
251
+ "allow",
252
+ "deny",
253
+ "allowlist"
254
+ ]
255
+ },
256
+ "imageGeneration": {
257
+ "type": "object",
258
+ "additionalProperties": false,
259
+ "properties": {
260
+ "apiBaseUrl": {
261
+ "type": "string"
262
+ },
263
+ "apiKey": {
264
+ "type": "string"
265
+ },
266
+ "model": {
267
+ "type": "string"
268
+ },
269
+ "defaultSize": {
270
+ "type": "string"
271
+ }
272
+ }
273
+ },
274
+ "accounts": {
275
+ "type": "object",
276
+ "additionalProperties": {
277
+ "type": "object",
278
+ "additionalProperties": false,
279
+ "properties": {
280
+ "enabled": {
281
+ "type": "boolean"
282
+ },
283
+ "botToken": {
284
+ "type": "string"
285
+ },
286
+ "botPrivateKey": {
287
+ "type": "string"
288
+ },
289
+ "webhookSecret": {
290
+ "type": "string"
291
+ },
292
+ "webhookPath": {
293
+ "type": "string"
294
+ },
295
+ "model": {
296
+ "type": "string"
297
+ }
298
+ }
299
+ }
73
300
  },
74
- "openai": {
301
+ "stt": {
302
+ "$ref": "#/$defs/stt"
303
+ },
304
+ "yuanbao": {
305
+ "type": "object",
306
+ "additionalProperties": false,
307
+ "properties": {
308
+ "cookieFile": {
309
+ "type": "string"
310
+ },
311
+ "cookies": {
312
+ "type": "string"
313
+ },
314
+ "agentId": {
315
+ "type": "string"
316
+ },
317
+ "chatModelId": {
318
+ "type": "string"
319
+ }
320
+ }
321
+ },
322
+ "doubao": {
323
+ "type": "object",
324
+ "additionalProperties": false,
325
+ "properties": {
326
+ "apiBaseUrl": {
327
+ "type": "string"
328
+ },
329
+ "apiKey": {
330
+ "type": "string"
331
+ },
332
+ "model": {
333
+ "type": "string"
334
+ },
335
+ "timeoutMs": {
336
+ "type": "integer",
337
+ "minimum": 10000
338
+ }
339
+ }
340
+ },
341
+ "xueqiu": {
75
342
  "type": "object",
76
343
  "additionalProperties": false,
77
344
  "properties": {
78
- "apiKey": { "type": "string" },
79
- "baseUrl": { "type": "string" },
80
- "model": { "type": "string" },
81
- "organization": { "type": "string" },
82
- "project": { "type": "string" }
345
+ "cookies": {
346
+ "type": "string"
347
+ },
348
+ "cookieFile": {
349
+ "type": "string"
350
+ },
351
+ "maxComments": {
352
+ "type": "integer",
353
+ "minimum": 1
354
+ },
355
+ "timeoutMs": {
356
+ "type": "integer",
357
+ "minimum": 5000
358
+ }
83
359
  }
84
360
  },
85
- "localCommand": {
361
+ "socialMedia": {
86
362
  "type": "object",
87
363
  "additionalProperties": false,
88
364
  "properties": {
89
- "command": { "type": "string" },
90
- "args": {
91
- "type": "array",
92
- "items": { "type": "string" }
93
- },
94
- "cwd": { "type": "string" },
95
- "env": {
96
- "type": "object",
97
- "additionalProperties": { "type": "string" }
365
+ "apiBaseUrl": {
366
+ "type": "string"
367
+ },
368
+ "maxComments": {
369
+ "type": "integer",
370
+ "minimum": 0
371
+ },
372
+ "timeoutMs": {
373
+ "type": "integer",
374
+ "minimum": 5000
375
+ }
376
+ }
377
+ }
378
+ },
379
+ "$defs": {
380
+ "stt": {
381
+ "type": "object",
382
+ "additionalProperties": false,
383
+ "properties": {
384
+ "mode": {
385
+ "type": "string",
386
+ "enum": [
387
+ "disabled",
388
+ "enabled"
389
+ ]
390
+ },
391
+ "url": {
392
+ "type": "string"
393
+ },
394
+ "timeoutMs": {
395
+ "type": "integer",
396
+ "minimum": 1
397
+ },
398
+ "maxDurationSeconds": {
399
+ "type": "integer",
400
+ "minimum": 1
98
401
  }
99
402
  }
100
403
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozaiya/openclaw-channel",
3
- "version": "0.10.20",
3
+ "version": "0.10.22",
4
4
  "description": "OpenClaw channel plugin for Ozaiya Chat",
5
5
  "license": "MIT",
6
6
  "type": "module",