volute 0.42.0 → 0.42.1

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 (80) hide show
  1. package/dist/{accept-7YVHZKRD.js → accept-N5XULCXK.js} +1 -1
  2. package/dist/{bridge-WPYSOQKR.js → bridge-2PO3AI5D.js} +1 -1
  3. package/dist/{chat-7DOENBY2.js → chat-LYL5CWJV.js} +8 -8
  4. package/dist/{chunk-VSUZE2PD.js → chunk-43K5UWF7.js} +1 -1
  5. package/dist/{chunk-52NMCDBS.js → chunk-6G7R2LPI.js} +10 -10
  6. package/dist/{chunk-OSUF75I7.js → chunk-BR6KFHVT.js} +1 -1
  7. package/dist/{chunk-TKOWXAHG.js → chunk-BWZHX46O.js} +2 -2
  8. package/dist/{chunk-2YRTSK5K.js → chunk-JPDN6ZRJ.js} +9 -6
  9. package/dist/{chunk-RKBYFLOR.js → chunk-JU5GWO77.js} +1 -1
  10. package/dist/{chunk-JLX3GC7T.js → chunk-M3T3Y6FT.js} +1 -1
  11. package/dist/{chunk-G777ME4L.js → chunk-NSGIVS5T.js} +1 -1
  12. package/dist/{chunk-CGPESELY.js → chunk-P6DPB33N.js} +19 -3
  13. package/dist/{chunk-IFNSAOA4.js → chunk-RBNMDAKB.js} +4 -0
  14. package/dist/cli.js +20 -20
  15. package/dist/{clock-HP2TGMG5.js → clock-K43IMROX.js} +3 -3
  16. package/dist/{cloud-sync-3OPHFOYQ.js → cloud-sync-E3ZL5SZ4.js} +4 -4
  17. package/dist/{config-W7MS3PWY.js → config-TJLYUV3U.js} +3 -3
  18. package/dist/{create-CJ2SR4EU.js → create-DF3KISTW.js} +1 -1
  19. package/dist/{create-YNBZWD34.js → create-ERNQYOCK.js} +1 -1
  20. package/dist/{daemon-client-EWDPOOHC.js → daemon-client-IYR4KCPU.js} +3 -1
  21. package/dist/{daemon-restart-RAKGR56L.js → daemon-restart-QBZOMILO.js} +3 -3
  22. package/dist/daemon.js +46 -36
  23. package/dist/{delete-4ND5PLE7.js → delete-BFMIGAIB.js} +1 -1
  24. package/dist/{delivery-manager-5Y35DOX3.js → delivery-manager-J3BRHXUF.js} +4 -4
  25. package/dist/{down-DS6WCT34.js → down-DSRWSCXY.js} +2 -2
  26. package/dist/{echo-text-YP3JVLNA.js → echo-text-3HBQUWPX.js} +6 -5
  27. package/dist/{env-XX2MBZCZ.js → env-VZ4MLFQW.js} +1 -1
  28. package/dist/{export-5DOQV2WM.js → export-WYI3E3TB.js} +1 -1
  29. package/dist/{extension-BCFYXI7A.js → extension-SEID47SR.js} +1 -1
  30. package/dist/{extensions-BTNIUS5J.js → extensions-X6MKBJLB.js} +4 -4
  31. package/dist/{files-K2MEMV3W.js → files-COTCVBGO.js} +1 -1
  32. package/dist/{import-V6QEHMPQ.js → import-EPK6WCYS.js} +2 -2
  33. package/dist/{join-4S3KT7NE.js → join-RXPXGV4L.js} +1 -1
  34. package/dist/{list-XJB5WII6.js → list-OXIAY3W7.js} +1 -1
  35. package/dist/{login-PHMTLNUF.js → login-GPBXOU4D.js} +1 -1
  36. package/dist/{login-YWD6PUOT.js → login-MY6ETFYB.js} +1 -1
  37. package/dist/{logout-BP3R3CAA.js → logout-DNNTIYE2.js} +1 -1
  38. package/dist/{logout-Q2WICH4V.js → logout-NCG3TMDL.js} +1 -1
  39. package/dist/{message-delivery-FPIL26WV.js → message-delivery-4ZWFDBAY.js} +4 -4
  40. package/dist/{mind-VXV6ZYZY.js → mind-K5PZHPBR.js} +18 -18
  41. package/dist/{mind-history-TDUQFYAG.js → mind-history-VRO5A76U.js} +1 -1
  42. package/dist/{mind-list-2T353Q5G.js → mind-list-4D7J4CHD.js} +1 -1
  43. package/dist/{mind-manager-OYOIBGK6.js → mind-manager-6DSY5IJW.js} +4 -4
  44. package/dist/{mind-profile-2HHR7LZ7.js → mind-profile-PEQYASQX.js} +1 -1
  45. package/dist/{mind-service-PR4PR4XI.js → mind-service-R2FM53KD.js} +4 -4
  46. package/dist/{mind-sleep-4NXV4J4U.js → mind-sleep-YMBR3I35.js} +1 -1
  47. package/dist/{mind-status-CG66OXDK.js → mind-status-UO34ASXZ.js} +1 -1
  48. package/dist/{mind-wake-TNB54DBR.js → mind-wake-LCLGTXA2.js} +1 -1
  49. package/dist/{package-UWH5IM76.js → package-G4AM2IDZ.js} +1 -1
  50. package/dist/{read-JLR4NQXU.js → read-QVAXMTPV.js} +1 -1
  51. package/dist/{register-IQ2M4UO6.js → register-Y2H4PY5R.js} +1 -1
  52. package/dist/{reject-N2D4CZND.js → reject-EV35X64Y.js} +1 -1
  53. package/dist/{restart-43A5MBGV.js → restart-FJQ662XJ.js} +1 -1
  54. package/dist/{scheduler-KXUY2I7W.js → scheduler-2FKQCRCM.js} +4 -4
  55. package/dist/{seed-YQAOIXIY.js → seed-SKVSWF7S.js} +1 -1
  56. package/dist/{seed-check-N5ALJBT6.js → seed-check-VLTVILOV.js} +1 -1
  57. package/dist/{seed-cmd-7KJS4LCA.js → seed-cmd-D2H5VLB4.js} +3 -3
  58. package/dist/{seed-create-Z7NDRRGP.js → seed-create-BUSKQ5II.js} +2 -2
  59. package/dist/{seed-sprout-PYDMVVUL.js → seed-sprout-R2IZPITD.js} +3 -3
  60. package/dist/{send-KQECN2EL.js → send-SLDFRSTL.js} +1 -1
  61. package/dist/{service-Q5OVY5AK.js → service-ZDOSEQCE.js} +1 -1
  62. package/dist/{service-install-GTDUHP6R.js → service-install-2HZPDHEY.js} +2 -2
  63. package/dist/{setup-VARJ7N6Z.js → setup-IU3ID7II.js} +3 -3
  64. package/dist/{skill-E43BI34Y.js → skill-FKFHIJRR.js} +1 -1
  65. package/dist/{skills-YBCYVOPQ.js → skills-P6RGGASV.js} +1 -1
  66. package/dist/{sleep-manager-FJLASHHW.js → sleep-manager-F5KWIFOX.js} +4 -4
  67. package/dist/{spirit-NJFAY5CZ.js → spirit-XLD6QXSS.js} +2 -2
  68. package/dist/{split-5IBUODEE.js → split-WBMZXBHF.js} +1 -1
  69. package/dist/{sprout-B27C2WGE.js → sprout-QV2RJM5W.js} +1 -1
  70. package/dist/{start-5AYFGNS7.js → start-5JE3TV66.js} +1 -1
  71. package/dist/{status-ECZHHSY5.js → status-QAKAPDYW.js} +9 -5
  72. package/dist/{stop-WJ6IG6OK.js → stop-AAMTG3TU.js} +1 -1
  73. package/dist/{system-chat-P6KVGW4T.js → system-chat-EQIH6JVL.js} +4 -4
  74. package/dist/{systems-5MA57Q7G.js → systems-VNB5WKSS.js} +4 -4
  75. package/dist/{turn-tracker-W4TASMR7.js → turn-tracker-Z5UJC4BY.js} +1 -1
  76. package/dist/{up-POJX6S5Y.js → up-ZTPGC7HB.js} +2 -2
  77. package/dist/{update-OPR4KU4M.js → update-NY3XBVAJ.js} +6 -6
  78. package/dist/{upgrade-QB7AHIKX.js → upgrade-37DAGF6H.js} +1 -1
  79. package/dist/{version-notify-TCKAX7ZA.js → version-notify-P7UAR7HZ.js} +4 -4
  80. package/package.json +1 -1
package/dist/daemon.js CHANGED
@@ -30,7 +30,7 @@ import {
30
30
  fixModelEscapes,
31
31
  getPlatformDriver,
32
32
  routeOutboundBridge
33
- } from "./chunk-2YRTSK5K.js";
33
+ } from "./chunk-JPDN6ZRJ.js";
34
34
  import {
35
35
  getBridgeConfig,
36
36
  readBridgesConfig,
@@ -98,7 +98,7 @@ import {
98
98
  tagUntaggedOutbound,
99
99
  uninstallNpmExtension,
100
100
  writeSystemsConfig
101
- } from "./chunk-52NMCDBS.js";
101
+ } from "./chunk-6G7R2LPI.js";
102
102
  import {
103
103
  loadMergedEnv,
104
104
  mindEnvPath,
@@ -106,7 +106,7 @@ import {
106
106
  sharedEnvPath,
107
107
  writeEnv
108
108
  } from "./chunk-BLOAJLGI.js";
109
- import "./chunk-VSUZE2PD.js";
109
+ import "./chunk-43K5UWF7.js";
110
110
  import {
111
111
  applyInitFiles,
112
112
  applyTemplateHomeFiles,
@@ -135,7 +135,7 @@ import {
135
135
  syncBuiltinSkills,
136
136
  uninstallSkill,
137
137
  updateSkill
138
- } from "./chunk-JLX3GC7T.js";
138
+ } from "./chunk-M3T3Y6FT.js";
139
139
  import {
140
140
  addMessage,
141
141
  createChannel,
@@ -206,7 +206,8 @@ import {
206
206
  summarizeTurn,
207
207
  takeErrored,
208
208
  trackToolUse
209
- } from "./chunk-TKOWXAHG.js";
209
+ } from "./chunk-BWZHX46O.js";
210
+ import "./chunk-P6DPB33N.js";
210
211
  import {
211
212
  exec,
212
213
  gitExec,
@@ -2015,8 +2016,8 @@ async function fanOutToBridgedMinds(opts) {
2015
2016
  const participants = await getParticipants(opts.conversationId);
2016
2017
  const mindParticipants = participants.filter((p) => p.userType === "mind");
2017
2018
  const participantNames = participants.map((p) => p.username);
2018
- const { getMindManager: getMindManager2 } = await import("./mind-manager-OYOIBGK6.js");
2019
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-FJLASHHW.js");
2019
+ const { getMindManager: getMindManager2 } = await import("./mind-manager-6DSY5IJW.js");
2020
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-F5KWIFOX.js");
2020
2021
  const manager = getMindManager2();
2021
2022
  const sm = getSleepManagerIfReady2();
2022
2023
  const targetMinds = mindParticipants.filter((ap) => {
@@ -2228,7 +2229,7 @@ async function notifyMind(mindName, message) {
2228
2229
  const entry = await findMind(mindName);
2229
2230
  if (!entry) return;
2230
2231
  try {
2231
- const { sendSystemMessage } = await import("./system-chat-P6KVGW4T.js");
2232
+ const { sendSystemMessage } = await import("./system-chat-EQIH6JVL.js");
2232
2233
  await sendSystemMessage(mindName, message);
2233
2234
  } catch (err) {
2234
2235
  logger_default.warn(`[file-sharing] notify mind ${mindName} failed`, logger_default.errorData(err));
@@ -3542,7 +3543,7 @@ async function getMindStatus(name, port, registryRunning) {
3542
3543
  const manager = getMindManager();
3543
3544
  let status = "stopped";
3544
3545
  try {
3545
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-FJLASHHW.js");
3546
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-F5KWIFOX.js");
3546
3547
  if (getSleepManagerIfReady2()?.isSleeping(name)) {
3547
3548
  status = "sleeping";
3548
3549
  }
@@ -4146,7 +4147,7 @@ The human who planted you described you as: "${body.description}"
4146
4147
  try {
4147
4148
  const spiritEntry = await findMind("volute");
4148
4149
  if (spiritEntry) {
4149
- const { spiritDir } = await import("./spirit-NJFAY5CZ.js");
4150
+ const { spiritDir } = await import("./spirit-XLD6QXSS.js");
4150
4151
  const sDir = spiritEntry.dir ?? spiritDir();
4151
4152
  const spiritConfig = readVoluteConfig(sDir) ?? {};
4152
4153
  const schedules = spiritConfig.schedules ?? [];
@@ -4161,7 +4162,7 @@ The human who planted you described you as: "${body.description}"
4161
4162
  });
4162
4163
  spiritConfig.schedules = schedules;
4163
4164
  writeVoluteConfig(sDir, spiritConfig);
4164
- const { getScheduler: getScheduler2 } = await import("./scheduler-KXUY2I7W.js");
4165
+ const { getScheduler: getScheduler2 } = await import("./scheduler-2FKQCRCM.js");
4165
4166
  getScheduler2().loadSchedules("volute", sDir);
4166
4167
  }
4167
4168
  }
@@ -4426,7 +4427,7 @@ ${user.trimEnd()}
4426
4427
  const manager = getMindManager();
4427
4428
  try {
4428
4429
  if (context?.type === "reload") {
4429
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-FJLASHHW.js");
4430
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-F5KWIFOX.js");
4430
4431
  const sleepState = getSleepManagerIfReady2()?.getState(name);
4431
4432
  if (sleepState?.sleeping) {
4432
4433
  logger_default.info(`skipping reload for ${name} during sleep \u2014 will apply on next wake`);
@@ -4521,7 +4522,7 @@ ${user.trimEnd()}
4521
4522
  const name = c.req.param("name");
4522
4523
  const entry = await findMind(name);
4523
4524
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4524
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-FJLASHHW.js");
4525
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-F5KWIFOX.js");
4525
4526
  const sm = getSleepManagerIfReady2();
4526
4527
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4527
4528
  return c.json(sm.getState(name));
@@ -4529,7 +4530,7 @@ ${user.trimEnd()}
4529
4530
  const name = c.req.param("name");
4530
4531
  const entry = await findMind(name);
4531
4532
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4532
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-FJLASHHW.js");
4533
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-F5KWIFOX.js");
4533
4534
  const sm = getSleepManagerIfReady2();
4534
4535
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4535
4536
  if (sm.isSleeping(name)) return c.json({ error: "Mind is already sleeping" }, 409);
@@ -4549,7 +4550,7 @@ ${user.trimEnd()}
4549
4550
  const name = c.req.param("name");
4550
4551
  const entry = await findMind(name);
4551
4552
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4552
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-FJLASHHW.js");
4553
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-F5KWIFOX.js");
4553
4554
  const sm = getSleepManagerIfReady2();
4554
4555
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4555
4556
  const sleepState = sm.getState(name);
@@ -4564,7 +4565,7 @@ ${user.trimEnd()}
4564
4565
  const name = c.req.param("name");
4565
4566
  const entry = await findMind(name);
4566
4567
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4567
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-FJLASHHW.js");
4568
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-F5KWIFOX.js");
4568
4569
  const sm = getSleepManagerIfReady2();
4569
4570
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4570
4571
  const flushed = await sm.flushQueuedMessages(name);
@@ -4667,7 +4668,7 @@ ${user.trimEnd()}
4667
4668
  try {
4668
4669
  const spiritEntry = await findMind("volute");
4669
4670
  if (spiritEntry) {
4670
- const { spiritDir } = await import("./spirit-NJFAY5CZ.js");
4671
+ const { spiritDir } = await import("./spirit-XLD6QXSS.js");
4671
4672
  const sDir = spiritEntry.dir ?? spiritDir();
4672
4673
  const spiritConfig = readVoluteConfig(sDir);
4673
4674
  if (spiritConfig?.schedules) {
@@ -4675,7 +4676,7 @@ ${user.trimEnd()}
4675
4676
  spiritConfig.schedules = spiritConfig.schedules.filter((s) => s.id !== nurtureId);
4676
4677
  if (spiritConfig.schedules.length === 0) spiritConfig.schedules = void 0;
4677
4678
  writeVoluteConfig(sDir, spiritConfig);
4678
- const { getScheduler: getScheduler2 } = await import("./scheduler-KXUY2I7W.js");
4679
+ const { getScheduler: getScheduler2 } = await import("./scheduler-2FKQCRCM.js");
4679
4680
  getScheduler2().loadSchedules("volute", sDir);
4680
4681
  }
4681
4682
  }
@@ -5110,7 +5111,7 @@ ${user.trimEnd()}
5110
5111
  }
5111
5112
  writeVoluteConfig(dir, existing);
5112
5113
  if (body.unescapeNewlines !== void 0) {
5113
- const { clearEchoTextCache } = await import("./echo-text-YP3JVLNA.js");
5114
+ const { clearEchoTextCache } = await import("./echo-text-3HBQUWPX.js");
5114
5115
  clearEchoTextCache(name);
5115
5116
  }
5116
5117
  const needsConfigJson = body.model !== void 0 || body.thinkingLevel !== void 0 || body.maxThinkingTokens !== void 0 || body.compaction !== void 0;
@@ -5959,7 +5960,7 @@ var app15 = new Hono17().get("/:name/clock/status", requireSelf(), async (c) =>
5959
5960
  const body = await c.req.text();
5960
5961
  const message = `[webhook: ${event}] ${body}`;
5961
5962
  try {
5962
- const { sendSystemMessage } = await import("./system-chat-P6KVGW4T.js");
5963
+ const { sendSystemMessage } = await import("./system-chat-EQIH6JVL.js");
5963
5964
  await sendSystemMessage(name, message);
5964
5965
  return c.json({ ok: true });
5965
5966
  } catch (err) {
@@ -6288,15 +6289,15 @@ setup.post("/complete", async (c) => {
6288
6289
  return c.json({ error: "Setup already complete" }, 400);
6289
6290
  }
6290
6291
  try {
6291
- const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-NJFAY5CZ.js");
6292
- const { startSpiritFull } = await import("./mind-service-PR4PR4XI.js");
6292
+ const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-XLD6QXSS.js");
6293
+ const { startSpiritFull } = await import("./mind-service-R2FM53KD.js");
6293
6294
  await ensureSpiritProject();
6294
6295
  await syncSpiritTemplate();
6295
6296
  const warnings = [];
6296
6297
  const config2 = readGlobalConfig();
6297
6298
  if (config2.setup?.service && config2.setup?.type === "local") {
6298
6299
  try {
6299
- const { installUserService } = await import("./service-install-GTDUHP6R.js");
6300
+ const { installUserService } = await import("./service-install-2HZPDHEY.js");
6300
6301
  const installed = await installUserService(config2.port, config2.hostname);
6301
6302
  if (!installed) {
6302
6303
  warnings.push("Service installation is not supported on this platform.");
@@ -6347,7 +6348,7 @@ setup.post("/complete", async (c) => {
6347
6348
  logger_default.info("setup complete state", { spiritConversationId, spiritStarted });
6348
6349
  if (spiritConversationId && spiritStarted) {
6349
6350
  try {
6350
- const { deliverMessage: deliverMessage2 } = await import("./message-delivery-FPIL26WV.js");
6351
+ const { deliverMessage: deliverMessage2 } = await import("./message-delivery-4ZWFDBAY.js");
6351
6352
  const { listUsersByType: listUsers2 } = await import("./auth-EAASQPTN.js");
6352
6353
  const admins = await listUsers2("brain");
6353
6354
  const admin2 = admins.find((u) => u.role === "admin");
@@ -7888,10 +7889,15 @@ if (!process.env.VOLUTE_HOME) {
7888
7889
  if (process.env.VOLUTE_TIMEZONE && !process.env.TZ) {
7889
7890
  process.env.TZ = process.env.VOLUTE_TIMEZONE;
7890
7891
  }
7891
- function writeDaemonConfig(path, config2) {
7892
- writeFileSync9(path, `${JSON.stringify(config2, null, 2)}
7892
+ function writeDaemonConfig(systemDir, config2, token) {
7893
+ const configPath = resolve17(systemDir, "daemon.json");
7894
+ writeFileSync9(configPath, `${JSON.stringify(config2, null, 2)}
7895
+ `, { mode: 420 });
7896
+ chmodSync(configPath, 420);
7897
+ const tokenPath = resolve17(systemDir, "daemon-token");
7898
+ writeFileSync9(tokenPath, `${token}
7893
7899
  `, { mode: 384 });
7894
- chmodSync(path, 384);
7900
+ chmodSync(tokenPath, 384);
7895
7901
  }
7896
7902
  async function startDaemon(opts) {
7897
7903
  const { port, hostname } = opts;
@@ -7911,6 +7917,7 @@ async function startDaemon(opts) {
7911
7917
  }
7912
7918
  const DAEMON_PID_PATH = resolve17(systemDir, "daemon.pid");
7913
7919
  const DAEMON_JSON_PATH = resolve17(systemDir, "daemon.json");
7920
+ const DAEMON_TOKEN_PATH = resolve17(systemDir, "daemon-token");
7914
7921
  mkdirSync10(home, { recursive: true });
7915
7922
  ensureSystemDir();
7916
7923
  const { migrateConfigSecrets, migrateSetupCompleted } = await import("./setup-IYOUPCIK.js");
@@ -7994,10 +8001,10 @@ async function startDaemon(opts) {
7994
8001
  process.env.VOLUTE_DAEMON_PORT = String(daemonPort);
7995
8002
  process.env.VOLUTE_DAEMON_HOSTNAME = hostname;
7996
8003
  writeFileSync9(DAEMON_PID_PATH, myPid, { mode: 420 });
7997
- const daemonConfig = { port, hostname, token };
8004
+ const daemonConfig = { port, hostname };
7998
8005
  if (internalPort) daemonConfig.internalPort = internalPort;
7999
8006
  if (tls) daemonConfig.tls = true;
8000
- writeDaemonConfig(DAEMON_JSON_PATH, daemonConfig);
8007
+ writeDaemonConfig(systemDir, daemonConfig, token);
8001
8008
  const delivery = initDeliveryManager();
8002
8009
  const manager = initMindManager();
8003
8010
  manager.loadCrashAttempts();
@@ -8046,8 +8053,8 @@ async function startDaemon(opts) {
8046
8053
  try {
8047
8054
  const { isSetupComplete: isSetupComplete2 } = await import("./setup-IYOUPCIK.js");
8048
8055
  if (isSetupComplete2()) {
8049
- const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-NJFAY5CZ.js");
8050
- const { startSpiritFull } = await import("./mind-service-PR4PR4XI.js");
8056
+ const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-XLD6QXSS.js");
8057
+ const { startSpiritFull } = await import("./mind-service-R2FM53KD.js");
8051
8058
  await ensureSpiritProject();
8052
8059
  await syncSpiritTemplate();
8053
8060
  const spiritEntry = await findMind("volute");
@@ -8064,7 +8071,7 @@ async function startDaemon(opts) {
8064
8071
  bridgeManager.startBridges(daemonPort).catch((err) => {
8065
8072
  logger_default.warn("failed to start bridges", logger_default.errorData(err));
8066
8073
  });
8067
- import("./cloud-sync-3OPHFOYQ.js").then(
8074
+ import("./cloud-sync-E3ZL5SZ4.js").then(
8068
8075
  ({ consumeQueuedMessages }) => consumeQueuedMessages().catch((err) => {
8069
8076
  logger_default.warn("failed to consume queued cloud messages", logger_default.errorData(err));
8070
8077
  })
@@ -8072,7 +8079,7 @@ async function startDaemon(opts) {
8072
8079
  logger_default.warn("failed to load cloud-sync module", logger_default.errorData(err));
8073
8080
  });
8074
8081
  try {
8075
- const { backfillTemplateHashes, notifyVersionUpdate } = await import("./version-notify-TCKAX7ZA.js");
8082
+ const { backfillTemplateHashes, notifyVersionUpdate } = await import("./version-notify-P7UAR7HZ.js");
8076
8083
  backfillTemplateHashes();
8077
8084
  notifyVersionUpdate().catch((err) => {
8078
8085
  logger_default.warn("failed to send version update notifications", logger_default.errorData(err));
@@ -8104,9 +8111,12 @@ async function startDaemon(opts) {
8104
8111
  } catch {
8105
8112
  }
8106
8113
  try {
8107
- const data = JSON.parse(readFileSync10(DAEMON_JSON_PATH, "utf-8"));
8108
- if (data.token === token) {
8109
- unlinkSync2(DAEMON_JSON_PATH);
8114
+ if (readFileSync10(DAEMON_TOKEN_PATH, "utf-8").trim() === token) {
8115
+ unlinkSync2(DAEMON_TOKEN_PATH);
8116
+ try {
8117
+ unlinkSync2(DAEMON_JSON_PATH);
8118
+ } catch {
8119
+ }
8110
8120
  }
8111
8121
  } catch {
8112
8122
  }
@@ -18,7 +18,7 @@ var cmd = command({
18
18
  },
19
19
  async run({ args, flags }) {
20
20
  const name = resolveMindName({ mind: args.name });
21
- const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
21
+ const { daemonFetch } = await import("./daemon-client-IYR4KCPU.js");
22
22
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
23
23
  const client = getClient();
24
24
  const url = urlOf(client.api.minds[":name"].$url({ param: { name } })) + (flags.force ? "?force=true" : "");
@@ -4,17 +4,17 @@ import {
4
4
  getDeliveryManager,
5
5
  initDeliveryManager,
6
6
  tryGetDeliveryManager
7
- } from "./chunk-52NMCDBS.js";
7
+ } from "./chunk-6G7R2LPI.js";
8
8
  import "./chunk-BLOAJLGI.js";
9
- import "./chunk-VSUZE2PD.js";
9
+ import "./chunk-43K5UWF7.js";
10
10
  import "./chunk-QLWG3C2Z.js";
11
- import "./chunk-JLX3GC7T.js";
11
+ import "./chunk-M3T3Y6FT.js";
12
12
  import "./chunk-YLTIEEVL.js";
13
13
  import "./chunk-CU6OFXMM.js";
14
14
  import "./chunk-WR7CSHQ4.js";
15
15
  import "./chunk-VBKRZCR7.js";
16
16
  import "./chunk-62ICA2FF.js";
17
- import "./chunk-TKOWXAHG.js";
17
+ import "./chunk-BWZHX46O.js";
18
18
  import "./chunk-GN52E2DP.js";
19
19
  import "./chunk-TFBQESH7.js";
20
20
  import "./chunk-4ZSUUBG5.js";
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  run,
4
4
  stopDaemon
5
- } from "./chunk-G777ME4L.js";
5
+ } from "./chunk-NSGIVS5T.js";
6
6
  import "./chunk-TXSA4Q3V.js";
7
7
  import "./chunk-O7IGP7ZW.js";
8
- import "./chunk-CGPESELY.js";
8
+ import "./chunk-P6DPB33N.js";
9
9
  import "./chunk-GN52E2DP.js";
10
10
  import "./chunk-TFBQESH7.js";
11
11
  import "./chunk-IUZ3EV2D.js";
@@ -2,19 +2,20 @@
2
2
  import {
3
3
  clearEchoTextCache,
4
4
  echoTextToChannel
5
- } from "./chunk-2YRTSK5K.js";
5
+ } from "./chunk-JPDN6ZRJ.js";
6
6
  import "./chunk-QPTQKGGF.js";
7
- import "./chunk-52NMCDBS.js";
7
+ import "./chunk-6G7R2LPI.js";
8
8
  import "./chunk-BLOAJLGI.js";
9
- import "./chunk-VSUZE2PD.js";
9
+ import "./chunk-43K5UWF7.js";
10
10
  import "./chunk-QLWG3C2Z.js";
11
- import "./chunk-JLX3GC7T.js";
11
+ import "./chunk-M3T3Y6FT.js";
12
12
  import "./chunk-YLTIEEVL.js";
13
13
  import "./chunk-CU6OFXMM.js";
14
14
  import "./chunk-WR7CSHQ4.js";
15
15
  import "./chunk-VBKRZCR7.js";
16
16
  import "./chunk-62ICA2FF.js";
17
- import "./chunk-TKOWXAHG.js";
17
+ import "./chunk-BWZHX46O.js";
18
+ import "./chunk-P6DPB33N.js";
18
19
  import "./chunk-GN52E2DP.js";
19
20
  import "./chunk-TFBQESH7.js";
20
21
  import "./chunk-4ZSUUBG5.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-VHWGEJ4V.js";
8
8
  import {
9
9
  daemonFetch
10
- } from "./chunk-IFNSAOA4.js";
10
+ } from "./chunk-RBNMDAKB.js";
11
11
  import {
12
12
  getClient,
13
13
  urlOf
@@ -63,7 +63,7 @@ var cmd = command({
63
63
  });
64
64
  if (includeHistory) {
65
65
  try {
66
- const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
66
+ const { daemonFetch } = await import("./daemon-client-IYR4KCPU.js");
67
67
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
68
68
  const client = getClient();
69
69
  const res = await daemonFetch(
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-IFNSAOA4.js";
4
+ } from "./chunk-RBNMDAKB.js";
5
5
  import {
6
6
  subcommands
7
7
  } from "./chunk-TXSA4Q3V.js";
@@ -13,17 +13,17 @@ import {
13
13
  parseCommandArgs,
14
14
  setExtensionEnabled,
15
15
  uninstallNpmExtension
16
- } from "./chunk-52NMCDBS.js";
16
+ } from "./chunk-6G7R2LPI.js";
17
17
  import "./chunk-BLOAJLGI.js";
18
- import "./chunk-VSUZE2PD.js";
18
+ import "./chunk-43K5UWF7.js";
19
19
  import "./chunk-QLWG3C2Z.js";
20
- import "./chunk-JLX3GC7T.js";
20
+ import "./chunk-M3T3Y6FT.js";
21
21
  import "./chunk-YLTIEEVL.js";
22
22
  import "./chunk-CU6OFXMM.js";
23
23
  import "./chunk-WR7CSHQ4.js";
24
24
  import "./chunk-VBKRZCR7.js";
25
25
  import "./chunk-62ICA2FF.js";
26
- import "./chunk-TKOWXAHG.js";
26
+ import "./chunk-BWZHX46O.js";
27
27
  import "./chunk-GN52E2DP.js";
28
28
  import "./chunk-TFBQESH7.js";
29
29
  import "./chunk-4ZSUUBG5.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-BTY4WNFE.js";
5
5
  import {
6
6
  daemonFetch
7
- } from "./chunk-IFNSAOA4.js";
7
+ } from "./chunk-RBNMDAKB.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";
@@ -32,7 +32,7 @@ async function run(args) {
32
32
  return;
33
33
  }
34
34
  const wsDir = resolveWorkspace(inputPath);
35
- const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
35
+ const { daemonFetch } = await import("./daemon-client-IYR4KCPU.js");
36
36
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
37
37
  const client = getClient();
38
38
  const res = await daemonFetch(urlOf(client.api.minds.import.$url()), {
@@ -84,7 +84,7 @@ async function importArchive(archivePath, nameOverride) {
84
84
  process.exit(1);
85
85
  }
86
86
  try {
87
- const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
87
+ const { daemonFetch } = await import("./daemon-client-IYR4KCPU.js");
88
88
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
89
89
  const client = getClient();
90
90
  const res = await daemonFetch(urlOf(client.api.minds.import.$url()), {
@@ -19,7 +19,7 @@ var cmd = command({
19
19
  run: async ({ args, flags }) => {
20
20
  const variantName = args.variant;
21
21
  console.log(`Joining variant ${variantName}...`);
22
- const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
22
+ const { daemonFetch } = await import("./daemon-client-IYR4KCPU.js");
23
23
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
24
24
  const client = getClient();
25
25
  const statusRes = await daemonFetch(
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-BTY4WNFE.js";
8
8
  import {
9
9
  daemonFetch
10
- } from "./chunk-IFNSAOA4.js";
10
+ } from "./chunk-RBNMDAKB.js";
11
11
  import {
12
12
  command
13
13
  } from "./chunk-TXSA4Q3V.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-VHWGEJ4V.js";
6
6
  import {
7
7
  daemonFetch
8
- } from "./chunk-IFNSAOA4.js";
8
+ } from "./chunk-RBNMDAKB.js";
9
9
  import {
10
10
  command
11
11
  } from "./chunk-TXSA4Q3V.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-VHWGEJ4V.js";
5
5
  import {
6
6
  daemonFetch
7
- } from "./chunk-IFNSAOA4.js";
7
+ } from "./chunk-RBNMDAKB.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-IFNSAOA4.js";
4
+ } from "./chunk-RBNMDAKB.js";
5
5
  import {
6
6
  command
7
7
  } from "./chunk-TXSA4Q3V.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-IFNSAOA4.js";
4
+ } from "./chunk-RBNMDAKB.js";
5
5
  import {
6
6
  command
7
7
  } from "./chunk-TXSA4Q3V.js";
@@ -8,17 +8,17 @@ import {
8
8
  tagRecentInbound,
9
9
  tagUntaggedInbound,
10
10
  tagUntaggedOutbound
11
- } from "./chunk-52NMCDBS.js";
11
+ } from "./chunk-6G7R2LPI.js";
12
12
  import "./chunk-BLOAJLGI.js";
13
- import "./chunk-VSUZE2PD.js";
13
+ import "./chunk-43K5UWF7.js";
14
14
  import "./chunk-QLWG3C2Z.js";
15
- import "./chunk-JLX3GC7T.js";
15
+ import "./chunk-M3T3Y6FT.js";
16
16
  import "./chunk-YLTIEEVL.js";
17
17
  import "./chunk-CU6OFXMM.js";
18
18
  import "./chunk-WR7CSHQ4.js";
19
19
  import "./chunk-VBKRZCR7.js";
20
20
  import "./chunk-62ICA2FF.js";
21
- import "./chunk-TKOWXAHG.js";
21
+ import "./chunk-BWZHX46O.js";
22
22
  import "./chunk-GN52E2DP.js";
23
23
  import "./chunk-TFBQESH7.js";
24
24
  import "./chunk-4ZSUUBG5.js";
@@ -18,75 +18,75 @@ var cmd = subcommands({
18
18
  commands: {
19
19
  create: {
20
20
  description: "Create a new mind",
21
- run: (args) => import("./create-YNBZWD34.js").then((m) => m.run(args))
21
+ run: (args) => import("./create-ERNQYOCK.js").then((m) => m.run(args))
22
22
  },
23
23
  start: {
24
24
  description: "Start a mind",
25
- run: (args) => import("./start-5AYFGNS7.js").then((m) => m.run(args))
25
+ run: (args) => import("./start-5JE3TV66.js").then((m) => m.run(args))
26
26
  },
27
27
  stop: {
28
28
  description: "Stop a mind",
29
- run: (args) => import("./stop-WJ6IG6OK.js").then((m) => m.run(args))
29
+ run: (args) => import("./stop-AAMTG3TU.js").then((m) => m.run(args))
30
30
  },
31
31
  restart: {
32
32
  description: "Restart a mind",
33
- run: (args) => import("./restart-43A5MBGV.js").then((m) => m.run(args))
33
+ run: (args) => import("./restart-FJQ662XJ.js").then((m) => m.run(args))
34
34
  },
35
35
  delete: {
36
36
  description: "Delete a mind",
37
- run: (args) => import("./delete-4ND5PLE7.js").then((m) => m.run(args))
37
+ run: (args) => import("./delete-BFMIGAIB.js").then((m) => m.run(args))
38
38
  },
39
39
  list: {
40
40
  description: "List all minds",
41
- run: (args) => import("./mind-list-2T353Q5G.js").then((m) => m.run(args))
41
+ run: (args) => import("./mind-list-4D7J4CHD.js").then((m) => m.run(args))
42
42
  },
43
43
  status: {
44
44
  description: "Check mind status",
45
- run: (args) => import("./mind-status-CG66OXDK.js").then((m) => m.run(args))
45
+ run: (args) => import("./mind-status-UO34ASXZ.js").then((m) => m.run(args))
46
46
  },
47
47
  history: {
48
48
  description: "View mind activity history",
49
- run: (args) => import("./mind-history-TDUQFYAG.js").then((m) => m.run(transformMindFlag(args)))
49
+ run: (args) => import("./mind-history-VRO5A76U.js").then((m) => m.run(transformMindFlag(args)))
50
50
  },
51
51
  profile: {
52
52
  description: "Update mind profile",
53
- run: (args) => import("./mind-profile-2HHR7LZ7.js").then((m) => m.run(args))
53
+ run: (args) => import("./mind-profile-PEQYASQX.js").then((m) => m.run(args))
54
54
  },
55
55
  upgrade: {
56
56
  description: "Upgrade mind to latest template",
57
- run: (args) => import("./upgrade-QB7AHIKX.js").then((m) => m.run(args))
57
+ run: (args) => import("./upgrade-37DAGF6H.js").then((m) => m.run(args))
58
58
  },
59
59
  import: {
60
60
  description: "Import an OpenClaw workspace",
61
- run: (args) => import("./import-V6QEHMPQ.js").then((m) => m.run(args))
61
+ run: (args) => import("./import-EPK6WCYS.js").then((m) => m.run(args))
62
62
  },
63
63
  export: {
64
64
  description: "Export a mind",
65
- run: (args) => import("./export-5DOQV2WM.js").then((m) => m.run(args))
65
+ run: (args) => import("./export-WYI3E3TB.js").then((m) => m.run(args))
66
66
  },
67
67
  split: {
68
68
  description: "Create a variant",
69
- run: (args) => import("./split-5IBUODEE.js").then((m) => m.run(args))
69
+ run: (args) => import("./split-WBMZXBHF.js").then((m) => m.run(args))
70
70
  },
71
71
  join: {
72
72
  description: "Merge variant back",
73
- run: (args) => import("./join-4S3KT7NE.js").then((m) => m.run(args))
73
+ run: (args) => import("./join-RXPXGV4L.js").then((m) => m.run(args))
74
74
  },
75
75
  sleep: {
76
76
  description: "Put a mind to sleep",
77
- run: (args) => import("./mind-sleep-4NXV4J4U.js").then((m) => m.run(args))
77
+ run: (args) => import("./mind-sleep-YMBR3I35.js").then((m) => m.run(args))
78
78
  },
79
79
  wake: {
80
80
  description: "Wake a sleeping mind",
81
- run: (args) => import("./mind-wake-TNB54DBR.js").then((m) => m.run(args))
81
+ run: (args) => import("./mind-wake-LCLGTXA2.js").then((m) => m.run(args))
82
82
  },
83
83
  seed: {
84
84
  description: "(legacy) Use 'volute seed create' instead",
85
- run: (args) => import("./seed-YQAOIXIY.js").then((m) => m.run(args))
85
+ run: (args) => import("./seed-SKVSWF7S.js").then((m) => m.run(args))
86
86
  },
87
87
  sprout: {
88
88
  description: "(legacy) Use 'volute seed sprout' instead",
89
- run: (args) => import("./sprout-B27C2WGE.js").then((m) => m.run(args))
89
+ run: (args) => import("./sprout-QV2RJM5W.js").then((m) => m.run(args))
90
90
  }
91
91
  },
92
92
  footer: "Mind name can be omitted (where applicable) if VOLUTE_MIND is set."
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-BTY4WNFE.js";
9
9
  import {
10
10
  daemonFetch
11
- } from "./chunk-IFNSAOA4.js";
11
+ } from "./chunk-RBNMDAKB.js";
12
12
  import {
13
13
  getClient,
14
14
  urlOf
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-IFNSAOA4.js";
4
+ } from "./chunk-RBNMDAKB.js";
5
5
  import {
6
6
  command
7
7
  } from "./chunk-TXSA4Q3V.js";