agent-relay 3.1.7 → 3.1.9

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 (38) hide show
  1. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  2. package/bin/agent-relay-broker-darwin-x64 +0 -0
  3. package/bin/agent-relay-broker-linux-arm64 +0 -0
  4. package/bin/agent-relay-broker-linux-x64 +0 -0
  5. package/package.json +8 -8
  6. package/packages/acp-bridge/package.json +2 -2
  7. package/packages/config/package.json +1 -1
  8. package/packages/hooks/package.json +4 -4
  9. package/packages/memory/package.json +2 -2
  10. package/packages/openclaw/dist/__tests__/ws-client.test.js +69 -0
  11. package/packages/openclaw/dist/__tests__/ws-client.test.js.map +1 -1
  12. package/packages/openclaw/dist/cli.js +8 -1
  13. package/packages/openclaw/dist/cli.js.map +1 -1
  14. package/packages/openclaw/dist/config.d.ts +6 -2
  15. package/packages/openclaw/dist/config.d.ts.map +1 -1
  16. package/packages/openclaw/dist/config.js +95 -7
  17. package/packages/openclaw/dist/config.js.map +1 -1
  18. package/packages/openclaw/dist/gateway.d.ts +8 -0
  19. package/packages/openclaw/dist/gateway.d.ts.map +1 -1
  20. package/packages/openclaw/dist/gateway.js +269 -34
  21. package/packages/openclaw/dist/gateway.js.map +1 -1
  22. package/packages/openclaw/dist/setup.d.ts.map +1 -1
  23. package/packages/openclaw/dist/setup.js +117 -15
  24. package/packages/openclaw/dist/setup.js.map +1 -1
  25. package/packages/openclaw/package.json +2 -2
  26. package/packages/openclaw/skill/SKILL.md +103 -0
  27. package/packages/openclaw/src/__tests__/ws-client.test.ts +72 -0
  28. package/packages/openclaw/src/cli.ts +7 -1
  29. package/packages/openclaw/src/config.ts +94 -8
  30. package/packages/openclaw/src/gateway.ts +328 -36
  31. package/packages/openclaw/src/setup.ts +120 -13
  32. package/packages/policy/package.json +2 -2
  33. package/packages/sdk/package.json +2 -2
  34. package/packages/sdk-py/pyproject.toml +1 -1
  35. package/packages/telemetry/package.json +1 -1
  36. package/packages/trajectory/package.json +2 -2
  37. package/packages/user-directory/package.json +2 -2
  38. package/packages/utils/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAiEA,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAuSvE"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA0FA,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAyXvE"}
@@ -1,10 +1,11 @@
1
- import { mkdir, writeFile, copyFile } from 'node:fs/promises';
1
+ import { mkdir, writeFile, readFile, copyFile } from 'node:fs/promises';
2
2
  import { createConnection } from 'node:net';
3
3
  import { join, dirname } from 'node:path';
4
4
  import { existsSync } from 'node:fs';
5
5
  import { hostname } from 'node:os';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import { spawn as spawnProcess, execFileSync } from 'node:child_process';
8
+ import { randomBytes } from 'node:crypto';
8
9
  import { RelayCast } from '@relaycast/sdk';
9
10
  import { detectOpenClaw, saveGatewayConfig } from './config.js';
10
11
  import { InboundGateway } from './gateway.js';
@@ -21,6 +22,28 @@ function extractNestedValue(obj, path) {
21
22
  }
22
23
  return current;
23
24
  }
25
+ /**
26
+ * Set a deeply nested value in an object by dot-separated path, creating
27
+ * intermediate objects as needed.
28
+ */
29
+ const DANGEROUS_KEYS = new Set(['__proto__', 'prototype', 'constructor']);
30
+ function setNestedValue(obj, path, value) {
31
+ const keys = path.split('.');
32
+ for (const key of keys) {
33
+ if (DANGEROUS_KEYS.has(key)) {
34
+ throw new Error(`Refusing to set dangerous key "${key}" in path "${path}"`);
35
+ }
36
+ }
37
+ let current = obj;
38
+ for (let i = 0; i < keys.length - 1; i++) {
39
+ const key = keys[i];
40
+ if (current[key] == null || typeof current[key] !== 'object') {
41
+ current[key] = {};
42
+ }
43
+ current = current[key];
44
+ }
45
+ current[keys[keys.length - 1]] = value;
46
+ }
24
47
  /**
25
48
  * Resolve how to invoke mcporter. Prefers a global binary, falls back to npx.
26
49
  */
@@ -74,14 +97,17 @@ export async function setup(options) {
74
97
  const clawName = options.clawName ?? hostname() ?? 'my-claw';
75
98
  const baseUrl = options.baseUrl ?? 'https://api.relaycast.dev';
76
99
  const channels = options.channels ?? ['general'];
100
+ // CLI name for restart reminder messages (based on detected variant)
101
+ const cliName = detection.variant === 'clawdbot' ? 'clawdbot' : 'openclaw';
102
+ const serviceName = detection.variant === 'clawdbot' ? 'clawdbot' : 'openclaw';
77
103
  if (!detection.installed) {
78
104
  // Auto-create ~/.openclaw/ if OpenClaw binary is available but the config dir
79
105
  // doesn't exist yet (common in Docker images before onboarding).
80
106
  try {
81
107
  await mkdir(detection.homeDir, { recursive: true });
82
108
  await mkdir(join(detection.homeDir, 'workspace'), { recursive: true });
83
- // Write a minimal openclaw.json so MCP servers can be registered
84
- const configPath = join(detection.homeDir, 'openclaw.json');
109
+ // Write a minimal config file so MCP servers can be registered
110
+ const configPath = join(detection.homeDir, detection.configFilename);
85
111
  if (!existsSync(configPath)) {
86
112
  await writeFile(configPath, JSON.stringify({ mcpServers: {} }, null, 2) + '\n', 'utf-8');
87
113
  }
@@ -101,15 +127,49 @@ export async function setup(options) {
101
127
  }
102
128
  // Enable the OpenResponses HTTP API so the inbound gateway can inject
103
129
  // messages via POST /v1/responses on the local OpenClaw gateway.
104
- try {
105
- execFileSync('openclaw', [
130
+ // Try CLI names in order: openclaw, clawdbot, clawdbot-cli.sh.
131
+ // If all CLI calls fail, mutate the config JSON directly.
132
+ let configMutated = false;
133
+ {
134
+ const httpEndpointArgs = [
106
135
  'config', 'set',
107
136
  'gateway.http.endpoints.responses.enabled', 'true',
108
- ], { stdio: 'pipe' });
109
- }
110
- catch {
111
- console.warn('Could not enable OpenResponses API (non-fatal). Enable manually:');
112
- console.warn(' openclaw config set gateway.http.endpoints.responses.enabled true');
137
+ ];
138
+ const cliCandidates = ['openclaw', 'clawdbot', 'clawdbot-cli.sh'];
139
+ let cliSuccess = false;
140
+ for (const cli of cliCandidates) {
141
+ try {
142
+ execFileSync(cli, httpEndpointArgs, { stdio: 'pipe' });
143
+ cliSuccess = true;
144
+ break;
145
+ }
146
+ catch {
147
+ // Try next candidate
148
+ }
149
+ }
150
+ if (!cliSuccess) {
151
+ // Fall back to direct JSON config file mutation
152
+ if (detection.configFile) {
153
+ try {
154
+ const raw = await readFile(detection.configFile, 'utf-8');
155
+ const cfg = JSON.parse(raw);
156
+ setNestedValue(cfg, 'gateway.http.endpoints.responses.enabled', true);
157
+ await writeFile(detection.configFile, JSON.stringify(cfg, null, 2) + '\n', 'utf-8');
158
+ // Reload config in detection
159
+ detection.config = cfg;
160
+ configMutated = true;
161
+ console.log('[setup] Enabled gateway.http.endpoints.responses.enabled via config file.');
162
+ }
163
+ catch (writeErr) {
164
+ console.warn('Could not enable OpenResponses API (non-fatal). Enable manually:');
165
+ console.warn(` ${cliName} config set gateway.http.endpoints.responses.enabled true`);
166
+ }
167
+ }
168
+ else {
169
+ console.warn('Could not enable OpenResponses API (non-fatal). Enable manually:');
170
+ console.warn(` ${cliName} config set gateway.http.endpoints.responses.enabled true`);
171
+ }
172
+ }
113
173
  }
114
174
  // Resolve API key: use provided key or create a new workspace
115
175
  let apiKey = options.apiKey;
@@ -188,16 +248,58 @@ export async function setup(options) {
188
248
  // Write a minimal SKILL.md inline if the bundled one isn't found
189
249
  await writeFile(join(skillDir, 'SKILL.md'), FALLBACK_SKILL_MD, 'utf-8');
190
250
  }
191
- // Extract gateway auth from openclaw.json (if available)
192
- const openclawGatewayToken = process.env.OPENCLAW_GATEWAY_TOKEN ??
251
+ // Extract gateway auth from config (if available). Auto-generate if missing.
252
+ let openclawGatewayToken = process.env.OPENCLAW_GATEWAY_TOKEN ??
193
253
  extractNestedValue(detection.config, 'gateway.auth.token');
194
254
  const openclawGatewayPortRaw = process.env.OPENCLAW_GATEWAY_PORT ??
195
255
  extractNestedValue(detection.config, 'gateway.port');
196
256
  const openclawGatewayPort = openclawGatewayPortRaw ? Number(openclawGatewayPortRaw) : undefined;
197
257
  if (!openclawGatewayToken) {
198
- console.warn('[setup] No gateway token found in openclaw.json or OPENCLAW_GATEWAY_TOKEN env.');
199
- console.warn('[setup] Inbound gateway may fail to pair. Set it manually:');
200
- console.warn('[setup] export OPENCLAW_GATEWAY_TOKEN=$(cat ~/.openclaw/openclaw.json | jq -r .gateway.auth.token)');
258
+ // Generate a random token and persist it to the config file
259
+ const generated = randomBytes(16).toString('hex');
260
+ openclawGatewayToken = generated;
261
+ console.log('[setup] No gateway token found — generating one and writing to config file.');
262
+ if (detection.configFile) {
263
+ try {
264
+ const raw = await readFile(detection.configFile, 'utf-8');
265
+ const cfg = JSON.parse(raw);
266
+ setNestedValue(cfg, 'gateway.auth.token', generated);
267
+ await writeFile(detection.configFile, JSON.stringify(cfg, null, 2) + '\n', 'utf-8');
268
+ detection.config = cfg;
269
+ configMutated = true;
270
+ }
271
+ catch (writeErr) {
272
+ console.warn(`[setup] Could not write generated token to config file: ${writeErr instanceof Error ? writeErr.message : String(writeErr)}`);
273
+ }
274
+ }
275
+ else {
276
+ console.warn('[setup] No config file available to persist generated token. Set manually:');
277
+ console.warn(`[setup] export OPENCLAW_GATEWAY_TOKEN=${generated}`);
278
+ }
279
+ }
280
+ // Print restart reminder if any config mutations were made
281
+ if (configMutated) {
282
+ console.log('');
283
+ console.log('Config changes detected. Restart the gateway to apply:');
284
+ console.log(` systemctl restart ${serviceName}`);
285
+ if (serviceName !== 'openclaw') {
286
+ console.log(` # or: systemctl restart openclaw`);
287
+ }
288
+ console.log(` # or restart manually if not using systemd`);
289
+ console.log('');
290
+ }
291
+ // Exec policy preflight warning — warn when security is missing OR not 'full'
292
+ {
293
+ const execSecurity = extractNestedValue(detection.config, 'tools.exec.security');
294
+ if (execSecurity !== 'full') {
295
+ console.warn('');
296
+ console.warn('Warning: Execution policies may be locked down. If the agent can only chat:');
297
+ console.warn(` ${cliName} config set tools.exec.host gateway`);
298
+ console.warn(` ${cliName} config set tools.exec.ask off`);
299
+ console.warn(` ${cliName} config set tools.exec.security full`);
300
+ console.warn(` systemctl restart ${serviceName}`);
301
+ console.warn('');
302
+ }
201
303
  }
202
304
  // Save gateway config (.env)
203
305
  const gatewayConfig = {
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/openclaw",
3
- "version": "3.1.7",
3
+ "version": "3.1.9",
4
4
  "description": "Relaycast bridge for OpenClaw — messaging, identity, runtime setup, and local spawning",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "postinstall": "node -e \"try{require('child_process').execSync('ldd --version 2>&1',{stdio:'pipe'})}catch{try{require('child_process').execSync('apk info gcompat 2>/dev/null',{stdio:'pipe'})}catch{console.warn('\\n\\u26a0\\ufe0f @agent-relay/openclaw: Alpine detected without gcompat. Spawning requires glibc.\\n Install with: apk add gcompat libstdc++\\n')}}\""
30
30
  },
31
31
  "dependencies": {
32
- "@agent-relay/sdk": "3.1.7",
32
+ "@agent-relay/sdk": "3.1.9",
33
33
  "@relaycast/sdk": "^0.4.0",
34
34
  "ws": "^8.0.0"
35
35
  },
@@ -209,6 +209,38 @@ mcporter call relaycast.list_agents
209
209
  mcporter call relaycast.post_message channel=general text="send test"
210
210
  ```
211
211
 
212
+ ### WS auth error: `device signature invalid`
213
+ This means the Relay gateway process is signing with a different device identity than the running OpenClaw gateway trusts.
214
+
215
+ Fast path:
216
+ 1. Stop relay gateway process.
217
+ 2. Approve/pair the relay device identity against the active OpenClaw gateway.
218
+ 3. Run relay and gateway in the same profile/state/config context:
219
+ - `OPENCLAW_STATE_DIR`
220
+ - `OPENCLAW_CONFIG_PATH`
221
+ - `OPENCLAW_GATEWAY_TOKEN` (must match active `gateway.auth.token`)
222
+ 4. Re-run setup and start gateway with debug once:
223
+ ```bash
224
+ npx -y @agent-relay/openclaw@latest setup rk_live_YOUR_WORKSPACE_KEY --name my-claw
225
+ npx -y @agent-relay/openclaw@latest gateway --debug
226
+ ```
227
+
228
+ If this still fails, check for profile drift (different state dirs) before rotating creds.
229
+
230
+ ### HTTP endpoint checks (for injection troubleshooting)
231
+ If using `/v1/responses`, ensure endpoint is enabled and auth token is set in the active config.
232
+
233
+ ```bash
234
+ openclaw config set gateway.http.endpoints.responses.enabled true
235
+ openclaw config set gateway.auth.token <long-random-token>
236
+ openclaw gateway restart
237
+ ```
238
+
239
+ Expected behavior:
240
+ - `405` before endpoint enabled
241
+ - `401` after enable but before correct bearer token
242
+ - success/non-405 once endpoint + token are correct
243
+
212
244
  ### "Not registered" after setup/register
213
245
  This usually means missing/cleared `RELAY_AGENT_TOKEN` in mcporter config.
214
246
 
@@ -379,6 +411,77 @@ Confirm what appears auto-injected in your UI stream:
379
411
  - Prefer explicit env exports in hosted/sandbox deployments.
380
412
  - If available in your deployment, use a lockfile/PID strategy for relay gateway singleton enforcement.
381
413
 
414
+ ### WS auth version-compat matrix
415
+
416
+ The relay gateway automatically selects the right device auth payload version based on the detected environment. If the selected version is rejected, it falls back to the alternate version once before giving up.
417
+
418
+ | Environment | Auth Profile | Primary Payload | Fallback | Notes |
419
+ |---|---|---|---|---|
420
+ | `~/.openclaw/` (standard) | `default` | v3 (with platform/deviceFamily) | v2 | Current OpenClaw server supports v3 natively |
421
+ | `~/.clawdbot/` (marketplace image) | `clawdbot-v1` | v2 (no platform/deviceFamily) | v3 | Older gateway only supports v2; v3↔v2 fallback handles upgrades |
422
+ | `OPENCLAW_WS_AUTH_COMPAT=clawdbot` | `clawdbot-v1` | v2 | v3 | Manual override for non-standard installations |
423
+
424
+ **When upgrading a Clawdbot marketplace image** to a newer OpenClaw server that supports v3, the fallback mechanism handles the transition automatically — v2 is tried first, and if the new server rejects it (unlikely, since servers accept both), v3 is tried as fallback.
425
+
426
+ **Debug logging**: Set `OPENCLAW_WS_DEBUG=1` to see the full canonicalization matrix, field hashes, and self-verification output during auth.
427
+
428
+ ---
429
+
430
+ ## 11b) Advanced Troubleshooting: Execution Policy Lockdown
431
+
432
+ Use this section when OpenClaw is running but the agent can only chat — it can't execute commands, call APIs, or run skills.
433
+
434
+ ### Typical symptoms
435
+
436
+ - Agent responds to messages but never executes any tools or commands
437
+ - Skills load but produce no output or hang indefinitely
438
+ - Shell commands timeout or silently fail
439
+ - The agent appears "stuck in a sandbox" — it's a chatbot only
440
+
441
+ ### Root cause
442
+
443
+ By default, OpenClaw runs in a restricted sandbox mode. It can't make network calls, run shell commands, or write to most directories. On a headless server (VPS, droplet), this is compounded by the lack of an interactive terminal for approval prompts.
444
+
445
+ Three execution policies must be configured for the agent to function beyond chat:
446
+
447
+ ### Fix: Set execution policies
448
+
449
+ SSH into the server and run as root:
450
+
451
+ ```bash
452
+ /opt/openclaw-cli.sh config set tools.exec.host gateway
453
+ /opt/openclaw-cli.sh config set tools.exec.ask off
454
+ /opt/openclaw-cli.sh config set tools.exec.security full
455
+ systemctl restart openclaw
456
+ ```
457
+
458
+ ### What each setting does
459
+
460
+ | Setting | Value | Purpose |
461
+ |---|---|---|
462
+ | `tools.exec.host` | `gateway` | Routes commands through the gateway process. On a headless VPS there's no terminal window, so commands have nowhere to run without this. |
463
+ | `tools.exec.ask` | `off` | Disables interactive approval prompts. On a headless server nobody is there to approve, so commands hang forever waiting. |
464
+ | `tools.exec.security` | `full` | Grants the highest execution tier within the sandbox. Without this, the agent can't make network calls or run shell commands. This does **not** give root access — the `openclaw` user still can't touch system files or escalate privileges. |
465
+
466
+ ### Verify settings
467
+
468
+ ```bash
469
+ /opt/openclaw-cli.sh config list | grep tools.exec
470
+ ```
471
+
472
+ Expected output should show: `host: gateway`, `ask: off`, `security: full`.
473
+
474
+ > **Note:** If `device signature invalid` appears before any pending pairing requests, this is a **protocol mismatch** (not a pairing queue issue). Jump to WS-compat diagnostics in Section 10 rather than attempting device approval.
475
+
476
+ ### Quick diagnostic
477
+
478
+ | Symptom | Likely Cause | Fix |
479
+ |---|---|---|
480
+ | Agent chats but can't execute anything | Sandbox default policies | Set all three execution policies above |
481
+ | Commands hang forever | `tools.exec.ask` still on (waiting for approval) | Set `tools.exec.ask off` and restart |
482
+ | Network calls fail from agent | `tools.exec.security` not set to `full` | Set `tools.exec.security full` and restart |
483
+ | Commands fail silently | `tools.exec.host` not set to `gateway` | Set `tools.exec.host gateway` and restart |
484
+
382
485
  ---
383
486
 
384
487
  ## 12) Optional Direct API (curl)
@@ -372,6 +372,78 @@ describe('OpenClawGatewayClient', () => {
372
372
  await client.disconnect();
373
373
  });
374
374
 
375
+ it('should fallback to alternate payload version on signature rejection', async () => {
376
+ let connectAttempts = 0;
377
+ server = new MockOpenClawServer({ sendChallenge: false });
378
+ const origWss = (server as unknown as { wss: WebSocketServer }).wss;
379
+ origWss.removeAllListeners('connection');
380
+ origWss.on('connection', (ws) => {
381
+ connectAttempts++;
382
+ // Send challenge
383
+ ws.send(JSON.stringify({
384
+ type: 'event',
385
+ event: 'connect.challenge',
386
+ payload: { nonce: `nonce-fallback-${connectAttempts}`, ts: Date.now() },
387
+ }));
388
+ ws.on('message', (data) => {
389
+ const msg = JSON.parse(data.toString()) as Record<string, unknown>;
390
+ if (msg.method === 'connect') {
391
+ if (connectAttempts === 1) {
392
+ // First attempt: reject with signature invalid
393
+ ws.send(JSON.stringify({
394
+ type: 'res',
395
+ id: 'connect-1',
396
+ ok: false,
397
+ error: { code: 'auth_failed', message: 'device signature invalid' },
398
+ }));
399
+ } else {
400
+ // Second attempt (fallback): accept
401
+ ws.send(JSON.stringify({ type: 'res', id: 'connect-1', ok: true }));
402
+ }
403
+ }
404
+ });
405
+ });
406
+
407
+ const client = new OpenClawGatewayClient('test-token', server.port);
408
+ await client.connect();
409
+ // Should have connected on the fallback attempt
410
+ expect(connectAttempts).toBe(2);
411
+ await client.disconnect();
412
+ });
413
+
414
+ it('should not retry fallback more than once', async () => {
415
+ let connectAttempts = 0;
416
+ server = new MockOpenClawServer({ sendChallenge: false });
417
+ const origWss = (server as unknown as { wss: WebSocketServer }).wss;
418
+ origWss.removeAllListeners('connection');
419
+ origWss.on('connection', (ws) => {
420
+ connectAttempts++;
421
+ ws.send(JSON.stringify({
422
+ type: 'event',
423
+ event: 'connect.challenge',
424
+ payload: { nonce: `nonce-nofallback-${connectAttempts}`, ts: Date.now() },
425
+ }));
426
+ ws.on('message', (data) => {
427
+ const msg = JSON.parse(data.toString()) as Record<string, unknown>;
428
+ if (msg.method === 'connect') {
429
+ // Always reject with signature invalid
430
+ ws.send(JSON.stringify({
431
+ type: 'res',
432
+ id: 'connect-1',
433
+ ok: false,
434
+ error: { code: 'auth_failed', message: 'device signature invalid' },
435
+ }));
436
+ }
437
+ });
438
+ });
439
+
440
+ const client = new OpenClawGatewayClient('test-token', server.port);
441
+ await expect(client.connect()).rejects.toThrow(/auth failed|signature invalid|closed before/i);
442
+ // Should have tried exactly 2 times: primary + one fallback
443
+ expect(connectAttempts).toBe(2);
444
+ await client.disconnect();
445
+ });
446
+
375
447
  it('should silently ignore unrecognized event messages', async () => {
376
448
  server = new MockOpenClawServer();
377
449
  const origWss = (server as unknown as { wss: WebSocketServer }).wss;
@@ -7,7 +7,13 @@ import { startMcpServer } from './mcp/server.js';
7
7
  import { runtimeSetup } from './runtime/setup.js';
8
8
 
9
9
  const require = createRequire(import.meta.url);
10
- const { version } = require('../package.json') as { version: string };
10
+ const version = process.env.RELAY_OPENCLAW_VERSION ?? (() => {
11
+ try {
12
+ return (require('../package.json') as { version: string }).version;
13
+ } catch {
14
+ return 'unknown';
15
+ }
16
+ })();
11
17
 
12
18
  function printUsage(): void {
13
19
  console.log(`
@@ -1,14 +1,14 @@
1
1
  import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
- import { join } from 'node:path';
2
+ import { join, dirname, basename } from 'node:path';
3
3
  import { homedir } from 'node:os';
4
- import { existsSync } from 'node:fs';
4
+ import { existsSync, readFileSync } from 'node:fs';
5
5
 
6
6
  import type { GatewayConfig } from './types.js';
7
7
 
8
8
  export interface OpenClawDetection {
9
9
  /** Whether OpenClaw is installed. */
10
10
  installed: boolean;
11
- /** Path to ~/.openclaw/ */
11
+ /** Path to ~/.openclaw/ (or ~/.clawdbot/ for Clawdbot variant) */
12
12
  homeDir: string;
13
13
  /** Path to ~/.openclaw/workspace/ */
14
14
  workspaceDir: string;
@@ -16,19 +16,105 @@ export interface OpenClawDetection {
16
16
  configFile: string | null;
17
17
  /** Parsed openclaw.json (if exists). */
18
18
  config: Record<string, unknown> | null;
19
+ /** Detected variant: 'clawdbot' or 'openclaw'. */
20
+ variant: 'clawdbot' | 'openclaw';
21
+ /** Config filename (e.g. 'clawdbot.json' or 'openclaw.json'). */
22
+ configFilename: string;
19
23
  }
20
24
 
21
- /** Default OpenClaw config directory. Prefers OPENCLAW_HOME env var. */
25
+ /**
26
+ * Determine whether a directory has a valid, parseable config file.
27
+ * Uses sync I/O — only called during startup, not on hot path.
28
+ */
29
+ function hasValidConfig(dir: string, filename: string): boolean {
30
+ const configPath = join(dir, filename);
31
+ if (!existsSync(configPath)) return false;
32
+ try {
33
+ const raw = readFileSync(configPath, 'utf-8');
34
+ JSON.parse(raw);
35
+ return true;
36
+ } catch {
37
+ return false;
38
+ }
39
+ }
40
+
41
+ /** Default OpenClaw config directory. Checks env vars and probes for Clawdbot variant. */
22
42
  export function openclawHome(): string {
23
- return process.env.OPENCLAW_HOME || join(homedir(), '.openclaw');
43
+ if (process.env.OPENCLAW_CONFIG_PATH) {
44
+ // Direct config file path — return its parent directory
45
+ return dirname(process.env.OPENCLAW_CONFIG_PATH);
46
+ }
47
+ if (process.env.OPENCLAW_HOME) {
48
+ return process.env.OPENCLAW_HOME;
49
+ }
50
+ // Probe by valid config file presence (not just directory existence).
51
+ // When both dirs exist, prefer the one with a valid config file.
52
+ const clawdbotHome = join(homedir(), '.clawdbot');
53
+ const openclawHomePath = join(homedir(), '.openclaw');
54
+ const clawdbotValid = hasValidConfig(clawdbotHome, 'clawdbot.json');
55
+ const openclawValid = hasValidConfig(openclawHomePath, 'openclaw.json');
56
+
57
+ if (clawdbotValid && !openclawValid) return clawdbotHome;
58
+ if (openclawValid && !clawdbotValid) return openclawHomePath;
59
+ // Both valid or neither valid — prefer clawdbot if its dir exists (marketplace image)
60
+ if (existsSync(clawdbotHome)) return clawdbotHome;
61
+ return openclawHomePath;
24
62
  }
25
63
 
26
64
  /**
27
65
  * Detect whether OpenClaw is installed and return paths/config.
28
66
  */
29
67
  export async function detectOpenClaw(): Promise<OpenClawDetection> {
30
- const homeDir = openclawHome();
31
- const configPath = join(homeDir, 'openclaw.json');
68
+ // Determine variant and config filename
69
+ let homeDir: string;
70
+ let variant: 'clawdbot' | 'openclaw';
71
+ let configFilename: string;
72
+
73
+ if (process.env.OPENCLAW_CONFIG_PATH) {
74
+ // Direct config file path provided
75
+ homeDir = dirname(process.env.OPENCLAW_CONFIG_PATH);
76
+ const base = basename(process.env.OPENCLAW_CONFIG_PATH);
77
+ configFilename = base;
78
+ variant = base === 'clawdbot.json' ? 'clawdbot' : 'openclaw';
79
+ } else if (process.env.OPENCLAW_HOME) {
80
+ homeDir = process.env.OPENCLAW_HOME;
81
+ // Check if the home dir looks like a Clawdbot installation
82
+ const clawdbotConfig = join(homeDir, 'clawdbot.json');
83
+ if (existsSync(clawdbotConfig)) {
84
+ variant = 'clawdbot';
85
+ configFilename = 'clawdbot.json';
86
+ } else {
87
+ variant = 'openclaw';
88
+ configFilename = 'openclaw.json';
89
+ }
90
+ } else {
91
+ // Probe by valid config file, not just directory existence.
92
+ const clawdbotHome = join(homedir(), '.clawdbot');
93
+ const openclawHomePath = join(homedir(), '.openclaw');
94
+ const clawdbotValid = hasValidConfig(clawdbotHome, 'clawdbot.json');
95
+ const openclawValid = hasValidConfig(openclawHomePath, 'openclaw.json');
96
+
97
+ if (clawdbotValid && !openclawValid) {
98
+ homeDir = clawdbotHome;
99
+ variant = 'clawdbot';
100
+ configFilename = 'clawdbot.json';
101
+ } else if (openclawValid && !clawdbotValid) {
102
+ homeDir = openclawHomePath;
103
+ variant = 'openclaw';
104
+ configFilename = 'openclaw.json';
105
+ } else if (existsSync(clawdbotHome)) {
106
+ // Both valid or neither — prefer clawdbot if present (marketplace image)
107
+ homeDir = clawdbotHome;
108
+ variant = 'clawdbot';
109
+ configFilename = 'clawdbot.json';
110
+ } else {
111
+ homeDir = openclawHomePath;
112
+ variant = 'openclaw';
113
+ configFilename = 'openclaw.json';
114
+ }
115
+ }
116
+
117
+ const configPath = join(homeDir, configFilename);
32
118
  const workspaceDir = join(homeDir, 'workspace');
33
119
 
34
120
  const installed = existsSync(homeDir);
@@ -45,7 +131,7 @@ export async function detectOpenClaw(): Promise<OpenClawDetection> {
45
131
  }
46
132
  }
47
133
 
48
- return { installed, homeDir, workspaceDir, configFile, config };
134
+ return { installed, homeDir, workspaceDir, configFile, config, variant, configFilename };
49
135
  }
50
136
 
51
137
  /**