@clawapps/cli 0.7.0 → 0.7.1
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,10 +1,11 @@
|
|
|
1
|
+
import WebSocket from 'ws';
|
|
1
2
|
import type { RelayBalanceResponse, SessionInfo, SessionStore } from './types.js';
|
|
2
3
|
export interface RelayMessage {
|
|
3
4
|
type: string;
|
|
4
5
|
[key: string]: unknown;
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
|
-
* Connect to Relay via WebSocket.
|
|
8
|
+
* Connect to Relay via WebSocket.
|
|
8
9
|
*/
|
|
9
10
|
export declare function connectRelay(token: string): Promise<RelayConnection>;
|
|
10
11
|
export declare class RelayConnection {
|
|
@@ -12,25 +13,16 @@ export declare class RelayConnection {
|
|
|
12
13
|
sessionId: string;
|
|
13
14
|
mode: string;
|
|
14
15
|
constructor(ws: WebSocket, sessionId: string, mode: string);
|
|
15
|
-
/**
|
|
16
|
-
* Send an action to Bridge via Relay.
|
|
17
|
-
*/
|
|
18
16
|
send(action: Record<string, unknown>): void;
|
|
19
17
|
/**
|
|
20
|
-
* Send a message and yield
|
|
18
|
+
* Send a message and yield responses until complete/error.
|
|
21
19
|
*/
|
|
22
20
|
sendMessage(content: string): AsyncGenerator<RelayMessage>;
|
|
23
21
|
/**
|
|
24
|
-
* Listen for all messages (including push
|
|
22
|
+
* Listen for all messages (including push).
|
|
25
23
|
*/
|
|
26
24
|
listen(): AsyncGenerator<RelayMessage>;
|
|
27
|
-
/**
|
|
28
|
-
* Stop current processing.
|
|
29
|
-
*/
|
|
30
25
|
stop(): void;
|
|
31
|
-
/**
|
|
32
|
-
* Close the connection.
|
|
33
|
-
*/
|
|
34
26
|
close(): void;
|
|
35
27
|
}
|
|
36
28
|
export declare function getBalance(token: string): Promise<RelayBalanceResponse>;
|
package/dist/lib/relay-client.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import WebSocket from 'ws';
|
|
1
2
|
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
2
3
|
import { join } from 'node:path';
|
|
3
4
|
import { homedir } from 'node:os';
|
|
@@ -8,46 +9,45 @@ function relayHttpUrl(path) {
|
|
|
8
9
|
}
|
|
9
10
|
function relayWsUrl(token) {
|
|
10
11
|
const base = process.env.CLAWAPPS_RELAY_URL || CONFIG.CLI_RELAY_BASE;
|
|
11
|
-
|
|
12
|
-
const wsBase = base.replace(/^http/, 'ws');
|
|
12
|
+
const wsBase = base.replace(/^https/, 'wss').replace(/^http/, 'ws');
|
|
13
13
|
return `${wsBase}/ws?token=${encodeURIComponent(token)}`;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
* Connect to Relay via WebSocket.
|
|
16
|
+
* Connect to Relay via WebSocket.
|
|
17
17
|
*/
|
|
18
18
|
export async function connectRelay(token) {
|
|
19
19
|
const wsUrl = relayWsUrl(token);
|
|
20
20
|
const ws = await new Promise((resolve, reject) => {
|
|
21
21
|
const socket = new WebSocket(wsUrl);
|
|
22
22
|
const timeout = setTimeout(() => {
|
|
23
|
-
socket.
|
|
23
|
+
socket.terminate();
|
|
24
24
|
reject(new Error('Connection timeout'));
|
|
25
25
|
}, CONFIG.CLI_CONNECT_TIMEOUT_MS);
|
|
26
|
-
socket.
|
|
27
|
-
socket.
|
|
26
|
+
socket.on('open', () => { clearTimeout(timeout); resolve(socket); });
|
|
27
|
+
socket.on('error', (err) => { clearTimeout(timeout); reject(new Error(`Connection failed: ${err.message}`)); });
|
|
28
28
|
});
|
|
29
|
-
// Wait for
|
|
29
|
+
// Wait for {type:"connected"} from Relay
|
|
30
30
|
const connMsg = await waitForMessage(ws, 'connected', CONFIG.CLI_CONNECT_TIMEOUT_MS);
|
|
31
31
|
return new RelayConnection(ws, connMsg.session_id, connMsg.mode);
|
|
32
32
|
}
|
|
33
33
|
function waitForMessage(ws, expectedType, timeoutMs) {
|
|
34
34
|
return new Promise((resolve, reject) => {
|
|
35
35
|
const timeout = setTimeout(() => {
|
|
36
|
-
ws.
|
|
36
|
+
ws.removeListener('message', handler);
|
|
37
37
|
reject(new Error(`Timeout waiting for "${expectedType}"`));
|
|
38
38
|
}, timeoutMs);
|
|
39
|
-
function handler(
|
|
39
|
+
function handler(data) {
|
|
40
40
|
try {
|
|
41
|
-
const msg = JSON.parse(
|
|
41
|
+
const msg = JSON.parse(data.toString());
|
|
42
42
|
if (msg.type === expectedType) {
|
|
43
43
|
clearTimeout(timeout);
|
|
44
|
-
ws.
|
|
44
|
+
ws.removeListener('message', handler);
|
|
45
45
|
resolve(msg);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
catch { /* keep waiting */ }
|
|
49
49
|
}
|
|
50
|
-
ws.
|
|
50
|
+
ws.on('message', handler);
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
export class RelayConnection {
|
|
@@ -59,26 +59,23 @@ export class RelayConnection {
|
|
|
59
59
|
this.sessionId = sessionId;
|
|
60
60
|
this.mode = mode;
|
|
61
61
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Send an action to Bridge via Relay.
|
|
64
|
-
*/
|
|
65
62
|
send(action) {
|
|
66
63
|
if (this.ws.readyState === WebSocket.OPEN) {
|
|
67
64
|
this.ws.send(JSON.stringify(action));
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
/**
|
|
71
|
-
* Send a message and yield
|
|
68
|
+
* Send a message and yield responses until complete/error.
|
|
72
69
|
*/
|
|
73
70
|
async *sendMessage(content) {
|
|
74
71
|
this.send({ action: 'message', content });
|
|
75
|
-
const
|
|
72
|
+
const queue = [];
|
|
76
73
|
let resolve = null;
|
|
77
74
|
let done = false;
|
|
78
|
-
const handler = (
|
|
75
|
+
const handler = (data) => {
|
|
79
76
|
try {
|
|
80
|
-
const msg = JSON.parse(
|
|
81
|
-
|
|
77
|
+
const msg = JSON.parse(data.toString());
|
|
78
|
+
queue.push(msg);
|
|
82
79
|
if (resolve) {
|
|
83
80
|
resolve();
|
|
84
81
|
resolve = null;
|
|
@@ -86,14 +83,14 @@ export class RelayConnection {
|
|
|
86
83
|
}
|
|
87
84
|
catch { /* ignore */ }
|
|
88
85
|
};
|
|
89
|
-
this.ws.
|
|
86
|
+
this.ws.on('message', handler);
|
|
90
87
|
try {
|
|
91
88
|
while (!done) {
|
|
92
|
-
if (
|
|
89
|
+
if (queue.length === 0) {
|
|
93
90
|
await new Promise((r) => { resolve = r; });
|
|
94
91
|
}
|
|
95
|
-
while (
|
|
96
|
-
const msg =
|
|
92
|
+
while (queue.length > 0) {
|
|
93
|
+
const msg = queue.shift();
|
|
97
94
|
yield msg;
|
|
98
95
|
if (msg.type === 'complete' || msg.type === 'error') {
|
|
99
96
|
done = true;
|
|
@@ -103,20 +100,20 @@ export class RelayConnection {
|
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
102
|
finally {
|
|
106
|
-
this.ws.
|
|
103
|
+
this.ws.removeListener('message', handler);
|
|
107
104
|
}
|
|
108
105
|
}
|
|
109
106
|
/**
|
|
110
|
-
* Listen for all messages (including push
|
|
107
|
+
* Listen for all messages (including push).
|
|
111
108
|
*/
|
|
112
109
|
async *listen() {
|
|
113
|
-
const
|
|
110
|
+
const queue = [];
|
|
114
111
|
let resolve = null;
|
|
115
112
|
let closed = false;
|
|
116
|
-
const handler = (
|
|
113
|
+
const handler = (data) => {
|
|
117
114
|
try {
|
|
118
|
-
const msg = JSON.parse(
|
|
119
|
-
|
|
115
|
+
const msg = JSON.parse(data.toString());
|
|
116
|
+
queue.push(msg);
|
|
120
117
|
if (resolve) {
|
|
121
118
|
resolve();
|
|
122
119
|
resolve = null;
|
|
@@ -131,39 +128,33 @@ export class RelayConnection {
|
|
|
131
128
|
resolve = null;
|
|
132
129
|
}
|
|
133
130
|
};
|
|
134
|
-
this.ws.
|
|
135
|
-
this.ws.
|
|
131
|
+
this.ws.on('message', handler);
|
|
132
|
+
this.ws.on('close', closeHandler);
|
|
136
133
|
try {
|
|
137
134
|
while (!closed) {
|
|
138
|
-
if (
|
|
135
|
+
if (queue.length === 0) {
|
|
139
136
|
await new Promise((r) => { resolve = r; });
|
|
140
137
|
}
|
|
141
|
-
while (
|
|
142
|
-
yield
|
|
138
|
+
while (queue.length > 0) {
|
|
139
|
+
yield queue.shift();
|
|
143
140
|
}
|
|
144
141
|
}
|
|
145
142
|
}
|
|
146
143
|
finally {
|
|
147
|
-
this.ws.
|
|
148
|
-
this.ws.
|
|
144
|
+
this.ws.removeListener('message', handler);
|
|
145
|
+
this.ws.removeListener('close', closeHandler);
|
|
149
146
|
}
|
|
150
147
|
}
|
|
151
|
-
/**
|
|
152
|
-
* Stop current processing.
|
|
153
|
-
*/
|
|
154
148
|
stop() {
|
|
155
149
|
this.send({ action: 'stop' });
|
|
156
150
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Close the connection.
|
|
159
|
-
*/
|
|
160
151
|
close() {
|
|
161
152
|
if (this.ws.readyState === WebSocket.OPEN) {
|
|
162
153
|
this.ws.close(1000, 'Client close');
|
|
163
154
|
}
|
|
164
155
|
}
|
|
165
156
|
}
|
|
166
|
-
// --- HTTP endpoints
|
|
157
|
+
// --- HTTP endpoints ---
|
|
167
158
|
export async function getBalance(token) {
|
|
168
159
|
const res = await fetch(relayHttpUrl('/balance'), {
|
|
169
160
|
method: 'GET',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../../src/lib/relay-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,cAAc,CAAC;IACrE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,cAAc,CAAC;IACrE,
|
|
1
|
+
{"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../../src/lib/relay-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clawapps/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "ClawApps CLI - AI agent platform client",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -32,10 +32,12 @@
|
|
|
32
32
|
"open": "^11.0.0",
|
|
33
33
|
"ora": "^8.2.0",
|
|
34
34
|
"qrcode": "^1.5.4",
|
|
35
|
-
"qrcode-terminal": "^0.12.0"
|
|
35
|
+
"qrcode-terminal": "^0.12.0",
|
|
36
|
+
"ws": "^8.20.0"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@types/node": "^25.3.0",
|
|
40
|
+
"@types/ws": "^8.18.1",
|
|
39
41
|
"typescript": "^5.9.3"
|
|
40
42
|
}
|
|
41
43
|
}
|