@openclaw-cloud/agent-controller 0.9.4 → 0.9.6

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.
@@ -1,19 +1,34 @@
1
1
  import fs from 'node:fs/promises';
2
- import { homedir } from 'node:os';
2
+ import { homedir, userInfo } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import { execAsync } from '../utils/exec.js';
5
5
  import { which } from './common.js';
6
- export async function installLinux(config) {
7
- const home = homedir();
8
- const systemdDir = join(home, '.config', 'systemd', 'user');
9
- const servicePath = join(systemdDir, 'agent-controller.service');
10
- const nodePath = process.execPath;
11
- let agentControllerPath = await which('agent-controller');
12
- if (!agentControllerPath) {
13
- agentControllerPath = join(nodePath, '..', 'agent-controller');
6
+ const SYSTEM_SERVICE_PATH = '/etc/systemd/system/agent-controller.service';
7
+ const DBUS_ERROR_PATTERNS = [
8
+ 'No medium found',
9
+ 'Failed to connect to bus',
10
+ 'No such file or directory',
11
+ ];
12
+ async function isUserSystemdAvailable() {
13
+ try {
14
+ await execAsync('systemctl --user status 2>&1');
15
+ return true;
14
16
  }
15
- await fs.mkdir(systemdDir, { recursive: true });
16
- const service = `[Unit]
17
+ catch (err) {
18
+ // Node exec error includes message, stderr, and stdout — check all
19
+ const msg = err instanceof Error ? err.message : String(err);
20
+ const stderr = err?.stderr ?? '';
21
+ const stdout = err?.stdout ?? '';
22
+ const combined = `${msg}\n${stderr}\n${stdout}`;
23
+ if (DBUS_ERROR_PATTERNS.some(pattern => combined.includes(pattern))) {
24
+ return false;
25
+ }
26
+ // Non-D-Bus errors (e.g. no services running) — user systemd is still available
27
+ return true;
28
+ }
29
+ }
30
+ function buildUserService(nodePath, agentControllerPath, config) {
31
+ return `[Unit]
17
32
  Description=OpenClaw Agent Controller
18
33
  After=network.target
19
34
 
@@ -30,6 +45,42 @@ ExecStart="${nodePath}" "${agentControllerPath}"
30
45
  [Install]
31
46
  WantedBy=default.target
32
47
  `;
48
+ }
49
+ function buildSystemService(nodePath, agentControllerPath, config) {
50
+ const home = homedir();
51
+ const info = userInfo();
52
+ const isRoot = info.uid === 0;
53
+ const userGroupLines = isRoot ? '' : `User=${info.username}\nGroup=${info.gid}\n`;
54
+ return `[Unit]
55
+ Description=OpenClaw Agent Controller
56
+ After=network.target
57
+
58
+ [Service]
59
+ Type=simple
60
+ Restart=always
61
+ RestartSec=10
62
+ ${userGroupLines}WorkingDirectory=${home}
63
+ Environment=HOME=${home}
64
+ Environment=CENTRIFUGO_URL=${config.centrifugoUrl}
65
+ Environment=AGENT_TOKEN=${config.agentToken}
66
+ Environment=AGENT_ID=${config.agentId}
67
+ Environment=BACKEND_URL=${config.backendInternalUrl}
68
+ ExecStart="${nodePath}" "${agentControllerPath}"
69
+
70
+ [Install]
71
+ WantedBy=multi-user.target
72
+ `;
73
+ }
74
+ export async function installLinux(config) {
75
+ const home = homedir();
76
+ const systemdDir = join(home, '.config', 'systemd', 'user');
77
+ const userServicePath = join(systemdDir, 'agent-controller.service');
78
+ const nodePath = process.execPath;
79
+ let agentControllerPath = await which('agent-controller');
80
+ if (!agentControllerPath) {
81
+ agentControllerPath = join(nodePath, '..', 'agent-controller');
82
+ }
83
+ await fs.mkdir(systemdDir, { recursive: true });
33
84
  // Stop existing service before reinstalling
34
85
  try {
35
86
  await execAsync('systemctl --user stop agent-controller 2>/dev/null');
@@ -38,48 +89,98 @@ WantedBy=default.target
38
89
  catch {
39
90
  // Not running — fine
40
91
  }
41
- await fs.writeFile(servicePath, service, 'utf8');
42
- console.log(`Written: ${servicePath}`);
43
- try {
44
- await execAsync('systemctl --user daemon-reload');
45
- console.log('systemd daemon reloaded.');
46
- await execAsync('systemctl --user enable --now agent-controller');
47
- console.log('Service enabled and started.');
92
+ await fs.writeFile(userServicePath, buildUserService(nodePath, agentControllerPath, config), 'utf8');
93
+ console.log(`Written: ${userServicePath}`);
94
+ const userSystemdOk = await isUserSystemdAvailable();
95
+ if (!userSystemdOk) {
96
+ console.log('User systemd session not available. Falling back to system-level service...');
97
+ const systemService = buildSystemService(nodePath, agentControllerPath, config);
98
+ await fs.writeFile(SYSTEM_SERVICE_PATH, systemService, 'utf8');
99
+ console.log(`Written: ${SYSTEM_SERVICE_PATH}`);
100
+ try {
101
+ await execAsync('systemctl daemon-reload');
102
+ console.log('systemd daemon reloaded.');
103
+ await execAsync('systemctl enable --now agent-controller');
104
+ console.log('Service enabled and started.');
105
+ }
106
+ catch (err) {
107
+ console.warn('systemctl command failed:', err instanceof Error ? err.message : err);
108
+ }
109
+ console.log('');
110
+ console.log('Agent Controller installed as a systemd system service.');
111
+ console.log('');
112
+ console.log('Useful commands:');
113
+ console.log(' Start: systemctl start agent-controller');
114
+ console.log(' Stop: systemctl stop agent-controller');
115
+ console.log(' Status: systemctl status agent-controller');
116
+ console.log(' Logs: journalctl -u agent-controller -f');
117
+ console.log(' Uninstall: agent-controller uninstall');
118
+ }
119
+ else {
120
+ try {
121
+ await execAsync('systemctl --user daemon-reload');
122
+ console.log('systemd daemon reloaded.');
123
+ await execAsync('systemctl --user enable --now agent-controller');
124
+ console.log('Service enabled and started.');
125
+ }
126
+ catch (err) {
127
+ console.warn('systemctl command failed:', err instanceof Error ? err.message : err);
128
+ }
129
+ console.log('');
130
+ console.log('Agent Controller installed as a systemd user service.');
131
+ console.log('');
132
+ console.log('Useful commands:');
133
+ console.log(' Start: systemctl --user start agent-controller');
134
+ console.log(' Stop: systemctl --user stop agent-controller');
135
+ console.log(' Status: systemctl --user status agent-controller');
136
+ console.log(' Logs: journalctl --user -u agent-controller -f');
137
+ console.log(' Uninstall: agent-controller uninstall');
48
138
  }
49
- catch (err) {
50
- console.warn('systemctl command failed:', err instanceof Error ? err.message : err);
51
- }
52
- console.log('');
53
- console.log('Agent Controller installed as a systemd user service.');
54
- console.log('');
55
- console.log('Useful commands:');
56
- console.log(' Start: systemctl --user start agent-controller');
57
- console.log(' Stop: systemctl --user stop agent-controller');
58
- console.log(' Status: systemctl --user status agent-controller');
59
- console.log(' Logs: journalctl --user -u agent-controller -f');
60
- console.log(' Uninstall: agent-controller uninstall');
61
139
  }
62
140
  export async function uninstallLinux() {
141
+ let userDisableSucceeded = false;
63
142
  try {
64
143
  await execAsync('systemctl --user disable --now agent-controller');
65
- console.log('Service disabled and stopped.');
144
+ console.log('Service disabled and stopped (user).');
145
+ userDisableSucceeded = true;
66
146
  }
67
147
  catch (err) {
68
- console.warn('systemctl disable failed (may not be enabled):', err instanceof Error ? err.message : err);
148
+ console.warn('systemctl --user disable failed, trying system-level:', err instanceof Error ? err.message : err);
149
+ }
150
+ if (!userDisableSucceeded) {
151
+ try {
152
+ await execAsync('systemctl disable --now agent-controller');
153
+ console.log('Service disabled and stopped (system).');
154
+ }
155
+ catch (err) {
156
+ console.warn('systemctl disable failed (may not be enabled):', err instanceof Error ? err.message : err);
157
+ }
158
+ }
159
+ const userServicePath = join(homedir(), '.config', 'systemd', 'user', 'agent-controller.service');
160
+ try {
161
+ await fs.unlink(userServicePath);
162
+ console.log(`Removed: ${userServicePath}`);
163
+ }
164
+ catch {
165
+ console.log(`Service file not found: ${userServicePath}`);
69
166
  }
70
- const servicePath = join(homedir(), '.config', 'systemd', 'user', 'agent-controller.service');
71
167
  try {
72
- await fs.unlink(servicePath);
73
- console.log(`Removed: ${servicePath}`);
168
+ await fs.unlink(SYSTEM_SERVICE_PATH);
169
+ console.log(`Removed: ${SYSTEM_SERVICE_PATH}`);
74
170
  }
75
171
  catch {
76
- console.log(`Service file not found: ${servicePath}`);
172
+ // Not present fine
77
173
  }
78
174
  try {
79
175
  await execAsync('systemctl --user daemon-reload');
80
176
  }
81
177
  catch {
82
- // best-effort
178
+ try {
179
+ await execAsync('systemctl daemon-reload');
180
+ }
181
+ catch {
182
+ // best-effort
183
+ }
83
184
  }
84
185
  console.log('Agent Controller uninstalled.');
85
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/platform/linux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/platform/linux.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw-cloud/agent-controller",
3
- "version": "0.9.4",
3
+ "version": "0.9.6",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {