@agentvault/agentvault 0.23.19 → 0.23.21
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/a2a-log-gate.d.ts +56 -0
- package/dist/a2a-log-gate.d.ts.map +1 -0
- package/dist/channel.d.ts +63 -0
- package/dist/channel.d.ts.map +1 -1
- package/dist/cli.js +235 -5
- package/dist/cli.js.map +4 -4
- package/dist/index.js +235 -5
- package/dist/index.js.map +4 -4
- package/dist/mls-membership-probe.d.ts +28 -0
- package/dist/mls-membership-probe.d.ts.map +1 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Change-gate for the `[listA2AChannels]` log line — LEAF MODULE (#798).
|
|
3
|
+
*
|
|
4
|
+
* That line was an unconditional `console.log` inside `listA2AChannels()`, which
|
|
5
|
+
* polls every 30 seconds. Measured 2026-08-07/08:
|
|
6
|
+
*
|
|
7
|
+
* bridge.log 90,841 of 100,702 lines (90.2%), 7.5 MB
|
|
8
|
+
* wren's gateway.log 27.9 MB, tail entirely this line
|
|
9
|
+
*
|
|
10
|
+
* Every one of them read `channels=0`. Real signal sat at a 10:1 noise ratio,
|
|
11
|
+
* which is what pushed the 08-06 investigation onto `tail -N` — a sliding
|
|
12
|
+
* window, not a clock.
|
|
13
|
+
*
|
|
14
|
+
* ⚠️ NOT deleted, deliberately. **#794 is an active watch on A2A behaviour**
|
|
15
|
+
* (the loop guard went prompt-level when #792 removed the accidental rate
|
|
16
|
+
* limiter), and this line is the only report of A2A channel state. Deleting it
|
|
17
|
+
* would remove the signal that watch depends on. Logging only on CHANGE keeps
|
|
18
|
+
* every transition and drops the ~2,880 identical lines a day.
|
|
19
|
+
*
|
|
20
|
+
* ⚠️ Deliberately does NOT timestamp. The OpenClaw gateway already stamps this
|
|
21
|
+
* line on its own path (`2026-08-08T06:23:57.536-05:00 [listA2AChannels] …`), so
|
|
22
|
+
* adding one here would double-stamp for every OpenClaw agent. On the bridge
|
|
23
|
+
* path it stays unstamped — acceptable at a handful of lines a day, and the
|
|
24
|
+
* bridge's OWN sinks are stamped by #796.
|
|
25
|
+
*/
|
|
26
|
+
/** The fields of a channel that make a state worth reporting. */
|
|
27
|
+
export interface A2AChannelLike {
|
|
28
|
+
channelId?: string;
|
|
29
|
+
status?: string;
|
|
30
|
+
participant_count?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Stable fingerprint of the A2A channel set.
|
|
34
|
+
*
|
|
35
|
+
* **Sorted by id on purpose.** The server does not promise ordering, and an
|
|
36
|
+
* order-sensitive signature would log a "change" every time the same channels
|
|
37
|
+
* came back shuffled — reintroducing the noise this exists to remove, in a form
|
|
38
|
+
* that looks like real activity.
|
|
39
|
+
*
|
|
40
|
+
* Only id / status / participant count are included: those are what the log line
|
|
41
|
+
* reports and what #794 needs to see move.
|
|
42
|
+
*/
|
|
43
|
+
export declare function a2aChannelSignature(channels: readonly A2AChannelLike[]): string;
|
|
44
|
+
/**
|
|
45
|
+
* Tracks the last reported signature so a caller can log only on change.
|
|
46
|
+
*
|
|
47
|
+
* First observation always reports: at process start the current state is news,
|
|
48
|
+
* and a silent start would leave an operator unable to tell "no channels" from
|
|
49
|
+
* "not running".
|
|
50
|
+
*/
|
|
51
|
+
export declare class A2ALogGate {
|
|
52
|
+
private last;
|
|
53
|
+
/** True when this state differs from the last reported one. Records it. */
|
|
54
|
+
shouldReport(channels: readonly A2AChannelLike[]): boolean;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=a2a-log-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a-log-gate.d.ts","sourceRoot":"","sources":["../src/a2a-log-gate.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAU/E;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAuB;IAEnC,2EAA2E;IAC3E,YAAY,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO;CAM3D"}
|
package/dist/channel.d.ts
CHANGED
|
@@ -51,6 +51,11 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
51
51
|
private _heartbeatTimer;
|
|
52
52
|
private _heartbeatCallback;
|
|
53
53
|
private _heartbeatIntervalSeconds;
|
|
54
|
+
/** #798: report the A2A channel set only when it CHANGES. This line polls
|
|
55
|
+
* every 30s and produced 90.2% of bridge.log (90,841/100,702 lines) and a
|
|
56
|
+
* 27.9MB gateway.log on wren, every one reading `channels=0`. Not deleted —
|
|
57
|
+
* #794's A2A watch needs the transitions. */
|
|
58
|
+
private _a2aLogGate;
|
|
54
59
|
private _wakeDetectorTimer;
|
|
55
60
|
private _lastWakeTick;
|
|
56
61
|
private _trustToken;
|
|
@@ -60,6 +65,17 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
60
65
|
private _pendingPollTimer;
|
|
61
66
|
private _syncMessageIds;
|
|
62
67
|
private _deliveryHeartbeat;
|
|
68
|
+
/**
|
|
69
|
+
* How often to re-check the KeyPackage pool against the server (#826).
|
|
70
|
+
*
|
|
71
|
+
* KeyPackages expire after 7 days and, before this, only a reconnect
|
|
72
|
+
* republished them — so an agent that simply stayed up ran to zero usable
|
|
73
|
+
* and silently stopped accepting new MLS 1:1 conversations while looking
|
|
74
|
+
* perfectly healthy. 6h gives ~28 attempts inside one lifetime, so a run of
|
|
75
|
+
* transient failures cannot age the pool out. Cost is one GET per interval.
|
|
76
|
+
*/
|
|
77
|
+
private static readonly _KP_REPLENISH_INTERVAL_MS;
|
|
78
|
+
private _kpReplenishTimer;
|
|
63
79
|
private _a2aReconcileTimer;
|
|
64
80
|
private _deliveryPulling;
|
|
65
81
|
private _drDeliveryPulling;
|
|
@@ -440,6 +456,25 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
440
456
|
* transient error can never over-prune a live room.
|
|
441
457
|
*/
|
|
442
458
|
private _reconcileRoomsWithServer;
|
|
459
|
+
/**
|
|
460
|
+
* #629 — quarantine MLS state for groups this device is no longer in.
|
|
461
|
+
*
|
|
462
|
+
* `_reconcileRoomsWithServer` above covers ROOMS: anything absent from
|
|
463
|
+
* `GET /rooms` is pruned. It cannot see a group that was never a room — a 1:1
|
|
464
|
+
* conversation group or an A2A channel group — so that state lingered with
|
|
465
|
+
* nothing to reconcile it. Measured on loopita 2026-08-08: one group-state
|
|
466
|
+
* file whose group had no server-side row at all.
|
|
467
|
+
*
|
|
468
|
+
* `quarantineOrphanedMlsState` was written for exactly this and shipped with
|
|
469
|
+
* 11 passing tests, but nothing ever called it. This is that call site.
|
|
470
|
+
*
|
|
471
|
+
* Runs AFTER the room reconcile so rooms are already gone and this only sees
|
|
472
|
+
* genuine non-room orphans.
|
|
473
|
+
*
|
|
474
|
+
* Quarantine RENAMES to `.orphaned` rather than deleting: if the verdict is
|
|
475
|
+
* ever wrong the state is recoverable by hand, which deletion would not be.
|
|
476
|
+
*/
|
|
477
|
+
private _quarantineOrphanedMlsGroups;
|
|
443
478
|
/**
|
|
444
479
|
* Handle an in-band `{event:"error"}` frame from the server.
|
|
445
480
|
*
|
|
@@ -830,6 +865,34 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
830
865
|
* loop; the next trigger retries.
|
|
831
866
|
*/
|
|
832
867
|
private _ensureKpPoolPublished;
|
|
868
|
+
/** Start the periodic KeyPackage replenish (#826). Idempotent. */
|
|
869
|
+
private _startKpReplenishTimer;
|
|
870
|
+
private _stopKpReplenishTimer;
|
|
871
|
+
/**
|
|
872
|
+
* The server's EXPIRY-AWARE usable KeyPackage count, or null when unknown.
|
|
873
|
+
*
|
|
874
|
+
* `count_unconsumed` filters `expires_at > utcnow()`, which is the only count
|
|
875
|
+
* that reflects what a peer can actually fetch. Returns null (not 0) on any
|
|
876
|
+
* failure so callers can tell "server says empty" from "we could not ask" —
|
|
877
|
+
* guessing 0 here would publish a fresh pool on every transient 503.
|
|
878
|
+
*/
|
|
879
|
+
private _fetchServerKpCount;
|
|
880
|
+
/**
|
|
881
|
+
* Top the pool up against the SERVER's count (#826).
|
|
882
|
+
*
|
|
883
|
+
* ⚠️ DO NOT replace this with a periodic call to `_ensureKpPoolPublished()`.
|
|
884
|
+
* That function early-returns on `_pendingKpBundles.length >= _KP_POOL_TARGET`,
|
|
885
|
+
* and that array holds PRIVATE bundles which never expire locally — so on an
|
|
886
|
+
* agent that has been connected longer than the KeyPackage lifetime it is
|
|
887
|
+
* still full while the server has zero usable. Measured on prod 2026-08-09:
|
|
888
|
+
* cortina and eclaude were online and green with 10 unconsumed / 0 usable,
|
|
889
|
+
* unable to accept any new MLS 1:1. A timer over the local guard would have
|
|
890
|
+
* run forever and changed nothing.
|
|
891
|
+
*
|
|
892
|
+
* Publishes only the shortfall, and never throws — this runs on a timer and
|
|
893
|
+
* must not be able to take the channel down.
|
|
894
|
+
*/
|
|
895
|
+
private _replenishKpPoolFromServer;
|
|
833
896
|
private _handleMlsWelcome;
|
|
834
897
|
/**
|
|
835
898
|
* Self-bootstrap a room entry + MLS group mapping from a Welcome whose room is
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -63012,6 +63012,35 @@ async function deleteMlsState(dataDir2, groupId) {
|
|
|
63012
63012
|
} catch {
|
|
63013
63013
|
}
|
|
63014
63014
|
}
|
|
63015
|
+
async function quarantineOrphanedMlsState(dataDir2, isStillMember, opts = {}) {
|
|
63016
|
+
const max = opts.max ?? 20;
|
|
63017
|
+
const quarantined = [];
|
|
63018
|
+
let names;
|
|
63019
|
+
try {
|
|
63020
|
+
names = await readdir(dataDir2);
|
|
63021
|
+
} catch {
|
|
63022
|
+
return quarantined;
|
|
63023
|
+
}
|
|
63024
|
+
for (const name2 of names) {
|
|
63025
|
+
if (quarantined.length >= max) break;
|
|
63026
|
+
const m2 = /^mls-(?!kp-pending-)([A-Za-z0-9_-]+)\.json$/.exec(name2);
|
|
63027
|
+
if (!m2) continue;
|
|
63028
|
+
const groupId = m2[1];
|
|
63029
|
+
let member;
|
|
63030
|
+
try {
|
|
63031
|
+
member = await isStillMember(groupId);
|
|
63032
|
+
} catch {
|
|
63033
|
+
continue;
|
|
63034
|
+
}
|
|
63035
|
+
if (member === null || member === true) continue;
|
|
63036
|
+
try {
|
|
63037
|
+
await rename(join(dataDir2, name2), join(dataDir2, `${name2}.orphaned`));
|
|
63038
|
+
quarantined.push(groupId);
|
|
63039
|
+
} catch {
|
|
63040
|
+
}
|
|
63041
|
+
}
|
|
63042
|
+
return quarantined;
|
|
63043
|
+
}
|
|
63015
63044
|
var SYNC_LOCK_STALE_MS, pendingKpPath;
|
|
63016
63045
|
var init_mls_state = __esm({
|
|
63017
63046
|
"src/mls-state.ts"() {
|
|
@@ -63356,6 +63385,45 @@ var init_transport2 = __esm({
|
|
|
63356
63385
|
}
|
|
63357
63386
|
});
|
|
63358
63387
|
|
|
63388
|
+
// src/a2a-log-gate.ts
|
|
63389
|
+
function a2aChannelSignature(channels) {
|
|
63390
|
+
return JSON.stringify(
|
|
63391
|
+
channels.map((c2) => ({
|
|
63392
|
+
id: c2.channelId?.slice(0, 8),
|
|
63393
|
+
status: c2.status,
|
|
63394
|
+
participants: c2.participant_count
|
|
63395
|
+
})).sort((a2, b2) => (a2.id ?? "").localeCompare(b2.id ?? ""))
|
|
63396
|
+
);
|
|
63397
|
+
}
|
|
63398
|
+
var A2ALogGate;
|
|
63399
|
+
var init_a2a_log_gate = __esm({
|
|
63400
|
+
"src/a2a-log-gate.ts"() {
|
|
63401
|
+
"use strict";
|
|
63402
|
+
A2ALogGate = class {
|
|
63403
|
+
last = null;
|
|
63404
|
+
/** True when this state differs from the last reported one. Records it. */
|
|
63405
|
+
shouldReport(channels) {
|
|
63406
|
+
const sig = a2aChannelSignature(channels);
|
|
63407
|
+
if (sig === this.last) return false;
|
|
63408
|
+
this.last = sig;
|
|
63409
|
+
return true;
|
|
63410
|
+
}
|
|
63411
|
+
};
|
|
63412
|
+
}
|
|
63413
|
+
});
|
|
63414
|
+
|
|
63415
|
+
// src/mls-membership-probe.ts
|
|
63416
|
+
function mlsMembershipFromStatus(status) {
|
|
63417
|
+
if (status === 200) return true;
|
|
63418
|
+
if (status === 403 || status === 404) return false;
|
|
63419
|
+
return null;
|
|
63420
|
+
}
|
|
63421
|
+
var init_mls_membership_probe = __esm({
|
|
63422
|
+
"src/mls-membership-probe.ts"() {
|
|
63423
|
+
"use strict";
|
|
63424
|
+
}
|
|
63425
|
+
});
|
|
63426
|
+
|
|
63359
63427
|
// src/openclaw-compat.ts
|
|
63360
63428
|
var openclaw_compat_exports = {};
|
|
63361
63429
|
__export(openclaw_compat_exports, {
|
|
@@ -63918,6 +63986,8 @@ var init_channel = __esm({
|
|
|
63918
63986
|
await init_crypto_helpers();
|
|
63919
63987
|
await init_state();
|
|
63920
63988
|
init_transport2();
|
|
63989
|
+
init_a2a_log_gate();
|
|
63990
|
+
init_mls_membership_probe();
|
|
63921
63991
|
ROOM_AGENT_TYPES = /* @__PURE__ */ new Set([
|
|
63922
63992
|
"message",
|
|
63923
63993
|
"text",
|
|
@@ -63983,6 +64053,11 @@ var init_channel = __esm({
|
|
|
63983
64053
|
_heartbeatTimer = null;
|
|
63984
64054
|
_heartbeatCallback = null;
|
|
63985
64055
|
_heartbeatIntervalSeconds = 0;
|
|
64056
|
+
/** #798: report the A2A channel set only when it CHANGES. This line polls
|
|
64057
|
+
* every 30s and produced 90.2% of bridge.log (90,841/100,702 lines) and a
|
|
64058
|
+
* 27.9MB gateway.log on wren, every one reading `channels=0`. Not deleted —
|
|
64059
|
+
* #794's A2A watch needs the transitions. */
|
|
64060
|
+
_a2aLogGate = new A2ALogGate();
|
|
63986
64061
|
_wakeDetectorTimer = null;
|
|
63987
64062
|
_lastWakeTick = Date.now();
|
|
63988
64063
|
_trustToken = null;
|
|
@@ -63992,6 +64067,17 @@ var init_channel = __esm({
|
|
|
63992
64067
|
_pendingPollTimer = null;
|
|
63993
64068
|
_syncMessageIds = null;
|
|
63994
64069
|
_deliveryHeartbeat = null;
|
|
64070
|
+
/**
|
|
64071
|
+
* How often to re-check the KeyPackage pool against the server (#826).
|
|
64072
|
+
*
|
|
64073
|
+
* KeyPackages expire after 7 days and, before this, only a reconnect
|
|
64074
|
+
* republished them — so an agent that simply stayed up ran to zero usable
|
|
64075
|
+
* and silently stopped accepting new MLS 1:1 conversations while looking
|
|
64076
|
+
* perfectly healthy. 6h gives ~28 attempts inside one lifetime, so a run of
|
|
64077
|
+
* transient failures cannot age the pool out. Cost is one GET per interval.
|
|
64078
|
+
*/
|
|
64079
|
+
static _KP_REPLENISH_INTERVAL_MS = 6 * 60 * 60 * 1e3;
|
|
64080
|
+
_kpReplenishTimer = null;
|
|
63995
64081
|
_a2aReconcileTimer = null;
|
|
63996
64082
|
_deliveryPulling = false;
|
|
63997
64083
|
_drDeliveryPulling = false;
|
|
@@ -64956,7 +65042,7 @@ var init_channel = __esm({
|
|
|
64956
65042
|
*/
|
|
64957
65043
|
sendActivitySpan(spanData) {
|
|
64958
65044
|
if (!this._ws || this._ws.readyState !== WebSocket.OPEN) return;
|
|
64959
|
-
const pluginVersion = true ? "0.23.
|
|
65045
|
+
const pluginVersion = true ? "0.23.21" : "0.0.0-dev";
|
|
64960
65046
|
const agentName = this.config.agentName ?? "Agent";
|
|
64961
65047
|
const resource = {
|
|
64962
65048
|
"service.name": "agentvault-agent",
|
|
@@ -65276,6 +65362,47 @@ var init_channel = __esm({
|
|
|
65276
65362
|
);
|
|
65277
65363
|
this.emit("rooms_reconciled", { pruned: stale });
|
|
65278
65364
|
}
|
|
65365
|
+
/**
|
|
65366
|
+
* #629 — quarantine MLS state for groups this device is no longer in.
|
|
65367
|
+
*
|
|
65368
|
+
* `_reconcileRoomsWithServer` above covers ROOMS: anything absent from
|
|
65369
|
+
* `GET /rooms` is pruned. It cannot see a group that was never a room — a 1:1
|
|
65370
|
+
* conversation group or an A2A channel group — so that state lingered with
|
|
65371
|
+
* nothing to reconcile it. Measured on loopita 2026-08-08: one group-state
|
|
65372
|
+
* file whose group had no server-side row at all.
|
|
65373
|
+
*
|
|
65374
|
+
* `quarantineOrphanedMlsState` was written for exactly this and shipped with
|
|
65375
|
+
* 11 passing tests, but nothing ever called it. This is that call site.
|
|
65376
|
+
*
|
|
65377
|
+
* Runs AFTER the room reconcile so rooms are already gone and this only sees
|
|
65378
|
+
* genuine non-room orphans.
|
|
65379
|
+
*
|
|
65380
|
+
* Quarantine RENAMES to `.orphaned` rather than deleting: if the verdict is
|
|
65381
|
+
* ever wrong the state is recoverable by hand, which deletion would not be.
|
|
65382
|
+
*/
|
|
65383
|
+
async _quarantineOrphanedMlsGroups() {
|
|
65384
|
+
if (!this._deviceJwt) return;
|
|
65385
|
+
const quarantined = await quarantineOrphanedMlsState(
|
|
65386
|
+
this.config.dataDir,
|
|
65387
|
+
async (groupId) => {
|
|
65388
|
+
try {
|
|
65389
|
+
const res = await fetch(
|
|
65390
|
+
`${this.config.apiUrl}/api/v1/mls/groups/${encodeURIComponent(groupId)}`,
|
|
65391
|
+
{ headers: { Authorization: `Bearer ${this._deviceJwt}` } }
|
|
65392
|
+
);
|
|
65393
|
+
return mlsMembershipFromStatus(res.status);
|
|
65394
|
+
} catch {
|
|
65395
|
+
return null;
|
|
65396
|
+
}
|
|
65397
|
+
}
|
|
65398
|
+
);
|
|
65399
|
+
if (quarantined.length > 0) {
|
|
65400
|
+
console.log(
|
|
65401
|
+
`[SecureChannel] Quarantined ${quarantined.length} orphaned MLS group state file(s): ` + quarantined.map((g2) => g2.slice(0, 8)).join(", ")
|
|
65402
|
+
);
|
|
65403
|
+
this.emit("mls_state_quarantined", { groupIds: quarantined });
|
|
65404
|
+
}
|
|
65405
|
+
}
|
|
65279
65406
|
/**
|
|
65280
65407
|
* Handle an in-band `{event:"error"}` frame from the server.
|
|
65281
65408
|
*
|
|
@@ -66436,7 +66563,9 @@ var init_channel = __esm({
|
|
|
66436
66563
|
}
|
|
66437
66564
|
const myHub = this._persisted.hubAddress || "";
|
|
66438
66565
|
const myHubId = this._persisted.hubId || "";
|
|
66439
|
-
|
|
66566
|
+
if (this._a2aLogGate.shouldReport(channels)) {
|
|
66567
|
+
console.log(`[listA2AChannels] myHub=${myHub}, channels=${channels.length}, raw=${JSON.stringify(channels.map((c2) => ({ id: c2.channelId?.slice(0, 8), status: c2.status, participants: c2.participant_count })))}`);
|
|
66568
|
+
}
|
|
66440
66569
|
for (const ch of channels) {
|
|
66441
66570
|
if (ch.status === "active" || ch.status === "approved") {
|
|
66442
66571
|
const myParticipant = ch.participants?.find(
|
|
@@ -66798,6 +66927,8 @@ var init_channel = __esm({
|
|
|
66798
66927
|
this._setState("ready");
|
|
66799
66928
|
void this._reconcileRoomsWithServer().catch(
|
|
66800
66929
|
(err) => console.warn(`[SecureChannel] room reconcile failed (ignored): ${err instanceof Error ? err.message : String(err)}`)
|
|
66930
|
+
).then(() => this._quarantineOrphanedMlsGroups()).catch(
|
|
66931
|
+
(err) => console.warn(`[SecureChannel] MLS orphan quarantine failed (ignored): ${err instanceof Error ? err.message : String(err)}`)
|
|
66801
66932
|
);
|
|
66802
66933
|
if (this.config.enableScanning) {
|
|
66803
66934
|
this._scanEngine = new ScanEngine();
|
|
@@ -66821,7 +66952,7 @@ var init_channel = __esm({
|
|
|
66821
66952
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
66822
66953
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
66823
66954
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
66824
|
-
pluginVersion: true ? "0.23.
|
|
66955
|
+
pluginVersion: true ? "0.23.21" : "0.0.0-dev"
|
|
66825
66956
|
});
|
|
66826
66957
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
66827
66958
|
}
|
|
@@ -66830,6 +66961,7 @@ var init_channel = __esm({
|
|
|
66830
66961
|
console.warn("[SecureChannel] A2A channel sync on connect failed:", err);
|
|
66831
66962
|
});
|
|
66832
66963
|
await this._ensureKpPoolPublished();
|
|
66964
|
+
this._startKpReplenishTimer();
|
|
66833
66965
|
this._pullDeliveryQueue().catch((err) => {
|
|
66834
66966
|
console.warn("[SecureChannel] Initial delivery pull failed:", err);
|
|
66835
66967
|
});
|
|
@@ -67144,7 +67276,7 @@ var init_channel = __esm({
|
|
|
67144
67276
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
67145
67277
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
67146
67278
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
67147
|
-
pluginVersion: true ? "0.23.
|
|
67279
|
+
pluginVersion: true ? "0.23.21" : "0.0.0-dev"
|
|
67148
67280
|
});
|
|
67149
67281
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
67150
67282
|
}
|
|
@@ -67487,6 +67619,7 @@ var init_channel = __esm({
|
|
|
67487
67619
|
this._deliveryHeartbeat = null;
|
|
67488
67620
|
}
|
|
67489
67621
|
this._stopA2aReconcileTimer();
|
|
67622
|
+
this._stopKpReplenishTimer();
|
|
67490
67623
|
if (this._stopped) return;
|
|
67491
67624
|
this._setState("disconnected");
|
|
67492
67625
|
this._scheduleReconnect();
|
|
@@ -68880,6 +69013,103 @@ ${messageText}`;
|
|
|
68880
69013
|
this._kpPoolFilling = false;
|
|
68881
69014
|
}
|
|
68882
69015
|
}
|
|
69016
|
+
/** Start the periodic KeyPackage replenish (#826). Idempotent. */
|
|
69017
|
+
_startKpReplenishTimer() {
|
|
69018
|
+
this._stopKpReplenishTimer();
|
|
69019
|
+
this._kpReplenishTimer = setInterval(() => {
|
|
69020
|
+
void this._replenishKpPoolFromServer();
|
|
69021
|
+
}, _SecureChannel._KP_REPLENISH_INTERVAL_MS);
|
|
69022
|
+
}
|
|
69023
|
+
_stopKpReplenishTimer() {
|
|
69024
|
+
if (this._kpReplenishTimer) {
|
|
69025
|
+
clearInterval(this._kpReplenishTimer);
|
|
69026
|
+
this._kpReplenishTimer = null;
|
|
69027
|
+
}
|
|
69028
|
+
}
|
|
69029
|
+
/**
|
|
69030
|
+
* The server's EXPIRY-AWARE usable KeyPackage count, or null when unknown.
|
|
69031
|
+
*
|
|
69032
|
+
* `count_unconsumed` filters `expires_at > utcnow()`, which is the only count
|
|
69033
|
+
* that reflects what a peer can actually fetch. Returns null (not 0) on any
|
|
69034
|
+
* failure so callers can tell "server says empty" from "we could not ask" —
|
|
69035
|
+
* guessing 0 here would publish a fresh pool on every transient 503.
|
|
69036
|
+
*/
|
|
69037
|
+
async _fetchServerKpCount() {
|
|
69038
|
+
try {
|
|
69039
|
+
const res = await fetch(
|
|
69040
|
+
`${this.config.apiUrl}/api/v1/mls/key-packages/count?device_id=${this._deviceId}`,
|
|
69041
|
+
{ headers: { Authorization: `Bearer ${this._deviceJwt}` } }
|
|
69042
|
+
);
|
|
69043
|
+
if (!res.ok) return null;
|
|
69044
|
+
const body = await res.json();
|
|
69045
|
+
const n2 = body?.count;
|
|
69046
|
+
return typeof n2 === "number" && Number.isFinite(n2) ? n2 : null;
|
|
69047
|
+
} catch {
|
|
69048
|
+
return null;
|
|
69049
|
+
}
|
|
69050
|
+
}
|
|
69051
|
+
/**
|
|
69052
|
+
* Top the pool up against the SERVER's count (#826).
|
|
69053
|
+
*
|
|
69054
|
+
* ⚠️ DO NOT replace this with a periodic call to `_ensureKpPoolPublished()`.
|
|
69055
|
+
* That function early-returns on `_pendingKpBundles.length >= _KP_POOL_TARGET`,
|
|
69056
|
+
* and that array holds PRIVATE bundles which never expire locally — so on an
|
|
69057
|
+
* agent that has been connected longer than the KeyPackage lifetime it is
|
|
69058
|
+
* still full while the server has zero usable. Measured on prod 2026-08-09:
|
|
69059
|
+
* cortina and eclaude were online and green with 10 unconsumed / 0 usable,
|
|
69060
|
+
* unable to accept any new MLS 1:1. A timer over the local guard would have
|
|
69061
|
+
* run forever and changed nothing.
|
|
69062
|
+
*
|
|
69063
|
+
* Publishes only the shortfall, and never throws — this runs on a timer and
|
|
69064
|
+
* must not be able to take the channel down.
|
|
69065
|
+
*/
|
|
69066
|
+
async _replenishKpPoolFromServer() {
|
|
69067
|
+
try {
|
|
69068
|
+
if (this._kpPoolFilling) return;
|
|
69069
|
+
const usable = await this._fetchServerKpCount();
|
|
69070
|
+
if (usable === null) return;
|
|
69071
|
+
const shortfall = _SecureChannel._KP_POOL_TARGET - usable;
|
|
69072
|
+
if (shortfall <= 0) return;
|
|
69073
|
+
this._kpPoolFilling = true;
|
|
69074
|
+
try {
|
|
69075
|
+
const identity = new TextEncoder().encode(this._deviceId);
|
|
69076
|
+
let published = 0;
|
|
69077
|
+
for (let i2 = 0; i2 < shortfall; i2++) {
|
|
69078
|
+
const mlsMgr = new MLSGroupManager();
|
|
69079
|
+
const kp = await mlsMgr.generateKeyPackage(identity);
|
|
69080
|
+
const kpHex = Buffer.from(
|
|
69081
|
+
MLSGroupManager.serializeKeyPackage(kp.publicPackage)
|
|
69082
|
+
).toString("hex");
|
|
69083
|
+
const res = await fetch(`${this.config.apiUrl}/api/v1/mls/key-packages`, {
|
|
69084
|
+
method: "POST",
|
|
69085
|
+
headers: {
|
|
69086
|
+
Authorization: `Bearer ${this._deviceJwt}`,
|
|
69087
|
+
"Content-Type": "application/json"
|
|
69088
|
+
},
|
|
69089
|
+
body: JSON.stringify({ key_package: kpHex })
|
|
69090
|
+
});
|
|
69091
|
+
if (!res.ok) {
|
|
69092
|
+
console.warn(
|
|
69093
|
+
`[SecureChannel] KeyPackage replenish rejected (status ${res.status}) after ${published}/${shortfall}`
|
|
69094
|
+
);
|
|
69095
|
+
break;
|
|
69096
|
+
}
|
|
69097
|
+
this._recordPublishedKp(kp);
|
|
69098
|
+
if (!this._mlsKeyPackage) this._mlsKeyPackage = kp;
|
|
69099
|
+
published++;
|
|
69100
|
+
}
|
|
69101
|
+
if (published > 0) {
|
|
69102
|
+
console.log(
|
|
69103
|
+
`[SecureChannel] MLS KeyPackage pool replenished (${published} new; server had ${usable}/${_SecureChannel._KP_POOL_TARGET} usable)`
|
|
69104
|
+
);
|
|
69105
|
+
}
|
|
69106
|
+
} finally {
|
|
69107
|
+
this._kpPoolFilling = false;
|
|
69108
|
+
}
|
|
69109
|
+
} catch (err) {
|
|
69110
|
+
console.warn("[SecureChannel] KeyPackage replenish failed:", err);
|
|
69111
|
+
}
|
|
69112
|
+
}
|
|
68883
69113
|
async _handleMlsWelcome(data) {
|
|
68884
69114
|
const groupId = data.group_id;
|
|
68885
69115
|
const conversationId = data.conversation_id;
|
|
@@ -91452,7 +91682,7 @@ var init_index = __esm({
|
|
|
91452
91682
|
init_skill_invoker();
|
|
91453
91683
|
await init_skill_telemetry();
|
|
91454
91684
|
await init_policy_enforcer();
|
|
91455
|
-
VERSION = true ? "0.23.
|
|
91685
|
+
VERSION = true ? "0.23.21" : "0.0.0-dev";
|
|
91456
91686
|
}
|
|
91457
91687
|
});
|
|
91458
91688
|
|