WebSocket chat client for OpenClaw Gateway. Uses device auth (Ed25519 keypair) for full scope access. /
/**
* WebSocket chat client for OpenClaw Gateway.
* Uses device auth (Ed25519 keypair) for full scope access.
*/
import { createPrivateKey, createPublicKey, sign, createHash, generateKeyPairSync, randomUUID } from 'node:crypto';
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
import { join, dirname } from 'node:path';
const PROTOCOL_VERSION = 3;
interface DeviceIdentity {
deviceId: string;
publicKeyPem: string;
privateKeyPem: string;
}
interface WsChatOptions {
gatewayUrl: string;
token: string;
sessionKey?: string;
}
interface ChatResponse {
text: string;
done: boolean;
error?: string;
}
// --- Device Identity ---
function base64UrlEncode(buf: Buffer): string {
return buf.toString('base64').replace(/\+/g, '-').replace(/\//g, '_')
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key