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.
- package/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/package.json +8 -8
- package/packages/acp-bridge/package.json +2 -2
- package/packages/config/package.json +1 -1
- package/packages/hooks/package.json +4 -4
- package/packages/memory/package.json +2 -2
- package/packages/openclaw/dist/__tests__/ws-client.test.js +69 -0
- package/packages/openclaw/dist/__tests__/ws-client.test.js.map +1 -1
- package/packages/openclaw/dist/cli.js +8 -1
- package/packages/openclaw/dist/cli.js.map +1 -1
- package/packages/openclaw/dist/config.d.ts +6 -2
- package/packages/openclaw/dist/config.d.ts.map +1 -1
- package/packages/openclaw/dist/config.js +95 -7
- package/packages/openclaw/dist/config.js.map +1 -1
- package/packages/openclaw/dist/gateway.d.ts +8 -0
- package/packages/openclaw/dist/gateway.d.ts.map +1 -1
- package/packages/openclaw/dist/gateway.js +269 -34
- package/packages/openclaw/dist/gateway.js.map +1 -1
- package/packages/openclaw/dist/setup.d.ts.map +1 -1
- package/packages/openclaw/dist/setup.js +117 -15
- package/packages/openclaw/dist/setup.js.map +1 -1
- package/packages/openclaw/package.json +2 -2
- package/packages/openclaw/skill/SKILL.md +103 -0
- package/packages/openclaw/src/__tests__/ws-client.test.ts +72 -0
- package/packages/openclaw/src/cli.ts +7 -1
- package/packages/openclaw/src/config.ts +94 -8
- package/packages/openclaw/src/gateway.ts +328 -36
- package/packages/openclaw/src/setup.ts +120 -13
- package/packages/policy/package.json +2 -2
- package/packages/sdk/package.json +2 -2
- package/packages/sdk-py/pyproject.toml +1 -1
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"
|
|
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
|
|
84
|
-
const configPath = join(detection.homeDir,
|
|
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
|
-
|
|
105
|
-
|
|
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
|
-
]
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
|
192
|
-
|
|
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
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
/**
|
|
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
|
-
|
|
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
|
-
|
|
31
|
-
|
|
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
|
/**
|