@agentvault/agentvault 0.13.6 → 0.13.7
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/account-config.d.ts +0 -1
- package/dist/account-config.d.ts.map +1 -1
- package/dist/channel.d.ts +9 -0
- package/dist/channel.d.ts.map +1 -1
- package/dist/cli.js +214 -24
- package/dist/cli.js.map +2 -2
- package/dist/fetch-interceptor.d.ts +32 -0
- package/dist/fetch-interceptor.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +199 -19
- package/dist/index.js.map +2 -2
- package/dist/openclaw-entry.d.ts.map +1 -1
- package/dist/openclaw-entry.js +228 -37
- package/dist/openclaw-entry.js.map +3 -3
- package/dist/setup.d.ts +1 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/state.d.ts +14 -0
- package/dist/state.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/account-config.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ export interface ResolvedAccount {
|
|
|
14
14
|
agentName: string;
|
|
15
15
|
httpPort: number;
|
|
16
16
|
configured: boolean;
|
|
17
|
-
inviteToken: string;
|
|
18
17
|
}
|
|
19
18
|
export declare function listAccountIds(cfg: any): string[];
|
|
20
19
|
export declare function resolveAccount(cfg: any, accountId?: string): ResolvedAccount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-config.d.ts","sourceRoot":"","sources":["../src/account-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"account-config.d.ts","sourceRoot":"","sources":["../src/account-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAOjD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CA0C5E"}
|
package/dist/channel.d.ts
CHANGED
|
@@ -105,6 +105,8 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
105
105
|
*/
|
|
106
106
|
sendToRoom(roomId: string, plaintext: string, opts?: {
|
|
107
107
|
messageType?: string;
|
|
108
|
+
priority?: string;
|
|
109
|
+
metadata?: Record<string, unknown>;
|
|
108
110
|
}): Promise<void>;
|
|
109
111
|
/**
|
|
110
112
|
* Leave a room: remove sessions and persisted room state.
|
|
@@ -129,6 +131,13 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
129
131
|
decisionId?: string;
|
|
130
132
|
detail?: string;
|
|
131
133
|
}): Promise<void>;
|
|
134
|
+
sendActionConfirmationToRoom(roomId: string, confirmation: {
|
|
135
|
+
action: string;
|
|
136
|
+
status: "completed" | "failed" | "partial";
|
|
137
|
+
decisionId?: string;
|
|
138
|
+
detail?: string;
|
|
139
|
+
estimated_cost?: number;
|
|
140
|
+
}): Promise<void>;
|
|
132
141
|
private _sendHeartbeat;
|
|
133
142
|
stop(): Promise<void>;
|
|
134
143
|
startHttpServer(port: number): void;
|
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;AAQ3C,OAAO,EAWL,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EAMZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,QAAQ,EAER,UAAU,EAEX,MAAM,YAAY,CAAC;AAoDpB,qBAAa,aAAc,SAAQ,YAAY;IA8CjC,OAAO,CAAC,MAAM;IA7C1B,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,CAA+C;IACtE,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,yBAAyB,CAAa;IAC9C,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,eAAe,CAA4B;IAEnD,0GAA0G;IAC1G,OAAO,CAAC,gBAAgB,CAAiF;IACzG,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,kBAAkB,CAAkC;IAE5D,oFAAoF;IACpF,OAAO,CAAC,oBAAoB,CAAqB;IAIjD,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;IAED,kFAAkF;IAClF,IAAI,SAAS,IAAI,iBAAiB,GAAG,IAAI,CAExC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -45540,7 +45540,7 @@ var init_crypto_helpers = __esm({
|
|
|
45540
45540
|
});
|
|
45541
45541
|
|
|
45542
45542
|
// src/state.ts
|
|
45543
|
-
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
45543
|
+
import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
45544
45544
|
import { join } from "node:path";
|
|
45545
45545
|
async function saveState(dataDir2, state) {
|
|
45546
45546
|
await mkdir(dataDir2, { recursive: true });
|
|
@@ -45570,6 +45570,44 @@ async function loadState(dataDir2) {
|
|
|
45570
45570
|
return null;
|
|
45571
45571
|
}
|
|
45572
45572
|
}
|
|
45573
|
+
async function isStateValid(dataDir2) {
|
|
45574
|
+
try {
|
|
45575
|
+
const filePath = join(dataDir2, STATE_FILE);
|
|
45576
|
+
const raw = await readFile(filePath, "utf-8");
|
|
45577
|
+
const parsed = JSON.parse(raw);
|
|
45578
|
+
return !!(parsed && parsed.deviceId && parsed.deviceJwt && parsed.sessions && Object.keys(parsed.sessions).length > 0);
|
|
45579
|
+
} catch {
|
|
45580
|
+
return false;
|
|
45581
|
+
}
|
|
45582
|
+
}
|
|
45583
|
+
async function backupState(dataDir2) {
|
|
45584
|
+
const src = join(dataDir2, STATE_FILE);
|
|
45585
|
+
const bak = join(dataDir2, `${STATE_FILE}.bak`);
|
|
45586
|
+
const tmp = join(dataDir2, `${STATE_FILE}.bak.tmp`);
|
|
45587
|
+
try {
|
|
45588
|
+
const data = await readFile(src, "utf-8");
|
|
45589
|
+
await writeFile(tmp, data, "utf-8");
|
|
45590
|
+
await rename(tmp, bak);
|
|
45591
|
+
} catch {
|
|
45592
|
+
}
|
|
45593
|
+
}
|
|
45594
|
+
async function restoreState(dataDir2) {
|
|
45595
|
+
const primaryValid = await isStateValid(dataDir2);
|
|
45596
|
+
if (primaryValid) return false;
|
|
45597
|
+
const bak = join(dataDir2, `${STATE_FILE}.bak`);
|
|
45598
|
+
try {
|
|
45599
|
+
const data = await readFile(bak, "utf-8");
|
|
45600
|
+
const parsed = JSON.parse(data);
|
|
45601
|
+
if (!parsed || !parsed.deviceId || !parsed.deviceJwt || !parsed.sessions || Object.keys(parsed.sessions).length === 0) {
|
|
45602
|
+
return false;
|
|
45603
|
+
}
|
|
45604
|
+
await mkdir(dataDir2, { recursive: true });
|
|
45605
|
+
await writeFile(join(dataDir2, STATE_FILE), data, "utf-8");
|
|
45606
|
+
return true;
|
|
45607
|
+
} catch {
|
|
45608
|
+
return false;
|
|
45609
|
+
}
|
|
45610
|
+
}
|
|
45573
45611
|
async function clearState(dataDir2) {
|
|
45574
45612
|
for (const filename of [STATE_FILE, LEGACY_STATE_FILE]) {
|
|
45575
45613
|
try {
|
|
@@ -45753,6 +45791,7 @@ var init_channel = __esm({
|
|
|
45753
45791
|
await libsodium_wrappers_default.ready;
|
|
45754
45792
|
const raw = await loadState(this.config.dataDir);
|
|
45755
45793
|
if (raw) {
|
|
45794
|
+
await backupState(this.config.dataDir);
|
|
45756
45795
|
this._persisted = migratePersistedState(raw);
|
|
45757
45796
|
if (!this._persisted.messageHistory) {
|
|
45758
45797
|
this._persisted.messageHistory = [];
|
|
@@ -45776,6 +45815,30 @@ var init_channel = __esm({
|
|
|
45776
45815
|
this._connect();
|
|
45777
45816
|
return;
|
|
45778
45817
|
}
|
|
45818
|
+
const restored = await restoreState(this.config.dataDir);
|
|
45819
|
+
if (restored) {
|
|
45820
|
+
console.log("[SecureChannel] Restored state from backup");
|
|
45821
|
+
const restoredRaw = await loadState(this.config.dataDir);
|
|
45822
|
+
if (restoredRaw) {
|
|
45823
|
+
this._persisted = migratePersistedState(restoredRaw);
|
|
45824
|
+
if (!this._persisted.messageHistory) this._persisted.messageHistory = [];
|
|
45825
|
+
this._deviceId = this._persisted.deviceId;
|
|
45826
|
+
this._deviceJwt = this._persisted.deviceJwt;
|
|
45827
|
+
this._primaryConversationId = this._persisted.primaryConversationId;
|
|
45828
|
+
this._fingerprint = this._persisted.fingerprint;
|
|
45829
|
+
for (const [convId, sd] of Object.entries(this._persisted.sessions)) {
|
|
45830
|
+
if (sd.ratchetState) {
|
|
45831
|
+
this._sessions.set(convId, {
|
|
45832
|
+
ownerDeviceId: sd.ownerDeviceId,
|
|
45833
|
+
ratchet: DoubleRatchet.deserialize(sd.ratchetState),
|
|
45834
|
+
activated: sd.activated ?? false
|
|
45835
|
+
});
|
|
45836
|
+
}
|
|
45837
|
+
}
|
|
45838
|
+
this._connect();
|
|
45839
|
+
return;
|
|
45840
|
+
}
|
|
45841
|
+
}
|
|
45779
45842
|
await this._enroll();
|
|
45780
45843
|
}
|
|
45781
45844
|
/**
|
|
@@ -46122,7 +46185,9 @@ var init_channel = __esm({
|
|
|
46122
46185
|
data: {
|
|
46123
46186
|
room_id: roomId,
|
|
46124
46187
|
recipients,
|
|
46125
|
-
message_type: messageType
|
|
46188
|
+
message_type: messageType,
|
|
46189
|
+
priority: opts?.priority ?? "normal",
|
|
46190
|
+
metadata: opts?.metadata
|
|
46126
46191
|
}
|
|
46127
46192
|
})
|
|
46128
46193
|
);
|
|
@@ -46136,7 +46201,12 @@ var init_channel = __esm({
|
|
|
46136
46201
|
"Content-Type": "application/json",
|
|
46137
46202
|
Authorization: `Bearer ${this._deviceJwt}`
|
|
46138
46203
|
},
|
|
46139
|
-
body: JSON.stringify({
|
|
46204
|
+
body: JSON.stringify({
|
|
46205
|
+
recipients,
|
|
46206
|
+
message_type: messageType,
|
|
46207
|
+
priority: opts?.priority ?? "normal",
|
|
46208
|
+
metadata: opts?.metadata
|
|
46209
|
+
})
|
|
46140
46210
|
}
|
|
46141
46211
|
);
|
|
46142
46212
|
if (!res.ok) {
|
|
@@ -46281,6 +46351,27 @@ var init_channel = __esm({
|
|
|
46281
46351
|
}
|
|
46282
46352
|
);
|
|
46283
46353
|
}
|
|
46354
|
+
async sendActionConfirmationToRoom(roomId, confirmation) {
|
|
46355
|
+
const envelope = {
|
|
46356
|
+
type: "action_confirmation",
|
|
46357
|
+
action: confirmation.action,
|
|
46358
|
+
status: confirmation.status
|
|
46359
|
+
};
|
|
46360
|
+
if (confirmation.decisionId !== void 0) envelope.decision_id = confirmation.decisionId;
|
|
46361
|
+
if (confirmation.detail !== void 0) envelope.detail = confirmation.detail;
|
|
46362
|
+
const metadata = {
|
|
46363
|
+
action: confirmation.action,
|
|
46364
|
+
status: confirmation.status
|
|
46365
|
+
};
|
|
46366
|
+
if (confirmation.estimated_cost !== void 0) {
|
|
46367
|
+
metadata.estimated_cost = confirmation.estimated_cost;
|
|
46368
|
+
}
|
|
46369
|
+
await this.sendToRoom(roomId, JSON.stringify(envelope), {
|
|
46370
|
+
messageType: "action_confirmation",
|
|
46371
|
+
priority: "high",
|
|
46372
|
+
metadata
|
|
46373
|
+
});
|
|
46374
|
+
}
|
|
46284
46375
|
_sendHeartbeat() {
|
|
46285
46376
|
if (this._state !== "ready" || !this._heartbeatCallback) return;
|
|
46286
46377
|
const status = this._heartbeatCallback();
|
|
@@ -46355,10 +46446,52 @@ var init_channel = __esm({
|
|
|
46355
46446
|
res.end(JSON.stringify({ ok: false, error: "Missing 'text' field" }));
|
|
46356
46447
|
return;
|
|
46357
46448
|
}
|
|
46358
|
-
if (parsed.
|
|
46449
|
+
if (parsed.room_id && typeof parsed.room_id === "string") {
|
|
46450
|
+
await this.sendToRoom(parsed.room_id, text, {
|
|
46451
|
+
messageType: parsed.message_type,
|
|
46452
|
+
priority: parsed.priority,
|
|
46453
|
+
metadata: parsed.metadata
|
|
46454
|
+
});
|
|
46455
|
+
} else if (parsed.file_path && typeof parsed.file_path === "string") {
|
|
46359
46456
|
await this.sendWithAttachment(text, parsed.file_path, { topicId: parsed.topicId });
|
|
46360
46457
|
} else {
|
|
46361
|
-
await this.send(text, {
|
|
46458
|
+
await this.send(text, {
|
|
46459
|
+
topicId: parsed.topicId,
|
|
46460
|
+
messageType: parsed.message_type,
|
|
46461
|
+
metadata: parsed.metadata
|
|
46462
|
+
});
|
|
46463
|
+
}
|
|
46464
|
+
res.writeHead(200, { "Content-Type": "application/json" });
|
|
46465
|
+
res.end(JSON.stringify({ ok: true }));
|
|
46466
|
+
} catch (err) {
|
|
46467
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
46468
|
+
res.end(JSON.stringify({ ok: false, error: String(err) }));
|
|
46469
|
+
}
|
|
46470
|
+
});
|
|
46471
|
+
} else if (req.method === "POST" && req.url === "/action") {
|
|
46472
|
+
let body = "";
|
|
46473
|
+
req.on("data", (chunk) => {
|
|
46474
|
+
body += chunk.toString();
|
|
46475
|
+
});
|
|
46476
|
+
req.on("end", async () => {
|
|
46477
|
+
try {
|
|
46478
|
+
const parsed = JSON.parse(body);
|
|
46479
|
+
if (!parsed.action || typeof parsed.action !== "string") {
|
|
46480
|
+
res.writeHead(400, { "Content-Type": "application/json" });
|
|
46481
|
+
res.end(JSON.stringify({ ok: false, error: "Missing 'action' field" }));
|
|
46482
|
+
return;
|
|
46483
|
+
}
|
|
46484
|
+
const confirmation = {
|
|
46485
|
+
action: parsed.action,
|
|
46486
|
+
status: parsed.status ?? "completed",
|
|
46487
|
+
decisionId: parsed.decision_id,
|
|
46488
|
+
detail: parsed.detail,
|
|
46489
|
+
estimated_cost: parsed.estimated_cost
|
|
46490
|
+
};
|
|
46491
|
+
if (parsed.room_id && typeof parsed.room_id === "string") {
|
|
46492
|
+
await this.sendActionConfirmationToRoom(parsed.room_id, confirmation);
|
|
46493
|
+
} else {
|
|
46494
|
+
await this.sendActionConfirmation(confirmation);
|
|
46362
46495
|
}
|
|
46363
46496
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
46364
46497
|
res.end(JSON.stringify({ ok: true }));
|
|
@@ -46377,7 +46510,7 @@ var init_channel = __esm({
|
|
|
46377
46510
|
}));
|
|
46378
46511
|
} else {
|
|
46379
46512
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
46380
|
-
res.end(JSON.stringify({ ok: false, error: "Not found. Use POST /send or GET /status" }));
|
|
46513
|
+
res.end(JSON.stringify({ ok: false, error: "Not found. Use POST /send, POST /action, or GET /status" }));
|
|
46381
46514
|
}
|
|
46382
46515
|
});
|
|
46383
46516
|
this._httpServer.listen(port, "127.0.0.1", () => {
|
|
@@ -47171,7 +47304,15 @@ var init_channel = __esm({
|
|
|
47171
47304
|
nonce: hexToBytes(msgData.nonce)
|
|
47172
47305
|
};
|
|
47173
47306
|
const ratchet = DoubleRatchet.deserialize(channelEntry.session.ratchetState);
|
|
47174
|
-
const
|
|
47307
|
+
const ratchetSnapshot = channelEntry.session.ratchetState;
|
|
47308
|
+
let a2aPlaintext;
|
|
47309
|
+
try {
|
|
47310
|
+
a2aPlaintext = ratchet.decrypt(encryptedMessage);
|
|
47311
|
+
} catch (decryptErr) {
|
|
47312
|
+
console.error(`[SecureChannel] A2A decrypt failed \u2014 restoring ratchet state:`, decryptErr);
|
|
47313
|
+
channelEntry.session.ratchetState = ratchetSnapshot;
|
|
47314
|
+
return;
|
|
47315
|
+
}
|
|
47175
47316
|
channelEntry.session.ratchetState = ratchet.serialize();
|
|
47176
47317
|
if (channelEntry.role === "responder" && !channelEntry.session.activated) {
|
|
47177
47318
|
channelEntry.session.activated = true;
|
|
@@ -47194,7 +47335,7 @@ var init_channel = __esm({
|
|
|
47194
47335
|
}
|
|
47195
47336
|
await this._persistState();
|
|
47196
47337
|
const a2aMsg = {
|
|
47197
|
-
text:
|
|
47338
|
+
text: a2aPlaintext,
|
|
47198
47339
|
fromHubAddress: msgData.from_hub_address || msgData.hub_address || "",
|
|
47199
47340
|
channelId,
|
|
47200
47341
|
conversationId: msgData.conversation_id || "",
|
|
@@ -47265,7 +47406,19 @@ var init_channel = __esm({
|
|
|
47265
47406
|
header_blob: msgData.header_blob,
|
|
47266
47407
|
ciphertext: msgData.ciphertext
|
|
47267
47408
|
});
|
|
47268
|
-
const
|
|
47409
|
+
const ratchetSnapshot = session.ratchet.serialize();
|
|
47410
|
+
let plaintext;
|
|
47411
|
+
try {
|
|
47412
|
+
plaintext = session.ratchet.decrypt(encrypted);
|
|
47413
|
+
} catch (decryptErr) {
|
|
47414
|
+
console.error(`[SecureChannel] Decrypt failed for conv ${convId.slice(0, 8)}... \u2014 restoring ratchet:`, decryptErr);
|
|
47415
|
+
try {
|
|
47416
|
+
session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
|
|
47417
|
+
} catch (restoreErr) {
|
|
47418
|
+
console.error("[SecureChannel] Ratchet restore failed:", restoreErr);
|
|
47419
|
+
}
|
|
47420
|
+
return;
|
|
47421
|
+
}
|
|
47269
47422
|
this._sendAck(msgData.message_id);
|
|
47270
47423
|
if (!session.activated) {
|
|
47271
47424
|
session.activated = true;
|
|
@@ -47653,9 +47806,14 @@ ${messageText}`;
|
|
|
47653
47806
|
ciphertext: msgData.ciphertext
|
|
47654
47807
|
});
|
|
47655
47808
|
let plaintext;
|
|
47809
|
+
const ratchetSnapshot = session.ratchet.serialize();
|
|
47656
47810
|
try {
|
|
47657
47811
|
plaintext = session.ratchet.decrypt(encrypted);
|
|
47658
47812
|
} catch (decryptErr) {
|
|
47813
|
+
try {
|
|
47814
|
+
session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
|
|
47815
|
+
} catch {
|
|
47816
|
+
}
|
|
47659
47817
|
console.warn(
|
|
47660
47818
|
`[SecureChannel] Room decrypt failed for conv ${convId.slice(0, 8)}...: ${String(decryptErr)}, re-initializing ratchet`
|
|
47661
47819
|
);
|
|
@@ -47801,7 +47959,20 @@ ${messageText}`;
|
|
|
47801
47959
|
header_blob: msg.header_blob,
|
|
47802
47960
|
ciphertext: msg.ciphertext
|
|
47803
47961
|
});
|
|
47804
|
-
const
|
|
47962
|
+
const ratchetSnapshot = session.ratchet.serialize();
|
|
47963
|
+
let plaintext;
|
|
47964
|
+
try {
|
|
47965
|
+
plaintext = session.ratchet.decrypt(encrypted);
|
|
47966
|
+
} catch (decryptErr) {
|
|
47967
|
+
console.error(`[SecureChannel] Sync decrypt failed for ${msg.conversation_id.slice(0, 8)}... \u2014 restoring ratchet:`, decryptErr);
|
|
47968
|
+
try {
|
|
47969
|
+
session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
|
|
47970
|
+
} catch {
|
|
47971
|
+
}
|
|
47972
|
+
this._persisted.lastMessageTimestamp = msg.created_at;
|
|
47973
|
+
since = msg.created_at;
|
|
47974
|
+
continue;
|
|
47975
|
+
}
|
|
47805
47976
|
this._sendAck(msg.id);
|
|
47806
47977
|
if (!session.activated) {
|
|
47807
47978
|
session.activated = true;
|
|
@@ -47836,7 +48007,7 @@ ${messageText}`;
|
|
|
47836
48007
|
totalProcessed++;
|
|
47837
48008
|
} catch (err) {
|
|
47838
48009
|
console.warn(
|
|
47839
|
-
`[SecureChannel] Sync
|
|
48010
|
+
`[SecureChannel] Sync failed for msg ${msg.id.slice(0, 8)}... in conv ${msg.conversation_id.slice(0, 8)}...: ${String(err)}`
|
|
47840
48011
|
);
|
|
47841
48012
|
this._persisted.lastMessageTimestamp = msg.created_at;
|
|
47842
48013
|
since = msg.created_at;
|
|
@@ -48032,7 +48203,18 @@ ${messageText}`;
|
|
|
48032
48203
|
header_blob: msg.header_blob,
|
|
48033
48204
|
ciphertext: msg.ciphertext
|
|
48034
48205
|
});
|
|
48035
|
-
const
|
|
48206
|
+
const ratchetSnapshot = session.ratchet.serialize();
|
|
48207
|
+
let plaintext;
|
|
48208
|
+
try {
|
|
48209
|
+
plaintext = session.ratchet.decrypt(encrypted);
|
|
48210
|
+
} catch (decryptErr) {
|
|
48211
|
+
console.error(`[SecureChannel] Room sync decrypt failed for ${msg.conversation_id.slice(0, 8)}... \u2014 restoring ratchet:`, decryptErr);
|
|
48212
|
+
try {
|
|
48213
|
+
session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
|
|
48214
|
+
} catch {
|
|
48215
|
+
}
|
|
48216
|
+
continue;
|
|
48217
|
+
}
|
|
48036
48218
|
if (!session.activated) {
|
|
48037
48219
|
session.activated = true;
|
|
48038
48220
|
}
|
|
@@ -48112,6 +48294,7 @@ ${messageText}`;
|
|
|
48112
48294
|
};
|
|
48113
48295
|
}
|
|
48114
48296
|
await saveState(this.config.dataDir, this._persisted);
|
|
48297
|
+
await backupState(this.config.dataDir);
|
|
48115
48298
|
}
|
|
48116
48299
|
};
|
|
48117
48300
|
}
|
|
@@ -48204,7 +48387,7 @@ var init_index = __esm({
|
|
|
48204
48387
|
init_account_config();
|
|
48205
48388
|
await init_openclaw_plugin();
|
|
48206
48389
|
init_gateway_send();
|
|
48207
|
-
VERSION = "0.
|
|
48390
|
+
VERSION = "0.13.7";
|
|
48208
48391
|
}
|
|
48209
48392
|
});
|
|
48210
48393
|
|
|
@@ -48221,6 +48404,14 @@ import { resolve } from "node:path";
|
|
|
48221
48404
|
async function runSetupCommand(options) {
|
|
48222
48405
|
const { token: token2, name: name2, apiUrl: apiUrl2 } = options;
|
|
48223
48406
|
const dataDir2 = resolve(options.dataDir.replace(/^~/, process.env.HOME ?? "~"));
|
|
48407
|
+
const alreadyEnrolled = await isStateValid(dataDir2);
|
|
48408
|
+
if (alreadyEnrolled && !options.force) {
|
|
48409
|
+
console.log(`
|
|
48410
|
+
Already enrolled (state in ${dataDir2}).
|
|
48411
|
+
Re-enroll with --force, or update plugin with: openclaw plugins update agentvault
|
|
48412
|
+
`);
|
|
48413
|
+
return;
|
|
48414
|
+
}
|
|
48224
48415
|
console.log(`
|
|
48225
48416
|
\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557
|
|
48226
48417
|
\u2551 AgentVault \u2014 First-Time Setup \u2551
|
|
@@ -48424,16 +48615,12 @@ function installPlugin(env) {
|
|
|
48424
48615
|
const installedVersion = versionMatch?.[1];
|
|
48425
48616
|
if (installedVersion && installedVersion !== VERSION) {
|
|
48426
48617
|
console.log(` Updating plugin ${installedVersion} \u2192 ${VERSION}...`);
|
|
48427
|
-
|
|
48428
|
-
stdio: "pipe",
|
|
48429
|
-
|
|
48430
|
-
|
|
48431
|
-
|
|
48432
|
-
|
|
48433
|
-
stdio: "pipe",
|
|
48434
|
-
env
|
|
48435
|
-
});
|
|
48436
|
-
console.log(" \u2705 Plugin updated.");
|
|
48618
|
+
try {
|
|
48619
|
+
execSync("openclaw plugins update agentvault", { stdio: "pipe", env });
|
|
48620
|
+
console.log(" Plugin updated.");
|
|
48621
|
+
} catch {
|
|
48622
|
+
console.log(` \u26A0\uFE0F Update failed \u2014 v${installedVersion} will be used.`);
|
|
48623
|
+
}
|
|
48437
48624
|
} else {
|
|
48438
48625
|
console.log(` Plugin already installed (v${installedVersion ?? "unknown"}).`);
|
|
48439
48626
|
}
|
|
@@ -48554,6 +48741,7 @@ var init_setup = __esm({
|
|
|
48554
48741
|
"use strict";
|
|
48555
48742
|
await init_channel();
|
|
48556
48743
|
await init_index();
|
|
48744
|
+
init_state();
|
|
48557
48745
|
}
|
|
48558
48746
|
});
|
|
48559
48747
|
|
|
@@ -48605,6 +48793,7 @@ Options:
|
|
|
48605
48793
|
--data-dir=PATH Directory for persistent state (default: ~/.openclaw/agentvault)
|
|
48606
48794
|
--api-url=URL API endpoint (default: https://api.agentvault.chat)
|
|
48607
48795
|
--account-id=ID Multi-agent account identifier (e.g., "work", "research")
|
|
48796
|
+
--force Re-enroll even if already enrolled (destroys existing state)
|
|
48608
48797
|
|
|
48609
48798
|
This command:
|
|
48610
48799
|
1. Enrolls this machine as your agent with AgentVault
|
|
@@ -48623,7 +48812,8 @@ After setup, restart OpenClaw \u2014 messages will flow automatically.
|
|
|
48623
48812
|
name,
|
|
48624
48813
|
apiUrl,
|
|
48625
48814
|
dataDir: flags["data-dir"] || process.env.AGENTVAULT_DATA_DIR || (accountId ? `~/.openclaw/agents/${accountId}/agentvault` : "~/.openclaw/agentvault"),
|
|
48626
|
-
accountId
|
|
48815
|
+
accountId,
|
|
48816
|
+
force: flags["force"] === "true"
|
|
48627
48817
|
});
|
|
48628
48818
|
process.exit(0);
|
|
48629
48819
|
}
|