@kmmao/happy-agent 0.3.8 → 0.3.10
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/index.cjs +26 -3
- package/dist/index.d.cts +8 -1
- package/dist/index.d.mts +8 -1
- package/dist/index.mjs +26 -3
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -18,7 +18,7 @@ var path = require('path');
|
|
|
18
18
|
var fs = require('fs');
|
|
19
19
|
var os = require('os');
|
|
20
20
|
|
|
21
|
-
var version = "0.3.
|
|
21
|
+
var version = "0.3.10";
|
|
22
22
|
|
|
23
23
|
function loadConfig() {
|
|
24
24
|
const serverUrl = (process.env.HAPPY_SERVER_URL ?? "https://happyserve.xycloud.info").replace(/\/+$/, "");
|
|
@@ -622,6 +622,7 @@ class RpcHandlerManager {
|
|
|
622
622
|
logger;
|
|
623
623
|
socket = null;
|
|
624
624
|
reregisterInterval = null;
|
|
625
|
+
fastRetryTimer = null;
|
|
625
626
|
constructor(config) {
|
|
626
627
|
this.scopePrefix = config.scopePrefix;
|
|
627
628
|
this.encryptionKey = config.encryptionKey;
|
|
@@ -681,11 +682,13 @@ class RpcHandlerManager {
|
|
|
681
682
|
onSocketConnect(socket) {
|
|
682
683
|
this.socket = socket;
|
|
683
684
|
this.registerAllHandlers(socket);
|
|
685
|
+
this.scheduleFastRetry(socket);
|
|
684
686
|
this.startReregisterInterval();
|
|
685
687
|
}
|
|
686
688
|
onSocketDisconnect() {
|
|
687
689
|
this.socket = null;
|
|
688
690
|
this.stopReregisterInterval();
|
|
691
|
+
this.cancelFastRetry();
|
|
689
692
|
}
|
|
690
693
|
getHandlerCount() {
|
|
691
694
|
return this.handlers.size;
|
|
@@ -741,7 +744,27 @@ class RpcHandlerManager {
|
|
|
741
744
|
}
|
|
742
745
|
}
|
|
743
746
|
/**
|
|
744
|
-
*
|
|
747
|
+
* Fast retry: 5 seconds after initial connect, re-register all handlers once.
|
|
748
|
+
* Covers the case where the first batch of registrations failed silently.
|
|
749
|
+
*/
|
|
750
|
+
scheduleFastRetry(socket) {
|
|
751
|
+
this.cancelFastRetry();
|
|
752
|
+
this.fastRetryTimer = setTimeout(() => {
|
|
753
|
+
this.fastRetryTimer = null;
|
|
754
|
+
if (this.socket === socket && this.handlers.size > 0) {
|
|
755
|
+
this.logger("[RPC] Fast retry: re-registering all handlers");
|
|
756
|
+
this.registerAllHandlers(socket);
|
|
757
|
+
}
|
|
758
|
+
}, 5e3);
|
|
759
|
+
}
|
|
760
|
+
cancelFastRetry() {
|
|
761
|
+
if (this.fastRetryTimer) {
|
|
762
|
+
clearTimeout(this.fastRetryTimer);
|
|
763
|
+
this.fastRetryTimer = null;
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* Periodic re-registration every 30s as a safety net.
|
|
745
768
|
*/
|
|
746
769
|
startReregisterInterval() {
|
|
747
770
|
this.stopReregisterInterval();
|
|
@@ -749,7 +772,7 @@ class RpcHandlerManager {
|
|
|
749
772
|
if (this.socket && this.handlers.size > 0) {
|
|
750
773
|
this.registerAllHandlers(this.socket);
|
|
751
774
|
}
|
|
752
|
-
},
|
|
775
|
+
}, 3e4);
|
|
753
776
|
}
|
|
754
777
|
stopReregisterInterval() {
|
|
755
778
|
if (this.reregisterInterval) {
|
package/dist/index.d.cts
CHANGED
|
@@ -175,6 +175,7 @@ declare class RpcHandlerManager {
|
|
|
175
175
|
private readonly logger;
|
|
176
176
|
private socket;
|
|
177
177
|
private reregisterInterval;
|
|
178
|
+
private fastRetryTimer;
|
|
178
179
|
constructor(config: RpcHandlerConfig);
|
|
179
180
|
/**
|
|
180
181
|
* Register an RPC handler for a specific method
|
|
@@ -196,7 +197,13 @@ declare class RpcHandlerManager {
|
|
|
196
197
|
private emitRegisterWithRetry;
|
|
197
198
|
private registerAllHandlers;
|
|
198
199
|
/**
|
|
199
|
-
*
|
|
200
|
+
* Fast retry: 5 seconds after initial connect, re-register all handlers once.
|
|
201
|
+
* Covers the case where the first batch of registrations failed silently.
|
|
202
|
+
*/
|
|
203
|
+
private scheduleFastRetry;
|
|
204
|
+
private cancelFastRetry;
|
|
205
|
+
/**
|
|
206
|
+
* Periodic re-registration every 30s as a safety net.
|
|
200
207
|
*/
|
|
201
208
|
private startReregisterInterval;
|
|
202
209
|
private stopReregisterInterval;
|
package/dist/index.d.mts
CHANGED
|
@@ -175,6 +175,7 @@ declare class RpcHandlerManager {
|
|
|
175
175
|
private readonly logger;
|
|
176
176
|
private socket;
|
|
177
177
|
private reregisterInterval;
|
|
178
|
+
private fastRetryTimer;
|
|
178
179
|
constructor(config: RpcHandlerConfig);
|
|
179
180
|
/**
|
|
180
181
|
* Register an RPC handler for a specific method
|
|
@@ -196,7 +197,13 @@ declare class RpcHandlerManager {
|
|
|
196
197
|
private emitRegisterWithRetry;
|
|
197
198
|
private registerAllHandlers;
|
|
198
199
|
/**
|
|
199
|
-
*
|
|
200
|
+
* Fast retry: 5 seconds after initial connect, re-register all handlers once.
|
|
201
|
+
* Covers the case where the first batch of registrations failed silently.
|
|
202
|
+
*/
|
|
203
|
+
private scheduleFastRetry;
|
|
204
|
+
private cancelFastRetry;
|
|
205
|
+
/**
|
|
206
|
+
* Periodic re-registration every 30s as a safety net.
|
|
200
207
|
*/
|
|
201
208
|
private startReregisterInterval;
|
|
202
209
|
private stopReregisterInterval;
|
package/dist/index.mjs
CHANGED
|
@@ -16,7 +16,7 @@ import { join as join$1, resolve } from 'path';
|
|
|
16
16
|
import { realpathSync } from 'fs';
|
|
17
17
|
import { tmpdir } from 'os';
|
|
18
18
|
|
|
19
|
-
var version = "0.3.
|
|
19
|
+
var version = "0.3.10";
|
|
20
20
|
|
|
21
21
|
function loadConfig() {
|
|
22
22
|
const serverUrl = (process.env.HAPPY_SERVER_URL ?? "https://happyserve.xycloud.info").replace(/\/+$/, "");
|
|
@@ -620,6 +620,7 @@ class RpcHandlerManager {
|
|
|
620
620
|
logger;
|
|
621
621
|
socket = null;
|
|
622
622
|
reregisterInterval = null;
|
|
623
|
+
fastRetryTimer = null;
|
|
623
624
|
constructor(config) {
|
|
624
625
|
this.scopePrefix = config.scopePrefix;
|
|
625
626
|
this.encryptionKey = config.encryptionKey;
|
|
@@ -679,11 +680,13 @@ class RpcHandlerManager {
|
|
|
679
680
|
onSocketConnect(socket) {
|
|
680
681
|
this.socket = socket;
|
|
681
682
|
this.registerAllHandlers(socket);
|
|
683
|
+
this.scheduleFastRetry(socket);
|
|
682
684
|
this.startReregisterInterval();
|
|
683
685
|
}
|
|
684
686
|
onSocketDisconnect() {
|
|
685
687
|
this.socket = null;
|
|
686
688
|
this.stopReregisterInterval();
|
|
689
|
+
this.cancelFastRetry();
|
|
687
690
|
}
|
|
688
691
|
getHandlerCount() {
|
|
689
692
|
return this.handlers.size;
|
|
@@ -739,7 +742,27 @@ class RpcHandlerManager {
|
|
|
739
742
|
}
|
|
740
743
|
}
|
|
741
744
|
/**
|
|
742
|
-
*
|
|
745
|
+
* Fast retry: 5 seconds after initial connect, re-register all handlers once.
|
|
746
|
+
* Covers the case where the first batch of registrations failed silently.
|
|
747
|
+
*/
|
|
748
|
+
scheduleFastRetry(socket) {
|
|
749
|
+
this.cancelFastRetry();
|
|
750
|
+
this.fastRetryTimer = setTimeout(() => {
|
|
751
|
+
this.fastRetryTimer = null;
|
|
752
|
+
if (this.socket === socket && this.handlers.size > 0) {
|
|
753
|
+
this.logger("[RPC] Fast retry: re-registering all handlers");
|
|
754
|
+
this.registerAllHandlers(socket);
|
|
755
|
+
}
|
|
756
|
+
}, 5e3);
|
|
757
|
+
}
|
|
758
|
+
cancelFastRetry() {
|
|
759
|
+
if (this.fastRetryTimer) {
|
|
760
|
+
clearTimeout(this.fastRetryTimer);
|
|
761
|
+
this.fastRetryTimer = null;
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
/**
|
|
765
|
+
* Periodic re-registration every 30s as a safety net.
|
|
743
766
|
*/
|
|
744
767
|
startReregisterInterval() {
|
|
745
768
|
this.stopReregisterInterval();
|
|
@@ -747,7 +770,7 @@ class RpcHandlerManager {
|
|
|
747
770
|
if (this.socket && this.handlers.size > 0) {
|
|
748
771
|
this.registerAllHandlers(this.socket);
|
|
749
772
|
}
|
|
750
|
-
},
|
|
773
|
+
}, 3e4);
|
|
751
774
|
}
|
|
752
775
|
stopReregisterInterval() {
|
|
753
776
|
if (this.reregisterInterval) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kmmao/happy-agent",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.10",
|
|
4
4
|
"description": "CLI client for controlling Happy Coder agents remotely",
|
|
5
5
|
"author": "Kirill Dubovitskiy",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"release": "npx --no-install release-it"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@kmmao/happy-wire": "^0.
|
|
46
|
+
"@kmmao/happy-wire": "^0.4.2",
|
|
47
47
|
"axios": "^1.13.5",
|
|
48
48
|
"chalk": "^5.6.2",
|
|
49
49
|
"commander": "^13.1.0",
|