@agentvault/secure-channel 0.6.17 → 0.6.18
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/channel.d.ts +2 -2
- package/dist/channel.d.ts.map +1 -1
- package/dist/cli.js +12 -18
- package/dist/cli.js.map +2 -2
- package/dist/index.js +12 -18
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/dist/channel.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
13
13
|
private _reconnectAttempt;
|
|
14
14
|
private _reconnectTimer;
|
|
15
15
|
private _pingTimer;
|
|
16
|
-
private
|
|
16
|
+
private _lastServerMessage;
|
|
17
17
|
private _pendingAcks;
|
|
18
18
|
private _ackTimer;
|
|
19
19
|
private _stopped;
|
|
@@ -22,7 +22,7 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
22
22
|
private _pollFallbackTimer;
|
|
23
23
|
private _syncMessageIds;
|
|
24
24
|
private static readonly PING_INTERVAL_MS;
|
|
25
|
-
private static readonly
|
|
25
|
+
private static readonly SILENCE_TIMEOUT_MS;
|
|
26
26
|
private static readonly POLL_FALLBACK_INTERVAL_MS;
|
|
27
27
|
private static readonly POLL_FALLBACK_IDLE_MS;
|
|
28
28
|
constructor(config: SecureChannelConfig);
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoB3C,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EAMb,MAAM,YAAY,CAAC;AAmDpB,qBAAa,aAAc,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoB3C,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EAMb,MAAM,YAAY,CAAC;AAmDpB,qBAAa,aAAc,SAAQ,YAAY;IA+BjC,OAAO,CAAC,MAAM;IA9B1B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAGH;IACd,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,eAAe,CAA4B;IAInD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAU;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAU;gBAEnC,MAAM,EAAE,mBAAmB;IAI/C,IAAI,KAAK,IAAI,YAAY,CAExB;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,iEAAiE;IACjE,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAElC;IAED,2CAA2C;IAC3C,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,6CAA6C;IAC7C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;OAGG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DtE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA0DnC,OAAO,CAAC,eAAe;IASvB;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAsC1F;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;YAiCtE,OAAO;IAgDrB,OAAO,CAAC,KAAK;YAsCC,SAAS;IAyIvB,OAAO,CAAC,QAAQ;IAgFhB;;;;OAIG;YACW,sBAAsB;IA4IpC;;;OAGG;YACW,6BAA6B;IA6C3C;;;OAGG;YACW,iBAAiB;IAwD/B;;;OAGG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,OAAO,CAAC,IAAI,CAAC;IA8ChB;;;OAGG;YACW,oBAAoB;IAqClC;;;OAGG;YACW,uBAAuB;IAkCrC;;;;OAIG;YACW,mBAAmB;IAkEjC;;;OAGG;IACH;;;OAGG;YACW,mBAAmB;IA8GjC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;YAMJ,mBAAmB;IAmCjC,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,kBAAkB;IAiH1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;IAKpB;;;OAGG;YACW,aAAa;CAc5B"}
|
package/dist/cli.js
CHANGED
|
@@ -45182,7 +45182,7 @@ var init_channel = __esm({
|
|
|
45182
45182
|
_reconnectAttempt = 0;
|
|
45183
45183
|
_reconnectTimer = null;
|
|
45184
45184
|
_pingTimer = null;
|
|
45185
|
-
|
|
45185
|
+
_lastServerMessage = 0;
|
|
45186
45186
|
_pendingAcks = [];
|
|
45187
45187
|
_ackTimer = null;
|
|
45188
45188
|
_stopped = false;
|
|
@@ -45190,10 +45190,10 @@ var init_channel = __esm({
|
|
|
45190
45190
|
_httpServer = null;
|
|
45191
45191
|
_pollFallbackTimer = null;
|
|
45192
45192
|
_syncMessageIds = null;
|
|
45193
|
+
// Liveness detection: server sends app-level {"event":"ping"} every 30s.
|
|
45194
|
+
// We check every 30s; if no data received in 90s (3 missed pings), connection is dead.
|
|
45193
45195
|
static PING_INTERVAL_MS = 3e4;
|
|
45194
|
-
|
|
45195
|
-
static PING_TIMEOUT_MS = 1e4;
|
|
45196
|
-
// Treat as dead if no pong within 10s
|
|
45196
|
+
static SILENCE_TIMEOUT_MS = 9e4;
|
|
45197
45197
|
static POLL_FALLBACK_INTERVAL_MS = 3e4;
|
|
45198
45198
|
// 30s when messages found
|
|
45199
45199
|
static POLL_FALLBACK_IDLE_MS = 6e4;
|
|
@@ -45674,6 +45674,7 @@ var init_channel = __esm({
|
|
|
45674
45674
|
this.emit("ready");
|
|
45675
45675
|
});
|
|
45676
45676
|
ws.on("message", async (raw) => {
|
|
45677
|
+
this._lastServerMessage = Date.now();
|
|
45677
45678
|
try {
|
|
45678
45679
|
const data = JSON.parse(raw.toString());
|
|
45679
45680
|
if (data.event === "ping") {
|
|
@@ -46164,30 +46165,23 @@ ${messageText}`;
|
|
|
46164
46165
|
}
|
|
46165
46166
|
_startPing(ws) {
|
|
46166
46167
|
this._stopPing();
|
|
46168
|
+
this._lastServerMessage = Date.now();
|
|
46167
46169
|
this._pingTimer = setInterval(() => {
|
|
46168
46170
|
if (ws.readyState !== WebSocket.OPEN) return;
|
|
46169
|
-
|
|
46170
|
-
|
|
46171
|
+
const silence = Date.now() - this._lastServerMessage;
|
|
46172
|
+
if (silence > _SecureChannel.SILENCE_TIMEOUT_MS) {
|
|
46173
|
+
console.log(
|
|
46174
|
+
`[SecureChannel] No server data for ${Math.round(silence / 1e3)}s \u2014 reconnecting stale WebSocket`
|
|
46175
|
+
);
|
|
46171
46176
|
ws.terminate();
|
|
46172
|
-
}, _SecureChannel.PING_TIMEOUT_MS);
|
|
46173
|
-
ws.ping();
|
|
46174
|
-
}, _SecureChannel.PING_INTERVAL_MS);
|
|
46175
|
-
ws.on("pong", () => {
|
|
46176
|
-
if (this._pingTimeout) {
|
|
46177
|
-
clearTimeout(this._pingTimeout);
|
|
46178
|
-
this._pingTimeout = null;
|
|
46179
46177
|
}
|
|
46180
|
-
});
|
|
46178
|
+
}, _SecureChannel.PING_INTERVAL_MS);
|
|
46181
46179
|
}
|
|
46182
46180
|
_stopPing() {
|
|
46183
46181
|
if (this._pingTimer) {
|
|
46184
46182
|
clearInterval(this._pingTimer);
|
|
46185
46183
|
this._pingTimer = null;
|
|
46186
46184
|
}
|
|
46187
|
-
if (this._pingTimeout) {
|
|
46188
|
-
clearTimeout(this._pingTimeout);
|
|
46189
|
-
this._pingTimeout = null;
|
|
46190
|
-
}
|
|
46191
46185
|
}
|
|
46192
46186
|
_scheduleReconnect() {
|
|
46193
46187
|
if (this._stopped) return;
|