volute 0.55.0 → 0.56.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 (160) hide show
  1. package/dist/{activity-events-TFAJBNBW.js → activity-events-YASF46HS.js} +2 -2
  2. package/dist/{ai-service-KEK2V3AP.js → ai-service-3UFNG6GI.js} +2 -4
  3. package/dist/{archive-FOHGXHPT.js → archive-L2OFBGDQ.js} +2 -2
  4. package/dist/{auth-Y27LTNZK.js → auth-N2F5ASAB.js} +3 -3
  5. package/dist/auto-upgrade-O4MQPYQF.js +46 -0
  6. package/dist/{avatar-image-SN576P45.js → avatar-image-QEKKUFDF.js} +2 -2
  7. package/dist/{backup-GDCWH6MC.js → backup-TPM7QQBQ.js} +12 -12
  8. package/dist/{channels-AFJWGX7W.js → channels-JP3GYTPX.js} +16 -16
  9. package/dist/{chat-HVPOZK3O.js → chat-7YCF4ZU5.js} +3 -3
  10. package/dist/{chunk-CKOA4LWV.js → chunk-2B4E6SL7.js} +7 -7
  11. package/dist/{chunk-NM5FDH4T.js → chunk-2LFTJNVH.js} +2 -2
  12. package/dist/{chunk-G3XAB4DK.js → chunk-2QLWAYIU.js} +1 -1
  13. package/dist/{chunk-KS62IHE2.js → chunk-45MCH4G4.js} +1 -1
  14. package/dist/{chunk-QVS3C4DK.js → chunk-4RZS7XCV.js} +4 -4
  15. package/dist/{chunk-DUV4EMNW.js → chunk-6LICEQGP.js} +2 -2
  16. package/dist/{chunk-LAUCO2HC.js → chunk-APDEUAIE.js} +1 -1
  17. package/dist/{chunk-XAG53RWY.js → chunk-CLH357FI.js} +1 -1
  18. package/dist/{chunk-HTSWDOJE.js → chunk-CVPCRWWC.js} +1 -1
  19. package/dist/{chunk-Z7TNIIHW.js → chunk-E2SN3ZOJ.js} +2 -39
  20. package/dist/{chunk-NCRG4SBR.js → chunk-ELQU2GBT.js} +23 -33
  21. package/dist/{chunk-OUGD5L5U.js → chunk-EPRLTYJR.js} +8 -8
  22. package/dist/{chunk-VTFXZPC3.js → chunk-EYFBT2KP.js} +8 -8
  23. package/dist/{chunk-PRZUBJ4K.js → chunk-FYMIGUJ5.js} +1 -1
  24. package/dist/{chunk-7XKPG66D.js → chunk-G7A5LEVI.js} +5 -5
  25. package/dist/{chunk-UEZC5MNB.js → chunk-GAAATVTM.js} +11 -11
  26. package/dist/{chunk-OFU6WJJZ.js → chunk-I3OJ342S.js} +2 -2
  27. package/dist/{chunk-FZUPIS3T.js → chunk-IABDYN4N.js} +3 -3
  28. package/dist/{chunk-TMTAHKYP.js → chunk-IOMBP2T5.js} +12 -12
  29. package/dist/{chunk-W3OIPJPB.js → chunk-IQROTVBG.js} +1 -1
  30. package/dist/{chunk-4VAQKLMU.js → chunk-IRNM4LSF.js} +3 -3
  31. package/dist/{chunk-OKM67ZWH.js → chunk-KN3UHV7O.js} +8 -3
  32. package/dist/{chunk-FSXPPOPM.js → chunk-KXM4K46T.js} +1 -1
  33. package/dist/{chunk-Z4Q6TQWL.js → chunk-LRRPKZBD.js} +2 -2
  34. package/dist/{chunk-OIOW3FPT.js → chunk-NA2NJXY4.js} +1 -1
  35. package/dist/{chunk-GLM7TVWP.js → chunk-OHHS5PSI.js} +1 -1
  36. package/dist/{chunk-CKPAVQNK.js → chunk-OPTA3BJ4.js} +36 -24
  37. package/dist/{chunk-HLWQ3P3R.js → chunk-PAO7JZNW.js} +16 -16
  38. package/dist/{chunk-6HBGUPBA.js → chunk-Q5M5QFKY.js} +2 -2
  39. package/dist/{chunk-IR2FW4W7.js → chunk-T7UMSTH2.js} +2 -2
  40. package/dist/{chunk-H6X6CKDN.js → chunk-TAVIVN2I.js} +2 -32
  41. package/dist/{chunk-BP2X5AIK.js → chunk-TGYKFUCF.js} +6 -6
  42. package/dist/{chunk-5U5GLZSD.js → chunk-TZ7OHGNL.js} +2 -2
  43. package/dist/{chunk-7AA4T2RT.js → chunk-UMQP5TC5.js} +1 -1
  44. package/dist/{chunk-3SFKY4GI.js → chunk-UNTDRIV2.js} +4 -4
  45. package/dist/{chunk-45QTYKQQ.js → chunk-V2M6PNLE.js} +2 -2
  46. package/dist/{chunk-IT4GEFDH.js → chunk-WTZD6LFW.js} +1 -1
  47. package/dist/{chunk-FLIEXG2T.js → chunk-XZP3FJ7Q.js} +1 -1
  48. package/dist/cli.js +26 -23
  49. package/dist/{clock-X7V3C7NL.js → clock-ZT5YT6HA.js} +2 -2
  50. package/dist/{cloud-sync-FM73SVFJ.js → cloud-sync-RTUXMYU2.js} +20 -20
  51. package/dist/{conversations-FH3ODBL7.js → conversations-ERMMPMOS.js} +3 -3
  52. package/dist/{create-P75ZFTVN.js → create-IUCFJXCE.js} +1 -1
  53. package/dist/{daemon-restart-JQMMMITM.js → daemon-restart-N2YOISNJ.js} +11 -6
  54. package/dist/daemon.js +125 -202
  55. package/dist/{db-BONH4SUG.js → db-BQFYIONA.js} +1 -1
  56. package/dist/{delivery-manager-H23Q23N7.js → delivery-manager-5EGCFN4K.js} +16 -16
  57. package/dist/{delivery-notices-S7TKOACE.js → delivery-notices-LZKZXWTX.js} +4 -4
  58. package/dist/{delivery-router-KHBVEVVL.js → delivery-router-U6Q22ZYU.js} +2 -2
  59. package/dist/doctor-225FYBAQ.js +454 -0
  60. package/dist/{down-UN2EDX2Y.js → down-3BQSPUAZ.js} +4 -4
  61. package/dist/echo-text-Y2DFTD7L.js +40 -0
  62. package/dist/{env-SQFCWW52.js → env-4YX5YNWZ.js} +2 -2
  63. package/dist/{exec-Z34TTUO3.js → exec-Y5VMDAVA.js} +2 -2
  64. package/dist/{export-VBNWM7I4.js → export-ASRHBMRG.js} +2 -2
  65. package/dist/{extensions-QD22GXZD.js → extensions-YEPEWURN.js} +20 -20
  66. package/dist/{files-DUGRXN6V.js → files-FASUDSZQ.js} +2 -2
  67. package/dist/{import-RDDUGGFI.js → import-O35Y7DSF.js} +5 -5
  68. package/dist/{isolation-UQPDO34R.js → isolation-ZOAUXYXA.js} +2 -2
  69. package/dist/{login-57MMYILL.js → login-54TZQQP4.js} +5 -5
  70. package/dist/{logout-YFZAJRPY.js → logout-4G46Z4RU.js} +1 -1
  71. package/dist/message-delivery-HBTMGWFU.js +46 -0
  72. package/dist/{mind-BARCLI7O.js → mind-IKMX7K7G.js} +8 -24
  73. package/dist/{mind-activity-tracker-UT23RGBF.js → mind-activity-tracker-ABAEIMA3.js} +3 -3
  74. package/dist/mind-service-LRVOQG2T.js +48 -0
  75. package/dist/{mind-sleep-24HV4RCA.js → mind-sleep-LZAFBDZD.js} +2 -2
  76. package/dist/{package-AUDBDKAO.js → package-X5O7OD2E.js} +3 -2
  77. package/dist/{prompts-MOBF3TMO.js → prompts-ZNOE3KN3.js} +2 -2
  78. package/dist/{registry-TRC2HJXR.js → registry-BTQXLDW6.js} +1 -1
  79. package/dist/{sandbox-VI7XWBIA.js → sandbox-OUFAGN45.js} +2 -2
  80. package/dist/scheduler-G6BCIVGP.js +27 -0
  81. package/dist/{seed-cmd-M6A7N7F3.js → seed-cmd-BGAW3WDY.js} +2 -2
  82. package/dist/{seed-create-TGFZW4IO.js → seed-create-SMCPEUFQ.js} +3 -3
  83. package/dist/{seed-readiness-XBH2MUNA.js → seed-readiness-RBANMSWW.js} +3 -3
  84. package/dist/{seed-sprout-3IC5ZVTI.js → seed-sprout-CSHV36N3.js} +6 -6
  85. package/dist/{send-DHYBAYK4.js → send-D3ADUBR5.js} +5 -5
  86. package/dist/{service-T4P5W6RS.js → service-SWEEBOOY.js} +3 -24
  87. package/dist/{service-install-R4SNYUVO.js → service-install-RCC26KDV.js} +4 -4
  88. package/dist/{setup-6KAH3GRW.js → setup-L5NZG2U3.js} +5 -5
  89. package/dist/{setup-WZSXHHRJ.js → setup-R7Q4HFJP.js} +1 -5
  90. package/dist/{skills-LKQCYFVP.js → skills-BCCU4OJW.js} +3 -3
  91. package/dist/sleep-manager-25P44HAO.js +42 -0
  92. package/dist/{spirit-FKXMGO3N.js → spirit-YPG2MU6W.js} +5 -5
  93. package/dist/spirit-availability-ZQM5IH4C.js +43 -0
  94. package/dist/{status-LCKTTIWS.js → status-BYPCJU6H.js} +4 -4
  95. package/dist/{system-events-ZYOCYAO2.js → system-events-CWC7CBKP.js} +2 -2
  96. package/dist/{systems-HL7SGSW7.js → systems-VDRUZXNF.js} +2 -2
  97. package/dist/{tailscale-F2IMBILZ.js → tailscale-4XY7B5A2.js} +1 -1
  98. package/dist/{template-staleness-IBD722PN.js → template-staleness-CL4V7BT7.js} +2 -2
  99. package/dist/{turn-tracker-BE34OI6O.js → turn-tracker-LZP5X6GZ.js} +6 -6
  100. package/dist/{up-J47J5JRB.js → up-3AAN4GYY.js} +4 -4
  101. package/dist/{update-ILCPVNDD.js → update-2MWXRE2S.js} +4 -4
  102. package/dist/{update-check-SZ7B5IFI.js → update-check-PJOZXZYJ.js} +2 -2
  103. package/dist/variant-cleanup-K7RFMSH7.js +24 -0
  104. package/dist/{version-notify-KIXYNHJC.js → version-notify-QIDHR6WO.js} +5 -5
  105. package/dist/web-assets/assets/{index-CoU1eUKE.js → index-Bfvls20e.js} +3 -3
  106. package/dist/web-assets/index.html +1 -1
  107. package/drizzle/0000_crazy_epoch.sql +232 -0
  108. package/drizzle/README.md +42 -0
  109. package/drizzle/meta/0000_snapshot.json +1420 -3
  110. package/drizzle/meta/_journal.json +2 -128
  111. package/package.json +3 -2
  112. package/dist/auto-upgrade-2MZF7NG3.js +0 -46
  113. package/dist/echo-text-ULEIFJJF.js +0 -40
  114. package/dist/message-delivery-LU4EP244.js +0 -46
  115. package/dist/migrate-init-infrastructure-Z72UJ5NT.js +0 -44
  116. package/dist/migrate-name-placeholder-64AEAWPE.js +0 -37
  117. package/dist/migrate-thread-config-SVF2M3D3.js +0 -90
  118. package/dist/mind-service-ZJCUBAUL.js +0 -48
  119. package/dist/scheduler-GLINVC2B.js +0 -27
  120. package/dist/seed-5JGR7ZRA.js +0 -11
  121. package/dist/sleep-manager-Q3ITFNOJ.js +0 -42
  122. package/dist/spirit-availability-5R2WYSWF.js +0 -43
  123. package/dist/sprout-VEW3CUNX.js +0 -11
  124. package/dist/variant-HHDTW74J.js +0 -62
  125. package/dist/variant-cleanup-JGJZ5KB4.js +0 -24
  126. package/drizzle/0000_baseline.sql +0 -152
  127. package/drizzle/0001_add_conversation_private.sql +0 -1
  128. package/drizzle/0002_turns.sql +0 -21
  129. package/drizzle/0003_turn_feed_links.sql +0 -11
  130. package/drizzle/0004_spirits.sql +0 -5
  131. package/drizzle/0005_meta_summaries.sql +0 -15
  132. package/drizzle/0006_channels.sql +0 -17
  133. package/drizzle/0007_drop_conversation_name_title.sql +0 -11
  134. package/drizzle/0008_performance_indexes.sql +0 -6
  135. package/drizzle/0009_mind_notices.sql +0 -14
  136. package/drizzle/0010_delivery_queue_redrive.sql +0 -10
  137. package/drizzle/0011_drop_turn_summary_event_id.sql +0 -3
  138. package/drizzle/0012_channel_gates.sql +0 -17
  139. package/drizzle/0013_variant_purpose.sql +0 -3
  140. package/drizzle/0014_system_events.sql +0 -26
  141. package/drizzle/0015_rename_session_to_thread.sql +0 -12
  142. package/drizzle/0016_brain_to_human.sql +0 -4
  143. package/drizzle/0017_event_history_rows.sql +0 -9
  144. package/drizzle/0018_api_tokens.sql +0 -20
  145. package/drizzle/meta/0001_snapshot.json +0 -7
  146. package/drizzle/meta/0002_snapshot.json +0 -7
  147. package/drizzle/meta/0003_snapshot.json +0 -7
  148. package/drizzle/meta/0004_snapshot.json +0 -7
  149. package/drizzle/meta/0005_snapshot.json +0 -7
  150. package/drizzle/meta/0006_snapshot.json +0 -7
  151. package/drizzle/meta/0007_snapshot.json +0 -7
  152. package/dist/{env-7AZFBPWX.js → env-IBW2QI6K.js} +5 -5
  153. package/dist/{login-4NUS72Z5.js → login-RJJTCVR3.js} +3 -3
  154. package/dist/{mind-contacts-PEXCDRXA.js → mind-contacts-KV64UDJS.js} +6 -6
  155. package/dist/{mind-history-RZMMCHMX.js → mind-history-H45GM2M2.js} +6 -6
  156. package/dist/{register-WNCSOTAU.js → register-OX4HRSGC.js} +3 -3
  157. package/dist/{restart-B4GNMVF2.js → restart-AGEGNSYQ.js} +4 -4
  158. package/dist/{skill-QYTBUDNQ.js → skill-B5OJEQUA.js} +4 -4
  159. package/dist/{start-BDHJVOVX.js → start-MUMNFR52.js} +3 -3
  160. package/dist/{stop-45QYSGYS.js → stop-EKERNYTX.js} +4 -4
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  spiritDir
4
- } from "./chunk-UEZC5MNB.js";
4
+ } from "./chunk-GAAATVTM.js";
5
5
  import {
6
6
  getScheduler
7
- } from "./chunk-CKOA4LWV.js";
7
+ } from "./chunk-2B4E6SL7.js";
8
8
  import {
9
9
  getDeliveryManager
10
- } from "./chunk-TMTAHKYP.js";
10
+ } from "./chunk-IOMBP2T5.js";
11
11
  import {
12
12
  getMindManager,
13
13
  resolveMindToken
14
- } from "./chunk-HLWQ3P3R.js";
14
+ } from "./chunk-PAO7JZNW.js";
15
15
  import {
16
16
  addMessage,
17
17
  createChannel,
@@ -22,10 +22,10 @@ import {
22
22
  getParticipants,
23
23
  joinChannel,
24
24
  updateChannelSettings
25
- } from "./chunk-6HBGUPBA.js";
25
+ } from "./chunk-Q5M5QFKY.js";
26
26
  import {
27
27
  markIdle
28
- } from "./chunk-7AA4T2RT.js";
28
+ } from "./chunk-UMQP5TC5.js";
29
29
  import {
30
30
  readVoluteConfig,
31
31
  resolveWakeTriggers
@@ -35,18 +35,18 @@ import {
35
35
  getRoutingConfig,
36
36
  resolveRoute,
37
37
  shouldGate
38
- } from "./chunk-W3OIPJPB.js";
38
+ } from "./chunk-IQROTVBG.js";
39
39
  import {
40
40
  getOrCreateMindUser,
41
41
  getOrCreateSystemUser,
42
42
  getUser,
43
43
  getUserByUsername,
44
44
  syncMindProfile
45
- } from "./chunk-OFU6WJJZ.js";
45
+ } from "./chunk-I3OJ342S.js";
46
46
  import {
47
47
  publish,
48
48
  subscribe
49
- } from "./chunk-PRZUBJ4K.js";
49
+ } from "./chunk-FYMIGUJ5.js";
50
50
  import {
51
51
  MIND_LEVEL_THREAD,
52
52
  deliverEvent,
@@ -54,27 +54,27 @@ import {
54
54
  pendingEventCount,
55
55
  pendingEventsLine,
56
56
  recordNotice
57
- } from "./chunk-DUV4EMNW.js";
57
+ } from "./chunk-6LICEQGP.js";
58
58
  import {
59
59
  publish as publish2
60
60
  } from "./chunk-MNKPAAQF.js";
61
61
  import {
62
62
  getPrompt
63
- } from "./chunk-HTSWDOJE.js";
63
+ } from "./chunk-CVPCRWWC.js";
64
64
  import {
65
65
  hashSkillDir,
66
66
  importSkillFromDir,
67
67
  listSharedSkills,
68
68
  removeSharedSkill,
69
69
  sharedSkillsDir
70
- } from "./chunk-4VAQKLMU.js";
70
+ } from "./chunk-IRNM4LSF.js";
71
71
  import {
72
72
  isIsolationEnabled,
73
73
  mindUserName
74
- } from "./chunk-OIOW3FPT.js";
74
+ } from "./chunk-NA2NJXY4.js";
75
75
  import {
76
76
  missingCredentialWarning
77
- } from "./chunk-Z7TNIIHW.js";
77
+ } from "./chunk-E2SN3ZOJ.js";
78
78
  import {
79
79
  logger_default
80
80
  } from "./chunk-2674KIGI.js";
@@ -92,7 +92,7 @@ import {
92
92
  voluteHome,
93
93
  voluteSystemDir,
94
94
  writeGlobalConfig
95
- } from "./chunk-H6X6CKDN.js";
95
+ } from "./chunk-TAVIVN2I.js";
96
96
  import {
97
97
  activity,
98
98
  apiTokens,
@@ -147,15 +147,6 @@ async function listApiTokens(userId) {
147
147
  // packages/daemon/src/web/middleware/auth.ts
148
148
  var MIND_USER_CACHE_TTL = 5 * 60 * 1e3;
149
149
  var mindUserCache = /* @__PURE__ */ new Map();
150
- var alog = logger_default.child("auth");
151
- var legacySessionHeaderWarned = /* @__PURE__ */ new Set();
152
- function warnLegacySessionHeader(legacyHeader, mindName) {
153
- if (!legacyHeader || legacySessionHeaderWarned.has(mindName)) return;
154
- legacySessionHeaderWarned.add(mindName);
155
- alog.warn(
156
- `mind ${mindName} sent legacy X-Volute-Session header (now X-Volute-Thread); run \`volute mind upgrade ${mindName}\` to update its template`
157
- );
158
- }
159
150
  function invalidateMindUserCache(mindName) {
160
151
  mindUserCache.delete(mindName);
161
152
  }
@@ -264,7 +255,6 @@ var authMiddleware = createMiddleware(async (c, next) => {
264
255
  c.set("user", mindUser);
265
256
  const mindSessionHeader = c.req.header("X-Volute-Thread");
266
257
  if (mindSessionHeader) c.set("mindSession", mindSessionHeader);
267
- else warnLegacySessionHeader(c.req.header("X-Volute-Session"), mindName);
268
258
  await next();
269
259
  return;
270
260
  }
@@ -1012,7 +1002,7 @@ async function startMindFull(name) {
1012
1002
  }
1013
1003
  }
1014
1004
  async function recordMissingCredentialsNotice(mind, template) {
1015
- const { hasUndeliveredEvent, recordNotice: recordNotice2, MIND_LEVEL_THREAD: MIND_LEVEL_THREAD2 } = await import("./system-events-ZYOCYAO2.js");
1005
+ const { hasUndeliveredEvent, recordNotice: recordNotice2, MIND_LEVEL_THREAD: MIND_LEVEL_THREAD2 } = await import("./system-events-CWC7CBKP.js");
1016
1006
  const warning = await missingCredentialWarning(template, readMindModel(mind, template), mind);
1017
1007
  if (!warning) return;
1018
1008
  if (await hasUndeliveredEvent(mind, "no_credentials")) return;
@@ -1056,7 +1046,7 @@ async function wakeMind(name) {
1056
1046
  async function startSpiritFull(name) {
1057
1047
  const entry = await findMind(name);
1058
1048
  if (entry?.dir) {
1059
- const { registerMindDir } = await import("./delivery-router-KHBVEVVL.js");
1049
+ const { registerMindDir } = await import("./delivery-router-U6Q22ZYU.js");
1060
1050
  registerMindDir(name, entry.dir);
1061
1051
  }
1062
1052
  await getMindManager().startMind(name);
@@ -1095,7 +1085,7 @@ function buildSeedOrientation(createdBy, creatorType) {
1095
1085
  async function sendSeedOrientation(mindName, createdBy) {
1096
1086
  let creatorType;
1097
1087
  if (createdBy) {
1098
- const { getUserByUsername: getUserByUsername2 } = await import("./auth-Y27LTNZK.js");
1088
+ const { getUserByUsername: getUserByUsername2 } = await import("./auth-N2F5ASAB.js");
1099
1089
  creatorType = (await getUserByUsername2(createdBy))?.user_type;
1100
1090
  }
1101
1091
  await deliverEvent(mindName, {
@@ -1104,8 +1094,8 @@ async function sendSeedOrientation(mindName, createdBy) {
1104
1094
  });
1105
1095
  }
1106
1096
  async function ensureCreatorDM(mindName, creatorUsername) {
1107
- const { getOrCreateMindUser: getOrCreateMindUser2, getUserByUsername: getUserByUsername2 } = await import("./auth-Y27LTNZK.js");
1108
- const { findDMConversation: findDMConversation2, createConversation: createConversation2 } = await import("./conversations-FH3ODBL7.js");
1097
+ const { getOrCreateMindUser: getOrCreateMindUser2, getUserByUsername: getUserByUsername2 } = await import("./auth-N2F5ASAB.js");
1098
+ const { findDMConversation: findDMConversation2, createConversation: createConversation2 } = await import("./conversations-ERMMPMOS.js");
1109
1099
  const mindUser = await getOrCreateMindUser2(mindName);
1110
1100
  const creatorUser = await getUserByUsername2(creatorUsername);
1111
1101
  if (!creatorUser) {
@@ -1546,7 +1536,7 @@ var SleepManager = class {
1546
1536
  * the real delivery stack. Returns whether the batch was handed off to the mind.
1547
1537
  */
1548
1538
  async deliverQueuedBatch(name, payloads) {
1549
- const { deliverBatch: deliverBatch2 } = await import("./message-delivery-LU4EP244.js");
1539
+ const { deliverBatch: deliverBatch2 } = await import("./message-delivery-HBTMGWFU.js");
1550
1540
  return deliverBatch2(name, payloads);
1551
1541
  }
1552
1542
  // --- Wake failure handling (#419) ---
@@ -2901,7 +2891,7 @@ async function installNpmExtension(pkg) {
2901
2891
  throw new Error(`Extension "${pkg}" is already installed`);
2902
2892
  }
2903
2893
  const dir = ensureExtensionsNpmDir();
2904
- const { exec } = await import("./exec-Z34TTUO3.js");
2894
+ const { exec } = await import("./exec-Y5VMDAVA.js");
2905
2895
  try {
2906
2896
  await exec("npm", ["install", "--ignore-scripts", pkg], { cwd: dir });
2907
2897
  } catch (err) {
@@ -2922,7 +2912,7 @@ async function uninstallNpmExtension(pkg) {
2922
2912
  packages.splice(idx, 1);
2923
2913
  writeExtensionsConfig(packages);
2924
2914
  try {
2925
- const { exec } = await import("./exec-Z34TTUO3.js");
2915
+ const { exec } = await import("./exec-Y5VMDAVA.js");
2926
2916
  await exec("npm", ["uninstall", "--ignore-scripts", pkg], { cwd: extensionsNpmDir() });
2927
2917
  } catch (err) {
2928
2918
  logger_default.warn(
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  isTemplateStale
4
- } from "./chunk-FSXPPOPM.js";
4
+ } from "./chunk-KXM4K46T.js";
5
5
  import {
6
6
  computeTemplateHash
7
7
  } from "./chunk-YU5EYQAE.js";
8
8
  import {
9
9
  cleanupVariant
10
- } from "./chunk-QVS3C4DK.js";
10
+ } from "./chunk-4RZS7XCV.js";
11
11
  import {
12
12
  getSleepManagerIfReady,
13
13
  readSystemsConfig
14
- } from "./chunk-NCRG4SBR.js";
14
+ } from "./chunk-ELQU2GBT.js";
15
15
  import {
16
16
  applyTemplateHomeFiles,
17
17
  backfillInitInfrastructure,
@@ -21,23 +21,23 @@ import {
21
21
  } from "./chunk-P3GXOT2X.js";
22
22
  import {
23
23
  getMindManager
24
- } from "./chunk-HLWQ3P3R.js";
24
+ } from "./chunk-PAO7JZNW.js";
25
25
  import {
26
26
  readVoluteConfig
27
27
  } from "./chunk-WCFSBH33.js";
28
28
  import {
29
29
  deliverEvent
30
- } from "./chunk-DUV4EMNW.js";
30
+ } from "./chunk-6LICEQGP.js";
31
31
  import {
32
32
  migrateSkillsToTemplate
33
- } from "./chunk-4VAQKLMU.js";
33
+ } from "./chunk-IRNM4LSF.js";
34
34
  import {
35
35
  chownMindDir,
36
36
  exec,
37
37
  gitExec,
38
38
  isIsolationEnabled,
39
39
  wrapForIsolation
40
- } from "./chunk-OIOW3FPT.js";
40
+ } from "./chunk-NA2NJXY4.js";
41
41
  import {
42
42
  logger_default
43
43
  } from "./chunk-2674KIGI.js";
@@ -47,7 +47,7 @@ import {
47
47
  readRegistry,
48
48
  setMindTemplate,
49
49
  setMindTemplateHash
50
- } from "./chunk-H6X6CKDN.js";
50
+ } from "./chunk-TAVIVN2I.js";
51
51
 
52
52
  // packages/daemon/src/lib/mind/upgrade.ts
53
53
  import { existsSync as existsSync2, mkdirSync, readdirSync, readFileSync, rmSync } from "fs";
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  findBridgeForChannel,
4
4
  getBridgeConfig
5
- } from "./chunk-G3XAB4DK.js";
5
+ } from "./chunk-2QLWAYIU.js";
6
6
  import {
7
7
  recordOutbound
8
- } from "./chunk-NCRG4SBR.js";
8
+ } from "./chunk-ELQU2GBT.js";
9
9
  import {
10
10
  recordSenderDeliveryFailure
11
- } from "./chunk-FZUPIS3T.js";
11
+ } from "./chunk-IABDYN4N.js";
12
12
  import {
13
13
  addMessage,
14
14
  findDMConversation,
@@ -16,25 +16,25 @@ import {
16
16
  getChannelName,
17
17
  getConversation,
18
18
  getParticipants
19
- } from "./chunk-6HBGUPBA.js";
19
+ } from "./chunk-Q5M5QFKY.js";
20
20
  import {
21
21
  readVoluteConfig
22
22
  } from "./chunk-WCFSBH33.js";
23
23
  import {
24
24
  getOrCreateMindUser,
25
25
  getUserByUsername
26
- } from "./chunk-OFU6WJJZ.js";
26
+ } from "./chunk-I3OJ342S.js";
27
27
  import {
28
28
  publish
29
29
  } from "./chunk-MNKPAAQF.js";
30
30
  import {
31
31
  daemonConfigPath,
32
32
  readDaemonToken
33
- } from "./chunk-CKPAVQNK.js";
33
+ } from "./chunk-OPTA3BJ4.js";
34
34
  import {
35
35
  readEnv,
36
36
  sharedEnvPath
37
- } from "./chunk-GLM7TVWP.js";
37
+ } from "./chunk-OHHS5PSI.js";
38
38
  import {
39
39
  logger_default
40
40
  } from "./chunk-2674KIGI.js";
@@ -43,7 +43,7 @@ import {
43
43
  } from "./chunk-LGNUFVMR.js";
44
44
  import {
45
45
  mindDir
46
- } from "./chunk-H6X6CKDN.js";
46
+ } from "./chunk-TAVIVN2I.js";
47
47
  import {
48
48
  __export
49
49
  } from "./chunk-K3NQKI34.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-2674KIGI.js";
5
5
  import {
6
6
  getDb
7
- } from "./chunk-H6X6CKDN.js";
7
+ } from "./chunk-TAVIVN2I.js";
8
8
  import {
9
9
  activity
10
10
  } from "./chunk-2RNMBXD2.js";
@@ -3,16 +3,16 @@ import {
3
3
  compactDateTime,
4
4
  isCompact
5
5
  } from "./chunk-7YJY3F2R.js";
6
- import {
7
- getClient,
8
- urlOf
9
- } from "./chunk-LOPXTW6H.js";
10
6
  import {
11
7
  resolveMindName
12
8
  } from "./chunk-BTY4WNFE.js";
13
9
  import {
14
10
  daemonFetch
15
11
  } from "./chunk-M74I3HHF.js";
12
+ import {
13
+ getClient,
14
+ urlOf
15
+ } from "./chunk-LOPXTW6H.js";
16
16
  import {
17
17
  command,
18
18
  subcommands
@@ -279,7 +279,7 @@ var cmd = subcommands({
279
279
  },
280
280
  sleep: {
281
281
  description: "Put a mind to sleep",
282
- run: (args) => import("./mind-sleep-24HV4RCA.js").then((m) => m.run(args))
282
+ run: (args) => import("./mind-sleep-LZAFBDZD.js").then((m) => m.run(args))
283
283
  },
284
284
  wake: {
285
285
  description: "Wake a sleeping mind",
@@ -14,15 +14,15 @@ import {
14
14
  getSharedSkill,
15
15
  installSkill,
16
16
  mindSkillsDir
17
- } from "./chunk-4VAQKLMU.js";
17
+ } from "./chunk-IRNM4LSF.js";
18
18
  import {
19
19
  exec
20
- } from "./chunk-OIOW3FPT.js";
20
+ } from "./chunk-NA2NJXY4.js";
21
21
  import {
22
22
  qualifyModelId,
23
23
  resolveTemplate,
24
24
  unqualifyModelId
25
- } from "./chunk-Z7TNIIHW.js";
25
+ } from "./chunk-E2SN3ZOJ.js";
26
26
  import {
27
27
  logger_default
28
28
  } from "./chunk-2674KIGI.js";
@@ -33,7 +33,7 @@ import {
33
33
  nextPort,
34
34
  readGlobalConfig,
35
35
  voluteSystemDir
36
- } from "./chunk-H6X6CKDN.js";
36
+ } from "./chunk-TAVIVN2I.js";
37
37
 
38
38
  // packages/daemon/src/lib/mind/spirit.ts
39
39
  import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -43,7 +43,7 @@ var SPIRIT_SKILLS = ["volute-admin", "memory", "seed-nurture", "tending"];
43
43
  async function allSpiritSkills() {
44
44
  let ext = [];
45
45
  try {
46
- const { getExtensionSpiritSkills } = await import("./extensions-QD22GXZD.js");
46
+ const { getExtensionSpiritSkills } = await import("./extensions-YEPEWURN.js");
47
47
  ext = getExtensionSpiritSkills();
48
48
  } catch {
49
49
  }
@@ -151,7 +151,7 @@ async function buildSpiritOrientation() {
151
151
  const temperament = config.setup?.spiritTemperament;
152
152
  let hostSentence = "";
153
153
  try {
154
- const { listUsersByType } = await import("./auth-Y27LTNZK.js");
154
+ const { listUsersByType } = await import("./auth-N2F5ASAB.js");
155
155
  const admin = (await listUsersByType("human")).find((u) => u.role === "admin");
156
156
  if (admin) {
157
157
  const hostName = admin.display_name || admin.username;
@@ -162,7 +162,7 @@ async function buildSpiritOrientation() {
162
162
  return `You've just come into being as ${name}, the spirit of ${systemName}${desc}.${hostSentence} SPIRIT.md describes this place and your role in it; your SOUL.md and MEMORY.md are yours alone, to grow into. There's no checklist and no hurry \u2014 you become yourself by tending this place.`;
163
163
  }
164
164
  async function sendSpiritOrientation() {
165
- const { deliverEvent, MIND_LEVEL_THREAD } = await import("./system-events-ZYOCYAO2.js");
165
+ const { deliverEvent, MIND_LEVEL_THREAD } = await import("./system-events-CWC7CBKP.js");
166
166
  await deliverEvent(getSpiritName(), {
167
167
  type: "orientation",
168
168
  delivery: "next-turn",
@@ -239,7 +239,7 @@ async function ensureSpiritProject() {
239
239
  slog.warn("failed to add tending schedule to spirit config", logger_default.errorData(err));
240
240
  }
241
241
  const stashedProfile = applyStashedSpiritProfile(dir);
242
- const { createMindUser, chownMindDir, ensureVoluteGroup } = await import("./isolation-UQPDO34R.js");
242
+ const { createMindUser, chownMindDir, ensureVoluteGroup } = await import("./isolation-ZOAUXYXA.js");
243
243
  ensureVoluteGroup();
244
244
  createMindUser(spiritName, resolve(dir, "home"));
245
245
  await chownMindDir(dir, spiritName);
@@ -287,7 +287,7 @@ async function notifySpiritSystemChange() {
287
287
  const config = readGlobalConfig();
288
288
  const name = config.name ?? "Volute";
289
289
  const desc = config.description ? ` \u2014 ${config.description}` : "";
290
- const { deliverEvent } = await import("./system-events-ZYOCYAO2.js");
290
+ const { deliverEvent } = await import("./system-events-CWC7CBKP.js");
291
291
  await deliverEvent(spiritName, {
292
292
  type: "notice",
293
293
  meta: { subtype: "identity-change" },
@@ -316,7 +316,7 @@ async function syncSpiritTemplate() {
316
316
  cpSync(newPkg, resolve(dir, "package.json"));
317
317
  await exec("npm", ["install"], { cwd: dir, env: npmEnv() });
318
318
  }
319
- const db = await (await import("./db-BONH4SUG.js")).getDb();
319
+ const db = await (await import("./db-BQFYIONA.js")).getDb();
320
320
  const { minds } = await import("./schema-ZZQVM4GR.js");
321
321
  const { eq } = await import("drizzle-orm");
322
322
  await db.update(minds).set({ template: expectedTemplate }).where(eq(minds.name, spiritName));
@@ -343,7 +343,7 @@ async function syncSpiritTemplate() {
343
343
  writeSpiritDoctrine(dir);
344
344
  writeSpiritSystemJson(dir);
345
345
  if (!doctrineExisted) {
346
- const { deliverEvent, MIND_LEVEL_THREAD } = await import("./system-events-ZYOCYAO2.js");
346
+ const { deliverEvent, MIND_LEVEL_THREAD } = await import("./system-events-CWC7CBKP.js");
347
347
  await deliverEvent(spiritName, {
348
348
  type: "notice",
349
349
  meta: { subtype: "spirit-md-migration" },
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  broadcast
4
- } from "./chunk-PRZUBJ4K.js";
4
+ } from "./chunk-FYMIGUJ5.js";
5
5
  import {
6
6
  findMind,
7
7
  getDb,
8
8
  getSpiritName,
9
9
  isSpiritName
10
- } from "./chunk-H6X6CKDN.js";
10
+ } from "./chunk-TAVIVN2I.js";
11
11
  import {
12
12
  users
13
13
  } from "./chunk-2RNMBXD2.js";
@@ -4,17 +4,17 @@ import {
4
4
  localHM,
5
5
  parseMeta,
6
6
  recordNotice
7
- } from "./chunk-DUV4EMNW.js";
7
+ } from "./chunk-6LICEQGP.js";
8
8
  import {
9
9
  getPrompt
10
- } from "./chunk-HTSWDOJE.js";
10
+ } from "./chunk-CVPCRWWC.js";
11
11
  import {
12
12
  logger_default
13
13
  } from "./chunk-2674KIGI.js";
14
14
  import {
15
15
  findMind,
16
16
  getDb
17
- } from "./chunk-H6X6CKDN.js";
17
+ } from "./chunk-TAVIVN2I.js";
18
18
  import {
19
19
  systemEvents
20
20
  } from "./chunk-2RNMBXD2.js";
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  tryGetMindManager
4
- } from "./chunk-HLWQ3P3R.js";
4
+ } from "./chunk-PAO7JZNW.js";
5
5
  import {
6
6
  linkInboundToActiveTurn
7
- } from "./chunk-BP2X5AIK.js";
7
+ } from "./chunk-TGYKFUCF.js";
8
8
  import {
9
9
  getParticipants,
10
10
  publish as publish2
11
- } from "./chunk-6HBGUPBA.js";
11
+ } from "./chunk-Q5M5QFKY.js";
12
12
  import {
13
13
  onMindEvent
14
- } from "./chunk-7AA4T2RT.js";
14
+ } from "./chunk-UMQP5TC5.js";
15
15
  import {
16
16
  renderAvatarBlock
17
- } from "./chunk-IT4GEFDH.js";
17
+ } from "./chunk-WTZD6LFW.js";
18
18
  import {
19
19
  readVoluteConfig
20
20
  } from "./chunk-WCFSBH33.js";
@@ -27,11 +27,11 @@ import {
27
27
  routesConfigPath,
28
28
  setRoutesChangeListener,
29
29
  shouldGate
30
- } from "./chunk-W3OIPJPB.js";
30
+ } from "./chunk-IQROTVBG.js";
31
31
  import {
32
32
  MIND_LEVEL_THREAD,
33
33
  newEphemeralSession
34
- } from "./chunk-DUV4EMNW.js";
34
+ } from "./chunk-6LICEQGP.js";
35
35
  import {
36
36
  publish
37
37
  } from "./chunk-MNKPAAQF.js";
@@ -47,7 +47,7 @@ import {
47
47
  getDb,
48
48
  mindDir,
49
49
  voluteHome
50
- } from "./chunk-H6X6CKDN.js";
50
+ } from "./chunk-TAVIVN2I.js";
51
51
  import {
52
52
  channelGates,
53
53
  channels,
@@ -282,12 +282,12 @@ var DeliveryManager = class {
282
282
  isMindRunning = (name) => tryGetMindManager()?.isRunning(name) ?? false;
283
283
  /** Delivers a channel event to a mind (invites, release summaries); overridable in tests. */
284
284
  notify = async (mindName, text) => {
285
- const { deliverEvent } = await import("./system-events-ZYOCYAO2.js");
285
+ const { deliverEvent } = await import("./system-events-CWC7CBKP.js");
286
286
  await deliverEvent(mindName, { type: "channel", body: text });
287
287
  };
288
288
  /** Surfaces a dead-lettered delivery as a next-turn failure notice; overridable in tests. */
289
289
  notifyFailure = async (input) => {
290
- const { recordNotice } = await import("./system-events-ZYOCYAO2.js");
290
+ const { recordNotice } = await import("./system-events-CWC7CBKP.js");
291
291
  await recordNotice(input);
292
292
  };
293
293
  /**
@@ -295,7 +295,7 @@ var DeliveryManager = class {
295
295
  * side); no-ops for human senders. Overridable in tests.
296
296
  */
297
297
  notifySenderFailure = async (sender, channel, reason) => {
298
- const { recordSenderDeliveryFailure } = await import("./delivery-notices-S7TKOACE.js");
298
+ const { recordSenderDeliveryFailure } = await import("./delivery-notices-LZKZXWTX.js");
299
299
  await recordSenderDeliveryFailure(sender, channel, reason);
300
300
  };
301
301
  constructor() {
@@ -1438,7 +1438,7 @@ ${channel}`, { sender: r.sender, channel });
1438
1438
  const details = detailLines.length > 0 ? `${detailLines.join("\n")}
1439
1439
 
1440
1440
  ` : "\n";
1441
- const { getPrompt } = await import("./prompts-MOBF3TMO.js");
1441
+ const { getPrompt } = await import("./prompts-ZNOE3KN3.js");
1442
1442
  const notification = await getPrompt("channel_invite", {
1443
1443
  channel,
1444
1444
  heldLine,
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-2674KIGI.js";
5
5
  import {
6
6
  mindDir
7
- } from "./chunk-H6X6CKDN.js";
7
+ } from "./chunk-TAVIVN2I.js";
8
8
 
9
9
  // packages/daemon/src/lib/delivery/delivery-router.ts
10
10
  import { readFileSync, statSync } from "fs";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  exec,
4
4
  gitExec
5
- } from "./chunk-OIOW3FPT.js";
5
+ } from "./chunk-NA2NJXY4.js";
6
6
  import {
7
7
  logger_default
8
8
  } from "./chunk-2674KIGI.js";
@@ -13,7 +13,7 @@ import {
13
13
  readRegistry,
14
14
  voluteHome,
15
15
  writeGlobalConfig
16
- } from "./chunk-H6X6CKDN.js";
16
+ } from "./chunk-TAVIVN2I.js";
17
17
  import {
18
18
  sharedSkills
19
19
  } from "./chunk-2RNMBXD2.js";
@@ -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-QD22GXZD.js");
48
+ const { getExtensionStandardSkills } = await import("./extensions-YEPEWURN.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));
@@ -3,17 +3,18 @@ import {
3
3
  command
4
4
  } from "./chunk-TXSA4Q3V.js";
5
5
  import {
6
+ HEALTH_POLL_TIMEOUT,
6
7
  daemonLogReport,
7
8
  getServiceMode,
8
9
  modeLabel,
9
10
  pollHealth,
10
11
  startService
11
- } from "./chunk-CKPAVQNK.js";
12
+ } from "./chunk-OPTA3BJ4.js";
12
13
  import {
13
14
  readGlobalConfig,
14
15
  voluteHome,
15
16
  voluteSystemDir
16
- } from "./chunk-H6X6CKDN.js";
17
+ } from "./chunk-TAVIVN2I.js";
17
18
 
18
19
  // src/commands/up.ts
19
20
  import { spawn } from "child_process";
@@ -52,7 +53,11 @@ var cmd = command({
52
53
  if (await pollHealth(h, p)) {
53
54
  console.log(`Volute daemon running on ${h}:${p}`);
54
55
  } else {
55
- console.error("Service started but daemon did not become healthy within 30s.");
56
+ console.error(
57
+ `Service started but daemon did not become healthy within ${Math.round(
58
+ HEALTH_POLL_TIMEOUT / 1e3
59
+ )}s.`
60
+ );
56
61
  for (const line of daemonLogReport(mode)) console.error(line);
57
62
  process.exit(1);
58
63
  }
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-2674KIGI.js";
13
13
  import {
14
14
  mindDir
15
- } from "./chunk-H6X6CKDN.js";
15
+ } from "./chunk-TAVIVN2I.js";
16
16
 
17
17
  // packages/daemon/src/lib/mind/template-staleness.ts
18
18
  import { createHash } from "crypto";
@@ -8,10 +8,10 @@ import {
8
8
  pollHealthDown,
9
9
  readDaemonConfig,
10
10
  stopService
11
- } from "./chunk-CKPAVQNK.js";
11
+ } from "./chunk-OPTA3BJ4.js";
12
12
  import {
13
13
  voluteSystemDir
14
- } from "./chunk-H6X6CKDN.js";
14
+ } from "./chunk-TAVIVN2I.js";
15
15
 
16
16
  // src/commands/down.ts
17
17
  import { existsSync, readFileSync, unlinkSync } from "fs";
@@ -3,7 +3,7 @@ import {
3
3
  getBaseName,
4
4
  isSpiritName,
5
5
  validateMindName
6
- } from "./chunk-H6X6CKDN.js";
6
+ } from "./chunk-TAVIVN2I.js";
7
7
 
8
8
  // packages/daemon/src/lib/mind/isolation.ts
9
9
  import { execFileSync as execFileSync2 } from "child_process";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  stateDir,
4
4
  voluteSystemDir
5
- } from "./chunk-H6X6CKDN.js";
5
+ } from "./chunk-TAVIVN2I.js";
6
6
 
7
7
  // packages/daemon/src/lib/config/env.ts
8
8
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";