@agentvault/agentvault 0.13.6 → 0.13.8

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.
@@ -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;IACpB,WAAW,EAAE,MAAM,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,CA6C5E"}
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;
@@ -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
@@ -45540,12 +45540,12 @@ 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
- await mkdir(dataDir2, { recursive: true });
45546
+ await mkdir(dataDir2, { recursive: true, mode: DIR_MODE });
45547
45547
  const filePath = join(dataDir2, STATE_FILE);
45548
- await writeFile(filePath, JSON.stringify(state, null, 2), "utf-8");
45548
+ await writeFile(filePath, JSON.stringify(state, null, 2), { encoding: "utf-8", mode: FILE_MODE });
45549
45549
  try {
45550
45550
  await rm(join(dataDir2, LEGACY_STATE_FILE));
45551
45551
  } catch {
@@ -45562,14 +45562,52 @@ async function loadState(dataDir2) {
45562
45562
  try {
45563
45563
  const raw = await readFile(legacyPath, "utf-8");
45564
45564
  const parsed = JSON.parse(raw);
45565
- await mkdir(dataDir2, { recursive: true });
45566
- await writeFile(filePath, JSON.stringify(parsed, null, 2), "utf-8");
45565
+ await mkdir(dataDir2, { recursive: true, mode: DIR_MODE });
45566
+ await writeFile(filePath, JSON.stringify(parsed, null, 2), { encoding: "utf-8", mode: FILE_MODE });
45567
45567
  await rm(legacyPath);
45568
45568
  return parsed;
45569
45569
  } catch {
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, { encoding: "utf-8", mode: FILE_MODE });
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, mode: DIR_MODE });
45605
+ await writeFile(join(dataDir2, STATE_FILE), data, { encoding: "utf-8", mode: FILE_MODE });
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 {
@@ -45578,12 +45616,14 @@ async function clearState(dataDir2) {
45578
45616
  }
45579
45617
  }
45580
45618
  }
45581
- var STATE_FILE, LEGACY_STATE_FILE;
45619
+ var STATE_FILE, LEGACY_STATE_FILE, DIR_MODE, FILE_MODE;
45582
45620
  var init_state = __esm({
45583
45621
  "src/state.ts"() {
45584
45622
  "use strict";
45585
45623
  STATE_FILE = "agentvault.json";
45586
45624
  LEGACY_STATE_FILE = "secure-channel.json";
45625
+ DIR_MODE = 448;
45626
+ FILE_MODE = 384;
45587
45627
  }
45588
45628
  });
45589
45629
 
@@ -45753,6 +45793,7 @@ var init_channel = __esm({
45753
45793
  await libsodium_wrappers_default.ready;
45754
45794
  const raw = await loadState(this.config.dataDir);
45755
45795
  if (raw) {
45796
+ await backupState(this.config.dataDir);
45756
45797
  this._persisted = migratePersistedState(raw);
45757
45798
  if (!this._persisted.messageHistory) {
45758
45799
  this._persisted.messageHistory = [];
@@ -45776,6 +45817,30 @@ var init_channel = __esm({
45776
45817
  this._connect();
45777
45818
  return;
45778
45819
  }
45820
+ const restored = await restoreState(this.config.dataDir);
45821
+ if (restored) {
45822
+ console.log("[SecureChannel] Restored state from backup");
45823
+ const restoredRaw = await loadState(this.config.dataDir);
45824
+ if (restoredRaw) {
45825
+ this._persisted = migratePersistedState(restoredRaw);
45826
+ if (!this._persisted.messageHistory) this._persisted.messageHistory = [];
45827
+ this._deviceId = this._persisted.deviceId;
45828
+ this._deviceJwt = this._persisted.deviceJwt;
45829
+ this._primaryConversationId = this._persisted.primaryConversationId;
45830
+ this._fingerprint = this._persisted.fingerprint;
45831
+ for (const [convId, sd] of Object.entries(this._persisted.sessions)) {
45832
+ if (sd.ratchetState) {
45833
+ this._sessions.set(convId, {
45834
+ ownerDeviceId: sd.ownerDeviceId,
45835
+ ratchet: DoubleRatchet.deserialize(sd.ratchetState),
45836
+ activated: sd.activated ?? false
45837
+ });
45838
+ }
45839
+ }
45840
+ this._connect();
45841
+ return;
45842
+ }
45843
+ }
45779
45844
  await this._enroll();
45780
45845
  }
45781
45846
  /**
@@ -46122,7 +46187,9 @@ var init_channel = __esm({
46122
46187
  data: {
46123
46188
  room_id: roomId,
46124
46189
  recipients,
46125
- message_type: messageType
46190
+ message_type: messageType,
46191
+ priority: opts?.priority ?? "normal",
46192
+ metadata: opts?.metadata
46126
46193
  }
46127
46194
  })
46128
46195
  );
@@ -46136,7 +46203,12 @@ var init_channel = __esm({
46136
46203
  "Content-Type": "application/json",
46137
46204
  Authorization: `Bearer ${this._deviceJwt}`
46138
46205
  },
46139
- body: JSON.stringify({ recipients, message_type: messageType })
46206
+ body: JSON.stringify({
46207
+ recipients,
46208
+ message_type: messageType,
46209
+ priority: opts?.priority ?? "normal",
46210
+ metadata: opts?.metadata
46211
+ })
46140
46212
  }
46141
46213
  );
46142
46214
  if (!res.ok) {
@@ -46281,6 +46353,27 @@ var init_channel = __esm({
46281
46353
  }
46282
46354
  );
46283
46355
  }
46356
+ async sendActionConfirmationToRoom(roomId, confirmation) {
46357
+ const envelope = {
46358
+ type: "action_confirmation",
46359
+ action: confirmation.action,
46360
+ status: confirmation.status
46361
+ };
46362
+ if (confirmation.decisionId !== void 0) envelope.decision_id = confirmation.decisionId;
46363
+ if (confirmation.detail !== void 0) envelope.detail = confirmation.detail;
46364
+ const metadata = {
46365
+ action: confirmation.action,
46366
+ status: confirmation.status
46367
+ };
46368
+ if (confirmation.estimated_cost !== void 0) {
46369
+ metadata.estimated_cost = confirmation.estimated_cost;
46370
+ }
46371
+ await this.sendToRoom(roomId, JSON.stringify(envelope), {
46372
+ messageType: "action_confirmation",
46373
+ priority: "high",
46374
+ metadata
46375
+ });
46376
+ }
46284
46377
  _sendHeartbeat() {
46285
46378
  if (this._state !== "ready" || !this._heartbeatCallback) return;
46286
46379
  const status = this._heartbeatCallback();
@@ -46355,10 +46448,52 @@ var init_channel = __esm({
46355
46448
  res.end(JSON.stringify({ ok: false, error: "Missing 'text' field" }));
46356
46449
  return;
46357
46450
  }
46358
- if (parsed.file_path && typeof parsed.file_path === "string") {
46451
+ if (parsed.room_id && typeof parsed.room_id === "string") {
46452
+ await this.sendToRoom(parsed.room_id, text, {
46453
+ messageType: parsed.message_type,
46454
+ priority: parsed.priority,
46455
+ metadata: parsed.metadata
46456
+ });
46457
+ } else if (parsed.file_path && typeof parsed.file_path === "string") {
46359
46458
  await this.sendWithAttachment(text, parsed.file_path, { topicId: parsed.topicId });
46360
46459
  } else {
46361
- await this.send(text, { topicId: parsed.topicId });
46460
+ await this.send(text, {
46461
+ topicId: parsed.topicId,
46462
+ messageType: parsed.message_type,
46463
+ metadata: parsed.metadata
46464
+ });
46465
+ }
46466
+ res.writeHead(200, { "Content-Type": "application/json" });
46467
+ res.end(JSON.stringify({ ok: true }));
46468
+ } catch (err) {
46469
+ res.writeHead(500, { "Content-Type": "application/json" });
46470
+ res.end(JSON.stringify({ ok: false, error: String(err) }));
46471
+ }
46472
+ });
46473
+ } else if (req.method === "POST" && req.url === "/action") {
46474
+ let body = "";
46475
+ req.on("data", (chunk) => {
46476
+ body += chunk.toString();
46477
+ });
46478
+ req.on("end", async () => {
46479
+ try {
46480
+ const parsed = JSON.parse(body);
46481
+ if (!parsed.action || typeof parsed.action !== "string") {
46482
+ res.writeHead(400, { "Content-Type": "application/json" });
46483
+ res.end(JSON.stringify({ ok: false, error: "Missing 'action' field" }));
46484
+ return;
46485
+ }
46486
+ const confirmation = {
46487
+ action: parsed.action,
46488
+ status: parsed.status ?? "completed",
46489
+ decisionId: parsed.decision_id,
46490
+ detail: parsed.detail,
46491
+ estimated_cost: parsed.estimated_cost
46492
+ };
46493
+ if (parsed.room_id && typeof parsed.room_id === "string") {
46494
+ await this.sendActionConfirmationToRoom(parsed.room_id, confirmation);
46495
+ } else {
46496
+ await this.sendActionConfirmation(confirmation);
46362
46497
  }
46363
46498
  res.writeHead(200, { "Content-Type": "application/json" });
46364
46499
  res.end(JSON.stringify({ ok: true }));
@@ -46377,7 +46512,7 @@ var init_channel = __esm({
46377
46512
  }));
46378
46513
  } else {
46379
46514
  res.writeHead(404, { "Content-Type": "application/json" });
46380
- res.end(JSON.stringify({ ok: false, error: "Not found. Use POST /send or GET /status" }));
46515
+ res.end(JSON.stringify({ ok: false, error: "Not found. Use POST /send, POST /action, or GET /status" }));
46381
46516
  }
46382
46517
  });
46383
46518
  this._httpServer.listen(port, "127.0.0.1", () => {
@@ -47171,7 +47306,15 @@ var init_channel = __esm({
47171
47306
  nonce: hexToBytes(msgData.nonce)
47172
47307
  };
47173
47308
  const ratchet = DoubleRatchet.deserialize(channelEntry.session.ratchetState);
47174
- const plaintext = ratchet.decrypt(encryptedMessage);
47309
+ const ratchetSnapshot = channelEntry.session.ratchetState;
47310
+ let a2aPlaintext;
47311
+ try {
47312
+ a2aPlaintext = ratchet.decrypt(encryptedMessage);
47313
+ } catch (decryptErr) {
47314
+ console.error(`[SecureChannel] A2A decrypt failed \u2014 restoring ratchet state:`, decryptErr);
47315
+ channelEntry.session.ratchetState = ratchetSnapshot;
47316
+ return;
47317
+ }
47175
47318
  channelEntry.session.ratchetState = ratchet.serialize();
47176
47319
  if (channelEntry.role === "responder" && !channelEntry.session.activated) {
47177
47320
  channelEntry.session.activated = true;
@@ -47194,7 +47337,7 @@ var init_channel = __esm({
47194
47337
  }
47195
47338
  await this._persistState();
47196
47339
  const a2aMsg = {
47197
- text: plaintext,
47340
+ text: a2aPlaintext,
47198
47341
  fromHubAddress: msgData.from_hub_address || msgData.hub_address || "",
47199
47342
  channelId,
47200
47343
  conversationId: msgData.conversation_id || "",
@@ -47265,7 +47408,19 @@ var init_channel = __esm({
47265
47408
  header_blob: msgData.header_blob,
47266
47409
  ciphertext: msgData.ciphertext
47267
47410
  });
47268
- const plaintext = session.ratchet.decrypt(encrypted);
47411
+ const ratchetSnapshot = session.ratchet.serialize();
47412
+ let plaintext;
47413
+ try {
47414
+ plaintext = session.ratchet.decrypt(encrypted);
47415
+ } catch (decryptErr) {
47416
+ console.error(`[SecureChannel] Decrypt failed for conv ${convId.slice(0, 8)}... \u2014 restoring ratchet:`, decryptErr);
47417
+ try {
47418
+ session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
47419
+ } catch (restoreErr) {
47420
+ console.error("[SecureChannel] Ratchet restore failed:", restoreErr);
47421
+ }
47422
+ return;
47423
+ }
47269
47424
  this._sendAck(msgData.message_id);
47270
47425
  if (!session.activated) {
47271
47426
  session.activated = true;
@@ -47653,9 +47808,14 @@ ${messageText}`;
47653
47808
  ciphertext: msgData.ciphertext
47654
47809
  });
47655
47810
  let plaintext;
47811
+ const ratchetSnapshot = session.ratchet.serialize();
47656
47812
  try {
47657
47813
  plaintext = session.ratchet.decrypt(encrypted);
47658
47814
  } catch (decryptErr) {
47815
+ try {
47816
+ session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
47817
+ } catch {
47818
+ }
47659
47819
  console.warn(
47660
47820
  `[SecureChannel] Room decrypt failed for conv ${convId.slice(0, 8)}...: ${String(decryptErr)}, re-initializing ratchet`
47661
47821
  );
@@ -47801,7 +47961,20 @@ ${messageText}`;
47801
47961
  header_blob: msg.header_blob,
47802
47962
  ciphertext: msg.ciphertext
47803
47963
  });
47804
- const plaintext = session.ratchet.decrypt(encrypted);
47964
+ const ratchetSnapshot = session.ratchet.serialize();
47965
+ let plaintext;
47966
+ try {
47967
+ plaintext = session.ratchet.decrypt(encrypted);
47968
+ } catch (decryptErr) {
47969
+ console.error(`[SecureChannel] Sync decrypt failed for ${msg.conversation_id.slice(0, 8)}... \u2014 restoring ratchet:`, decryptErr);
47970
+ try {
47971
+ session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
47972
+ } catch {
47973
+ }
47974
+ this._persisted.lastMessageTimestamp = msg.created_at;
47975
+ since = msg.created_at;
47976
+ continue;
47977
+ }
47805
47978
  this._sendAck(msg.id);
47806
47979
  if (!session.activated) {
47807
47980
  session.activated = true;
@@ -47836,7 +48009,7 @@ ${messageText}`;
47836
48009
  totalProcessed++;
47837
48010
  } catch (err) {
47838
48011
  console.warn(
47839
- `[SecureChannel] Sync decrypt failed for msg ${msg.id.slice(0, 8)}... in conv ${msg.conversation_id.slice(0, 8)}...: ${String(err)}`
48012
+ `[SecureChannel] Sync failed for msg ${msg.id.slice(0, 8)}... in conv ${msg.conversation_id.slice(0, 8)}...: ${String(err)}`
47840
48013
  );
47841
48014
  this._persisted.lastMessageTimestamp = msg.created_at;
47842
48015
  since = msg.created_at;
@@ -48032,7 +48205,18 @@ ${messageText}`;
48032
48205
  header_blob: msg.header_blob,
48033
48206
  ciphertext: msg.ciphertext
48034
48207
  });
48035
- const plaintext = session.ratchet.decrypt(encrypted);
48208
+ const ratchetSnapshot = session.ratchet.serialize();
48209
+ let plaintext;
48210
+ try {
48211
+ plaintext = session.ratchet.decrypt(encrypted);
48212
+ } catch (decryptErr) {
48213
+ console.error(`[SecureChannel] Room sync decrypt failed for ${msg.conversation_id.slice(0, 8)}... \u2014 restoring ratchet:`, decryptErr);
48214
+ try {
48215
+ session.ratchet = DoubleRatchet.deserialize(ratchetSnapshot);
48216
+ } catch {
48217
+ }
48218
+ continue;
48219
+ }
48036
48220
  if (!session.activated) {
48037
48221
  session.activated = true;
48038
48222
  }
@@ -48112,6 +48296,7 @@ ${messageText}`;
48112
48296
  };
48113
48297
  }
48114
48298
  await saveState(this.config.dataDir, this._persisted);
48299
+ await backupState(this.config.dataDir);
48115
48300
  }
48116
48301
  };
48117
48302
  }
@@ -48204,7 +48389,7 @@ var init_index = __esm({
48204
48389
  init_account_config();
48205
48390
  await init_openclaw_plugin();
48206
48391
  init_gateway_send();
48207
- VERSION = "0.11.0";
48392
+ VERSION = "0.13.8";
48208
48393
  }
48209
48394
  });
48210
48395
 
@@ -48221,6 +48406,14 @@ import { resolve } from "node:path";
48221
48406
  async function runSetupCommand(options) {
48222
48407
  const { token: token2, name: name2, apiUrl: apiUrl2 } = options;
48223
48408
  const dataDir2 = resolve(options.dataDir.replace(/^~/, process.env.HOME ?? "~"));
48409
+ const alreadyEnrolled = await isStateValid(dataDir2);
48410
+ if (alreadyEnrolled && !options.force) {
48411
+ console.log(`
48412
+ Already enrolled (state in ${dataDir2}).
48413
+ Re-enroll with --force, or update plugin with: openclaw plugins update agentvault
48414
+ `);
48415
+ return;
48416
+ }
48224
48417
  console.log(`
48225
48418
  \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
48419
  \u2551 AgentVault \u2014 First-Time Setup \u2551
@@ -48424,16 +48617,12 @@ function installPlugin(env) {
48424
48617
  const installedVersion = versionMatch?.[1];
48425
48618
  if (installedVersion && installedVersion !== VERSION) {
48426
48619
  console.log(` Updating plugin ${installedVersion} \u2192 ${VERSION}...`);
48427
- spawnSync("openclaw", ["plugins", "uninstall", "agentvault"], {
48428
- stdio: "pipe",
48429
- input: "y\n",
48430
- env
48431
- });
48432
- execSync("openclaw plugins install @agentvault/agentvault", {
48433
- stdio: "pipe",
48434
- env
48435
- });
48436
- console.log(" \u2705 Plugin updated.");
48620
+ try {
48621
+ execSync("openclaw plugins update agentvault", { stdio: "pipe", env });
48622
+ console.log(" Plugin updated.");
48623
+ } catch {
48624
+ console.log(` \u26A0\uFE0F Update failed \u2014 v${installedVersion} will be used.`);
48625
+ }
48437
48626
  } else {
48438
48627
  console.log(` Plugin already installed (v${installedVersion ?? "unknown"}).`);
48439
48628
  }
@@ -48554,6 +48743,7 @@ var init_setup = __esm({
48554
48743
  "use strict";
48555
48744
  await init_channel();
48556
48745
  await init_index();
48746
+ init_state();
48557
48747
  }
48558
48748
  });
48559
48749
 
@@ -48605,6 +48795,7 @@ Options:
48605
48795
  --data-dir=PATH Directory for persistent state (default: ~/.openclaw/agentvault)
48606
48796
  --api-url=URL API endpoint (default: https://api.agentvault.chat)
48607
48797
  --account-id=ID Multi-agent account identifier (e.g., "work", "research")
48798
+ --force Re-enroll even if already enrolled (destroys existing state)
48608
48799
 
48609
48800
  This command:
48610
48801
  1. Enrolls this machine as your agent with AgentVault
@@ -48623,7 +48814,8 @@ After setup, restart OpenClaw \u2014 messages will flow automatically.
48623
48814
  name,
48624
48815
  apiUrl,
48625
48816
  dataDir: flags["data-dir"] || process.env.AGENTVAULT_DATA_DIR || (accountId ? `~/.openclaw/agents/${accountId}/agentvault` : "~/.openclaw/agentvault"),
48626
- accountId
48817
+ accountId,
48818
+ force: flags["force"] === "true"
48627
48819
  });
48628
48820
  process.exit(0);
48629
48821
  }