@agentvault/agentvault 0.17.5 → 0.19.0

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.
Files changed (91) hide show
  1. package/README.md +10 -11
  2. package/dist/__tests__/crypto-helpers.test.d.ts +2 -0
  3. package/dist/__tests__/crypto-helpers.test.d.ts.map +1 -0
  4. package/dist/__tests__/functional.test.d.ts +21 -0
  5. package/dist/__tests__/functional.test.d.ts.map +1 -0
  6. package/dist/__tests__/multi-session.test.d.ts +2 -0
  7. package/dist/__tests__/multi-session.test.d.ts.map +1 -0
  8. package/dist/__tests__/state.test.d.ts +2 -0
  9. package/dist/__tests__/state.test.d.ts.map +1 -0
  10. package/dist/__tests__/transport.test.d.ts +2 -0
  11. package/dist/__tests__/transport.test.d.ts.map +1 -0
  12. package/dist/_cp.d.ts +10 -0
  13. package/dist/_cp.d.ts.map +1 -0
  14. package/dist/account-config.d.ts +20 -0
  15. package/dist/account-config.d.ts.map +1 -0
  16. package/dist/channel.d.ts +393 -0
  17. package/dist/channel.d.ts.map +1 -0
  18. package/dist/channel.js +2257 -0
  19. package/dist/channel.js.map +1 -0
  20. package/dist/cli.d.ts +2 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +344 -2
  23. package/dist/cli.js.map +4 -4
  24. package/dist/create-agent.d.ts +28 -0
  25. package/dist/create-agent.d.ts.map +1 -0
  26. package/dist/credential-store.d.ts +62 -0
  27. package/dist/credential-store.d.ts.map +1 -0
  28. package/dist/crypto-helpers.d.ts +2 -0
  29. package/dist/crypto-helpers.d.ts.map +1 -0
  30. package/dist/crypto-helpers.js +4 -0
  31. package/dist/crypto-helpers.js.map +1 -0
  32. package/dist/doctor.d.ts +41 -0
  33. package/dist/doctor.d.ts.map +1 -0
  34. package/dist/fetch-interceptor.d.ts +32 -0
  35. package/dist/fetch-interceptor.d.ts.map +1 -0
  36. package/dist/gateway-send.d.ts +98 -0
  37. package/dist/gateway-send.d.ts.map +1 -0
  38. package/dist/http-handlers.d.ts +53 -0
  39. package/dist/http-handlers.d.ts.map +1 -0
  40. package/dist/index.d.ts +27 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +359 -11
  43. package/dist/index.js.map +4 -4
  44. package/dist/mcp-handlers.d.ts +26 -0
  45. package/dist/mcp-handlers.d.ts.map +1 -0
  46. package/dist/mcp-proxy-helpers.d.ts +9 -0
  47. package/dist/mcp-proxy-helpers.d.ts.map +1 -0
  48. package/dist/mcp-server.d.ts +90 -0
  49. package/dist/mcp-server.d.ts.map +1 -0
  50. package/dist/openclaw-compat.d.ts +33 -0
  51. package/dist/openclaw-compat.d.ts.map +1 -0
  52. package/dist/openclaw-entry.d.ts +27 -0
  53. package/dist/openclaw-entry.d.ts.map +1 -0
  54. package/dist/openclaw-entry.js +45184 -195
  55. package/dist/openclaw-entry.js.map +4 -4
  56. package/dist/openclaw-plugin.d.ts +102 -0
  57. package/dist/openclaw-plugin.d.ts.map +1 -0
  58. package/dist/openclaw-plugin.js +222 -0
  59. package/dist/openclaw-plugin.js.map +1 -0
  60. package/dist/openclaw-types.d.ts +155 -0
  61. package/dist/openclaw-types.d.ts.map +1 -0
  62. package/dist/policy-enforcer.d.ts +78 -0
  63. package/dist/policy-enforcer.d.ts.map +1 -0
  64. package/dist/setup.d.ts +27 -0
  65. package/dist/setup.d.ts.map +1 -0
  66. package/dist/setup.js +329 -0
  67. package/dist/setup.js.map +1 -0
  68. package/dist/skill-invoker.d.ts +30 -0
  69. package/dist/skill-invoker.d.ts.map +1 -0
  70. package/dist/skill-manifest.d.ts +30 -0
  71. package/dist/skill-manifest.d.ts.map +1 -0
  72. package/dist/skill-telemetry.d.ts +36 -0
  73. package/dist/skill-telemetry.d.ts.map +1 -0
  74. package/dist/skills-publish.d.ts +8 -0
  75. package/dist/skills-publish.d.ts.map +1 -0
  76. package/dist/state.d.ts +32 -0
  77. package/dist/state.d.ts.map +1 -0
  78. package/dist/state.js +61 -0
  79. package/dist/state.js.map +1 -0
  80. package/dist/transport.d.ts +24 -0
  81. package/dist/transport.d.ts.map +1 -0
  82. package/dist/transport.js +43 -0
  83. package/dist/transport.js.map +1 -0
  84. package/dist/types.d.ts +417 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +2 -0
  87. package/dist/types.js.map +1 -0
  88. package/dist/workspace-handlers.d.ts +62 -0
  89. package/dist/workspace-handlers.d.ts.map +1 -0
  90. package/openclaw.plugin.json +1 -1
  91. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js CHANGED
@@ -46204,6 +46204,123 @@ var init_dist = __esm({
46204
46204
  }
46205
46205
  });
46206
46206
 
46207
+ // src/credential-store.ts
46208
+ var CredentialStore;
46209
+ var init_credential_store = __esm({
46210
+ "src/credential-store.ts"() {
46211
+ "use strict";
46212
+ CredentialStore = class _CredentialStore {
46213
+ /** Map<roomId, Map<credentialKey, RenterCredential>> */
46214
+ _store = /* @__PURE__ */ new Map();
46215
+ /** Seen nonces for replay prevention — bounded per room */
46216
+ _seenNonces = /* @__PURE__ */ new Map();
46217
+ static MAX_NONCES_PER_ROOM = 1e3;
46218
+ constructor() {
46219
+ const purge = () => this.purgeAll();
46220
+ process.on("exit", purge);
46221
+ process.on("SIGINT", () => {
46222
+ purge();
46223
+ process.exit(0);
46224
+ });
46225
+ process.on("SIGTERM", () => {
46226
+ purge();
46227
+ process.exit(0);
46228
+ });
46229
+ }
46230
+ /**
46231
+ * Check if a nonce has been seen (replay prevention).
46232
+ * Returns true if the nonce is new (not a replay), false if seen before.
46233
+ */
46234
+ checkNonce(roomId, nonce) {
46235
+ if (!nonce) return true;
46236
+ let nonces = this._seenNonces.get(roomId);
46237
+ if (!nonces) {
46238
+ nonces = /* @__PURE__ */ new Set();
46239
+ this._seenNonces.set(roomId, nonces);
46240
+ }
46241
+ if (nonces.has(nonce)) return false;
46242
+ nonces.add(nonce);
46243
+ if (nonces.size > _CredentialStore.MAX_NONCES_PER_ROOM) {
46244
+ const iter = nonces.values();
46245
+ for (let i2 = 0; i2 < 100; i2++) {
46246
+ const val = iter.next().value;
46247
+ if (val !== void 0) nonces.delete(val);
46248
+ }
46249
+ }
46250
+ return true;
46251
+ }
46252
+ /** Store a credential for a room. */
46253
+ grant(roomId, credential) {
46254
+ let room = this._store.get(roomId);
46255
+ if (!room) {
46256
+ room = /* @__PURE__ */ new Map();
46257
+ this._store.set(roomId, room);
46258
+ }
46259
+ room.set(credential.key, credential);
46260
+ }
46261
+ /** Revoke a specific credential. */
46262
+ revoke(roomId, key) {
46263
+ const room = this._store.get(roomId);
46264
+ if (!room) return false;
46265
+ return room.delete(key);
46266
+ }
46267
+ /** Revoke all credentials for a room. */
46268
+ revokeAll(roomId) {
46269
+ this._store.delete(roomId);
46270
+ }
46271
+ /** Get a credential value. */
46272
+ get(roomId, key) {
46273
+ return this._store.get(roomId)?.get(key);
46274
+ }
46275
+ /** Get all credentials for a room (values included — only for agent context injection). */
46276
+ getAll(roomId) {
46277
+ const room = this._store.get(roomId);
46278
+ if (!room) return [];
46279
+ return Array.from(room.values());
46280
+ }
46281
+ /** Get credential info without values (safe for logging). */
46282
+ getInfo(roomId) {
46283
+ const room = this._store.get(roomId);
46284
+ if (!room) return [];
46285
+ return Array.from(room.values()).map((c2) => ({
46286
+ key: c2.key,
46287
+ type: c2.type,
46288
+ scope: c2.scope,
46289
+ grantedAt: c2.grantedAt
46290
+ }));
46291
+ }
46292
+ /** Check if a specific credential exists. */
46293
+ has(roomId, key) {
46294
+ return this._store.get(roomId)?.has(key) ?? false;
46295
+ }
46296
+ /** Get credential count for a room. */
46297
+ count(roomId) {
46298
+ return this._store.get(roomId)?.size ?? 0;
46299
+ }
46300
+ /** Purge all credentials for a room (rental end). */
46301
+ purgeForRoom(roomId) {
46302
+ this._store.delete(roomId);
46303
+ this._seenNonces.delete(roomId);
46304
+ }
46305
+ /** Purge everything (process exit). */
46306
+ purgeAll() {
46307
+ this._store.clear();
46308
+ this._seenNonces.clear();
46309
+ }
46310
+ /** Get a map of credential key → value for context injection. */
46311
+ getCredentialMap(roomId) {
46312
+ const room = this._store.get(roomId);
46313
+ if (!room) return {};
46314
+ const result = {};
46315
+ for (const [key, cred] of room) {
46316
+ result[key] = cred.value;
46317
+ }
46318
+ return result;
46319
+ }
46320
+ };
46321
+ }
46322
+ });
46323
+
46207
46324
  // src/crypto-helpers.ts
46208
46325
  var init_crypto_helpers = __esm({
46209
46326
  async "src/crypto-helpers.ts"() {
@@ -46480,7 +46597,8 @@ __export(http_handlers_exports, {
46480
46597
  handleMcpConfigRequest: () => handleMcpConfigRequest,
46481
46598
  handleSendRequest: () => handleSendRequest,
46482
46599
  handleStatusRequest: () => handleStatusRequest,
46483
- handleTargetsRequest: () => handleTargetsRequest
46600
+ handleTargetsRequest: () => handleTargetsRequest,
46601
+ handleTrustRequest: () => handleTrustRequest
46484
46602
  });
46485
46603
  async function handleSendRequest(parsed, channel2) {
46486
46604
  const text = parsed.text;
@@ -46619,6 +46737,24 @@ function handleTargetsRequest(channel2) {
46619
46737
  }
46620
46738
  };
46621
46739
  }
46740
+ function handleTrustRequest(channel2) {
46741
+ const token2 = channel2.trustToken;
46742
+ if (!token2) {
46743
+ return {
46744
+ status: 503,
46745
+ body: { ok: false, error: "token_unavailable" }
46746
+ };
46747
+ }
46748
+ return {
46749
+ status: 200,
46750
+ body: {
46751
+ ok: true,
46752
+ tier: channel2.trustTier,
46753
+ composite: null,
46754
+ token_expires_at: channel2.trustTokenExpiresAt
46755
+ }
46756
+ };
46757
+ }
46622
46758
  function handleMcpConfigRequest(agentName, port, mcpSkillCount) {
46623
46759
  return {
46624
46760
  status: 200,
@@ -46873,12 +47009,13 @@ function migratePersistedState(raw) {
46873
47009
  messageHistory: []
46874
47010
  };
46875
47011
  }
46876
- var ROOM_AGENT_TYPES, POLL_INTERVAL_MS, RECONNECT_BASE_MS, RECONNECT_MAX_MS, PENDING_POLL_INTERVAL_MS, SecureChannel;
47012
+ var ROOM_AGENT_TYPES, CREDENTIAL_MESSAGE_TYPES, POLL_INTERVAL_MS, RECONNECT_BASE_MS, RECONNECT_MAX_MS, PENDING_POLL_INTERVAL_MS, SecureChannel;
46877
47013
  var init_channel = __esm({
46878
47014
  async "src/channel.ts"() {
46879
47015
  "use strict";
46880
47016
  await init_libsodium_wrappers();
46881
47017
  await init_dist();
47018
+ init_credential_store();
46882
47019
  await init_crypto_helpers();
46883
47020
  await init_state();
46884
47021
  init_transport2();
@@ -46889,6 +47026,11 @@ var init_channel = __esm({
46889
47026
  "decision_response",
46890
47027
  "artifact_share"
46891
47028
  ]);
47029
+ CREDENTIAL_MESSAGE_TYPES = /* @__PURE__ */ new Set([
47030
+ "credential_grant",
47031
+ "credential_revoke",
47032
+ "credential_request"
47033
+ ]);
46892
47034
  POLL_INTERVAL_MS = 6e3;
46893
47035
  RECONNECT_BASE_MS = 1e3;
46894
47036
  RECONNECT_MAX_MS = 3e4;
@@ -46925,17 +47067,26 @@ var init_channel = __esm({
46925
47067
  _heartbeatIntervalSeconds = 0;
46926
47068
  _wakeDetectorTimer = null;
46927
47069
  _lastWakeTick = Date.now();
47070
+ _trustToken = null;
47071
+ _trustTier = null;
47072
+ _trustTokenExpiresAt = null;
47073
+ _trustTokenInterval = null;
46928
47074
  _pendingPollTimer = null;
46929
47075
  _syncMessageIds = null;
46930
47076
  /** Sender Key chains — own chain per room for O(1) encryption */
46931
47077
  _senderKeyChains = /* @__PURE__ */ new Map();
46932
47078
  /** Sender Key peer state — peer chains per room for decryption */
46933
47079
  _senderKeyStates = /* @__PURE__ */ new Map();
47080
+ /** In-memory credential store for renter-provided credentials (never persisted). */
47081
+ _credentialStore = new CredentialStore();
46934
47082
  /** Queued A2A messages for responder channels not yet activated (no first initiator message received). */
46935
47083
  _a2aPendingQueue = {};
46936
47084
  /** Dedup buffer for A2A message IDs (prevents double-delivery via direct + Redis) */
46937
47085
  _a2aSeenMessageIds = /* @__PURE__ */ new Set();
46938
47086
  static A2A_SEEN_MAX = 500;
47087
+ /** Dedup buffer for regular message IDs (prevents double-decrypt via direct WS + Redis pub/sub) */
47088
+ _seenMessageIds = /* @__PURE__ */ new Set();
47089
+ static SEEN_MSG_MAX = 500;
46939
47090
  _scanEngine = null;
46940
47091
  _scanRuleSetVersion = 0;
46941
47092
  _telemetryReporter = null;
@@ -47865,9 +48016,56 @@ var init_channel = __esm({
47865
48016
  this.emit("error", new Error(`Heartbeat send failed: ${err}`));
47866
48017
  });
47867
48018
  }
48019
+ // --- Trust Gate token management ---
48020
+ getTrustHeaders() {
48021
+ if (!this._trustToken) return {};
48022
+ return { "AgentVault-Trust": this._trustToken };
48023
+ }
48024
+ get trustToken() {
48025
+ return this._trustToken;
48026
+ }
48027
+ get trustTier() {
48028
+ return this._trustTier;
48029
+ }
48030
+ get trustTokenExpiresAt() {
48031
+ return this._trustTokenExpiresAt;
48032
+ }
48033
+ async refreshTrustToken() {
48034
+ try {
48035
+ const res = await fetch(`${this.config.apiUrl}/api/v1/gate/token`, {
48036
+ method: "POST",
48037
+ headers: {
48038
+ Authorization: `Bearer ${this._deviceJwt}`,
48039
+ "Content-Type": "application/json"
48040
+ }
48041
+ });
48042
+ if (res.ok) {
48043
+ const data = await res.json();
48044
+ this._trustToken = data.token;
48045
+ this._trustTier = data.tier;
48046
+ this._trustTokenExpiresAt = data.expires_at;
48047
+ }
48048
+ } catch (err) {
48049
+ console.warn("[AgentVault] Trust token refresh failed:", err);
48050
+ }
48051
+ }
48052
+ startTrustTokenRefresh() {
48053
+ this.refreshTrustToken();
48054
+ this._trustTokenInterval = setInterval(
48055
+ () => this.refreshTrustToken(),
48056
+ 12 * 60 * 1e3
48057
+ );
48058
+ }
48059
+ stopTrustTokenRefresh() {
48060
+ if (this._trustTokenInterval) {
48061
+ clearInterval(this._trustTokenInterval);
48062
+ this._trustTokenInterval = null;
48063
+ }
48064
+ }
47868
48065
  async stop() {
47869
48066
  this._stopped = true;
47870
48067
  await this.stopHeartbeat();
48068
+ this.stopTrustTokenRefresh();
47871
48069
  this._flushAcks();
47872
48070
  this._stopPing();
47873
48071
  this._stopWakeDetector();
@@ -47983,6 +48181,10 @@ var init_channel = __esm({
47983
48181
  res.end(JSON.stringify({ ok: false, error: "Internal MCP error" }));
47984
48182
  }
47985
48183
  });
48184
+ } else if (req.method === "GET" && req.url === "/trust") {
48185
+ const result = handlers.handleTrustRequest(this);
48186
+ res.writeHead(result.status, { "Content-Type": "application/json" });
48187
+ res.end(JSON.stringify(result.body));
47986
48188
  } else if (req.method === "GET" && req.url === "/mcp-config") {
47987
48189
  const agentName = this.config.agentName ?? "agent";
47988
48190
  const mcpSkillCount = this._mcpServer?.skillCount ?? 0;
@@ -48489,6 +48691,7 @@ var init_channel = __esm({
48489
48691
  });
48490
48692
  this._telemetryReporter.startAutoFlush(3e4);
48491
48693
  }
48694
+ this.startTrustTokenRefresh();
48492
48695
  this.emit("ready");
48493
48696
  } catch (openErr) {
48494
48697
  console.error("[SecureChannel] Error in WS open handler:", openErr);
@@ -48521,6 +48724,17 @@ var init_channel = __esm({
48521
48724
  return;
48522
48725
  }
48523
48726
  if (data.event === "message") {
48727
+ const inMsgId = data.data?.message_id;
48728
+ if (inMsgId && this._seenMessageIds.has(inMsgId)) {
48729
+ return;
48730
+ }
48731
+ if (inMsgId) {
48732
+ this._seenMessageIds.add(inMsgId);
48733
+ if (this._seenMessageIds.size > _SecureChannel.SEEN_MSG_MAX) {
48734
+ const first = this._seenMessageIds.values().next().value;
48735
+ if (first) this._seenMessageIds.delete(first);
48736
+ }
48737
+ }
48524
48738
  try {
48525
48739
  await this._handleIncomingMessage(data.data);
48526
48740
  } catch (msgErr) {
@@ -48551,6 +48765,17 @@ var init_channel = __esm({
48551
48765
  }).catch((err) => this.emit("error", err));
48552
48766
  }
48553
48767
  if (data.event === "room_message") {
48768
+ const rmMsgId = data.data?.message_id;
48769
+ if (rmMsgId && this._seenMessageIds.has(rmMsgId)) {
48770
+ return;
48771
+ }
48772
+ if (rmMsgId) {
48773
+ this._seenMessageIds.add(rmMsgId);
48774
+ if (this._seenMessageIds.size > _SecureChannel.SEEN_MSG_MAX) {
48775
+ const first = this._seenMessageIds.values().next().value;
48776
+ if (first) this._seenMessageIds.delete(first);
48777
+ }
48778
+ }
48554
48779
  try {
48555
48780
  await this._handleRoomMessage(data.data);
48556
48781
  } catch (rmErr) {
@@ -49085,6 +49310,10 @@ var init_channel = __esm({
49085
49310
  if (!session.activated) {
49086
49311
  session.activated = true;
49087
49312
  console.log(`[SecureChannel] Session ${convId.slice(0, 8)}... activated by first owner message`);
49313
+ if (this._persisted?.sessions[convId]) {
49314
+ this._persisted.sessions[convId].activated = true;
49315
+ }
49316
+ await this._persistState();
49088
49317
  }
49089
49318
  let messageText;
49090
49319
  let messageType;
@@ -49699,6 +49928,14 @@ ${messageText}`;
49699
49928
  `[SecureChannel] Room ratchet re-initialized for conv ${convId.slice(0, 8)}...`
49700
49929
  );
49701
49930
  plaintext = session.ratchet.decrypt(encrypted);
49931
+ session.activated = true;
49932
+ if (this._persisted.sessions[convId]) {
49933
+ this._persisted.sessions[convId].activated = true;
49934
+ }
49935
+ await this._persistState();
49936
+ console.log(
49937
+ `[SecureChannel] Room session ${convId.slice(0, 8)}... re-activated after ratchet re-init`
49938
+ );
49702
49939
  } catch (reinitErr) {
49703
49940
  console.error(
49704
49941
  `[SecureChannel] Room ratchet re-init failed for conv ${convId.slice(0, 8)}...:`,
@@ -49717,6 +49954,14 @@ ${messageText}`;
49717
49954
  messageType = "message";
49718
49955
  messageText = plaintext;
49719
49956
  }
49957
+ if (CREDENTIAL_MESSAGE_TYPES.has(messageType)) {
49958
+ this._handleCredentialMessage(msgData.room_id, messageType, messageText, msgData.message_id);
49959
+ if (msgData.created_at && this._persisted) {
49960
+ this._persisted.lastMessageTimestamp = msgData.created_at;
49961
+ }
49962
+ await this._persistState();
49963
+ return;
49964
+ }
49720
49965
  if (!ROOM_AGENT_TYPES.has(messageType)) {
49721
49966
  return;
49722
49967
  }
@@ -49753,6 +49998,94 @@ ${messageText}`;
49753
49998
  console.error("[SecureChannel] onMessage callback error:", err);
49754
49999
  });
49755
50000
  }
50001
+ /**
50002
+ * Handle credential protocol messages (grant, revoke, request).
50003
+ * These are intercepted before reaching the agent's onMessage callback.
50004
+ */
50005
+ _handleCredentialMessage(roomId, messageType, plaintext, messageId) {
50006
+ try {
50007
+ const payload = JSON.parse(plaintext);
50008
+ if (messageType === "credential_grant") {
50009
+ const grant = payload;
50010
+ if (grant.nonce && !this._credentialStore.checkNonce(roomId, grant.nonce)) {
50011
+ console.warn(`[SecureChannel] Credential grant replay detected for room ${roomId.slice(0, 8)}..., ignoring`);
50012
+ return;
50013
+ }
50014
+ const keys = [];
50015
+ for (const cred of grant.credentials || []) {
50016
+ this._credentialStore.grant(roomId, {
50017
+ key: cred.key,
50018
+ value: cred.value,
50019
+ type: cred.type,
50020
+ scope: cred.scope,
50021
+ grantedAt: grant.timestamp || (/* @__PURE__ */ new Date()).toISOString(),
50022
+ agreementId: grant.agreement_id,
50023
+ roomId
50024
+ });
50025
+ keys.push(cred.key);
50026
+ }
50027
+ console.log(
50028
+ `[SecureChannel] Credentials granted for room ${roomId.slice(0, 8)}...: ${keys.join(", ")} (${keys.length} keys)`
50029
+ );
50030
+ this._sendCredentialAck(roomId, grant.agreement_id, keys, "stored");
50031
+ this.emit("credentials_granted", { roomId, keys, agreementId: grant.agreement_id });
50032
+ } else if (messageType === "credential_revoke") {
50033
+ const revoke = payload;
50034
+ const revoked = [];
50035
+ for (const key of revoke.credential_keys || []) {
50036
+ if (this._credentialStore.revoke(roomId, key)) {
50037
+ revoked.push(key);
50038
+ }
50039
+ }
50040
+ console.log(
50041
+ `[SecureChannel] Credentials revoked for room ${roomId.slice(0, 8)}...: ${revoked.join(", ")} (reason: ${revoke.reason || "none"})`
50042
+ );
50043
+ this._sendCredentialAck(roomId, revoke.agreement_id, revoked, "revoked");
50044
+ this.emit("credentials_revoked", { roomId, keys: revoked, agreementId: revoke.agreement_id });
50045
+ }
50046
+ } catch (err) {
50047
+ console.error("[SecureChannel] Error handling credential message:", err);
50048
+ }
50049
+ if (messageId) {
50050
+ this._sendAck(messageId);
50051
+ }
50052
+ }
50053
+ /**
50054
+ * Send a credential_ack back to a room.
50055
+ */
50056
+ _sendCredentialAck(roomId, agreementId, keys, ackStatus) {
50057
+ const ack = JSON.stringify({
50058
+ type: "credential_ack",
50059
+ agreement_id: agreementId,
50060
+ acknowledged_keys: keys,
50061
+ status: ackStatus,
50062
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
50063
+ });
50064
+ this.sendToRoom(roomId, ack, { messageType: "credential_ack" }).catch((err) => {
50065
+ console.warn("[SecureChannel] Failed to send credential ACK:", err);
50066
+ });
50067
+ }
50068
+ // --- Public credential accessors ---
50069
+ /** Get a specific renter credential for a room. */
50070
+ getCredential(roomId, key) {
50071
+ return this._credentialStore.get(roomId, key);
50072
+ }
50073
+ /** Get all renter credentials for a room (includes values — for agent context). */
50074
+ getCredentials(roomId) {
50075
+ return this._credentialStore.getAll(roomId);
50076
+ }
50077
+ /** Get credential key→value map for a room (for context injection). */
50078
+ getCredentialMap(roomId) {
50079
+ return this._credentialStore.getCredentialMap(roomId);
50080
+ }
50081
+ /** Check if a specific credential exists for a room. */
50082
+ hasCredential(roomId, key) {
50083
+ return this._credentialStore.has(roomId, key);
50084
+ }
50085
+ /** Purge all credentials for a room (call on rental end). */
50086
+ purgeRoomCredentials(roomId) {
50087
+ this._credentialStore.purgeForRoom(roomId);
50088
+ }
49756
50089
  /**
49757
50090
  * Find the pairwise conversation ID for a given sender in a room.
49758
50091
  */
@@ -49915,6 +50248,14 @@ ${messageText}`;
49915
50248
  messageType = "message";
49916
50249
  messageText = plaintext;
49917
50250
  }
50251
+ if (CREDENTIAL_MESSAGE_TYPES.has(messageType)) {
50252
+ this._handleCredentialMessage(msgData.room_id, messageType, messageText, msgData.message_id);
50253
+ if (msgData.created_at && this._persisted) {
50254
+ this._persisted.lastMessageTimestamp = msgData.created_at;
50255
+ }
50256
+ await this._persistState();
50257
+ return;
50258
+ }
49918
50259
  if (!ROOM_AGENT_TYPES.has(messageType)) {
49919
50260
  return;
49920
50261
  }
@@ -71149,6 +71490,7 @@ var init_index = __esm({
71149
71490
  "use strict";
71150
71491
  await init_channel();
71151
71492
  init_types();
71493
+ init_credential_store();
71152
71494
  init_account_config();
71153
71495
  await init_openclaw_plugin();
71154
71496
  init_gateway_send();