@ynhcj/xiaoyi 0.0.4-beta → 0.0.5-beta
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/websocket.d.ts +6 -0
- package/dist/websocket.js +12 -0
- package/dist/xy-monitor.js +5 -4
- package/package.json +1 -1
package/dist/websocket.d.ts
CHANGED
|
@@ -21,7 +21,13 @@ export declare class XiaoYiWebSocketManager extends EventEmitter {
|
|
|
21
21
|
private stableConnectionTimer2?;
|
|
22
22
|
private static readonly STABLE_CONNECTION_THRESHOLD;
|
|
23
23
|
private activeTasks;
|
|
24
|
+
private onHealthEvent?;
|
|
24
25
|
constructor(config: XiaoYiChannelConfig);
|
|
26
|
+
/**
|
|
27
|
+
* Set health event callback to report activity to OpenClaw framework.
|
|
28
|
+
* This callback is invoked on heartbeat success to update lastEventAt.
|
|
29
|
+
*/
|
|
30
|
+
setHealthEventCallback(callback: () => void): void;
|
|
25
31
|
/**
|
|
26
32
|
* Check if URL is wss + IP format (skip certificate verification)
|
|
27
33
|
*/
|
package/dist/websocket.js
CHANGED
|
@@ -43,6 +43,14 @@ class XiaoYiWebSocketManager extends events_1.EventEmitter {
|
|
|
43
43
|
console.log(` Server 1: ${this.config.wsUrl1}`);
|
|
44
44
|
console.log(` Server 2: ${this.config.wsUrl2}`);
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Set health event callback to report activity to OpenClaw framework.
|
|
48
|
+
* This callback is invoked on heartbeat success to update lastEventAt.
|
|
49
|
+
*/
|
|
50
|
+
setHealthEventCallback(callback) {
|
|
51
|
+
this.onHealthEvent = callback;
|
|
52
|
+
console.log("[WS Manager] Health event callback registered");
|
|
53
|
+
}
|
|
46
54
|
/**
|
|
47
55
|
* Check if URL is wss + IP format (skip certificate verification)
|
|
48
56
|
*/
|
|
@@ -185,6 +193,8 @@ class XiaoYiWebSocketManager extends events_1.EventEmitter {
|
|
|
185
193
|
}, "server1", console.log, console.error, () => {
|
|
186
194
|
// ✅ Heartbeat success callback - report health to OpenClaw
|
|
187
195
|
this.emit("heartbeat", "server1");
|
|
196
|
+
// ✅ Report liveness to OpenClaw framework to prevent stale-socket detection
|
|
197
|
+
this.onHealthEvent?.();
|
|
188
198
|
});
|
|
189
199
|
this.setupWebSocketHandlers(this.ws1, 'server1');
|
|
190
200
|
await new Promise((resolve, reject) => {
|
|
@@ -267,6 +277,8 @@ class XiaoYiWebSocketManager extends events_1.EventEmitter {
|
|
|
267
277
|
}, "server2", console.log, console.error, () => {
|
|
268
278
|
// ✅ Heartbeat success callback - report health to OpenClaw
|
|
269
279
|
this.emit("heartbeat", "server2");
|
|
280
|
+
// ✅ Report liveness to OpenClaw framework to prevent stale-socket detection
|
|
281
|
+
this.onHealthEvent?.();
|
|
270
282
|
});
|
|
271
283
|
this.setupWebSocketHandlers(this.ws2, 'server2');
|
|
272
284
|
await new Promise((resolve, reject) => {
|
package/dist/xy-monitor.js
CHANGED
|
@@ -51,10 +51,11 @@ async function monitorXYProvider(opts = {}) {
|
|
|
51
51
|
// diagnoseAllManagers();
|
|
52
52
|
// Get WebSocket manager (cached)
|
|
53
53
|
const wsManager = (0, xy_client_js_1.getXYWebSocketManager)(account);
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
// ✅ Set health event callback for heartbeat reporting
|
|
55
|
+
// This ensures OpenClaw's health-monitor sees activity and doesn't trigger stale-socket restarts
|
|
56
|
+
if (trackEvent) {
|
|
57
|
+
wsManager.setHealthEventCallback(trackEvent);
|
|
58
|
+
}
|
|
58
59
|
// Track logged servers to avoid duplicate logs
|
|
59
60
|
const loggedServers = new Set();
|
|
60
61
|
// Track active message processing to detect duplicates
|