@openclaw-caribbean/shared 0.1.0
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/daemon.d.ts +13 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +85 -0
- package/dist/daemon.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/node.d.ts +53 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +2 -0
- package/dist/node.js.map +1 -0
- package/package.json +24 -0
package/dist/daemon.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function writePid(pidPath: string, pid: number): void;
|
|
2
|
+
export declare function readPid(pidPath: string): number | null;
|
|
3
|
+
export declare function removePid(pidPath: string): void;
|
|
4
|
+
export declare function processExists(pid: number): boolean;
|
|
5
|
+
export declare function waitForProcessExit(pid: number, timeout: number): Promise<boolean>;
|
|
6
|
+
export interface SpawnDaemonOptions {
|
|
7
|
+
pidPath: string;
|
|
8
|
+
logPath: string;
|
|
9
|
+
spawnArgs: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function spawnDaemon(options: SpawnDaemonOptions): number;
|
|
12
|
+
export declare function stopDaemon(pidPath: string, name: string): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAM3D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcjF;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAkB/D;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7E"}
|
package/dist/daemon.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, unlinkSync, openSync } from 'fs';
|
|
3
|
+
import { dirname } from 'path';
|
|
4
|
+
export function writePid(pidPath, pid) {
|
|
5
|
+
const dir = dirname(pidPath);
|
|
6
|
+
if (!existsSync(dir)) {
|
|
7
|
+
mkdirSync(dir, { recursive: true });
|
|
8
|
+
}
|
|
9
|
+
writeFileSync(pidPath, pid.toString());
|
|
10
|
+
}
|
|
11
|
+
export function readPid(pidPath) {
|
|
12
|
+
if (!existsSync(pidPath))
|
|
13
|
+
return null;
|
|
14
|
+
const pid = parseInt(readFileSync(pidPath, 'utf-8'), 10);
|
|
15
|
+
return isNaN(pid) ? null : pid;
|
|
16
|
+
}
|
|
17
|
+
export function removePid(pidPath) {
|
|
18
|
+
if (existsSync(pidPath)) {
|
|
19
|
+
unlinkSync(pidPath);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function processExists(pid) {
|
|
23
|
+
try {
|
|
24
|
+
process.kill(pid, 0);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function waitForProcessExit(pid, timeout) {
|
|
32
|
+
return new Promise((resolve) => {
|
|
33
|
+
const start = Date.now();
|
|
34
|
+
const interval = setInterval(() => {
|
|
35
|
+
if (!processExists(pid)) {
|
|
36
|
+
clearInterval(interval);
|
|
37
|
+
resolve(true);
|
|
38
|
+
}
|
|
39
|
+
if (Date.now() - start > timeout) {
|
|
40
|
+
clearInterval(interval);
|
|
41
|
+
resolve(false);
|
|
42
|
+
}
|
|
43
|
+
}, 100);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
export function spawnDaemon(options) {
|
|
47
|
+
const dir = dirname(options.logPath);
|
|
48
|
+
if (!existsSync(dir)) {
|
|
49
|
+
mkdirSync(dir, { recursive: true });
|
|
50
|
+
}
|
|
51
|
+
const logFile = openSync(options.logPath, 'a');
|
|
52
|
+
const child = spawn(process.execPath, options.spawnArgs, {
|
|
53
|
+
detached: true,
|
|
54
|
+
stdio: ['ignore', logFile, logFile],
|
|
55
|
+
});
|
|
56
|
+
child.unref();
|
|
57
|
+
writePid(options.pidPath, child.pid);
|
|
58
|
+
return child.pid;
|
|
59
|
+
}
|
|
60
|
+
export async function stopDaemon(pidPath, name) {
|
|
61
|
+
const pid = readPid(pidPath);
|
|
62
|
+
if (!pid) {
|
|
63
|
+
console.log(`${name} is not running (no PID file found)`);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!processExists(pid)) {
|
|
67
|
+
console.log(`${name} is not running (stale PID file)`);
|
|
68
|
+
removePid(pidPath);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
console.log(`Stopping ${name} (PID: ${pid})...`);
|
|
72
|
+
process.kill(pid, 'SIGTERM');
|
|
73
|
+
const exited = await waitForProcessExit(pid, 10000);
|
|
74
|
+
if (exited) {
|
|
75
|
+
console.log(`${name} stopped gracefully`);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
console.log(`Force stopping ${name}...`);
|
|
79
|
+
process.kill(pid, 'SIGKILL');
|
|
80
|
+
await waitForProcessExit(pid, 1000);
|
|
81
|
+
console.log(`${name} stopped (forced)`);
|
|
82
|
+
}
|
|
83
|
+
removePid(pidPath);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
package/dist/node.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface OpenClawGatewayStatus {
|
|
2
|
+
status: 'running' | 'stopped' | 'error';
|
|
3
|
+
version?: string;
|
|
4
|
+
pid?: number;
|
|
5
|
+
port?: number;
|
|
6
|
+
doctorWarnings?: DoctorWarning[];
|
|
7
|
+
troubles?: Trouble[];
|
|
8
|
+
healthy: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface DoctorWarning {
|
|
11
|
+
type: string;
|
|
12
|
+
message: string;
|
|
13
|
+
suggestion?: string;
|
|
14
|
+
severity: 'error' | 'warning' | 'info';
|
|
15
|
+
}
|
|
16
|
+
export interface Trouble {
|
|
17
|
+
type: string;
|
|
18
|
+
message: string;
|
|
19
|
+
severity: 'error' | 'warning' | 'info';
|
|
20
|
+
}
|
|
21
|
+
export interface NodeStatus {
|
|
22
|
+
version: string;
|
|
23
|
+
uptime: number;
|
|
24
|
+
memory: MemoryInfo;
|
|
25
|
+
cpu: CpuInfo;
|
|
26
|
+
agents: AgentsInfo;
|
|
27
|
+
skills: string[];
|
|
28
|
+
openclawGateway?: string | OpenClawGatewayStatus;
|
|
29
|
+
}
|
|
30
|
+
export interface MemoryInfo {
|
|
31
|
+
used: number;
|
|
32
|
+
total: number;
|
|
33
|
+
percent: number;
|
|
34
|
+
}
|
|
35
|
+
export interface CpuInfo {
|
|
36
|
+
percent: number;
|
|
37
|
+
}
|
|
38
|
+
export interface AgentsInfo {
|
|
39
|
+
active: number;
|
|
40
|
+
max: number;
|
|
41
|
+
list: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface NodeInfo {
|
|
44
|
+
id: string;
|
|
45
|
+
name: string;
|
|
46
|
+
tags: string[];
|
|
47
|
+
connected: boolean;
|
|
48
|
+
lastSeen: Date;
|
|
49
|
+
status?: NodeStatus;
|
|
50
|
+
openclawStatus?: string;
|
|
51
|
+
clientIp?: string;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;CAClD;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
package/dist/node.js
ADDED
package/dist/node.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openclaw-caribbean/shared",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": "./dist/index.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"dev": "tsc --watch",
|
|
17
|
+
"clean": "rm -rf dist",
|
|
18
|
+
"prepublishOnly": "pnpm run build"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/node": "^25.5.0",
|
|
22
|
+
"typescript": "^5.3.3"
|
|
23
|
+
}
|
|
24
|
+
}
|