@getaclaw/agent 0.1.8 → 0.1.10
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/dist/cli.js +1 -10
- package/dist/cli.js.map +1 -1
- package/dist/setup/steps/configure.d.ts.map +1 -1
- package/dist/setup/steps/configure.js +57 -8
- package/dist/setup/steps/configure.js.map +1 -1
- package/dist/setup/steps/openclaw.d.ts.map +1 -1
- package/dist/setup/steps/openclaw.js +18 -6
- package/dist/setup/steps/openclaw.js.map +1 -1
- package/dist/setup/steps/service.d.ts.map +1 -1
- package/dist/setup/steps/service.js +48 -14
- package/dist/setup/steps/service.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -137,7 +137,6 @@ Wants=network-online.target
|
|
|
137
137
|
|
|
138
138
|
[Service]
|
|
139
139
|
Type=simple
|
|
140
|
-
User=getaclaw-agent
|
|
141
140
|
ExecStart=/usr/bin/getaclaw-agent serve
|
|
142
141
|
Restart=always
|
|
143
142
|
RestartSec=5
|
|
@@ -149,16 +148,8 @@ WantedBy=multi-user.target
|
|
|
149
148
|
`;
|
|
150
149
|
const servicePath = '/etc/systemd/system/getaclaw-agent.service';
|
|
151
150
|
logger.info('Installing systemd service...');
|
|
152
|
-
// Ensure
|
|
153
|
-
const idResult = await safeExec('getent', ['passwd', 'getaclaw-agent']);
|
|
154
|
-
if (idResult.exitCode !== 0) {
|
|
155
|
-
await safeExec('useradd', ['--system', '--create-home', '--shell', '/usr/sbin/nologin', 'getaclaw-agent']);
|
|
156
|
-
logger.info('Created system user: getaclaw-agent');
|
|
157
|
-
}
|
|
158
|
-
// Give the service user access to config and log directories
|
|
159
|
-
await safeExec('chown', ['-R', 'getaclaw-agent:getaclaw-agent', DEFAULT_CONFIG_DIR]);
|
|
151
|
+
// Ensure log directory exists
|
|
160
152
|
await safeExec('mkdir', ['-p', '/var/log/getaclaw']);
|
|
161
|
-
await safeExec('chown', ['-R', 'getaclaw-agent:getaclaw-agent', '/var/log/getaclaw']);
|
|
162
153
|
fs.writeFileSync(servicePath, serviceContent, 'utf-8');
|
|
163
154
|
await safeExec('systemctl', ['daemon-reload']);
|
|
164
155
|
await safeExec('systemctl', ['enable', 'getaclaw-agent']);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/configure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/configure.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AAY1D,eAAO,MAAM,aAAa,EAAE,SAgE3B,CAAC"}
|
|
@@ -1,21 +1,70 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import os from 'node:os';
|
|
1
4
|
import { safeExec } from '../../utils/exec.js';
|
|
2
5
|
import { logger } from '../../utils/logger.js';
|
|
6
|
+
/** Run openclaw config set and throw on failure. */
|
|
7
|
+
async function configSet(key, value) {
|
|
8
|
+
const result = await safeExec('openclaw', ['config', 'set', key, value]);
|
|
9
|
+
if (result.exitCode !== 0) {
|
|
10
|
+
throw new Error(`openclaw config set ${key} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
3
13
|
export const configureStep = {
|
|
4
14
|
name: 'configure',
|
|
5
|
-
description: '
|
|
15
|
+
description: 'Generate OpenClaw configuration files',
|
|
6
16
|
required: true,
|
|
7
17
|
shouldRun: (_config, results) => !!results.get('openclawVersion'),
|
|
8
18
|
async execute(ctx) {
|
|
9
|
-
|
|
19
|
+
const openclawDir = path.join(os.homedir(), '.openclaw');
|
|
20
|
+
const envPath = path.join(openclawDir, '.env');
|
|
21
|
+
ctx.emit('log', 'configure', 'Configuring OpenClaw via CLI...');
|
|
22
|
+
ctx.emit('step.progress', 'configure', 10);
|
|
23
|
+
await fs.mkdir(openclawDir, { recursive: true });
|
|
24
|
+
// Configure gateway settings via openclaw config set
|
|
25
|
+
// Both password and tailscale modes bind to lan — password auth or tailnet is the security layer
|
|
26
|
+
const bindMode = 'lan';
|
|
27
|
+
await configSet('gateway.mode', 'local');
|
|
28
|
+
await configSet('gateway.port', '18789');
|
|
29
|
+
await configSet('gateway.bind', bindMode);
|
|
30
|
+
// Trust Caddy reverse proxy on localhost so connections are treated as local
|
|
31
|
+
await configSet('gateway.trustedProxies', '127.0.0.1');
|
|
10
32
|
ctx.emit('step.progress', 'configure', 30);
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
33
|
+
// Configure gateway auth
|
|
34
|
+
if (ctx.config.securityMode === 'password' && ctx.config.gatewayToken) {
|
|
35
|
+
await configSet('gateway.auth.mode', 'token');
|
|
36
|
+
await configSet('gateway.auth.token', ctx.config.gatewayToken);
|
|
37
|
+
// Allow Control UI over plain HTTP as fallback
|
|
38
|
+
await configSet('gateway.controlUi.allowInsecureAuth', 'true');
|
|
15
39
|
}
|
|
40
|
+
else if (ctx.config.securityMode === 'tailscale') {
|
|
41
|
+
await configSet('gateway.auth.mode', 'token');
|
|
42
|
+
}
|
|
43
|
+
ctx.emit('step.progress', 'configure', 50);
|
|
44
|
+
// Set the default model — prefix with openrouter/ since all models are
|
|
45
|
+
// routed through OpenRouter (the user provides an OpenRouter API key)
|
|
46
|
+
ctx.emit('log', 'configure', 'Setting default model...');
|
|
47
|
+
const rawModel = ctx.config.selectedModels?.[0];
|
|
48
|
+
if (rawModel) {
|
|
49
|
+
const model = rawModel.startsWith('openrouter/') ? rawModel : `openrouter/${rawModel}`;
|
|
50
|
+
ctx.emit('log', 'configure', `Model: ${model}`);
|
|
51
|
+
const result = await safeExec('openclaw', ['models', 'set', model]);
|
|
52
|
+
if (result.exitCode !== 0) {
|
|
53
|
+
throw new Error(`openclaw models set failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
ctx.emit('step.progress', 'configure', 70);
|
|
57
|
+
// Write .env file with API keys for the gateway environment
|
|
58
|
+
ctx.emit('log', 'configure', 'Writing environment file...');
|
|
59
|
+
const envContent = [
|
|
60
|
+
`OPENROUTER_API_KEY=${ctx.config.openrouterApiKey}`,
|
|
61
|
+
'',
|
|
62
|
+
].join('\n');
|
|
63
|
+
await fs.writeFile(envPath, envContent, 'utf-8');
|
|
64
|
+
await fs.chmod(envPath, 0o600);
|
|
16
65
|
ctx.emit('step.progress', 'configure', 100);
|
|
17
|
-
ctx.emit('log', 'configure', 'OpenClaw configuration
|
|
18
|
-
logger.info('OpenClaw configuration
|
|
66
|
+
ctx.emit('log', 'configure', 'OpenClaw configuration complete');
|
|
67
|
+
logger.info('OpenClaw configuration written via CLI', { envPath });
|
|
19
68
|
},
|
|
20
69
|
};
|
|
21
70
|
//# sourceMappingURL=configure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/setup/steps/configure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/setup/steps/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/openclaw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AAG1D,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/openclaw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AAG1D,eAAO,MAAM,YAAY,EAAE,SA2C1B,CAAC"}
|
|
@@ -1,22 +1,34 @@
|
|
|
1
|
-
import { safeExec } from '../../utils/exec.js';
|
|
1
|
+
import { safeExec, safeExecPipe } from '../../utils/exec.js';
|
|
2
2
|
export const openclawStep = {
|
|
3
3
|
name: 'openclaw',
|
|
4
4
|
description: 'Install OpenClaw globally via npm',
|
|
5
5
|
required: true,
|
|
6
6
|
shouldRun: () => true,
|
|
7
7
|
async execute(ctx) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
// Check if already installed (e.g. by cloud-init)
|
|
9
|
+
const check = await safeExec('openclaw', ['--version']);
|
|
10
|
+
if (check.exitCode === 0 && check.stdout.trim()) {
|
|
11
|
+
const version = check.stdout.trim();
|
|
12
|
+
ctx.emit('log', 'openclaw', `OpenClaw already installed: ${version}`);
|
|
13
|
+
ctx.results.set('openclawVersion', version);
|
|
14
|
+
ctx.emit('step.progress', 'openclaw', 100);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
ctx.emit('log', 'openclaw', 'Installing openclaw@latest globally...');
|
|
18
|
+
ctx.emit('step.progress', 'openclaw', 10);
|
|
19
|
+
await safeExecPipe('npm', ['install', '-g', 'openclaw@latest'], {}, (output) => ctx.emit('log', 'openclaw', output), (output) => ctx.emit('log', 'openclaw', output));
|
|
20
|
+
ctx.emit('step.progress', 'openclaw', 80);
|
|
21
|
+
// Verify installation
|
|
22
|
+
ctx.emit('log', 'openclaw', 'Verifying openclaw installation...');
|
|
11
23
|
const result = await safeExec('openclaw', ['--version']);
|
|
12
24
|
if (result.exitCode !== 0) {
|
|
13
|
-
throw new Error('OpenClaw
|
|
25
|
+
throw new Error('OpenClaw installation failed — openclaw binary not found after npm install');
|
|
14
26
|
}
|
|
15
27
|
const version = result.stdout.trim();
|
|
16
28
|
ctx.emit('log', 'openclaw', `OpenClaw version: ${version}`);
|
|
17
29
|
ctx.results.set('openclawVersion', version);
|
|
18
30
|
ctx.emit('step.progress', 'openclaw', 100);
|
|
19
|
-
ctx.emit('log', 'openclaw', 'OpenClaw
|
|
31
|
+
ctx.emit('log', 'openclaw', 'OpenClaw installed successfully');
|
|
20
32
|
},
|
|
21
33
|
};
|
|
22
34
|
//# sourceMappingURL=openclaw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../../src/setup/steps/openclaw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../../src/setup/steps/openclaw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,mCAAmC;IAChD,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;IAErB,KAAK,CAAC,OAAO,CAAC,GAAgB;QAC5B,kDAAkD;QAClD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,+BAA+B,OAAO,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,wCAAwC,CAAC,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAE1C,MAAM,YAAY,CAChB,KAAK,EACL,CAAC,SAAS,EAAE,IAAI,EAAE,iBAAiB,CAAC,EACpC,EAAE,EACF,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EACvD,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CACxD,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAE1C,sBAAsB;QACtB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,oCAAoC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAE5D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,iCAAiC,CAAC,CAAC;IACjE,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/setup/steps/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AAI1D,eAAO,MAAM,WAAW,EAAE,SAmEzB,CAAC"}
|
|
@@ -1,28 +1,62 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
1
2
|
import { safeExec } from '../../utils/exec.js';
|
|
2
3
|
import { logger } from '../../utils/logger.js';
|
|
3
4
|
export const serviceStep = {
|
|
4
5
|
name: 'service',
|
|
5
|
-
description: '
|
|
6
|
+
description: 'Set up OpenClaw as a systemd service',
|
|
6
7
|
required: true,
|
|
7
8
|
shouldRun: (_config, results) => !!results.get('openclawVersion'),
|
|
8
9
|
async execute(ctx) {
|
|
9
|
-
ctx.emit('log', 'service', '
|
|
10
|
+
ctx.emit('log', 'service', 'Installing OpenClaw gateway service...');
|
|
11
|
+
ctx.emit('step.progress', 'service', 10);
|
|
12
|
+
// Find openclaw binary path for the ExecStart directive
|
|
13
|
+
const whichResult = await safeExec('bash', ['-c', 'which openclaw']);
|
|
14
|
+
const openclawBin = whichResult.stdout.trim() || '/usr/bin/openclaw';
|
|
15
|
+
ctx.emit('log', 'service', `OpenClaw binary: ${openclawBin}`);
|
|
16
|
+
// Create a system-level systemd service (not user-level).
|
|
17
|
+
// `openclaw gateway install` creates a user-level service that requires
|
|
18
|
+
// lingering + XDG_RUNTIME_DIR — unreliable when running headless as root.
|
|
19
|
+
// A system unit is the recommended approach for always-on servers.
|
|
20
|
+
const serviceContent = `[Unit]
|
|
21
|
+
Description=OpenClaw AI Gateway
|
|
22
|
+
After=network-online.target
|
|
23
|
+
Wants=network-online.target
|
|
24
|
+
|
|
25
|
+
[Service]
|
|
26
|
+
Type=simple
|
|
27
|
+
ExecStart=${openclawBin} gateway --port 18789
|
|
28
|
+
Restart=always
|
|
29
|
+
RestartSec=5
|
|
30
|
+
Environment=NODE_ENV=production
|
|
31
|
+
Environment=HOME=/root
|
|
32
|
+
EnvironmentFile=-/root/.openclaw/.env
|
|
33
|
+
|
|
34
|
+
[Install]
|
|
35
|
+
WantedBy=multi-user.target
|
|
36
|
+
`;
|
|
37
|
+
const servicePath = '/etc/systemd/system/openclaw-gateway.service';
|
|
38
|
+
await fs.writeFile(servicePath, serviceContent, 'utf-8');
|
|
10
39
|
ctx.emit('step.progress', 'service', 30);
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
40
|
+
// Enable and start
|
|
41
|
+
ctx.emit('log', 'service', 'Enabling and starting OpenClaw gateway...');
|
|
42
|
+
await safeExec('systemctl', ['daemon-reload']);
|
|
43
|
+
await safeExec('systemctl', ['enable', 'openclaw-gateway']);
|
|
44
|
+
await safeExec('systemctl', ['start', 'openclaw-gateway']);
|
|
45
|
+
ctx.emit('step.progress', 'service', 60);
|
|
46
|
+
// Give the gateway a moment to initialize
|
|
47
|
+
ctx.emit('log', 'service', 'Waiting for gateway to start...');
|
|
48
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
49
|
+
// Verify the service is active
|
|
50
|
+
ctx.emit('log', 'service', 'Verifying service is running...');
|
|
51
|
+
const statusResult = await safeExec('systemctl', ['is-active', 'openclaw-gateway']);
|
|
52
|
+
const state = statusResult.stdout.trim();
|
|
21
53
|
if (state !== 'active') {
|
|
22
|
-
|
|
54
|
+
const journal = await safeExec('bash', ['-c', 'journalctl -u openclaw-gateway -n 30 --no-pager 2>&1']);
|
|
55
|
+
ctx.emit('log', 'service', `Service journal:\n${journal.stdout}`);
|
|
56
|
+
throw new Error(`OpenClaw gateway service is not active (state: ${state})`);
|
|
23
57
|
}
|
|
24
58
|
ctx.emit('step.progress', 'service', 100);
|
|
25
|
-
ctx.emit('log', 'service', 'OpenClaw gateway service
|
|
59
|
+
ctx.emit('log', 'service', 'OpenClaw gateway service installed and running');
|
|
26
60
|
logger.info('OpenClaw gateway service is active');
|
|
27
61
|
},
|
|
28
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/setup/steps/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/setup/steps/service.ts"],"names":[],"mappings":"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"}
|