WsChat (ws-chat.ts)

agenticmail · realtime, chat-client, device-auth, ed25519

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