clawconnect-agent 0.1.39 → 0.1.41
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/README.md +11 -0
- package/README.zh-CN.md +10 -0
- package/dist/commands/install.js +7 -0
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/pair.d.ts +1 -2
- package/dist/commands/pair.js +2 -16
- package/dist/commands/pair.js.map +1 -1
- package/dist/commands/run.js +26 -13
- package/dist/commands/run.js.map +1 -1
- package/dist/core/command-types.d.ts +2 -1
- package/dist/core/relay/assistant-stream-coalescer.d.ts +67 -0
- package/dist/core/relay/assistant-stream-coalescer.js +269 -0
- package/dist/core/relay/assistant-stream-coalescer.js.map +1 -0
- package/dist/core/relay/file-upload-utils.d.ts +1 -0
- package/dist/core/relay/file-upload-utils.js +15 -0
- package/dist/core/relay/file-upload-utils.js.map +1 -1
- package/dist/core/relay/office-payload.d.ts +1 -0
- package/dist/core/relay/office-payload.js +42 -3
- package/dist/core/relay/office-payload.js.map +1 -1
- package/dist/core/relay/reconnect.d.ts +1 -0
- package/dist/core/relay/reconnect.js +22 -4
- package/dist/core/relay/reconnect.js.map +1 -1
- package/dist/core/relay/relay-server-connection.d.ts +25 -1
- package/dist/core/relay/relay-server-connection.js +246 -3
- package/dist/core/relay/relay-server-connection.js.map +1 -1
- package/dist/core/relay/reliable-delivery-protocol.d.ts +17 -0
- package/dist/core/relay/reliable-delivery-protocol.js +25 -0
- package/dist/core/relay/reliable-delivery-protocol.js.map +1 -0
- package/dist/core/relay/reliable-relay-outbox-registry.d.ts +19 -0
- package/dist/core/relay/reliable-relay-outbox-registry.js +81 -0
- package/dist/core/relay/reliable-relay-outbox-registry.js.map +1 -0
- package/dist/core/relay/reliable-relay-outbox-store.d.ts +67 -0
- package/dist/core/relay/reliable-relay-outbox-store.js +527 -0
- package/dist/core/relay/reliable-relay-outbox-store.js.map +1 -0
- package/dist/core/relay/reliable-relay-outbox.d.ts +74 -0
- package/dist/core/relay/reliable-relay-outbox.js +442 -0
- package/dist/core/relay/reliable-relay-outbox.js.map +1 -0
- package/dist/core/relay/timeline-event-builder.d.ts +1 -0
- package/dist/core/relay/timeline-event-builder.js +1 -0
- package/dist/core/relay/timeline-event-builder.js.map +1 -1
- package/dist/hermes/hermes-relay-manager.d.ts +5 -0
- package/dist/hermes/hermes-relay-manager.js +105 -8
- package/dist/hermes/hermes-relay-manager.js.map +1 -1
- package/dist/hermes/runtime/hermes-runtime-api-client.js +54 -29
- package/dist/hermes/runtime/hermes-runtime-api-client.js.map +1 -1
- package/dist/openclaw/gateway-client.d.ts +1 -0
- package/dist/openclaw/gateway-client.js +27 -3
- package/dist/openclaw/gateway-client.js.map +1 -1
- package/dist/openclaw/relay/chat-history.js +18 -7
- package/dist/openclaw/relay/chat-history.js.map +1 -1
- package/dist/openclaw/relay/chat-run-identity.d.ts +19 -2
- package/dist/openclaw/relay/chat-run-identity.js +89 -4
- package/dist/openclaw/relay/chat-run-identity.js.map +1 -1
- package/dist/openclaw/relay/relay-manager-protocol.d.ts +24 -3
- package/dist/openclaw/relay-manager.js +264 -36
- package/dist/openclaw/relay-manager.js.map +1 -1
- package/dist/platform/service-manager-common.d.ts +4 -0
- package/dist/platform/service-manager-common.js +14 -1
- package/dist/platform/service-manager-common.js.map +1 -1
- package/dist/platform/service-manager-linux.d.ts +17 -5
- package/dist/platform/service-manager-linux.js +86 -73
- package/dist/platform/service-manager-linux.js.map +1 -1
- package/dist/platform/service-manager.js +21 -17
- package/dist/platform/service-manager.js.map +1 -1
- package/package.json +4 -3
|
@@ -17,6 +17,10 @@ export declare const LINUX_SYSTEMD_USER_DIR: string;
|
|
|
17
17
|
export declare const LINUX_SERVICE_PATH: string;
|
|
18
18
|
export declare const LINUX_NOHUP_PID_PATH: string;
|
|
19
19
|
export declare const LINUX_NOHUP_START_SCRIPT_PATH: string;
|
|
20
|
+
export declare function getLinuxServiceName(profile?: string): string;
|
|
21
|
+
export declare function getLinuxServicePath(profile?: string): string;
|
|
22
|
+
export declare function getLinuxNohupPidPath(profile?: string): string;
|
|
23
|
+
export declare function getLinuxNohupStartScriptPath(profile?: string): string;
|
|
20
24
|
export declare function detectPlatform(): ServicePlatform;
|
|
21
25
|
export declare function shellEscape(arg: string): string;
|
|
22
26
|
export declare function run(command: string, stdio?: "pipe" | "inherit"): Buffer | string;
|
|
@@ -2,7 +2,7 @@ import { execFileSync, execSync } from "child_process";
|
|
|
2
2
|
import { chmodSync, existsSync, mkdirSync } from "fs";
|
|
3
3
|
import { homedir } from "os";
|
|
4
4
|
import { join } from "path";
|
|
5
|
-
import { profileErrorLogPath, profileLogPath, profileRoot, } from "../config/profile.js";
|
|
5
|
+
import { profileErrorLogPath, profileLogPath, profileRoot, normalizeProfileName, } from "../config/profile.js";
|
|
6
6
|
export const LOG_DIR = profileRoot(undefined);
|
|
7
7
|
export const LOG_PATH = profileLogPath(undefined);
|
|
8
8
|
export const ERROR_LOG_PATH = profileErrorLogPath(undefined);
|
|
@@ -11,6 +11,19 @@ export const LINUX_SYSTEMD_USER_DIR = join(homedir(), ".config", "systemd", "use
|
|
|
11
11
|
export const LINUX_SERVICE_PATH = join(LINUX_SYSTEMD_USER_DIR, LINUX_SERVICE_NAME);
|
|
12
12
|
export const LINUX_NOHUP_PID_PATH = join(LOG_DIR, "clawconnect.pid");
|
|
13
13
|
export const LINUX_NOHUP_START_SCRIPT_PATH = join(LOG_DIR, "clawconnect-start.sh");
|
|
14
|
+
export function getLinuxServiceName(profile) {
|
|
15
|
+
const normalized = normalizeProfileName(profile);
|
|
16
|
+
return normalized ? `clawconnect-agent-${normalized}.service` : LINUX_SERVICE_NAME;
|
|
17
|
+
}
|
|
18
|
+
export function getLinuxServicePath(profile) {
|
|
19
|
+
return join(LINUX_SYSTEMD_USER_DIR, getLinuxServiceName(profile));
|
|
20
|
+
}
|
|
21
|
+
export function getLinuxNohupPidPath(profile) {
|
|
22
|
+
return join(profileRoot(profile), "clawconnect.pid");
|
|
23
|
+
}
|
|
24
|
+
export function getLinuxNohupStartScriptPath(profile) {
|
|
25
|
+
return join(profileRoot(profile), "clawconnect-start.sh");
|
|
26
|
+
}
|
|
14
27
|
export function detectPlatform() {
|
|
15
28
|
if (process.platform === "darwin")
|
|
16
29
|
return "macos";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-manager-common.js","sourceRoot":"","sources":["../../src/platform/service-manager-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,
|
|
1
|
+
{"version":3,"file":"service-manager-common.js","sourceRoot":"","sources":["../../src/platform/service-manager-common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { type ServiceStatus } from "./service-manager-common.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
type LinuxServicePaths = {
|
|
3
|
+
profile?: string;
|
|
4
|
+
serviceName: string;
|
|
5
|
+
servicePath: string;
|
|
6
|
+
pidPath: string;
|
|
7
|
+
startScriptPath: string;
|
|
8
|
+
workingDirectory: string;
|
|
9
|
+
logPath: string;
|
|
10
|
+
errorLogPath: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function getLinuxServicePaths(profile?: string): LinuxServicePaths;
|
|
13
|
+
export declare function installLinuxService(profile?: string): boolean;
|
|
14
|
+
export declare function stopLinuxService(profile?: string): boolean;
|
|
15
|
+
export declare function uninstallLinuxService(profile?: string): boolean;
|
|
16
|
+
export declare function restartLinuxService(profile?: string): boolean;
|
|
17
|
+
export declare function getLinuxServiceStatus(profile?: string): ServiceStatus;
|
|
18
|
+
export {};
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
import { commandExists, ensureLogDir, ERROR_LOG_PATH, getProgramArgs, LINUX_NOHUP_PID_PATH, LINUX_NOHUP_START_SCRIPT_PATH, LINUX_SERVICE_NAME, LINUX_SERVICE_PATH, LINUX_SYSTEMD_USER_DIR, LOG_DIR, LOG_PATH, run, shellEscape, } from "./service-manager-common.js";
|
|
2
1
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
|
|
3
|
-
|
|
2
|
+
import { getActiveProfile, normalizeProfileName } from "../config/profile.js";
|
|
3
|
+
import { commandExists, ensureLogDir, getLinuxNohupPidPath, getLinuxNohupStartScriptPath, getLinuxServiceName, getLinuxServicePath, getProfileErrorLogPath, getProfileLogDir, getProfileLogPath, getProgramArgs, LINUX_SYSTEMD_USER_DIR, run, shellEscape, } from "./service-manager-common.js";
|
|
4
|
+
export function getLinuxServicePaths(profile) {
|
|
5
|
+
const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
|
|
6
|
+
return {
|
|
7
|
+
profile: resolvedProfile,
|
|
8
|
+
serviceName: getLinuxServiceName(resolvedProfile),
|
|
9
|
+
servicePath: getLinuxServicePath(resolvedProfile),
|
|
10
|
+
pidPath: getLinuxNohupPidPath(resolvedProfile),
|
|
11
|
+
startScriptPath: getLinuxNohupStartScriptPath(resolvedProfile),
|
|
12
|
+
workingDirectory: getProfileLogDir(resolvedProfile),
|
|
13
|
+
logPath: getProfileLogPath(resolvedProfile),
|
|
14
|
+
errorLogPath: getProfileErrorLogPath(resolvedProfile),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
4
17
|
function canUseSystemdUser() {
|
|
5
18
|
if (!commandExists("systemctl"))
|
|
6
19
|
return false;
|
|
@@ -21,11 +34,11 @@ function isPidRunning(pid) {
|
|
|
21
34
|
return false;
|
|
22
35
|
}
|
|
23
36
|
}
|
|
24
|
-
function readNohupPid() {
|
|
25
|
-
if (!existsSync(
|
|
37
|
+
function readNohupPid(paths) {
|
|
38
|
+
if (!existsSync(paths.pidPath))
|
|
26
39
|
return null;
|
|
27
40
|
try {
|
|
28
|
-
const raw = readFileSync(
|
|
41
|
+
const raw = readFileSync(paths.pidPath, "utf-8").trim();
|
|
29
42
|
const pid = Number(raw);
|
|
30
43
|
return Number.isInteger(pid) && pid > 0 ? pid : null;
|
|
31
44
|
}
|
|
@@ -33,41 +46,40 @@ function readNohupPid() {
|
|
|
33
46
|
return null;
|
|
34
47
|
}
|
|
35
48
|
}
|
|
36
|
-
function removeNohupPidFile() {
|
|
37
|
-
if (existsSync(
|
|
38
|
-
unlinkSync(
|
|
39
|
-
}
|
|
49
|
+
function removeNohupPidFile(paths) {
|
|
50
|
+
if (existsSync(paths.pidPath))
|
|
51
|
+
unlinkSync(paths.pidPath);
|
|
40
52
|
}
|
|
41
|
-
function getNohupStartCommand() {
|
|
42
|
-
return `bash ${shellEscape(
|
|
53
|
+
function getNohupStartCommand(paths) {
|
|
54
|
+
return `bash ${shellEscape(paths.startScriptPath)}`;
|
|
43
55
|
}
|
|
44
|
-
function writeLinuxNohupStartScript() {
|
|
45
|
-
const args = getProgramArgs().map(shellEscape).join(" ");
|
|
56
|
+
function writeLinuxNohupStartScript(paths) {
|
|
57
|
+
const args = getProgramArgs(paths.profile).map(shellEscape).join(" ");
|
|
46
58
|
const script = `#!/usr/bin/env bash
|
|
47
59
|
set -euo pipefail
|
|
48
60
|
|
|
49
|
-
mkdir -p ${shellEscape(
|
|
50
|
-
cd ${shellEscape(
|
|
51
|
-
if [ -f ${shellEscape(
|
|
52
|
-
pid="$(cat ${shellEscape(
|
|
61
|
+
mkdir -p ${shellEscape(paths.workingDirectory)}
|
|
62
|
+
cd ${shellEscape(paths.workingDirectory)}
|
|
63
|
+
if [ -f ${shellEscape(paths.pidPath)} ]; then
|
|
64
|
+
pid="$(cat ${shellEscape(paths.pidPath)} 2>/dev/null || true)"
|
|
53
65
|
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
|
54
66
|
echo "clawconnect is already running (pid=$pid)"
|
|
55
67
|
exit 0
|
|
56
68
|
fi
|
|
57
69
|
fi
|
|
58
70
|
|
|
59
|
-
nohup ${args} >> ${shellEscape(
|
|
60
|
-
echo $! > ${shellEscape(
|
|
61
|
-
echo "clawconnect started in nohup mode (pid=$(cat ${shellEscape(
|
|
71
|
+
nohup ${args} >> ${shellEscape(paths.logPath)} 2>> ${shellEscape(paths.errorLogPath)} < /dev/null &
|
|
72
|
+
echo $! > ${shellEscape(paths.pidPath)}
|
|
73
|
+
echo "clawconnect started in nohup mode (pid=$(cat ${shellEscape(paths.pidPath)}))"
|
|
62
74
|
`;
|
|
63
|
-
writeFileSync(
|
|
75
|
+
writeFileSync(paths.startScriptPath, script, { encoding: "utf-8", mode: 0o755 });
|
|
64
76
|
}
|
|
65
|
-
function installLinuxServiceSystemd() {
|
|
77
|
+
function installLinuxServiceSystemd(paths) {
|
|
66
78
|
mkdirSync(LINUX_SYSTEMD_USER_DIR, { recursive: true });
|
|
67
|
-
ensureLogDir();
|
|
68
|
-
const args = getProgramArgs().map(shellEscape).join(" ");
|
|
79
|
+
ensureLogDir(paths.profile);
|
|
80
|
+
const args = getProgramArgs(paths.profile).map(shellEscape).join(" ");
|
|
69
81
|
const serviceContent = `[Unit]
|
|
70
|
-
Description=ClawConnect host agent
|
|
82
|
+
Description=ClawConnect host agent (${paths.profile ?? "default"})
|
|
71
83
|
After=network-online.target
|
|
72
84
|
Wants=network-online.target
|
|
73
85
|
|
|
@@ -76,53 +88,54 @@ Type=simple
|
|
|
76
88
|
ExecStart=${args}
|
|
77
89
|
Restart=always
|
|
78
90
|
RestartSec=5
|
|
79
|
-
WorkingDirectory=${shellEscape(
|
|
80
|
-
StandardOutput=append:${
|
|
81
|
-
StandardError=append:${
|
|
91
|
+
WorkingDirectory=${shellEscape(paths.workingDirectory)}
|
|
92
|
+
StandardOutput=append:${paths.logPath}
|
|
93
|
+
StandardError=append:${paths.errorLogPath}
|
|
82
94
|
|
|
83
95
|
[Install]
|
|
84
96
|
WantedBy=default.target
|
|
85
97
|
`;
|
|
86
|
-
writeFileSync(
|
|
98
|
+
writeFileSync(paths.servicePath, serviceContent, "utf-8");
|
|
87
99
|
run("systemctl --user daemon-reload", "inherit");
|
|
88
|
-
run(`systemctl --user enable --now ${
|
|
100
|
+
run(`systemctl --user enable --now ${paths.serviceName}`, "inherit");
|
|
89
101
|
return true;
|
|
90
102
|
}
|
|
91
|
-
function installLinuxServiceNohup() {
|
|
92
|
-
ensureLogDir();
|
|
93
|
-
writeLinuxNohupStartScript();
|
|
94
|
-
run(`sh -lc ${shellEscape(getNohupStartCommand())}`, "inherit");
|
|
95
|
-
const pid = readNohupPid();
|
|
103
|
+
function installLinuxServiceNohup(paths) {
|
|
104
|
+
ensureLogDir(paths.profile);
|
|
105
|
+
writeLinuxNohupStartScript(paths);
|
|
106
|
+
run(`sh -lc ${shellEscape(getNohupStartCommand(paths))}`, "inherit");
|
|
107
|
+
const pid = readNohupPid(paths);
|
|
96
108
|
return pid != null && isPidRunning(pid);
|
|
97
109
|
}
|
|
98
|
-
export function installLinuxService() {
|
|
110
|
+
export function installLinuxService(profile) {
|
|
111
|
+
const paths = getLinuxServicePaths(profile);
|
|
99
112
|
if (canUseSystemdUser()) {
|
|
100
113
|
try {
|
|
101
|
-
return installLinuxServiceSystemd();
|
|
114
|
+
return installLinuxServiceSystemd(paths);
|
|
102
115
|
}
|
|
103
116
|
catch {
|
|
104
117
|
// Fall back to nohup below.
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
120
|
try {
|
|
108
|
-
return installLinuxServiceNohup();
|
|
121
|
+
return installLinuxServiceNohup(paths);
|
|
109
122
|
}
|
|
110
123
|
catch {
|
|
111
124
|
return false;
|
|
112
125
|
}
|
|
113
126
|
}
|
|
114
|
-
function uninstallLinuxArtifacts(removeFile) {
|
|
127
|
+
function uninstallLinuxArtifacts(paths, removeFile) {
|
|
115
128
|
let changed = false;
|
|
116
129
|
if (canUseSystemdUser()) {
|
|
117
130
|
try {
|
|
118
|
-
run(`systemctl --user stop ${
|
|
131
|
+
run(`systemctl --user stop ${paths.serviceName}`);
|
|
119
132
|
changed = true;
|
|
120
133
|
}
|
|
121
134
|
catch {
|
|
122
135
|
// ignore
|
|
123
136
|
}
|
|
124
137
|
try {
|
|
125
|
-
run(`systemctl --user disable ${
|
|
138
|
+
run(`systemctl --user disable ${paths.serviceName}`);
|
|
126
139
|
changed = true;
|
|
127
140
|
}
|
|
128
141
|
catch {
|
|
@@ -135,7 +148,7 @@ function uninstallLinuxArtifacts(removeFile) {
|
|
|
135
148
|
// ignore
|
|
136
149
|
}
|
|
137
150
|
}
|
|
138
|
-
const nohupPid = readNohupPid();
|
|
151
|
+
const nohupPid = readNohupPid(paths);
|
|
139
152
|
if (nohupPid != null) {
|
|
140
153
|
try {
|
|
141
154
|
process.kill(nohupPid, "SIGTERM");
|
|
@@ -144,86 +157,86 @@ function uninstallLinuxArtifacts(removeFile) {
|
|
|
144
157
|
catch {
|
|
145
158
|
// ignore
|
|
146
159
|
}
|
|
147
|
-
removeNohupPidFile();
|
|
160
|
+
removeNohupPidFile(paths);
|
|
148
161
|
changed = true;
|
|
149
162
|
}
|
|
150
|
-
if (removeFile && existsSync(
|
|
151
|
-
unlinkSync(
|
|
163
|
+
if (removeFile && existsSync(paths.servicePath)) {
|
|
164
|
+
unlinkSync(paths.servicePath);
|
|
152
165
|
changed = true;
|
|
153
166
|
}
|
|
154
|
-
if (removeFile && existsSync(
|
|
155
|
-
unlinkSync(
|
|
167
|
+
if (removeFile && existsSync(paths.startScriptPath)) {
|
|
168
|
+
unlinkSync(paths.startScriptPath);
|
|
156
169
|
changed = true;
|
|
157
170
|
}
|
|
158
171
|
return changed;
|
|
159
172
|
}
|
|
160
|
-
export function stopLinuxService() {
|
|
161
|
-
return uninstallLinuxArtifacts(false);
|
|
173
|
+
export function stopLinuxService(profile) {
|
|
174
|
+
return uninstallLinuxArtifacts(getLinuxServicePaths(profile), false);
|
|
162
175
|
}
|
|
163
|
-
export function uninstallLinuxService() {
|
|
164
|
-
return uninstallLinuxArtifacts(true);
|
|
176
|
+
export function uninstallLinuxService(profile) {
|
|
177
|
+
return uninstallLinuxArtifacts(getLinuxServicePaths(profile), true);
|
|
165
178
|
}
|
|
166
|
-
export function restartLinuxService() {
|
|
167
|
-
|
|
179
|
+
export function restartLinuxService(profile) {
|
|
180
|
+
const paths = getLinuxServicePaths(profile);
|
|
181
|
+
if (canUseSystemdUser() && existsSync(paths.servicePath)) {
|
|
168
182
|
try {
|
|
169
183
|
run("systemctl --user daemon-reload", "inherit");
|
|
170
|
-
run(`systemctl --user restart ${
|
|
184
|
+
run(`systemctl --user restart ${paths.serviceName}`, "inherit");
|
|
171
185
|
return true;
|
|
172
186
|
}
|
|
173
187
|
catch {
|
|
174
188
|
// Fall back to nohup restart below.
|
|
175
189
|
}
|
|
176
190
|
}
|
|
177
|
-
uninstallLinuxArtifacts(false);
|
|
191
|
+
uninstallLinuxArtifacts(paths, false);
|
|
178
192
|
try {
|
|
179
|
-
return installLinuxServiceNohup();
|
|
193
|
+
return installLinuxServiceNohup(paths);
|
|
180
194
|
}
|
|
181
195
|
catch {
|
|
182
196
|
return false;
|
|
183
197
|
}
|
|
184
198
|
}
|
|
185
|
-
export function getLinuxServiceStatus() {
|
|
199
|
+
export function getLinuxServiceStatus(profile) {
|
|
200
|
+
const paths = getLinuxServicePaths(profile);
|
|
186
201
|
const buildNohupStatus = (installed, running) => ({
|
|
187
202
|
platform: "linux",
|
|
188
203
|
installed,
|
|
189
204
|
running,
|
|
190
|
-
serviceName:
|
|
205
|
+
serviceName: `${paths.serviceName} (nohup)`,
|
|
191
206
|
manager: "nohup",
|
|
192
|
-
servicePath: existsSync(
|
|
193
|
-
logPath:
|
|
194
|
-
startHint: getNohupStartCommand(),
|
|
207
|
+
servicePath: existsSync(paths.startScriptPath) ? paths.startScriptPath : undefined,
|
|
208
|
+
logPath: paths.logPath,
|
|
209
|
+
startHint: getNohupStartCommand(paths),
|
|
195
210
|
});
|
|
196
211
|
const isSystemdActive = () => {
|
|
197
212
|
if (!canUseSystemdUser())
|
|
198
213
|
return false;
|
|
199
214
|
try {
|
|
200
|
-
run(`systemctl --user is-active --quiet ${
|
|
215
|
+
run(`systemctl --user is-active --quiet ${paths.serviceName}`);
|
|
201
216
|
return true;
|
|
202
217
|
}
|
|
203
218
|
catch {
|
|
204
219
|
return false;
|
|
205
220
|
}
|
|
206
221
|
};
|
|
207
|
-
const pid = readNohupPid();
|
|
208
|
-
const hasNohupArtifacts = pid != null || existsSync(
|
|
222
|
+
const pid = readNohupPid(paths);
|
|
223
|
+
const hasNohupArtifacts = pid != null || existsSync(paths.startScriptPath);
|
|
209
224
|
const running = pid != null && isPidRunning(pid);
|
|
210
|
-
if (!running && pid != null)
|
|
211
|
-
removeNohupPidFile();
|
|
212
|
-
}
|
|
225
|
+
if (!running && pid != null)
|
|
226
|
+
removeNohupPidFile(paths);
|
|
213
227
|
if (running || (hasNohupArtifacts && !canUseSystemdUser())) {
|
|
214
228
|
return buildNohupStatus(hasNohupArtifacts, running);
|
|
215
229
|
}
|
|
216
|
-
|
|
217
|
-
if (hasSystemdServiceFile) {
|
|
230
|
+
if (existsSync(paths.servicePath)) {
|
|
218
231
|
return {
|
|
219
232
|
platform: "linux",
|
|
220
233
|
installed: true,
|
|
221
234
|
running: isSystemdActive(),
|
|
222
|
-
serviceName:
|
|
235
|
+
serviceName: paths.serviceName,
|
|
223
236
|
manager: "systemd",
|
|
224
|
-
servicePath:
|
|
225
|
-
logPath:
|
|
226
|
-
startHint: `systemctl --user start ${
|
|
237
|
+
servicePath: paths.servicePath,
|
|
238
|
+
logPath: paths.logPath,
|
|
239
|
+
startHint: `systemctl --user start ${paths.serviceName}`,
|
|
227
240
|
};
|
|
228
241
|
}
|
|
229
242
|
return buildNohupStatus(hasNohupArtifacts, running);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-manager-linux.js","sourceRoot":"","sources":["../../src/platform/service-manager-linux.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"service-manager-linux.js","sourceRoot":"","sources":["../../src/platform/service-manager-linux.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, unlinkSync, writeFileSync } from "fs";
|
|
2
2
|
import { homedir } from "os";
|
|
3
3
|
import { join } from "path";
|
|
4
|
-
import { detectPlatform, ensureLogDir, getProfileErrorLogPath, getProfileLogPath, getProgramArgs,
|
|
4
|
+
import { detectPlatform, ensureLogDir, getProfileErrorLogPath, getProfileLogPath, getProgramArgs, getLinuxNohupPidPath, getLinuxNohupStartScriptPath, getLinuxServicePath, run, } from "./service-manager-common.js";
|
|
5
5
|
import { getActiveProfile, normalizeProfileName, profileDisplayName } from "../config/profile.js";
|
|
6
6
|
import { getLinuxServiceStatus, installLinuxService, restartLinuxService, stopLinuxService, uninstallLinuxService, } from "./service-manager-linux.js";
|
|
7
7
|
import { getWindowsServiceStatus, installWindowsService, restartWindowsService, stopWindowsService, uninstallWindowsService, } from "./service-manager-windows.js";
|
|
@@ -127,49 +127,53 @@ export function getServicePlatform() {
|
|
|
127
127
|
return detectPlatform();
|
|
128
128
|
}
|
|
129
129
|
export function installService(profile) {
|
|
130
|
+
const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
|
|
130
131
|
switch (detectPlatform()) {
|
|
131
132
|
case "macos":
|
|
132
|
-
return installMacService(
|
|
133
|
+
return installMacService(resolvedProfile);
|
|
133
134
|
case "linux":
|
|
134
|
-
return installLinuxService();
|
|
135
|
+
return installLinuxService(resolvedProfile);
|
|
135
136
|
case "windows":
|
|
136
|
-
return installWindowsService(
|
|
137
|
+
return installWindowsService(resolvedProfile);
|
|
137
138
|
default:
|
|
138
139
|
return false;
|
|
139
140
|
}
|
|
140
141
|
}
|
|
141
142
|
export function restartService(profile) {
|
|
143
|
+
const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
|
|
142
144
|
switch (detectPlatform()) {
|
|
143
145
|
case "macos":
|
|
144
|
-
return restartMacService(
|
|
146
|
+
return restartMacService(resolvedProfile);
|
|
145
147
|
case "linux":
|
|
146
|
-
return restartLinuxService();
|
|
148
|
+
return restartLinuxService(resolvedProfile);
|
|
147
149
|
case "windows":
|
|
148
|
-
return restartWindowsService(
|
|
150
|
+
return restartWindowsService(resolvedProfile);
|
|
149
151
|
default:
|
|
150
152
|
return false;
|
|
151
153
|
}
|
|
152
154
|
}
|
|
153
155
|
export function stopService(profile) {
|
|
156
|
+
const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
|
|
154
157
|
switch (detectPlatform()) {
|
|
155
158
|
case "macos":
|
|
156
|
-
return uninstallMacArtifacts(
|
|
159
|
+
return uninstallMacArtifacts(resolvedProfile);
|
|
157
160
|
case "linux":
|
|
158
|
-
return stopLinuxService();
|
|
161
|
+
return stopLinuxService(resolvedProfile);
|
|
159
162
|
case "windows":
|
|
160
|
-
return stopWindowsService(
|
|
163
|
+
return stopWindowsService(resolvedProfile);
|
|
161
164
|
default:
|
|
162
165
|
return false;
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
export function uninstallService(profile) {
|
|
169
|
+
const resolvedProfile = normalizeProfileName(profile ?? getActiveProfile());
|
|
166
170
|
switch (detectPlatform()) {
|
|
167
171
|
case "macos":
|
|
168
|
-
return uninstallMacArtifacts(
|
|
172
|
+
return uninstallMacArtifacts(resolvedProfile);
|
|
169
173
|
case "linux":
|
|
170
|
-
return uninstallLinuxService();
|
|
174
|
+
return uninstallLinuxService(resolvedProfile);
|
|
171
175
|
case "windows":
|
|
172
|
-
return uninstallWindowsService(
|
|
176
|
+
return uninstallWindowsService(resolvedProfile);
|
|
173
177
|
default:
|
|
174
178
|
return false;
|
|
175
179
|
}
|
|
@@ -200,7 +204,7 @@ export function getServiceStatus(profile) {
|
|
|
200
204
|
};
|
|
201
205
|
}
|
|
202
206
|
if (platform === "linux") {
|
|
203
|
-
return getLinuxServiceStatus();
|
|
207
|
+
return getLinuxServiceStatus(resolvedProfile);
|
|
204
208
|
}
|
|
205
209
|
if (platform === "windows") {
|
|
206
210
|
return getWindowsServiceStatus(resolvedProfile);
|
|
@@ -221,9 +225,9 @@ export function getServicePaths(profile) {
|
|
|
221
225
|
logPath: getProfileLogPath(resolvedProfile),
|
|
222
226
|
errorLogPath: getProfileErrorLogPath(resolvedProfile),
|
|
223
227
|
macPlistPath: macPlistPath(resolvedProfile),
|
|
224
|
-
linuxServicePath:
|
|
225
|
-
linuxNohupPidPath:
|
|
226
|
-
linuxNohupStartScriptPath:
|
|
228
|
+
linuxServicePath: getLinuxServicePath(resolvedProfile),
|
|
229
|
+
linuxNohupPidPath: getLinuxNohupPidPath(resolvedProfile),
|
|
230
|
+
linuxNohupStartScriptPath: getLinuxNohupStartScriptPath(resolvedProfile),
|
|
227
231
|
windowsServicePath: "",
|
|
228
232
|
};
|
|
229
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-manager.js","sourceRoot":"","sources":["../../src/platform/service-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAGL,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"service-manager.js","sourceRoot":"","sources":["../../src/platform/service-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clawconnect-agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.41",
|
|
4
4
|
"description": "ClawConnect host agent for OpenClaw remote access",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"README.zh-CN.md"
|
|
24
24
|
],
|
|
25
25
|
"engines": {
|
|
26
|
-
"node": ">=18"
|
|
26
|
+
"node": ">=18.19.0"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"postinstall": "node scripts/fix-windows-powershell-shim.mjs",
|
|
33
33
|
"sync:slash-commands": "tsx scripts/sync-slash-command-catalog.ts",
|
|
34
34
|
"prepack": "npm run build",
|
|
35
|
-
"test": "node
|
|
35
|
+
"test": "node scripts/run-tests.mjs",
|
|
36
|
+
"test:windows": "node scripts/run-tests.mjs",
|
|
36
37
|
"test:e2e": "tsx scripts/e2e-protocol-smoke.ts",
|
|
37
38
|
"dev": "tsx src/index.ts",
|
|
38
39
|
"start": "node dist/index.js"
|