@openclaw-cloud/agent-controller 0.7.2 → 0.7.4
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/commands/backup-cli.js +5 -24
- package/dist/commands/backup-cli.js.map +1 -1
- package/dist/commands/bootstrap.js +2 -8
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/knowledge-sync-cli.js +3 -13
- package/dist/commands/knowledge-sync-cli.js.map +1 -1
- package/dist/commands/self-update.js +3 -15
- package/dist/commands/self-update.js.map +1 -1
- package/dist/connection.d.ts +1 -1
- package/dist/connection.js +67 -49
- package/dist/connection.js.map +1 -1
- package/dist/handlers/backup.d.ts +2 -1
- package/dist/handlers/backup.js +31 -50
- package/dist/handlers/backup.js.map +1 -1
- package/dist/handlers/board-handler.js +12 -4
- package/dist/handlers/board-handler.js.map +1 -1
- package/dist/handlers/config.js +25 -29
- package/dist/handlers/config.js.map +1 -1
- package/dist/handlers/deploy.js +20 -6
- package/dist/handlers/deploy.js.map +1 -1
- package/dist/handlers/exec.js +1 -1
- package/dist/handlers/exec.js.map +1 -1
- package/dist/handlers/file-delete.js +4 -3
- package/dist/handlers/file-delete.js.map +1 -1
- package/dist/handlers/file-write.js +4 -3
- package/dist/handlers/file-write.js.map +1 -1
- package/dist/handlers/knowledge-sync.js +17 -6
- package/dist/handlers/knowledge-sync.js.map +1 -1
- package/dist/handlers/onboarding.js +21 -16
- package/dist/handlers/onboarding.js.map +1 -1
- package/dist/handlers/package-install.js +4 -6
- package/dist/handlers/package-install.js.map +1 -1
- package/dist/handlers/pair.js +3 -0
- package/dist/handlers/pair.js.map +1 -1
- package/dist/handlers/restart.js +21 -16
- package/dist/handlers/restart.js.map +1 -1
- package/dist/handlers/stop.js +4 -0
- package/dist/handlers/stop.js.map +1 -1
- package/dist/heartbeat.d.ts +4 -1
- package/dist/heartbeat.js +9 -13
- package/dist/heartbeat.js.map +1 -1
- package/dist/index.js +19 -16
- package/dist/index.js.map +1 -1
- package/dist/openclaw/gateway-adapter.js +19 -12
- package/dist/openclaw/gateway-adapter.js.map +1 -1
- package/dist/openclaw/gateway-client.d.ts +2 -2
- package/dist/openclaw/gateway-client.js +31 -16
- package/dist/openclaw/gateway-client.js.map +1 -1
- package/dist/openclaw/index.d.ts +1 -0
- package/dist/openclaw/index.js +3 -0
- package/dist/openclaw/index.js.map +1 -1
- package/dist/platform/common.d.ts +6 -0
- package/dist/platform/common.js +2 -0
- package/dist/platform/common.js.map +1 -0
- package/dist/platform/linux.d.ts +2 -6
- package/dist/platform/linux.js +7 -18
- package/dist/platform/linux.js.map +1 -1
- package/dist/platform/macos.d.ts +2 -6
- package/dist/platform/macos.js +7 -18
- package/dist/platform/macos.js.map +1 -1
- package/dist/platform/windows.d.ts +2 -6
- package/dist/platform/windows.js +7 -18
- package/dist/platform/windows.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/archive.d.ts +1 -0
- package/dist/utils/archive.js +16 -0
- package/dist/utils/archive.js.map +1 -0
- package/dist/utils/env.d.ts +1 -0
- package/dist/utils/env.js +9 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/exec.d.ts +1 -0
- package/dist/utils/exec.js +12 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/gateway-restart.d.ts +10 -0
- package/dist/utils/gateway-restart.js +23 -0
- package/dist/utils/gateway-restart.js.map +1 -0
- package/dist/utils/response.d.ts +3 -0
- package/dist/utils/response.js +7 -0
- package/dist/utils/response.js.map +1 -0
- package/dist/workspace.d.ts +12 -0
- package/dist/workspace.js +20 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +6 -5
package/dist/heartbeat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,16 +7,9 @@ import { createAgentApi } from './api.js';
|
|
|
7
7
|
import { BoardHandler } from './handlers/board-handler.js';
|
|
8
8
|
import { createChatProvider } from './openclaw/index.js';
|
|
9
9
|
import { DEBUG } from './debug.js';
|
|
10
|
+
import { requireEnv } from './utils/env.js';
|
|
10
11
|
const _require = createRequire(import.meta.url);
|
|
11
12
|
const { version: CONTROLLER_VERSION } = _require(join(dirname(fileURLToPath(import.meta.url)), '../package.json'));
|
|
12
|
-
function requireEnv(name) {
|
|
13
|
-
const value = process.env[name];
|
|
14
|
-
if (!value) {
|
|
15
|
-
console.error(`Missing required environment variable: ${name}`);
|
|
16
|
-
process.exit(1);
|
|
17
|
-
}
|
|
18
|
-
return value;
|
|
19
|
-
}
|
|
20
13
|
export function main() {
|
|
21
14
|
const rawUrl = requireEnv('CENTRIFUGO_URL');
|
|
22
15
|
// Centrifuge client requires ws:// scheme
|
|
@@ -30,11 +23,12 @@ export function main() {
|
|
|
30
23
|
console.log(`Backend URL: ${backendUrl} (JWT mode)`);
|
|
31
24
|
const api = createAgentApi(backendUrl, token);
|
|
32
25
|
const { client } = createConnection({ url, token, agentId, backendUrl, api, version: CONTROLLER_VERSION });
|
|
33
|
-
// Chat provider via OpenClaw Gateway WS
|
|
26
|
+
// Chat provider via OpenClaw Gateway WS (kept in outer scope for shutdown cleanup)
|
|
27
|
+
let chatProvider = null;
|
|
34
28
|
const gatewayWsUrl = process.env.OPENCLAW_GATEWAY_WS || 'ws://localhost:18789';
|
|
35
29
|
const gatewayToken = process.env.OPENCLAW_GATEWAY_TOKEN || '';
|
|
36
30
|
if (gatewayToken) {
|
|
37
|
-
|
|
31
|
+
chatProvider = createChatProvider(gatewayWsUrl, gatewayToken);
|
|
38
32
|
chatProvider.connect().then(() => {
|
|
39
33
|
console.log('OpenClaw Gateway WS connected (chat provider ready)');
|
|
40
34
|
}).catch((e) => {
|
|
@@ -44,16 +38,20 @@ export function main() {
|
|
|
44
38
|
else {
|
|
45
39
|
console.warn('OPENCLAW_GATEWAY_TOKEN not set, chat provider disabled');
|
|
46
40
|
}
|
|
47
|
-
// Board handler
|
|
41
|
+
// Board handler — board subscription kept in outer scope for shutdown cleanup
|
|
48
42
|
const boardHandler = new BoardHandler(api);
|
|
49
|
-
|
|
43
|
+
let boardSub = null;
|
|
44
|
+
// RACE-4: boardHandler.initialize() is async, so events published during initialization
|
|
45
|
+
// are missed. This is a known limitation: the initialize() call includes a checkQueue()
|
|
46
|
+
// backfill that re-reads all unassigned cards, so any events missed during init are
|
|
47
|
+
// recovered by that initial queue scan.
|
|
50
48
|
boardHandler.initialize().then((workspaceId) => {
|
|
51
49
|
if (!workspaceId) {
|
|
52
50
|
console.log('No board found for this agent, board handler dormant');
|
|
53
51
|
return;
|
|
54
52
|
}
|
|
55
53
|
const boardChannel = `board:${workspaceId}`;
|
|
56
|
-
|
|
54
|
+
boardSub = subscribeToChannel(client, boardChannel, { url, token, agentId, backendUrl, api, version: CONTROLLER_VERSION });
|
|
57
55
|
boardSub.on('publication', (ctx) => {
|
|
58
56
|
const event = ctx.data;
|
|
59
57
|
if (!event || !event.event)
|
|
@@ -67,7 +65,7 @@ export function main() {
|
|
|
67
65
|
console.error('Board handler init error:', err instanceof Error ? err.message : err);
|
|
68
66
|
});
|
|
69
67
|
console.log('Heartbeat via backend API');
|
|
70
|
-
const
|
|
68
|
+
const heartbeatHandle = startHeartbeat({
|
|
71
69
|
api,
|
|
72
70
|
agentId,
|
|
73
71
|
version: CONTROLLER_VERSION,
|
|
@@ -75,9 +73,14 @@ export function main() {
|
|
|
75
73
|
});
|
|
76
74
|
const shutdown = () => {
|
|
77
75
|
console.log('Shutting down...');
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
heartbeatHandle.stop();
|
|
77
|
+
boardSub?.unsubscribe();
|
|
78
|
+
chatProvider?.disconnect();
|
|
80
79
|
client.disconnect();
|
|
80
|
+
// SHUT-4: In-flight commands that are still executing when SIGTERM arrives will not
|
|
81
|
+
// have their responses delivered. This is acceptable — the backend times out and
|
|
82
|
+
// the K8s pod restarts cleanly. Waiting for in-flight commands would require draining
|
|
83
|
+
// the command queue here, which adds shutdown complexity.
|
|
81
84
|
process.exit(0);
|
|
82
85
|
};
|
|
83
86
|
process.on('SIGINT', shutdown);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,7 @@ export class OpenclawGatewayAdapter {
|
|
|
57
57
|
idempotencyKey: params.idempotencyKey,
|
|
58
58
|
};
|
|
59
59
|
if (params.attachments?.length) {
|
|
60
|
-
payload
|
|
60
|
+
payload['attachments'] = params.attachments;
|
|
61
61
|
}
|
|
62
62
|
try {
|
|
63
63
|
await this.client.request('chat.send', payload);
|
|
@@ -73,34 +73,41 @@ export class OpenclawGatewayAdapter {
|
|
|
73
73
|
}
|
|
74
74
|
handleEvent(event) {
|
|
75
75
|
const data = event.payload;
|
|
76
|
-
if (!data || !data
|
|
76
|
+
if (!data || !data['sessionKey'])
|
|
77
77
|
return;
|
|
78
78
|
// Stream events have runId matching idempotencyKey
|
|
79
|
-
const runId = data
|
|
79
|
+
const runId = data['runId'];
|
|
80
80
|
const cb = runId ? this.streamCallbacks.get(runId) : null;
|
|
81
81
|
if (!cb)
|
|
82
82
|
return;
|
|
83
|
-
if (data
|
|
83
|
+
if (data['state'] === 'delta' && data['message'] != null) {
|
|
84
84
|
// message is accumulated text
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
const msg = data['message'];
|
|
86
|
+
const text = typeof msg === 'string'
|
|
87
|
+
? msg
|
|
88
|
+
: Array.isArray(msg)
|
|
89
|
+
? msg
|
|
90
|
+
.filter((c) => c.type === 'text')
|
|
91
|
+
.map((c) => c.text)
|
|
92
|
+
.join('')
|
|
89
93
|
: '';
|
|
90
94
|
cb.lastText = text;
|
|
91
95
|
cb.onDelta?.(text);
|
|
92
96
|
}
|
|
93
|
-
else if (data
|
|
97
|
+
else if (data['state'] === 'final') {
|
|
94
98
|
this.streamCallbacks.delete(runId);
|
|
95
99
|
cb.onDone?.(cb.lastText);
|
|
96
100
|
}
|
|
97
|
-
else if (data
|
|
101
|
+
else if (data['state'] === 'aborted') {
|
|
98
102
|
this.streamCallbacks.delete(runId);
|
|
99
103
|
cb.onDone?.(cb.lastText); // still send whatever we have
|
|
100
104
|
}
|
|
101
|
-
else if (data
|
|
105
|
+
else if (data['state'] === 'error') {
|
|
102
106
|
this.streamCallbacks.delete(runId);
|
|
103
|
-
const
|
|
107
|
+
const errData = data['error'];
|
|
108
|
+
const errMsg = typeof errData === 'string'
|
|
109
|
+
? errData
|
|
110
|
+
: errData?.message ?? 'Unknown error';
|
|
104
111
|
cb.onError?.(errMsg);
|
|
105
112
|
}
|
|
106
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-adapter.js","sourceRoot":"","sources":["../../src/openclaw/gateway-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-adapter.js","sourceRoot":"","sources":["../../src/openclaw/gateway-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type EventHandler = (event: {
|
|
2
2
|
event: string;
|
|
3
|
-
payload:
|
|
3
|
+
payload: unknown;
|
|
4
4
|
seq?: number;
|
|
5
5
|
}) => void;
|
|
6
6
|
export declare class GatewayClient {
|
|
@@ -15,7 +15,7 @@ export declare class GatewayClient {
|
|
|
15
15
|
connect(): Promise<void>;
|
|
16
16
|
disconnect(): void;
|
|
17
17
|
isConnected(): boolean;
|
|
18
|
-
request(method: string, params:
|
|
18
|
+
request(method: string, params: unknown): Promise<unknown>;
|
|
19
19
|
private handleMessage;
|
|
20
20
|
private flushPending;
|
|
21
21
|
}
|
|
@@ -15,6 +15,10 @@ export class GatewayClient {
|
|
|
15
15
|
this.onEvent = handler;
|
|
16
16
|
}
|
|
17
17
|
connect() {
|
|
18
|
+
// RACE-5: guard against double-call before the first handshake completes
|
|
19
|
+
if (this.ws !== null) {
|
|
20
|
+
return Promise.reject(new Error('Already connecting or connected'));
|
|
21
|
+
}
|
|
18
22
|
return new Promise((resolve, reject) => {
|
|
19
23
|
this.ws = new WebSocket(this.url);
|
|
20
24
|
this.ws.on('open', () => {
|
|
@@ -35,6 +39,11 @@ export class GatewayClient {
|
|
|
35
39
|
this.connected = false;
|
|
36
40
|
this.flushPending(new Error('Connection closed'));
|
|
37
41
|
});
|
|
42
|
+
// LEAK-3: store and clear the connect timeout after successful auth
|
|
43
|
+
const connectTimer = setTimeout(() => {
|
|
44
|
+
if (!this.connected)
|
|
45
|
+
reject(new Error('Connect timeout'));
|
|
46
|
+
}, 10_000);
|
|
38
47
|
// Wait for connect.challenge → authenticate → resolve
|
|
39
48
|
const origHandler = this.onEvent;
|
|
40
49
|
this.onEvent = async (ev) => {
|
|
@@ -46,18 +55,16 @@ export class GatewayClient {
|
|
|
46
55
|
caps: [],
|
|
47
56
|
});
|
|
48
57
|
this.connected = true;
|
|
58
|
+
clearTimeout(connectTimer);
|
|
49
59
|
this.onEvent = origHandler;
|
|
50
60
|
resolve();
|
|
51
61
|
}
|
|
52
62
|
catch (e) {
|
|
63
|
+
clearTimeout(connectTimer);
|
|
53
64
|
reject(e);
|
|
54
65
|
}
|
|
55
66
|
}
|
|
56
67
|
};
|
|
57
|
-
setTimeout(() => {
|
|
58
|
-
if (!this.connected)
|
|
59
|
-
reject(new Error('Connect timeout'));
|
|
60
|
-
}, 10_000);
|
|
61
68
|
});
|
|
62
69
|
}
|
|
63
70
|
disconnect() {
|
|
@@ -75,32 +82,40 @@ export class GatewayClient {
|
|
|
75
82
|
return reject(new Error('Not connected'));
|
|
76
83
|
}
|
|
77
84
|
const id = randomUUID();
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// Timeout per request
|
|
81
|
-
setTimeout(() => {
|
|
85
|
+
// LEAK-2: store the per-request timeout so it can be cleared when the request resolves
|
|
86
|
+
const timer = setTimeout(() => {
|
|
82
87
|
if (this.pending.has(id)) {
|
|
83
88
|
this.pending.delete(id);
|
|
84
89
|
reject(new Error(`Request timeout: ${method}`));
|
|
85
90
|
}
|
|
86
91
|
}, 120_000);
|
|
92
|
+
this.pending.set(id, {
|
|
93
|
+
resolve: (payload) => { clearTimeout(timer); resolve(payload); },
|
|
94
|
+
reject: (err) => { clearTimeout(timer); reject(err); },
|
|
95
|
+
});
|
|
96
|
+
this.ws.send(JSON.stringify({ type: 'req', id, method, params }));
|
|
87
97
|
});
|
|
88
98
|
}
|
|
89
99
|
handleMessage(msg) {
|
|
90
|
-
if (msg
|
|
91
|
-
|
|
100
|
+
if (typeof msg !== 'object' || msg === null)
|
|
101
|
+
return;
|
|
102
|
+
const m = msg;
|
|
103
|
+
if (m['type'] === 'event') {
|
|
104
|
+
this.onEvent?.(m);
|
|
92
105
|
return;
|
|
93
106
|
}
|
|
94
|
-
if (
|
|
95
|
-
const
|
|
107
|
+
if (m['type'] === 'res') {
|
|
108
|
+
const id = m['id'];
|
|
109
|
+
const req = this.pending.get(id);
|
|
96
110
|
if (!req)
|
|
97
111
|
return;
|
|
98
|
-
this.pending.delete(
|
|
99
|
-
if (
|
|
100
|
-
req.resolve(
|
|
112
|
+
this.pending.delete(id);
|
|
113
|
+
if (m['ok']) {
|
|
114
|
+
req.resolve(m['payload']);
|
|
101
115
|
}
|
|
102
116
|
else {
|
|
103
|
-
|
|
117
|
+
const errPayload = m['error'];
|
|
118
|
+
req.reject(new Error(errPayload?.message ?? 'Request failed'));
|
|
104
119
|
}
|
|
105
120
|
}
|
|
106
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../src/openclaw/gateway-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AASpC,MAAM,OAAO,aAAa;IAChB,EAAE,GAAqB,IAAI,CAAC;IAC5B,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC5C,OAAO,GAAwB,IAAI,CAAC;IACpC,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,CAAS;IACd,GAAG,CAAS;IAEpB,YAAY,GAAW,EAAE,KAAa;QACpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,eAAe,CAAC,OAAqB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,sDAAsD;YACxD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../src/openclaw/gateway-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AASpC,MAAM,OAAO,aAAa;IAChB,EAAE,GAAqB,IAAI,CAAC;IAC5B,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC5C,OAAO,GAAwB,IAAI,CAAC;IACpC,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,CAAS;IACd,GAAG,CAAS;IAEpB,YAAY,GAAW,EAAE,KAAa;QACpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,eAAe,CAAC,OAAqB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,OAAO;QACL,yEAAyE;QACzE,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,sDAAsD;YACxD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAY,CAAC;oBAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,oEAAoE;YACpE,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC5D,CAAC,EAAE,MAAM,CAAC,CAAC;YAEX,sDAAsD;YACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;gBAC1B,IAAI,EAAE,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;4BAC5B,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;4BAC3B,MAAM,EAAE,CAAC,gBAAgB,CAAC;4BAC1B,IAAI,EAAE,EAAE;yBACT,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,YAAY,CAAC,YAAY,CAAC,CAAC;wBAC3B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;wBAC3B,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,YAAY,CAAC,YAAY,CAAC,CAAC;wBAC3B,MAAM,CAAC,CAAC,CAAC,CAAC;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,MAAe;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;YAExB,uFAAuF;YACvF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACnB,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,GAAY;QAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO;QACpD,MAAM,CAAC,GAAG,GAA8B,CAAC;QAEzC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAsD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAW,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAgC,CAAC;gBAC7D,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,GAAU;QAC7B,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF"}
|
package/dist/openclaw/index.d.ts
CHANGED
package/dist/openclaw/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/openclaw/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,IAAI,SAAS,GAAyB,IAAI,CAAC;AAE3C,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,KAAa;IAC3D,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvD,SAAS,GAAG,OAAO,CAAC;IACpB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/openclaw/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,IAAI,SAAS,GAAyB,IAAI,CAAC;AAE3C,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,KAAa;IAC3D,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvD,SAAS,GAAG,OAAO,CAAC;IACpB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/platform/common.ts"],"names":[],"mappings":""}
|
package/dist/platform/linux.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
agentToken: string;
|
|
4
|
-
agentId: string;
|
|
5
|
-
backendInternalUrl: string;
|
|
6
|
-
}
|
|
1
|
+
import type { PlatformConfig } from './common.js';
|
|
2
|
+
export type { PlatformConfig };
|
|
7
3
|
export declare function installLinux(config: PlatformConfig): Promise<void>;
|
|
8
4
|
export declare function uninstallLinux(): Promise<void>;
|
package/dist/platform/linux.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { writeFileSync, mkdirSync } from 'node:fs';
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
3
2
|
import { homedir } from 'node:os';
|
|
4
3
|
import { join } from 'node:path';
|
|
5
|
-
|
|
6
|
-
return new Promise((resolve, reject) => {
|
|
7
|
-
exec(cmd, (err, stdout) => {
|
|
8
|
-
if (err)
|
|
9
|
-
reject(err);
|
|
10
|
-
else
|
|
11
|
-
resolve(stdout.toString().trim());
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
}
|
|
4
|
+
import { execAsync } from '../utils/exec.js';
|
|
15
5
|
async function which(bin) {
|
|
16
6
|
try {
|
|
17
7
|
return await execAsync(`which "${bin}"`);
|
|
@@ -29,7 +19,7 @@ export async function installLinux(config) {
|
|
|
29
19
|
if (!agentControllerPath) {
|
|
30
20
|
agentControllerPath = join(nodePath, '..', 'agent-controller');
|
|
31
21
|
}
|
|
32
|
-
|
|
22
|
+
await fs.mkdir(systemdDir, { recursive: true });
|
|
33
23
|
const service = `[Unit]
|
|
34
24
|
Description=OpenClaw Agent Controller
|
|
35
25
|
After=network.target
|
|
@@ -55,7 +45,7 @@ WantedBy=default.target
|
|
|
55
45
|
catch {
|
|
56
46
|
// Not running — fine
|
|
57
47
|
}
|
|
58
|
-
|
|
48
|
+
await fs.writeFile(servicePath, service, 'utf8');
|
|
59
49
|
console.log(`Written: ${servicePath}`);
|
|
60
50
|
try {
|
|
61
51
|
await execAsync('systemctl --user daemon-reload');
|
|
@@ -85,12 +75,11 @@ export async function uninstallLinux() {
|
|
|
85
75
|
console.warn('systemctl disable failed (may not be enabled):', err instanceof Error ? err.message : err);
|
|
86
76
|
}
|
|
87
77
|
const servicePath = join(homedir(), '.config', 'systemd', 'user', 'agent-controller.service');
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
unlinkSync(servicePath);
|
|
78
|
+
try {
|
|
79
|
+
await fs.unlink(servicePath);
|
|
91
80
|
console.log(`Removed: ${servicePath}`);
|
|
92
81
|
}
|
|
93
|
-
|
|
82
|
+
catch {
|
|
94
83
|
console.log(`Service file not found: ${servicePath}`);
|
|
95
84
|
}
|
|
96
85
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/platform/linux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/platform/linux.ts"],"names":[],"mappings":"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"}
|
package/dist/platform/macos.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
agentToken: string;
|
|
4
|
-
agentId: string;
|
|
5
|
-
backendInternalUrl: string;
|
|
6
|
-
}
|
|
1
|
+
import type { PlatformConfig } from './common.js';
|
|
2
|
+
export type { PlatformConfig };
|
|
7
3
|
export declare function installMacOS(config: PlatformConfig): Promise<void>;
|
|
8
4
|
export declare function uninstallMacOS(): Promise<void>;
|
package/dist/platform/macos.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { writeFileSync, mkdirSync } from 'node:fs';
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
3
2
|
import { homedir } from 'node:os';
|
|
4
3
|
import { join } from 'node:path';
|
|
5
|
-
|
|
6
|
-
return new Promise((resolve, reject) => {
|
|
7
|
-
exec(cmd, (err, stdout) => {
|
|
8
|
-
if (err)
|
|
9
|
-
reject(err);
|
|
10
|
-
else
|
|
11
|
-
resolve(stdout.toString().trim());
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
}
|
|
4
|
+
import { execAsync } from '../utils/exec.js';
|
|
15
5
|
async function which(bin) {
|
|
16
6
|
try {
|
|
17
7
|
return await execAsync(`which "${bin}"`);
|
|
@@ -33,7 +23,7 @@ export async function installMacOS(config) {
|
|
|
33
23
|
// Fallback: derive from node path
|
|
34
24
|
agentControllerPath = join(nodePath, '..', 'agent-controller');
|
|
35
25
|
}
|
|
36
|
-
|
|
26
|
+
await fs.mkdir(launchAgentsDir, { recursive: true });
|
|
37
27
|
const plist = `<?xml version="1.0" encoding="UTF-8"?>
|
|
38
28
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
39
29
|
<plist version="1.0">
|
|
@@ -75,7 +65,7 @@ export async function installMacOS(config) {
|
|
|
75
65
|
catch {
|
|
76
66
|
// Not loaded — fine
|
|
77
67
|
}
|
|
78
|
-
|
|
68
|
+
await fs.writeFile(plistPath, plist, 'utf8');
|
|
79
69
|
console.log(`Written: ${plistPath}`);
|
|
80
70
|
try {
|
|
81
71
|
await execAsync(`launchctl load -w "${plistPath}"`);
|
|
@@ -104,12 +94,11 @@ export async function uninstallMacOS() {
|
|
|
104
94
|
catch (err) {
|
|
105
95
|
console.warn('launchctl unload failed (may not be loaded):', err instanceof Error ? err.message : err);
|
|
106
96
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
unlinkSync(plistPath);
|
|
97
|
+
try {
|
|
98
|
+
await fs.unlink(plistPath);
|
|
110
99
|
console.log(`Removed: ${plistPath}`);
|
|
111
100
|
}
|
|
112
|
-
|
|
101
|
+
catch {
|
|
113
102
|
console.log(`Plist not found: ${plistPath}`);
|
|
114
103
|
}
|
|
115
104
|
console.log('Agent Controller uninstalled.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"macos.js","sourceRoot":"","sources":["../../src/platform/macos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"macos.js","sourceRoot":"","sources":["../../src/platform/macos.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
agentToken: string;
|
|
4
|
-
agentId: string;
|
|
5
|
-
backendInternalUrl: string;
|
|
6
|
-
}
|
|
1
|
+
import type { PlatformConfig } from './common.js';
|
|
2
|
+
export type { PlatformConfig };
|
|
7
3
|
export declare function installWindows(config: PlatformConfig): Promise<void>;
|
|
8
4
|
export declare function uninstallWindows(): Promise<void>;
|
package/dist/platform/windows.js
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { writeFileSync, mkdirSync } from 'node:fs';
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
3
2
|
import { join } from 'node:path';
|
|
4
|
-
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
exec(cmd, (err, stdout) => {
|
|
7
|
-
if (err)
|
|
8
|
-
reject(err);
|
|
9
|
-
else
|
|
10
|
-
resolve(stdout.toString().trim());
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
}
|
|
3
|
+
import { execAsync } from '../utils/exec.js';
|
|
14
4
|
async function which(bin) {
|
|
15
5
|
try {
|
|
16
6
|
return await execAsync(`where "${bin}"`);
|
|
@@ -28,7 +18,7 @@ export async function installWindows(config) {
|
|
|
28
18
|
if (!agentControllerPath) {
|
|
29
19
|
agentControllerPath = join(nodePath, '..', 'agent-controller');
|
|
30
20
|
}
|
|
31
|
-
|
|
21
|
+
await fs.mkdir(openclawDir, { recursive: true });
|
|
32
22
|
const wrapper = `@echo off
|
|
33
23
|
set CENTRIFUGO_URL=${config.centrifugoUrl}
|
|
34
24
|
set AGENT_TOKEN=${config.agentToken}
|
|
@@ -36,7 +26,7 @@ set AGENT_ID=${config.agentId}
|
|
|
36
26
|
set BACKEND_URL=${config.backendInternalUrl}
|
|
37
27
|
"${nodePath}" "${agentControllerPath}"
|
|
38
28
|
`;
|
|
39
|
-
|
|
29
|
+
await fs.writeFile(wrapperPath, wrapper, 'utf8');
|
|
40
30
|
console.log(`Written: ${wrapperPath}`);
|
|
41
31
|
try {
|
|
42
32
|
await execAsync(`schtasks /create /tn "OpenClaw Agent Controller" /tr "${wrapperPath}" /sc ONLOGON /rl HIGHEST /f`);
|
|
@@ -64,12 +54,11 @@ export async function uninstallWindows() {
|
|
|
64
54
|
}
|
|
65
55
|
const appData = process.env['APPDATA'] ?? join(process.env['USERPROFILE'] ?? 'C:\\Users\\Default', 'AppData', 'Roaming');
|
|
66
56
|
const wrapperPath = join(appData, 'openclaw', 'agent-controller.cmd');
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
unlinkSync(wrapperPath);
|
|
57
|
+
try {
|
|
58
|
+
await fs.unlink(wrapperPath);
|
|
70
59
|
console.log(`Removed: ${wrapperPath}`);
|
|
71
60
|
}
|
|
72
|
-
|
|
61
|
+
catch {
|
|
73
62
|
console.log(`Wrapper not found: ${wrapperPath}`);
|
|
74
63
|
}
|
|
75
64
|
console.log('Agent Controller uninstalled.');
|