@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.
- package/README.md +10 -11
- package/dist/__tests__/crypto-helpers.test.d.ts +2 -0
- package/dist/__tests__/crypto-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/functional.test.d.ts +21 -0
- package/dist/__tests__/functional.test.d.ts.map +1 -0
- package/dist/__tests__/multi-session.test.d.ts +2 -0
- package/dist/__tests__/multi-session.test.d.ts.map +1 -0
- package/dist/__tests__/state.test.d.ts +2 -0
- package/dist/__tests__/state.test.d.ts.map +1 -0
- package/dist/__tests__/transport.test.d.ts +2 -0
- package/dist/__tests__/transport.test.d.ts.map +1 -0
- package/dist/_cp.d.ts +10 -0
- package/dist/_cp.d.ts.map +1 -0
- package/dist/account-config.d.ts +20 -0
- package/dist/account-config.d.ts.map +1 -0
- package/dist/channel.d.ts +393 -0
- package/dist/channel.d.ts.map +1 -0
- package/dist/channel.js +2257 -0
- package/dist/channel.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +344 -2
- package/dist/cli.js.map +4 -4
- package/dist/create-agent.d.ts +28 -0
- package/dist/create-agent.d.ts.map +1 -0
- package/dist/credential-store.d.ts +62 -0
- package/dist/credential-store.d.ts.map +1 -0
- package/dist/crypto-helpers.d.ts +2 -0
- package/dist/crypto-helpers.d.ts.map +1 -0
- package/dist/crypto-helpers.js +4 -0
- package/dist/crypto-helpers.js.map +1 -0
- package/dist/doctor.d.ts +41 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/fetch-interceptor.d.ts +32 -0
- package/dist/fetch-interceptor.d.ts.map +1 -0
- package/dist/gateway-send.d.ts +98 -0
- package/dist/gateway-send.d.ts.map +1 -0
- package/dist/http-handlers.d.ts +53 -0
- package/dist/http-handlers.d.ts.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +359 -11
- package/dist/index.js.map +4 -4
- package/dist/mcp-handlers.d.ts +26 -0
- package/dist/mcp-handlers.d.ts.map +1 -0
- package/dist/mcp-proxy-helpers.d.ts +9 -0
- package/dist/mcp-proxy-helpers.d.ts.map +1 -0
- package/dist/mcp-server.d.ts +90 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/openclaw-compat.d.ts +33 -0
- package/dist/openclaw-compat.d.ts.map +1 -0
- package/dist/openclaw-entry.d.ts +27 -0
- package/dist/openclaw-entry.d.ts.map +1 -0
- package/dist/openclaw-entry.js +45184 -195
- package/dist/openclaw-entry.js.map +4 -4
- package/dist/openclaw-plugin.d.ts +102 -0
- package/dist/openclaw-plugin.d.ts.map +1 -0
- package/dist/openclaw-plugin.js +222 -0
- package/dist/openclaw-plugin.js.map +1 -0
- package/dist/openclaw-types.d.ts +155 -0
- package/dist/openclaw-types.d.ts.map +1 -0
- package/dist/policy-enforcer.d.ts +78 -0
- package/dist/policy-enforcer.d.ts.map +1 -0
- package/dist/setup.d.ts +27 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +329 -0
- package/dist/setup.js.map +1 -0
- package/dist/skill-invoker.d.ts +30 -0
- package/dist/skill-invoker.d.ts.map +1 -0
- package/dist/skill-manifest.d.ts +30 -0
- package/dist/skill-manifest.d.ts.map +1 -0
- package/dist/skill-telemetry.d.ts +36 -0
- package/dist/skill-telemetry.d.ts.map +1 -0
- package/dist/skills-publish.d.ts +8 -0
- package/dist/skills-publish.d.ts.map +1 -0
- package/dist/state.d.ts +32 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +61 -0
- package/dist/state.js.map +1 -0
- package/dist/transport.d.ts +24 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +43 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +417 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/workspace-handlers.d.ts +62 -0
- package/dist/workspace-handlers.d.ts.map +1 -0
- package/openclaw.plugin.json +1 -1
- 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 @@
|
|
|
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();
|