@agentvault/agentvault 0.14.11 → 0.14.13

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.js CHANGED
@@ -46325,6 +46325,9 @@ var init_channel = __esm({
46325
46325
  _syncMessageIds = null;
46326
46326
  /** Queued A2A messages for responder channels not yet activated (no first initiator message received). */
46327
46327
  _a2aPendingQueue = {};
46328
+ /** Dedup buffer for A2A message IDs (prevents double-delivery via direct + Redis) */
46329
+ _a2aSeenMessageIds = /* @__PURE__ */ new Set();
46330
+ static A2A_SEEN_MAX = 500;
46328
46331
  _scanEngine = null;
46329
46332
  _scanRuleSetVersion = 0;
46330
46333
  _telemetryReporter = null;
@@ -47736,6 +47739,14 @@ var init_channel = __esm({
47736
47739
  await this._persistState();
47737
47740
  }
47738
47741
  this.emit("a2a_channel_approved", channelData);
47742
+ if (this.config.onA2AChannelReady && convId) {
47743
+ this.config.onA2AChannelReady({
47744
+ channelId,
47745
+ peerHubAddress: peerHub,
47746
+ role,
47747
+ conversationId: convId
47748
+ });
47749
+ }
47739
47750
  }
47740
47751
  if (data.event === "a2a_channel_activated") {
47741
47752
  const actData = data.data || data;
@@ -47868,6 +47879,17 @@ var init_channel = __esm({
47868
47879
  }
47869
47880
  if (data.event === "a2a_message") {
47870
47881
  const msgData = data.data || data;
47882
+ const a2aMsgId = msgData.message_id;
47883
+ if (a2aMsgId && this._a2aSeenMessageIds.has(a2aMsgId)) {
47884
+ return;
47885
+ }
47886
+ if (a2aMsgId) {
47887
+ this._a2aSeenMessageIds.add(a2aMsgId);
47888
+ if (this._a2aSeenMessageIds.size > _SecureChannel.A2A_SEEN_MAX) {
47889
+ const first = this._a2aSeenMessageIds.values().next().value;
47890
+ if (first) this._a2aSeenMessageIds.delete(first);
47891
+ }
47892
+ }
47871
47893
  if (msgData.ciphertext && msgData.header_blob) {
47872
47894
  const channelId = msgData.channel_id || "";
47873
47895
  const channelEntry = this._persisted?.a2aChannels?.[channelId];