volute 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/{auth-X6EMNEGB.js → auth-KRDSM55Q.js} +3 -1
  2. package/dist/{chunk-VAEZCIJC.js → chunk-724DVYHU.js} +8 -8
  3. package/dist/{chunk-HKP6OAJP.js → chunk-7LT3YZUR.js} +12 -0
  4. package/dist/{chunk-ICL6T4SN.js → chunk-AXFLY5GU.js} +11 -2
  5. package/dist/{chunk-DN3LKLYR.js → chunk-CW7BQKF6.js} +3 -3
  6. package/dist/{chunk-AI47FDGL.js → chunk-ITK6HV47.js} +1 -1
  7. package/dist/{chunk-VSBMLB2W.js → chunk-K2F237KS.js} +2 -2
  8. package/dist/{chunk-QT4D5XCI.js → chunk-RPPTGPYF.js} +1 -1
  9. package/dist/{chunk-7HN63Q7J.js → chunk-RU74YG46.js} +5 -5
  10. package/dist/{chunk-Q7XQLKZB.js → chunk-SW2U6HRB.js} +2 -2
  11. package/dist/{chunk-BSHZ23MS.js → chunk-XRWUQPCA.js} +2 -2
  12. package/dist/{chunk-CDKQJWGK.js → chunk-YVR6EHWL.js} +2 -2
  13. package/dist/{chunk-VP5PFNZO.js → chunk-ZEZQNP2G.js} +35 -19
  14. package/dist/cli.js +6 -6
  15. package/dist/{cloud-sync-GPXYPTIC.js → cloud-sync-H7EWZASD.js} +9 -9
  16. package/dist/{daemon-restart-2EWBRTN5.js → daemon-restart-4FWUA5JF.js} +1 -1
  17. package/dist/daemon.js +321 -186
  18. package/dist/{delete-O7PEFQDF.js → delete-CYVZUAV2.js} +4 -0
  19. package/dist/{delivery-manager-HGVZSEES.js → delivery-manager-VYXVKUMP.js} +4 -4
  20. package/dist/{echo-text-6ANI5HHN.js → echo-text-PEEV7FQU.js} +10 -10
  21. package/dist/{extensions-NY6WST33.js → extensions-N6L5NYTK.js} +9 -9
  22. package/dist/{join-PYA36HEC.js → join-KLRU72JJ.js} +10 -2
  23. package/dist/{message-delivery-JHMAJ2GU.js → message-delivery-7URC52ME.js} +9 -9
  24. package/dist/{mind-WF6QIXWV.js → mind-NEXGT3KE.js} +4 -4
  25. package/dist/{mind-service-DZCUUC7J.js → mind-service-E26ZQXDS.js} +9 -9
  26. package/dist/{package-B6O5APCZ.js → package-2W2XKSIP.js} +2 -2
  27. package/dist/{scheduler-TNBN54ZK.js → scheduler-JTTWZDYU.js} +4 -4
  28. package/dist/{seed-K2LYODIH.js → seed-64XEHRUP.js} +1 -1
  29. package/dist/{seed-cmd-2EWBTR6P.js → seed-cmd-UEL2QB3Q.js} +2 -2
  30. package/dist/{seed-create-VGTLU5FD.js → seed-create-4JRQDPGA.js} +1 -1
  31. package/dist/{seed-sprout-PILHJ3YS.js → seed-sprout-NIDIOJXT.js} +2 -2
  32. package/dist/{setup-MDPSK2XG.js → setup-4IX6PCD3.js} +1 -1
  33. package/dist/skills/volute-mind/references/variants.md +1 -1
  34. package/dist/{skills-NH2GQKAF.js → skills-MPUALV3S.js} +1 -1
  35. package/dist/{sleep-manager-7JXEQQ2P.js → sleep-manager-OFP2GFXF.js} +9 -9
  36. package/dist/{spirit-25JVAL3M.js → spirit-4ECYIVGE.js} +2 -2
  37. package/dist/{spirit-availability-PJDWZJ3J.js → spirit-availability-Y54Y3675.js} +10 -10
  38. package/dist/{sprout-EXUZMIOR.js → sprout-GJMZFRGZ.js} +1 -1
  39. package/dist/{system-events-ZPSH63QX.js → system-events-V43HDA3T.js} +3 -1
  40. package/dist/{turn-tracker-TAT2HGK6.js → turn-tracker-C5PVIC3B.js} +1 -1
  41. package/dist/{up-J7XCAH7P.js → up-H6LJZDRK.js} +1 -1
  42. package/dist/{variant-cleanup-YXN25ZVW.js → variant-cleanup-STC6B5HR.js} +4 -4
  43. package/dist/{version-notify-EN3KJ7HH.js → version-notify-LBVHH5YV.js} +1 -1
  44. package/dist/web-assets/assets/index-B_eYTa3R.js +97 -0
  45. package/dist/web-assets/assets/{index-BOyJ4Gqs.css → index-DhZrzddW.css} +1 -1
  46. package/dist/web-assets/index.html +2 -2
  47. package/package.json +2 -2
  48. package/templates/_base/src/lib/auto-commit.ts +49 -11
  49. package/dist/web-assets/assets/index-CrxBwnzp.js +0 -95
  50. /package/dist/{chunk-IWAVIJO2.js → chunk-VPOMJMV6.js} +0 -0
@@ -4,6 +4,7 @@ import {
4
4
  changePassword,
5
5
  countAdmins,
6
6
  createUser,
7
+ deleteExternalMindUser,
7
8
  deleteMindUser,
8
9
  deleteUser,
9
10
  getDisplayNames,
@@ -19,7 +20,7 @@ import {
19
20
  updateUserProfile,
20
21
  verifyUser,
21
22
  withSenderDisplayNames
22
- } from "./chunk-HKP6OAJP.js";
23
+ } from "./chunk-7LT3YZUR.js";
23
24
  import "./chunk-U54PJPTB.js";
24
25
  import "./chunk-QUSMYGNQ.js";
25
26
  import "./chunk-H6X6CKDN.js";
@@ -30,6 +31,7 @@ export {
30
31
  changePassword,
31
32
  countAdmins,
32
33
  createUser,
34
+ deleteExternalMindUser,
33
35
  deleteMindUser,
34
36
  deleteUser,
35
37
  getDisplayNames,
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  clearMind,
4
4
  summarizeOrphanedTurns
5
- } from "./chunk-CDKQJWGK.js";
5
+ } from "./chunk-YVR6EHWL.js";
6
6
  import {
7
7
  deliverEvent,
8
8
  recordNotice
9
- } from "./chunk-ICL6T4SN.js";
9
+ } from "./chunk-AXFLY5GU.js";
10
10
  import {
11
11
  getPrompt
12
12
  } from "./chunk-FXWBFDQR.js";
@@ -805,9 +805,9 @@ var MindManager = class {
805
805
  mlog.info(`started mind ${name} on port ${port}`);
806
806
  await this.deliverPendingContext(name);
807
807
  try {
808
- const { getSleepManagerIfReady } = await import("./sleep-manager-7JXEQQ2P.js");
808
+ const { getSleepManagerIfReady } = await import("./sleep-manager-OFP2GFXF.js");
809
809
  if (!getSleepManagerIfReady()?.isSleeping(name)) {
810
- const { flushQueuedEvents } = await import("./system-events-ZPSH63QX.js");
810
+ const { flushQueuedEvents } = await import("./system-events-V43HDA3T.js");
811
811
  const flushed = await flushQueuedEvents(name);
812
812
  if (flushed > 0) mlog.info(`redelivered ${flushed} pending event(s) to ${name}`);
813
813
  }
@@ -843,7 +843,7 @@ var MindManager = class {
843
843
  if (this.shuttingDown || this.stopping.has(name)) return;
844
844
  mlog.error(`mind ${name} exited with code ${code}`);
845
845
  try {
846
- const { getSleepManagerIfReady } = await import("./sleep-manager-7JXEQQ2P.js");
846
+ const { getSleepManagerIfReady } = await import("./sleep-manager-OFP2GFXF.js");
847
847
  const sleepMgr = getSleepManagerIfReady();
848
848
  const sleepState = sleepMgr?.getState(name);
849
849
  if (sleepState?.sleeping) {
@@ -873,7 +873,7 @@ var MindManager = class {
873
873
  (err) => mlog.warn(`failed to clear turn state for ${name} after crash`, logger_default.errorData(err))
874
874
  );
875
875
  try {
876
- const { getDeliveryManager } = await import("./delivery-manager-HGVZSEES.js");
876
+ const { getDeliveryManager } = await import("./delivery-manager-VYXVKUMP.js");
877
877
  getDeliveryManager().clearMindSessions(name);
878
878
  } catch (err) {
879
879
  if (!(err instanceof Error && err.message.includes("not initialized"))) {
@@ -939,7 +939,7 @@ var MindManager = class {
939
939
  mlog.warn(`failed to clear turn state for ${name} on stop`, logger_default.errorData(err));
940
940
  }
941
941
  try {
942
- const { getDeliveryManager } = await import("./delivery-manager-HGVZSEES.js");
942
+ const { getDeliveryManager } = await import("./delivery-manager-VYXVKUMP.js");
943
943
  getDeliveryManager().clearMindSessions(name);
944
944
  } catch (err) {
945
945
  if (!(err instanceof Error && err.message.includes("not initialized"))) {
@@ -947,7 +947,7 @@ var MindManager = class {
947
947
  }
948
948
  }
949
949
  try {
950
- const { clearEchoTextCache } = await import("./echo-text-6ANI5HHN.js");
950
+ const { clearEchoTextCache } = await import("./echo-text-PEEV7FQU.js");
951
951
  clearEchoTextCache(name);
952
952
  } catch (err) {
953
953
  mlog.debug(`failed to clear echo-text cache for ${name}`, logger_default.errorData(err));
@@ -3,6 +3,7 @@ import {
3
3
  broadcast
4
4
  } from "./chunk-U54PJPTB.js";
5
5
  import {
6
+ findMind,
6
7
  getDb,
7
8
  getSpiritName,
8
9
  isSpiritName
@@ -172,6 +173,16 @@ async function deleteUser(id) {
172
173
  if (!target) throw new Error("User not found");
173
174
  await db.delete(users).where(and(eq(users.id, id), eq(users.user_type, "human")));
174
175
  }
176
+ async function deleteExternalMindUser(id) {
177
+ const db = await getDb();
178
+ const target = await db.select({ id: users.id, username: users.username, user_type: users.user_type }).from(users).where(eq(users.id, id)).get();
179
+ if (!target) throw new Error("User not found");
180
+ if (target.user_type !== "mind") throw new Error("Not a mind account");
181
+ if (await findMind(target.username)) {
182
+ throw new Error("Use the mind deletion API to delete minds");
183
+ }
184
+ await db.delete(users).where(eq(users.id, id));
185
+ }
175
186
  async function updateUserProfile(userId, profile) {
176
187
  const db = await getDb();
177
188
  const target = await db.select({ id: users.id }).from(users).where(eq(users.id, userId)).get();
@@ -210,6 +221,7 @@ export {
210
221
  countAdmins,
211
222
  setUserRole,
212
223
  deleteUser,
224
+ deleteExternalMindUser,
213
225
  updateUserProfile,
214
226
  syncMindProfile
215
227
  };
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-2RNMBXD2.js";
18
18
 
19
19
  // packages/daemon/src/lib/chat/system-events.ts
20
- import { and, asc, desc, eq, gt, isNull, lte, or, sql } from "drizzle-orm";
20
+ import { and, asc, desc, eq, gt, isNotNull, isNull, lt, lte, or, sql } from "drizzle-orm";
21
21
 
22
22
  // packages/daemon/src/lib/util/session-name.ts
23
23
  function newEphemeralSession() {
@@ -29,6 +29,7 @@ var elog = logger_default.child("system-events");
29
29
  var MIND_LEVEL_THREAD = "";
30
30
  var MAX_NEXT_TURN_EVENTS = 100;
31
31
  var FLUSH_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1e3;
32
+ var EVENT_RETENTION_MS = 30 * 24 * 60 * 60 * 1e3;
32
33
  function parseMeta(meta, context) {
33
34
  if (!meta) return {};
34
35
  try {
@@ -93,6 +94,8 @@ function eventLabel(type, meta) {
93
94
  return s("reason") ? `Notice: ${s("reason")}` : "Notice";
94
95
  case "delivery_failed":
95
96
  return "Delivery failed";
97
+ case "join_blocked":
98
+ return "Variant join blocked";
96
99
  default:
97
100
  return "Notice";
98
101
  }
@@ -241,7 +244,7 @@ async function deliverEvent(mind, input) {
241
244
  return { id: eventId, delivered: false };
242
245
  }
243
246
  const baseName = await getBaseName(mind);
244
- const { getSleepManagerIfReady } = await import("./sleep-manager-7JXEQQ2P.js");
247
+ const { getSleepManagerIfReady } = await import("./sleep-manager-OFP2GFXF.js");
245
248
  const sleepManager = getSleepManagerIfReady();
246
249
  const sleeping = !input.force && sleepManager?.isSleeping(baseName);
247
250
  const behavior = input.whileSleeping ?? "queue";
@@ -325,6 +328,11 @@ async function pendingEventCount(mind) {
325
328
  return 0;
326
329
  }
327
330
  }
331
+ async function cleanExpiredEvents() {
332
+ const db = await getDb();
333
+ const cutoff = new Date(Date.now() - EVENT_RETENTION_MS).toISOString().replace("T", " ").slice(0, 19);
334
+ await db.delete(systemEvents).where(and(isNotNull(systemEvents.delivered_at), lt(systemEvents.created_at, cutoff)));
335
+ }
328
336
  function pendingEventsLine(count) {
329
337
  if (count <= 0) return "";
330
338
  return `${count} system event${count === 1 ? "" : "s"} arrived while you slept and will follow shortly.`;
@@ -549,6 +557,7 @@ export {
549
557
  deliverEvent,
550
558
  flushQueuedEvents,
551
559
  pendingEventCount,
560
+ cleanExpiredEvents,
552
561
  pendingEventsLine,
553
562
  drainEvents,
554
563
  formatEvents,
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  getSleepManagerIfReady,
4
4
  startSpiritFull
5
- } from "./chunk-VP5PFNZO.js";
5
+ } from "./chunk-ZEZQNP2G.js";
6
6
  import {
7
7
  spiritCreationInProgress
8
- } from "./chunk-VSBMLB2W.js";
8
+ } from "./chunk-K2F237KS.js";
9
9
  import {
10
10
  MindStartupError,
11
11
  tryGetMindManager
12
- } from "./chunk-VAEZCIJC.js";
12
+ } from "./chunk-724DVYHU.js";
13
13
  import {
14
14
  logger_default
15
15
  } from "./chunk-QUSMYGNQ.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getMindManager
4
- } from "./chunk-VAEZCIJC.js";
4
+ } from "./chunk-724DVYHU.js";
5
5
  import {
6
6
  chownMindDir,
7
7
  gitExec
@@ -10,7 +10,7 @@ import {
10
10
  getSharedSkill,
11
11
  installSkill,
12
12
  mindSkillsDir
13
- } from "./chunk-QT4D5XCI.js";
13
+ } from "./chunk-RPPTGPYF.js";
14
14
  import {
15
15
  readVoluteConfig,
16
16
  writeVoluteConfig
@@ -192,7 +192,7 @@ async function notifySpiritSystemChange() {
192
192
  const config = readGlobalConfig();
193
193
  const name = config.name ?? "Volute";
194
194
  const desc = config.description ? ` \u2014 ${config.description}` : "";
195
- const { deliverEvent } = await import("./system-events-ZPSH63QX.js");
195
+ const { deliverEvent } = await import("./system-events-V43HDA3T.js");
196
196
  await deliverEvent(spiritName, {
197
197
  type: "notice",
198
198
  meta: { subtype: "identity-change" },
@@ -45,7 +45,7 @@ async function initDefaultSkills() {
45
45
  const config = readGlobalConfig();
46
46
  let extensionSkills = [];
47
47
  try {
48
- const { getExtensionStandardSkills } = await import("./extensions-NY6WST33.js");
48
+ const { getExtensionStandardSkills } = await import("./extensions-N6L5NYTK.js");
49
49
  extensionSkills = getExtensionStandardSkills();
50
50
  } catch (err) {
51
51
  logger_default.warn("failed to load extension standard skills during init", logger_default.errorData(err));
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  tryGetMindManager
4
- } from "./chunk-VAEZCIJC.js";
4
+ } from "./chunk-724DVYHU.js";
5
5
  import {
6
6
  extractTextContent,
7
7
  getRoutingConfig,
@@ -12,11 +12,11 @@ import {
12
12
  } from "./chunk-UDZLPR34.js";
13
13
  import {
14
14
  linkInboundToActiveTurn
15
- } from "./chunk-CDKQJWGK.js";
15
+ } from "./chunk-YVR6EHWL.js";
16
16
  import {
17
17
  MIND_LEVEL_THREAD,
18
18
  newEphemeralSession
19
- } from "./chunk-ICL6T4SN.js";
19
+ } from "./chunk-AXFLY5GU.js";
20
20
  import {
21
21
  publish
22
22
  } from "./chunk-LNNI3MS4.js";
@@ -243,12 +243,12 @@ var DeliveryManager = class {
243
243
  isMindRunning = (name) => tryGetMindManager()?.isRunning(name) ?? false;
244
244
  /** Delivers a channel event to a mind (invites, release summaries); overridable in tests. */
245
245
  notify = async (mindName, text) => {
246
- const { deliverEvent } = await import("./system-events-ZPSH63QX.js");
246
+ const { deliverEvent } = await import("./system-events-V43HDA3T.js");
247
247
  await deliverEvent(mindName, { type: "channel", body: text });
248
248
  };
249
249
  /** Surfaces a dead-lettered delivery as a next-turn failure notice; overridable in tests. */
250
250
  notifyFailure = async (input) => {
251
- const { recordNotice } = await import("./system-events-ZPSH63QX.js");
251
+ const { recordNotice } = await import("./system-events-V43HDA3T.js");
252
252
  await recordNotice(input);
253
253
  };
254
254
  constructor() {
@@ -6,10 +6,10 @@ import {
6
6
  getMindToken,
7
7
  loadJsonMap,
8
8
  saveJsonMapAsync
9
- } from "./chunk-VAEZCIJC.js";
9
+ } from "./chunk-724DVYHU.js";
10
10
  import {
11
11
  deliverEvent
12
- } from "./chunk-ICL6T4SN.js";
12
+ } from "./chunk-AXFLY5GU.js";
13
13
  import {
14
14
  isSandboxEnabled,
15
15
  wrapForSandbox
@@ -5,11 +5,11 @@ import {
5
5
  } from "./chunk-L7BKTZ5U.js";
6
6
  import {
7
7
  recordOutbound
8
- } from "./chunk-VP5PFNZO.js";
8
+ } from "./chunk-ZEZQNP2G.js";
9
9
  import {
10
10
  getOrCreateMindUser,
11
11
  getUserByUsername
12
- } from "./chunk-HKP6OAJP.js";
12
+ } from "./chunk-7LT3YZUR.js";
13
13
  import {
14
14
  publish
15
15
  } from "./chunk-LNNI3MS4.js";
@@ -1060,11 +1060,11 @@ var Summarizer = class {
1060
1060
  }
1061
1061
  };
1062
1062
  async function reconcileWedgedTurns(idleMs) {
1063
- const { sweepWedgedTurns: sweepWedgedTurns2, summarizeOrphanedTurns: summarizeOrphanedTurns2 } = await import("./turn-tracker-TAT2HGK6.js");
1063
+ const { sweepWedgedTurns: sweepWedgedTurns2, summarizeOrphanedTurns: summarizeOrphanedTurns2 } = await import("./turn-tracker-C5PVIC3B.js");
1064
1064
  const wedged = await sweepWedgedTurns2(idleMs);
1065
1065
  if (wedged.length === 0) return;
1066
1066
  summarizeOrphanedTurns2(wedged);
1067
- const { tryGetDeliveryManager } = await import("./delivery-manager-HGVZSEES.js");
1067
+ const { tryGetDeliveryManager } = await import("./delivery-manager-VYXVKUMP.js");
1068
1068
  const dm = tryGetDeliveryManager();
1069
1069
  if (!dm) return;
1070
1070
  for (const t of wedged) {
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  spiritDir
4
- } from "./chunk-VSBMLB2W.js";
4
+ } from "./chunk-K2F237KS.js";
5
5
  import {
6
6
  getScheduler
7
- } from "./chunk-Q7XQLKZB.js";
7
+ } from "./chunk-SW2U6HRB.js";
8
8
  import {
9
9
  getDeliveryManager
10
- } from "./chunk-7HN63Q7J.js";
10
+ } from "./chunk-RU74YG46.js";
11
11
  import {
12
12
  getMindManager,
13
13
  resolveMindToken
14
- } from "./chunk-VAEZCIJC.js";
14
+ } from "./chunk-724DVYHU.js";
15
15
  import {
16
16
  extractTextContent,
17
17
  getRoutingConfig,
@@ -23,14 +23,14 @@ import {
23
23
  importSkillFromDir,
24
24
  removeSharedSkill,
25
25
  sharedSkillsDir
26
- } from "./chunk-QT4D5XCI.js";
26
+ } from "./chunk-RPPTGPYF.js";
27
27
  import {
28
28
  getOrCreateMindUser,
29
29
  getOrCreateSystemUser,
30
30
  getUser,
31
31
  getUserByUsername,
32
32
  syncMindProfile
33
- } from "./chunk-HKP6OAJP.js";
33
+ } from "./chunk-7LT3YZUR.js";
34
34
  import {
35
35
  MIND_LEVEL_THREAD,
36
36
  deliverEvent,
@@ -38,7 +38,7 @@ import {
38
38
  pendingEventCount,
39
39
  pendingEventsLine,
40
40
  recordNotice
41
- } from "./chunk-ICL6T4SN.js";
41
+ } from "./chunk-AXFLY5GU.js";
42
42
  import {
43
43
  publish as publish2
44
44
  } from "./chunk-LNNI3MS4.js";
@@ -891,8 +891,16 @@ async function startMindFull(name) {
891
891
  (err) => logger_default.error(`failed to ensure system DM for ${baseName}`, logger_default.errorData(err))
892
892
  );
893
893
  const dir = mindDir(baseName);
894
- getScheduler().loadSchedules(baseName);
895
- getSleepManagerIfReady()?.loadSleepConfig(baseName);
894
+ try {
895
+ getScheduler().loadSchedules(baseName);
896
+ } catch (err) {
897
+ logger_default.error(`failed to load schedules for ${baseName}`, logger_default.errorData(err));
898
+ }
899
+ try {
900
+ getSleepManagerIfReady()?.loadSleepConfig(baseName);
901
+ } catch (err) {
902
+ logger_default.error(`failed to load sleep config for ${baseName}`, logger_default.errorData(err));
903
+ }
896
904
  ensureMailAddress(baseName).catch(
897
905
  (err) => logger_default.error(`failed to ensure mail address for ${baseName}`, logger_default.errorData(err))
898
906
  );
@@ -906,16 +914,24 @@ async function startMindFull(name) {
906
914
  (err) => logger_default.warn(`failed to join #system for ${baseName}`, logger_default.errorData(err))
907
915
  );
908
916
  if (config?.tokenBudget) {
909
- getTokenBudget().setBudget(
910
- baseName,
911
- config.tokenBudget,
912
- config.tokenBudgetPeriodMinutes ?? DEFAULT_BUDGET_PERIOD_MINUTES
913
- );
917
+ try {
918
+ getTokenBudget().setBudget(
919
+ baseName,
920
+ config.tokenBudget,
921
+ config.tokenBudgetPeriodMinutes ?? DEFAULT_BUDGET_PERIOD_MINUTES
922
+ );
923
+ } catch (err) {
924
+ logger_default.error(`failed to set token budget for ${baseName}`, logger_default.errorData(err));
925
+ }
926
+ }
927
+ try {
928
+ notifyExtensionsMindStart(baseName);
929
+ } catch (err) {
930
+ logger_default.error(`failed to notify extensions of mind start for ${baseName}`, logger_default.errorData(err));
914
931
  }
915
- notifyExtensionsMindStart(baseName);
916
932
  }
917
933
  async function recordMissingCredentialsNotice(mind, template) {
918
- const { hasUndeliveredEvent, recordNotice: recordNotice2, MIND_LEVEL_THREAD: MIND_LEVEL_THREAD2 } = await import("./system-events-ZPSH63QX.js");
934
+ const { hasUndeliveredEvent, recordNotice: recordNotice2, MIND_LEVEL_THREAD: MIND_LEVEL_THREAD2 } = await import("./system-events-V43HDA3T.js");
919
935
  const warning = await missingCredentialWarning(template, readMindModel(mind, template), mind);
920
936
  if (!warning) return;
921
937
  if (await hasUndeliveredEvent(mind, "no_credentials")) return;
@@ -992,7 +1008,7 @@ function buildSeedOrientation(createdBy, creatorType) {
992
1008
  async function sendSeedOrientation(mindName, createdBy) {
993
1009
  let creatorType;
994
1010
  if (createdBy) {
995
- const { getUserByUsername: getUserByUsername2 } = await import("./auth-X6EMNEGB.js");
1011
+ const { getUserByUsername: getUserByUsername2 } = await import("./auth-KRDSM55Q.js");
996
1012
  creatorType = (await getUserByUsername2(createdBy))?.user_type;
997
1013
  }
998
1014
  await deliverEvent(mindName, {
@@ -1001,7 +1017,7 @@ async function sendSeedOrientation(mindName, createdBy) {
1001
1017
  });
1002
1018
  }
1003
1019
  async function ensureCreatorDM(mindName, creatorUsername) {
1004
- const { getOrCreateMindUser: getOrCreateMindUser2, getUserByUsername: getUserByUsername2 } = await import("./auth-X6EMNEGB.js");
1020
+ const { getOrCreateMindUser: getOrCreateMindUser2, getUserByUsername: getUserByUsername2 } = await import("./auth-KRDSM55Q.js");
1005
1021
  const { findDMConversation: findDMConversation2, createConversation: createConversation2 } = await import("./conversations-ZL6PHROD.js");
1006
1022
  const mindUser = await getOrCreateMindUser2(mindName);
1007
1023
  const creatorUser = await getUserByUsername2(creatorUsername);
@@ -1420,7 +1436,7 @@ var SleepManager = class {
1420
1436
  * the real delivery stack. Returns whether the batch was handed off to the mind.
1421
1437
  */
1422
1438
  async deliverQueuedBatch(name, payloads) {
1423
- const { deliverBatch: deliverBatch2 } = await import("./message-delivery-JHMAJ2GU.js");
1439
+ const { deliverBatch: deliverBatch2 } = await import("./message-delivery-7URC52ME.js");
1424
1440
  return deliverBatch2(name, payloads);
1425
1441
  }
1426
1442
  // --- Wake failure handling (#419) ---
package/dist/cli.js CHANGED
@@ -10,7 +10,7 @@ if (!process.env.VOLUTE_HOME) {
10
10
  var command = process.argv[2];
11
11
  var args = process.argv.slice(3);
12
12
  if (command === "--version" || command === "-v") {
13
- const { default: pkg } = await import("./package-B6O5APCZ.js");
13
+ const { default: pkg } = await import("./package-2W2XKSIP.js");
14
14
  console.log(pkg.version);
15
15
  process.exit(0);
16
16
  }
@@ -56,13 +56,13 @@ if (!isMind && !ungatedCommands.has(command)) {
56
56
  }
57
57
  switch (command) {
58
58
  case "setup":
59
- await import("./setup-MDPSK2XG.js").then((m) => m.run(args));
59
+ await import("./setup-4IX6PCD3.js").then((m) => m.run(args));
60
60
  break;
61
61
  case "mind":
62
- await import("./mind-WF6QIXWV.js").then((m) => m.run(args));
62
+ await import("./mind-NEXGT3KE.js").then((m) => m.run(args));
63
63
  break;
64
64
  case "seed":
65
- await import("./seed-cmd-2EWBTR6P.js").then((m) => m.run(args));
65
+ await import("./seed-cmd-UEL2QB3Q.js").then((m) => m.run(args));
66
66
  break;
67
67
  case "chat":
68
68
  await import("./chat-VAZ25KVT.js").then((m) => m.run(args));
@@ -83,7 +83,7 @@ switch (command) {
83
83
  await import("./config-UGJS57VT.js").then((m) => m.run(args));
84
84
  break;
85
85
  case "up":
86
- await import("./up-J7XCAH7P.js").then((m) => m.run(args));
86
+ await import("./up-H6LJZDRK.js").then((m) => m.run(args));
87
87
  break;
88
88
  case "backup":
89
89
  await import("./backup-YVGV2ZNM.js").then((m) => m.run(args));
@@ -92,7 +92,7 @@ switch (command) {
92
92
  await import("./down-QSNEMTTX.js").then((m) => m.run(args));
93
93
  break;
94
94
  case "restart":
95
- await import("./daemon-restart-2EWBRTN5.js").then((m) => m.run(args));
95
+ await import("./daemon-restart-4FWUA5JF.js").then((m) => m.run(args));
96
96
  break;
97
97
  case "update":
98
98
  await import("./update-CIWI2JYA.js").then((m) => m.run(args));
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  deliverMessage
4
- } from "./chunk-VP5PFNZO.js";
5
- import "./chunk-VSBMLB2W.js";
4
+ } from "./chunk-ZEZQNP2G.js";
5
+ import "./chunk-K2F237KS.js";
6
6
  import "./chunk-X67BDDZR.js";
7
- import "./chunk-Q7XQLKZB.js";
8
- import "./chunk-7HN63Q7J.js";
9
- import "./chunk-VAEZCIJC.js";
7
+ import "./chunk-SW2U6HRB.js";
8
+ import "./chunk-RU74YG46.js";
9
+ import "./chunk-724DVYHU.js";
10
10
  import "./chunk-UDZLPR34.js";
11
- import "./chunk-CDKQJWGK.js";
12
- import "./chunk-QT4D5XCI.js";
13
- import "./chunk-HKP6OAJP.js";
14
- import "./chunk-ICL6T4SN.js";
11
+ import "./chunk-YVR6EHWL.js";
12
+ import "./chunk-RPPTGPYF.js";
13
+ import "./chunk-7LT3YZUR.js";
14
+ import "./chunk-AXFLY5GU.js";
15
15
  import "./chunk-LNNI3MS4.js";
16
16
  import "./chunk-FXWBFDQR.js";
17
17
  import "./chunk-5Y54AE3L.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-5N32EN4O.js";
5
5
  import {
6
6
  run
7
- } from "./chunk-IWAVIJO2.js";
7
+ } from "./chunk-VPOMJMV6.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";