clawconnect-agent 0.2.4 → 0.2.5
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/openclaw/gateway-client.d.ts +18 -18
- package/dist/openclaw/gateway-client.js +132 -258
- package/dist/openclaw/gateway-client.js.map +1 -1
- package/dist/openclaw/relay/chat-history.d.ts +11 -0
- package/dist/openclaw/relay/chat-history.js +126 -1
- package/dist/openclaw/relay/chat-history.js.map +1 -1
- package/dist/openclaw/relay/relay-manager-payload-helpers.d.ts +1 -2
- package/dist/openclaw/relay/relay-manager-payload-helpers.js +3 -11
- package/dist/openclaw/relay/relay-manager-payload-helpers.js.map +1 -1
- package/dist/openclaw/relay/session-context.d.ts +6 -0
- package/dist/openclaw/relay/session-context.js +82 -0
- package/dist/openclaw/relay/session-context.js.map +1 -1
- package/dist/openclaw/relay-manager.js +138 -26
- package/dist/openclaw/relay-manager.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
package/README.zh-CN.md
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type GatewayClientMode, type GatewayClientName } from "@openclaw/gateway-protocol/client-info";
|
|
1
2
|
export declare function gatewayWebSocketOrigin(url: string): string;
|
|
2
3
|
export interface GatewayClientOptions {
|
|
3
4
|
url: string | (() => string);
|
|
@@ -6,27 +7,30 @@ export interface GatewayClientOptions {
|
|
|
6
7
|
role?: string;
|
|
7
8
|
scopes?: string[];
|
|
8
9
|
caps?: string[];
|
|
9
|
-
clientMode?:
|
|
10
|
-
clientId?:
|
|
10
|
+
clientMode?: GatewayClientMode;
|
|
11
|
+
clientId?: GatewayClientName;
|
|
11
12
|
clientDisplayName?: string;
|
|
12
13
|
clientVersion?: string;
|
|
13
14
|
onConnected: () => void;
|
|
14
15
|
onEvent: (eventName: string, payload: unknown) => void;
|
|
15
16
|
onDisconnected: (reason: string) => void;
|
|
16
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* ClawConnect's compatibility wrapper around OpenClaw's reference v4 client.
|
|
20
|
+
*
|
|
21
|
+
* ClawConnect is a WebChat bridge, not the bundled Control UI. Advertising the
|
|
22
|
+
* WebChat identity preserves chat routing while avoiding Control UI build-ID
|
|
23
|
+
* checks that third-party clients cannot satisfy.
|
|
24
|
+
*/
|
|
17
25
|
export declare class OpenClawGatewayClient {
|
|
18
26
|
private readonly opts;
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private backoffMs;
|
|
27
|
+
private client;
|
|
28
|
+
private activeUrl;
|
|
22
29
|
private stopped;
|
|
23
|
-
private
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
private
|
|
27
|
-
private tickTimer;
|
|
28
|
-
private lastTick;
|
|
29
|
-
private tickIntervalMs;
|
|
30
|
+
private reconnectTimer;
|
|
31
|
+
private storedDeviceAuth;
|
|
32
|
+
private responseHookRequests;
|
|
33
|
+
private bufferedEvents;
|
|
30
34
|
private readonly identity;
|
|
31
35
|
constructor(opts: GatewayClientOptions);
|
|
32
36
|
start(): void;
|
|
@@ -36,10 +40,6 @@ export declare class OpenClawGatewayClient {
|
|
|
36
40
|
onResponse?: (value: T) => void;
|
|
37
41
|
}): Promise<T>;
|
|
38
42
|
private resolveUrl;
|
|
39
|
-
private
|
|
40
|
-
private
|
|
41
|
-
private startTickWatch;
|
|
42
|
-
private scheduleReconnect;
|
|
43
|
-
private teardown;
|
|
44
|
-
private flushPending;
|
|
43
|
+
private recreateForChangedUrl;
|
|
44
|
+
private flushBufferedEvents;
|
|
45
45
|
}
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { GatewayClient, } from "@openclaw/gateway-client";
|
|
2
|
+
import { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES, } from "@openclaw/gateway-protocol/client-info";
|
|
3
|
+
import { PROTOCOL_VERSION } from "@openclaw/gateway-protocol/version";
|
|
4
|
+
import { createHash, createPrivateKey, createPublicKey, generateKeyPairSync, sign, } from "node:crypto";
|
|
5
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
5
6
|
import { homedir } from "node:os";
|
|
7
|
+
import { join } from "node:path";
|
|
6
8
|
import { setRestrictiveDirPermissions, setRestrictiveFilePermissions, } from "../platform/service-manager-common.js";
|
|
7
|
-
|
|
8
|
-
// Device identity (Ed25519, persisted across restarts)
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
9
|
+
import { CLAWCONNECT_AGENT_VERSION } from "../runtime-metadata.js";
|
|
10
10
|
const IDENTITY_PATH = join(homedir(), ".clawconnect", "device-identity.json");
|
|
11
11
|
const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
12
|
+
const DEFAULT_CLIENT_ID = GATEWAY_CLIENT_NAMES.WEBCHAT_UI;
|
|
13
|
+
const DEFAULT_CLIENT_MODE = GATEWAY_CLIENT_MODES.WEBCHAT;
|
|
14
|
+
const DEFAULT_SCOPES = [
|
|
15
|
+
"operator.admin",
|
|
16
|
+
"operator.read",
|
|
17
|
+
"operator.write",
|
|
18
|
+
"operator.approvals",
|
|
19
|
+
"operator.pairing",
|
|
20
|
+
];
|
|
12
21
|
function base64UrlEncode(buf) {
|
|
13
|
-
return buf.toString("
|
|
22
|
+
return buf.toString("base64url");
|
|
14
23
|
}
|
|
15
24
|
function rawPublicKeyBytes(publicKeyPem) {
|
|
16
25
|
const key = createPublicKey(publicKeyPem);
|
|
17
26
|
const spki = key.export({ type: "spki", format: "der" });
|
|
18
|
-
if (spki.length === ED25519_SPKI_PREFIX.length + 32
|
|
19
|
-
spki.subarray(0, ED25519_SPKI_PREFIX.length).equals(ED25519_SPKI_PREFIX)) {
|
|
27
|
+
if (spki.length === ED25519_SPKI_PREFIX.length + 32
|
|
28
|
+
&& spki.subarray(0, ED25519_SPKI_PREFIX.length).equals(ED25519_SPKI_PREFIX)) {
|
|
20
29
|
return spki.subarray(ED25519_SPKI_PREFIX.length);
|
|
21
30
|
}
|
|
22
31
|
return spki;
|
|
@@ -26,10 +35,12 @@ function loadOrCreateDeviceIdentity() {
|
|
|
26
35
|
try {
|
|
27
36
|
const stored = JSON.parse(readFileSync(IDENTITY_PATH, "utf8"));
|
|
28
37
|
if (stored.deviceId && stored.publicKeyPem && stored.privateKeyPem) {
|
|
29
|
-
return
|
|
38
|
+
return stored;
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
|
-
catch {
|
|
41
|
+
catch {
|
|
42
|
+
// Generate a replacement below when the persisted identity is unreadable.
|
|
43
|
+
}
|
|
33
44
|
}
|
|
34
45
|
const { publicKey, privateKey } = generateKeyPairSync("ed25519");
|
|
35
46
|
const publicKeyPem = publicKey.export({ type: "spki", format: "pem" }).toString();
|
|
@@ -38,38 +49,11 @@ function loadOrCreateDeviceIdentity() {
|
|
|
38
49
|
const identity = { deviceId, publicKeyPem, privateKeyPem };
|
|
39
50
|
const clawconnectDir = join(homedir(), ".clawconnect");
|
|
40
51
|
mkdirSync(clawconnectDir, { recursive: true });
|
|
41
|
-
writeFileSync(IDENTITY_PATH, JSON.stringify({ version: 1, ...identity, createdAtMs: Date.now() }, null, 2)
|
|
52
|
+
writeFileSync(IDENTITY_PATH, `${JSON.stringify({ version: 1, ...identity, createdAtMs: Date.now() }, null, 2)}\n`, "utf8");
|
|
42
53
|
setRestrictiveDirPermissions(clawconnectDir);
|
|
43
54
|
setRestrictiveFilePermissions(IDENTITY_PATH);
|
|
44
55
|
return identity;
|
|
45
56
|
}
|
|
46
|
-
function buildSignedDevice(identity, opts) {
|
|
47
|
-
const version = opts.nonce ? "v2" : "v1";
|
|
48
|
-
const payload = [
|
|
49
|
-
version,
|
|
50
|
-
identity.deviceId,
|
|
51
|
-
opts.clientId,
|
|
52
|
-
opts.clientMode,
|
|
53
|
-
opts.role,
|
|
54
|
-
opts.scopes.join(","),
|
|
55
|
-
String(opts.signedAtMs),
|
|
56
|
-
opts.token ?? "",
|
|
57
|
-
...(version === "v2" ? [opts.nonce ?? ""] : []),
|
|
58
|
-
].join("|");
|
|
59
|
-
const key = createPrivateKey(identity.privateKeyPem);
|
|
60
|
-
const signature = base64UrlEncode(sign(null, Buffer.from(payload, "utf8"), key));
|
|
61
|
-
return {
|
|
62
|
-
id: identity.deviceId,
|
|
63
|
-
publicKey: base64UrlEncode(rawPublicKeyBytes(identity.publicKeyPem)),
|
|
64
|
-
signature,
|
|
65
|
-
signedAt: opts.signedAtMs,
|
|
66
|
-
nonce: opts.nonce,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
const MIN_PROTOCOL_VERSION = 3;
|
|
70
|
-
const MAX_PROTOCOL_VERSION = 4;
|
|
71
|
-
const DEFAULT_CLIENT_ID = "openclaw-control-ui";
|
|
72
|
-
const DEFAULT_CLIENT_MODE = "webchat";
|
|
73
57
|
export function gatewayWebSocketOrigin(url) {
|
|
74
58
|
const parsed = new URL(url);
|
|
75
59
|
if (parsed.protocol === "ws:")
|
|
@@ -83,250 +67,140 @@ export function gatewayWebSocketOrigin(url) {
|
|
|
83
67
|
parsed.hash = "";
|
|
84
68
|
return parsed.origin;
|
|
85
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* ClawConnect's compatibility wrapper around OpenClaw's reference v4 client.
|
|
72
|
+
*
|
|
73
|
+
* ClawConnect is a WebChat bridge, not the bundled Control UI. Advertising the
|
|
74
|
+
* WebChat identity preserves chat routing while avoiding Control UI build-ID
|
|
75
|
+
* checks that third-party clients cannot satisfy.
|
|
76
|
+
*/
|
|
86
77
|
export class OpenClawGatewayClient {
|
|
87
78
|
opts;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
backoffMs = 1000;
|
|
79
|
+
client = null;
|
|
80
|
+
activeUrl = null;
|
|
91
81
|
stopped = false;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
lastTick = 0;
|
|
98
|
-
tickIntervalMs = 30_000;
|
|
99
|
-
identity;
|
|
82
|
+
reconnectTimer = null;
|
|
83
|
+
storedDeviceAuth = null;
|
|
84
|
+
responseHookRequests = 0;
|
|
85
|
+
bufferedEvents = [];
|
|
86
|
+
identity = loadOrCreateDeviceIdentity();
|
|
100
87
|
constructor(opts) {
|
|
101
88
|
this.opts = opts;
|
|
102
|
-
this.identity = loadOrCreateDeviceIdentity();
|
|
103
89
|
}
|
|
104
90
|
start() {
|
|
105
|
-
if (this.stopped)
|
|
91
|
+
if (this.stopped || this.client)
|
|
106
92
|
return;
|
|
107
93
|
const url = this.resolveUrl();
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
this.
|
|
117
|
-
this.
|
|
118
|
-
|
|
119
|
-
this.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
94
|
+
this.activeUrl = url;
|
|
95
|
+
const client = new GatewayClient({
|
|
96
|
+
url,
|
|
97
|
+
origin: gatewayWebSocketOrigin(url),
|
|
98
|
+
token: this.opts.token,
|
|
99
|
+
password: this.opts.password,
|
|
100
|
+
role: this.opts.role ?? "operator",
|
|
101
|
+
scopes: this.opts.scopes ?? DEFAULT_SCOPES,
|
|
102
|
+
caps: this.opts.caps ?? ["tool-events"],
|
|
103
|
+
clientName: this.opts.clientId ?? DEFAULT_CLIENT_ID,
|
|
104
|
+
clientDisplayName: this.opts.clientDisplayName ?? "ClawConnect Agent",
|
|
105
|
+
clientVersion: this.opts.clientVersion ?? CLAWCONNECT_AGENT_VERSION,
|
|
106
|
+
platform: process.platform,
|
|
107
|
+
mode: this.opts.clientMode ?? DEFAULT_CLIENT_MODE,
|
|
108
|
+
minProtocol: PROTOCOL_VERSION,
|
|
109
|
+
maxProtocol: PROTOCOL_VERSION,
|
|
110
|
+
deviceIdentity: this.identity,
|
|
111
|
+
hostDeps: {
|
|
112
|
+
signDevicePayload: (privateKeyPem, payload) => base64UrlEncode(sign(null, Buffer.from(payload, "utf8"), createPrivateKey(privateKeyPem))),
|
|
113
|
+
publicKeyRawBase64UrlFromPem: (publicKeyPem) => base64UrlEncode(rawPublicKeyBytes(publicKeyPem)),
|
|
114
|
+
loadDeviceAuthToken: () => this.storedDeviceAuth,
|
|
115
|
+
storeDeviceAuthToken: ({ token, scopes }) => {
|
|
116
|
+
this.storedDeviceAuth = { token, scopes };
|
|
117
|
+
},
|
|
118
|
+
clearDeviceAuthToken: () => {
|
|
119
|
+
this.storedDeviceAuth = null;
|
|
120
|
+
},
|
|
121
|
+
logDebug: (message) => console.debug(`[gateway-client] ${message}`),
|
|
122
|
+
logError: (message) => console.error(`[gateway-client] ${message}`),
|
|
123
|
+
},
|
|
124
|
+
onHelloOk: () => this.opts.onConnected(),
|
|
125
|
+
onConnectError: (error) => {
|
|
126
|
+
console.error(`[gateway-client] connect failed: ${String(error)}`);
|
|
127
|
+
},
|
|
128
|
+
onEvent: (event) => {
|
|
129
|
+
if (event.event === "tick")
|
|
130
|
+
return;
|
|
131
|
+
const bufferedEvent = { event: event.event, payload: event.payload ?? null };
|
|
132
|
+
if (this.responseHookRequests > 0) {
|
|
133
|
+
this.bufferedEvents.push(bufferedEvent);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
this.opts.onEvent(bufferedEvent.event, bufferedEvent.payload);
|
|
137
|
+
},
|
|
138
|
+
onClose: (code, reason) => {
|
|
139
|
+
const reasonText = reason || `code ${code}`;
|
|
140
|
+
this.opts.onDisconnected(reasonText);
|
|
141
|
+
this.recreateForChangedUrl(client);
|
|
142
|
+
},
|
|
134
143
|
});
|
|
144
|
+
this.client = client;
|
|
145
|
+
client.start();
|
|
135
146
|
}
|
|
136
147
|
stop() {
|
|
137
148
|
this.stopped = true;
|
|
138
|
-
this.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
149
|
+
if (this.reconnectTimer) {
|
|
150
|
+
clearTimeout(this.reconnectTimer);
|
|
151
|
+
this.reconnectTimer = null;
|
|
152
|
+
}
|
|
153
|
+
this.client?.stop();
|
|
154
|
+
this.client = null;
|
|
155
|
+
this.activeUrl = null;
|
|
142
156
|
}
|
|
143
157
|
send(method, params) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
const frame = { type: "req", id: randomUUID(), method, params };
|
|
148
|
-
this.ws.send(JSON.stringify(frame));
|
|
158
|
+
void this.request(method, params).catch((error) => {
|
|
159
|
+
console.error(`[gateway-client] ${method} failed: ${String(error)}`);
|
|
160
|
+
});
|
|
149
161
|
}
|
|
150
162
|
async request(method, params, options) {
|
|
151
|
-
if (!this.
|
|
163
|
+
if (!this.client)
|
|
152
164
|
throw new Error("gateway not connected");
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const p = new Promise((resolve, reject) => {
|
|
157
|
-
this.pending.set(id, {
|
|
158
|
-
resolve: (v) => resolve(v),
|
|
159
|
-
reject,
|
|
160
|
-
...(options?.onResponse ? { onResponse: (value) => options.onResponse?.(value) } : {}),
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
this.ws.send(JSON.stringify(frame));
|
|
164
|
-
return p;
|
|
165
|
-
}
|
|
166
|
-
// -------------------------------------------------------------------------
|
|
167
|
-
resolveUrl() {
|
|
168
|
-
return typeof this.opts.url === "function" ? this.opts.url() : this.opts.url;
|
|
169
|
-
}
|
|
170
|
-
sendConnect() {
|
|
171
|
-
if (this.connectSent)
|
|
172
|
-
return;
|
|
173
|
-
this.connectSent = true;
|
|
174
|
-
if (this.connectTimer) {
|
|
175
|
-
clearTimeout(this.connectTimer);
|
|
176
|
-
this.connectTimer = null;
|
|
177
|
-
}
|
|
178
|
-
const role = this.opts.role ?? "operator";
|
|
179
|
-
const scopes = this.opts.scopes ?? [
|
|
180
|
-
"operator.admin",
|
|
181
|
-
"operator.read",
|
|
182
|
-
"operator.write",
|
|
183
|
-
"operator.approvals",
|
|
184
|
-
"operator.pairing",
|
|
185
|
-
];
|
|
186
|
-
// chat.send 属于操作界面行为。其他 client id 会被 OpenClaw 当作外部发送者,
|
|
187
|
-
// 并给模型提示词添加 Sender 不可信信封,使普通 ClawConnect 消息被误判为注入。
|
|
188
|
-
const clientId = this.opts.clientId ?? DEFAULT_CLIENT_ID;
|
|
189
|
-
const clientMode = this.opts.clientMode ?? DEFAULT_CLIENT_MODE;
|
|
190
|
-
const caps = this.opts.caps ?? ["tool-events"];
|
|
191
|
-
const signedAtMs = Date.now();
|
|
192
|
-
const nonce = this.connectNonce ?? undefined;
|
|
193
|
-
const authToken = this.storedDeviceToken ?? this.opts.token;
|
|
194
|
-
const device = buildSignedDevice(this.identity, {
|
|
195
|
-
clientId, clientMode, role, scopes, signedAtMs,
|
|
196
|
-
token: authToken ?? undefined,
|
|
197
|
-
nonce,
|
|
198
|
-
});
|
|
199
|
-
const params = {
|
|
200
|
-
minProtocol: MIN_PROTOCOL_VERSION,
|
|
201
|
-
maxProtocol: MAX_PROTOCOL_VERSION,
|
|
202
|
-
role,
|
|
203
|
-
scopes,
|
|
204
|
-
caps,
|
|
205
|
-
client: {
|
|
206
|
-
id: clientId,
|
|
207
|
-
displayName: this.opts.clientDisplayName ?? "ClawConnect Agent",
|
|
208
|
-
version: this.opts.clientVersion ?? "1.0.0",
|
|
209
|
-
platform: process.platform,
|
|
210
|
-
mode: clientMode,
|
|
211
|
-
},
|
|
212
|
-
device,
|
|
213
|
-
auth: authToken || this.opts.password
|
|
214
|
-
? { token: authToken, password: this.opts.password }
|
|
215
|
-
: undefined,
|
|
216
|
-
};
|
|
217
|
-
this.request("connect", params)
|
|
218
|
-
.then((helloOk) => {
|
|
219
|
-
const deviceToken = helloOk?.auth?.deviceToken;
|
|
220
|
-
if (typeof deviceToken === "string") {
|
|
221
|
-
this.storedDeviceToken = deviceToken;
|
|
222
|
-
}
|
|
223
|
-
if (typeof helloOk?.policy?.tickIntervalMs === "number") {
|
|
224
|
-
this.tickIntervalMs = helloOk.policy.tickIntervalMs;
|
|
225
|
-
}
|
|
226
|
-
this.backoffMs = 1000;
|
|
227
|
-
this.lastTick = Date.now();
|
|
228
|
-
this.startTickWatch();
|
|
229
|
-
this.opts.onConnected();
|
|
230
|
-
})
|
|
231
|
-
.catch((err) => {
|
|
232
|
-
console.error(`[gateway-client] connect failed: ${String(err)}`);
|
|
233
|
-
// Clear stale device token so the next reconnect uses the base token from config
|
|
234
|
-
this.storedDeviceToken = null;
|
|
235
|
-
this.ws?.close(1008, "connect failed");
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
handleMessage(raw) {
|
|
239
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
240
|
-
let parsed;
|
|
165
|
+
const hasResponseHook = Boolean(options?.onResponse);
|
|
166
|
+
if (hasResponseHook)
|
|
167
|
+
this.responseHookRequests += 1;
|
|
241
168
|
try {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
return;
|
|
169
|
+
const value = await this.client.request(method, params);
|
|
170
|
+
options?.onResponse?.(value);
|
|
171
|
+
return value;
|
|
246
172
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const nonce = evt.payload?.nonce;
|
|
253
|
-
if (typeof nonce === "string") {
|
|
254
|
-
this.connectNonce = nonce;
|
|
255
|
-
this.sendConnect();
|
|
256
|
-
}
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
if (evt.event === "tick") {
|
|
260
|
-
this.lastTick = Date.now();
|
|
261
|
-
return;
|
|
173
|
+
finally {
|
|
174
|
+
if (hasResponseHook) {
|
|
175
|
+
this.responseHookRequests -= 1;
|
|
176
|
+
if (this.responseHookRequests === 0)
|
|
177
|
+
this.flushBufferedEvents();
|
|
262
178
|
}
|
|
263
|
-
this.opts.onEvent(evt.event, evt.payload ?? null);
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
if (parsed.type === "res") {
|
|
267
|
-
const res = parsed;
|
|
268
|
-
const pending = this.pending.get(res.id);
|
|
269
|
-
if (!pending)
|
|
270
|
-
return;
|
|
271
|
-
this.pending.delete(res.id);
|
|
272
|
-
if (res.ok) {
|
|
273
|
-
try {
|
|
274
|
-
// response hook 必须先于 Promise continuation;Gateway 可能紧接 response 帧发送首个事件。
|
|
275
|
-
pending.onResponse?.(res.payload);
|
|
276
|
-
pending.resolve(res.payload);
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
pending.reject(error);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
else
|
|
283
|
-
pending.reject(new Error(res.error?.message ?? "gateway error"));
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
// Handle incoming req frames from OpenClaw. Ack immediately so the
|
|
287
|
-
// gateway doesn't retry control-plane requests at this relay client.
|
|
288
|
-
if (parsed.type === "req") {
|
|
289
|
-
const id = parsed.id;
|
|
290
|
-
// Ack immediately so OpenClaw doesn't retry
|
|
291
|
-
if (id && this.ws?.readyState === WebSocket.OPEN) {
|
|
292
|
-
this.ws.send(JSON.stringify({ type: "res", id, ok: true }));
|
|
293
|
-
}
|
|
294
|
-
return;
|
|
295
179
|
}
|
|
296
180
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
clearInterval(this.tickTimer);
|
|
300
|
-
const interval = Math.max(this.tickIntervalMs, 1000);
|
|
301
|
-
this.tickTimer = setInterval(() => {
|
|
302
|
-
if (this.stopped || !this.lastTick)
|
|
303
|
-
return;
|
|
304
|
-
if (Date.now() - this.lastTick > this.tickIntervalMs * 2) {
|
|
305
|
-
this.ws?.close(4000, "tick timeout");
|
|
306
|
-
}
|
|
307
|
-
}, interval);
|
|
181
|
+
resolveUrl() {
|
|
182
|
+
return typeof this.opts.url === "function" ? this.opts.url() : this.opts.url;
|
|
308
183
|
}
|
|
309
|
-
|
|
310
|
-
if (this.stopped)
|
|
184
|
+
recreateForChangedUrl(closedClient) {
|
|
185
|
+
if (this.stopped || this.client !== closedClient)
|
|
311
186
|
return;
|
|
312
|
-
const
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
this.
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
this.tickTimer = null;
|
|
324
|
-
}
|
|
187
|
+
const nextUrl = this.resolveUrl();
|
|
188
|
+
if (nextUrl === this.activeUrl)
|
|
189
|
+
return;
|
|
190
|
+
closedClient.stop();
|
|
191
|
+
this.client = null;
|
|
192
|
+
this.activeUrl = null;
|
|
193
|
+
this.reconnectTimer = setTimeout(() => {
|
|
194
|
+
this.reconnectTimer = null;
|
|
195
|
+
this.start();
|
|
196
|
+
}, 0);
|
|
197
|
+
this.reconnectTimer.unref?.();
|
|
325
198
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
199
|
+
flushBufferedEvents() {
|
|
200
|
+
const events = this.bufferedEvents;
|
|
201
|
+
this.bufferedEvents = [];
|
|
202
|
+
for (const event of events)
|
|
203
|
+
this.opts.onEvent(event.event, event.payload);
|
|
330
204
|
}
|
|
331
205
|
}
|
|
332
206
|
//# sourceMappingURL=gateway-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../src/openclaw/gateway-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../src/openclaw/gateway-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,17 @@ export type TranscriptHistoryRequest = {
|
|
|
55
55
|
export declare function clearTranscriptHistoryCache(): void;
|
|
56
56
|
export declare function readOpenClawTranscriptChatHistory(rawParams: unknown, defaults: GatewaySessionDefaults): Promise<HistoryResponse | null>;
|
|
57
57
|
export declare function readChatHistoryFromTranscriptFile(request: TranscriptHistoryRequest): Promise<HistoryResponse>;
|
|
58
|
+
/**
|
|
59
|
+
* OpenClaw v4 may serve chat.history from its state database even when the
|
|
60
|
+
* legacy transcript file is unavailable. The v4 response deliberately keeps
|
|
61
|
+
* canonical identity under __openclaw, so Relay cannot consume its raw
|
|
62
|
+
* messages as a timeline snapshot. Project those protocol fields here instead
|
|
63
|
+
* of asking downstream clients to infer missing user turns from assistant text.
|
|
64
|
+
*/
|
|
65
|
+
export declare function canonicalizeOpenClawGatewayHistoryResponse(history: HistoryResponse, request: {
|
|
66
|
+
sessionKey: string;
|
|
67
|
+
cursor?: string;
|
|
68
|
+
}): HistoryResponse;
|
|
58
69
|
/**
|
|
59
70
|
* OpenClaw 会把内部心跳探测写入 transcript。只有精确的保留提示最终得到纯确认回执时,
|
|
60
71
|
* 才隐藏整段内部记录;若心跳产生真实告警,则保留完整内容供用户查看。
|