volute 0.40.2 → 0.41.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 (145) hide show
  1. package/dist/{accept-IVHOHXQS.js → accept-AHAOUFBK.js} +1 -1
  2. package/dist/{activity-events-DS4QRWBY.js → activity-events-EQGBUEZ7.js} +4 -4
  3. package/dist/{ai-service-EVLKMAJD.js → ai-service-ZHEPFC3U.js} +5 -5
  4. package/dist/{api-client-NFM6GX2N.js → api-client-LC5YRA32.js} +1 -1
  5. package/dist/{archive-UDHFZN4G.js → archive-LJAXDDEY.js} +4 -4
  6. package/dist/{auth-X6ZITZ7D.js → auth-VYW2ECCE.js} +5 -5
  7. package/dist/{bridge-MSZC4HUT.js → bridge-F3ZJEKDN.js} +1 -1
  8. package/dist/{chat-F2EEN76G.js → chat-FO722GU2.js} +9 -9
  9. package/dist/{chunk-4UMXOMZ6.js → chunk-2I7OKOYV.js} +2 -2
  10. package/dist/{chunk-3Y7UDHO7.js → chunk-2R4JIZCB.js} +3 -3
  11. package/dist/{chunk-QYI65HCL.js → chunk-2RQIIKFC.js} +2 -2
  12. package/dist/{chunk-6SYHHEQ7.js → chunk-4ED2DBNC.js} +1 -1
  13. package/dist/{chunk-E25SO3QW.js → chunk-6TPRURK5.js} +3 -3
  14. package/dist/{chunk-ITH5ZLZJ.js → chunk-6ZAT5PYV.js} +1 -1
  15. package/dist/{chunk-WOWRLBL2.js → chunk-AXNAK3HT.js} +8 -8
  16. package/dist/{chunk-PKGA23XM.js → chunk-CYUNO4BM.js} +1 -1
  17. package/dist/{chunk-MNUXL4XN.js → chunk-FEQPNCXB.js} +1 -1
  18. package/dist/{chunk-PEKG3GNZ.js → chunk-FU5YDH6Q.js} +3 -3
  19. package/dist/{chunk-NERYUSER.js → chunk-GMFCSXWB.js} +1 -1
  20. package/dist/{chunk-YHWGN4FX.js → chunk-GSOEUMVO.js} +1 -1
  21. package/dist/{chunk-UX7FPDDO.js → chunk-JIGVTFIR.js} +5 -5
  22. package/dist/chunk-K3NQKI34.js +10 -0
  23. package/dist/{chunk-2HZRJ35V.js → chunk-MHFAWJCC.js} +1 -1
  24. package/dist/{chunk-I57LLNAQ.js → chunk-MU2B7A3L.js} +1 -1
  25. package/dist/{chunk-DNU6XLE2.js → chunk-N64Q7FMP.js} +1 -1
  26. package/dist/{chunk-SVXOBKQY.js → chunk-OQ7UEW67.js} +2 -2
  27. package/dist/{chunk-42UMLIQR.js → chunk-PP5CGT2P.js} +1 -1
  28. package/dist/{chunk-TOANT6FD.js → chunk-SWY4DJ67.js} +2 -2
  29. package/dist/{chunk-KMHC36CA.js → chunk-U7UASV36.js} +1 -1
  30. package/dist/{chunk-KAB6UGOL.js → chunk-UU3Q65US.js} +1 -1
  31. package/dist/{chunk-JYQQDI3M.js → chunk-V67XMNGP.js} +2 -2
  32. package/dist/{chunk-B4WPXYPI.js → chunk-VDODEQSJ.js} +6 -1
  33. package/dist/{chunk-ZXPWTH4I.js → chunk-VK2YD7VJ.js} +1 -1
  34. package/dist/{chunk-ZOI6D2YH.js → chunk-W5Z2H3LU.js} +33 -33
  35. package/dist/{chunk-46DYYHN6.js → chunk-WSRGS4XP.js} +34 -0
  36. package/dist/{chunk-AEAZRTEV.js → chunk-Y2XLASFJ.js} +1 -1
  37. package/dist/{chunk-YMMYN2V3.js → chunk-YATR5BXD.js} +5 -5
  38. package/dist/{chunk-NRJ3ZYFP.js → chunk-YN6ISG7A.js} +9 -9
  39. package/dist/cli.js +24 -24
  40. package/dist/{clock-YLDJUKBW.js → clock-BMLJ2TR6.js} +3 -3
  41. package/dist/{cloud-sync-GOSJZIHH.js → cloud-sync-GV6O2HN2.js} +19 -19
  42. package/dist/{config-PO4EZLIK.js → config-QB7W3Z7P.js} +4 -4
  43. package/dist/connectors/discord-bridge.js +1 -1
  44. package/dist/connectors/slack-bridge.js +1 -1
  45. package/dist/connectors/telegram-bridge.js +1 -1
  46. package/dist/{conversations-AYLXPOGC.js → conversations-KW7IYESK.js} +5 -5
  47. package/dist/{create-ZMTGINV3.js → create-C3BBFYV7.js} +1 -1
  48. package/dist/{create-Y3RGU2GI.js → create-CTPXWFTL.js} +4 -4
  49. package/dist/{daemon-client-H6MEKK2W.js → daemon-client-2MIPKY3E.js} +1 -1
  50. package/dist/{daemon-restart-FSWVXPUE.js → daemon-restart-W47YDE5E.js} +9 -9
  51. package/dist/daemon.js +113 -80
  52. package/dist/db-D4FVCA5I.js +9 -0
  53. package/dist/{db-FSYOTHSN.js → db-IJL6B26S.js} +1 -1
  54. package/dist/{delete-TXVOH2OC.js → delete-NLXES2C7.js} +3 -3
  55. package/dist/delivery-manager-EB52CQ5X.js +33 -0
  56. package/dist/{delivery-router-T6CYTS3M.js → delivery-router-Y66OXJPM.js} +4 -4
  57. package/dist/down-JVHNXOFU.js +17 -0
  58. package/dist/echo-text-QVPS6QDM.js +32 -0
  59. package/dist/{env-77IOWG4U.js → env-IQ6Q2333.js} +1 -1
  60. package/dist/exec-R2WWZ6FH.js +17 -0
  61. package/dist/{export-TZKOCSCE.js → export-ZZ5WWBUH.js} +6 -6
  62. package/dist/{extension-35NB6GHW.js → extension-LZYHBNLV.js} +1 -1
  63. package/dist/{extensions-MD757RFY.js → extensions-AGANCIQA.js} +19 -19
  64. package/dist/{files-WNNVJWJB.js → files-Q2Z4LQZP.js} +4 -4
  65. package/dist/{import-BNNFCQ7U.js → import-MFYCBS4K.js} +11 -11
  66. package/dist/{isolation-4Q4P7HRV.js → isolation-7F3MA4G7.js} +4 -4
  67. package/dist/{join-E2EJEXZO.js → join-6SZCA5FX.js} +3 -3
  68. package/dist/{list-BYCEDASJ.js → list-KHJZJPEJ.js} +1 -1
  69. package/dist/{login-JNSIYFVH.js → login-GYTH67ES.js} +1 -1
  70. package/dist/{login-Y6UAYQVO.js → login-WY3DADVB.js} +3 -3
  71. package/dist/{logout-VHGWVH63.js → logout-TFZHWNVL.js} +3 -3
  72. package/dist/{logout-M6FI62BL.js → logout-YHQLOFLR.js} +1 -1
  73. package/dist/message-delivery-X4CZE2L6.js +41 -0
  74. package/dist/{mind-OOB2LEVC.js → mind-XIKEPJNS.js} +19 -19
  75. package/dist/{mind-activity-tracker-GJ5RJS32.js → mind-activity-tracker-RSIWUUJK.js} +5 -5
  76. package/dist/{mind-history-W4JPTPTV.js → mind-history-WHCNZ6I5.js} +1 -1
  77. package/dist/{mind-list-QROHCLGT.js → mind-list-H3HC2ZRG.js} +1 -1
  78. package/dist/mind-manager-VU3RGCXD.js +31 -0
  79. package/dist/{mind-profile-3LNKXNPA.js → mind-profile-7VYRJGFZ.js} +2 -2
  80. package/dist/mind-service-L7LMMDYJ.js +37 -0
  81. package/dist/{mind-sleep-PVCMLTAH.js → mind-sleep-ZL5ZXFTM.js} +1 -1
  82. package/dist/{mind-status-RAJFLRCN.js → mind-status-ZWULKOUO.js} +1 -1
  83. package/dist/{mind-wake-HZUOVE7J.js → mind-wake-HK5ORGUK.js} +1 -1
  84. package/dist/{package-PPA3VWS2.js → package-2X7UNSTQ.js} +3 -2
  85. package/dist/{read-OOINVR2H.js → read-CP7MYMJQ.js} +1 -1
  86. package/dist/{read-stdin-P6HCZUAA.js → read-stdin-4B5UYPPM.js} +1 -1
  87. package/dist/{register-ISOH34RF.js → register-XOBFEMI4.js} +1 -1
  88. package/dist/{registry-GV35XFT7.js → registry-RAXNFN7K.js} +5 -3
  89. package/dist/{reject-ZBWP62X5.js → reject-43AGXB6B.js} +1 -1
  90. package/dist/{restart-QBJV5455.js → restart-O5QIYQJT.js} +1 -1
  91. package/dist/{sandbox-5R32QKWQ.js → sandbox-O3GZTS7J.js} +5 -5
  92. package/dist/scheduler-SXELVRWO.js +31 -0
  93. package/dist/{schema-LYQUDL7G.js → schema-HHYJDG7B.js} +2 -2
  94. package/dist/{seed-BTAHXCO5.js → seed-I4CNKTKZ.js} +2 -2
  95. package/dist/{seed-check-3WXXRHTC.js → seed-check-HZPVFJKZ.js} +2 -2
  96. package/dist/{seed-cmd-VEJNJBAQ.js → seed-cmd-YTQYWCZF.js} +4 -4
  97. package/dist/{seed-create-LOU5RALI.js → seed-create-MDBTVADS.js} +6 -6
  98. package/dist/{seed-sprout-BXF5TBXD.js → seed-sprout-N6O5FBPY.js} +11 -11
  99. package/dist/{send-WO3CVG73.js → send-5XA7LRNB.js} +4 -4
  100. package/dist/{service-WMV6R6VJ.js → service-AY5TGWJX.js} +6 -6
  101. package/dist/service-install-NLGAVTQS.js +17 -0
  102. package/dist/{setup-OTEC3ZPM.js → setup-3434PQ5Q.js} +4 -4
  103. package/dist/{setup-W3545462.js → setup-47NBOCZL.js} +9 -9
  104. package/dist/{skill-QHACP7EU.js → skill-ICN6Y2ZF.js} +1 -1
  105. package/dist/{skills-3P7VQA4U.js → skills-YTLBAF32.js} +7 -7
  106. package/dist/sleep-manager-T3AXQB3R.js +35 -0
  107. package/dist/spirit-KTBHLULO.js +24 -0
  108. package/dist/{split-7AO4IO42.js → split-5YBEQTBF.js} +3 -3
  109. package/dist/{sprout-AQICF7WZ.js → sprout-4ZUJUNDQ.js} +2 -2
  110. package/dist/src-4LFGGNW7.js +2201 -0
  111. package/dist/{src-XNUXP2FP.js → src-O4PRLMKM.js} +1 -1
  112. package/dist/{src-2IMB3V27.js → src-OYWRPLC6.js} +1 -1
  113. package/dist/{start-2U57BBK7.js → start-LMXXRR3X.js} +1 -1
  114. package/dist/{status-BRYYYO7C.js → status-VMOZUIZ2.js} +7 -7
  115. package/dist/{stop-QILBDUAR.js → stop-TWDKVEUX.js} +1 -1
  116. package/dist/system-chat-HCPHUQGI.js +35 -0
  117. package/dist/{systems-3XTAHA35.js → systems-Y2WZV2K4.js} +4 -4
  118. package/dist/{tailscale-X4HRKRTW.js → tailscale-PK3AI5EV.js} +3 -3
  119. package/dist/template-hash-JARTCRGS.js +9 -0
  120. package/dist/{turn-tracker-AI6WWEBA.js → turn-tracker-SZBSL7LK.js} +6 -6
  121. package/dist/up-VGVPOB6J.js +19 -0
  122. package/dist/{update-OY2JYXYK.js → update-3ANTQO54.js} +7 -7
  123. package/dist/{update-check-IUB7QHAF.js → update-check-4O6DKUOF.js} +4 -4
  124. package/dist/{upgrade-25J6AE47.js → upgrade-RXFZR5FI.js} +3 -3
  125. package/dist/{variant-5LQOPCQA.js → variant-HHDTW74J.js} +1 -1
  126. package/dist/{version-notify-DK6AHWX7.js → version-notify-SSNAWZMX.js} +21 -21
  127. package/dist/{volute-config-7FO6QKWU.js → volute-config-TS62GS6A.js} +1 -1
  128. package/package.json +2 -1
  129. package/dist/chunk-LMMQX4CK.js +0 -49
  130. package/dist/db-ZEPKEJJD.js +0 -9
  131. package/dist/delivery-manager-3NTCDKHR.js +0 -33
  132. package/dist/down-6DYO2QV7.js +0 -17
  133. package/dist/echo-text-JUNRP4ER.js +0 -32
  134. package/dist/exec-5DGKQ5V3.js +0 -17
  135. package/dist/message-delivery-Q7TU24IA.js +0 -41
  136. package/dist/mind-manager-4NFK4GEU.js +0 -31
  137. package/dist/mind-service-X7FH3NA4.js +0 -37
  138. package/dist/scheduler-PDARH4CE.js +0 -31
  139. package/dist/service-install-W3FQXJKB.js +0 -17
  140. package/dist/sleep-manager-TTNOLIX5.js +0 -35
  141. package/dist/spirit-T6GK5GEP.js +0 -24
  142. package/dist/src-OS75U2O7.js +0 -241910
  143. package/dist/system-chat-7CA2PP6A.js +0 -35
  144. package/dist/template-hash-DMHSLRDX.js +0 -9
  145. package/dist/up-PKNNDN6M.js +0 -19
package/dist/daemon.js CHANGED
@@ -6,31 +6,31 @@ import {
6
6
  rejectPending,
7
7
  stageFile,
8
8
  validateFilePath
9
- } from "./chunk-YHWGN4FX.js";
9
+ } from "./chunk-GSOEUMVO.js";
10
10
  import {
11
11
  findOpenClawSession,
12
12
  importOpenClawConnectors,
13
13
  importPiSession,
14
14
  parseNameFromIdentity
15
- } from "./chunk-SVXOBKQY.js";
15
+ } from "./chunk-OQ7UEW67.js";
16
16
  import {
17
17
  checkForUpdate,
18
18
  checkForUpdateCached,
19
19
  getCurrentVersion
20
- } from "./chunk-MNUXL4XN.js";
20
+ } from "./chunk-FEQPNCXB.js";
21
21
  import {
22
22
  isHomeOnlyArchive
23
- } from "./chunk-I57LLNAQ.js";
23
+ } from "./chunk-MU2B7A3L.js";
24
24
  import {
25
25
  computeTemplateHash
26
- } from "./chunk-KAB6UGOL.js";
26
+ } from "./chunk-UU3Q65US.js";
27
27
  import {
28
28
  PLATFORMS,
29
29
  echoTextToChannel,
30
30
  fixModelEscapes,
31
31
  getPlatformDriver,
32
32
  routeOutboundBridge
33
- } from "./chunk-WOWRLBL2.js";
33
+ } from "./chunk-AXNAK3HT.js";
34
34
  import {
35
35
  getBridgeConfig,
36
36
  readBridgesConfig,
@@ -39,7 +39,7 @@ import {
39
39
  resolveChannelMapping,
40
40
  setBridgeConfig,
41
41
  setChannelMapping
42
- } from "./chunk-PKGA23XM.js";
42
+ } from "./chunk-CYUNO4BM.js";
43
43
  import {
44
44
  RestartTracker,
45
45
  RotatingLog,
@@ -88,22 +88,24 @@ import {
88
88
  tagUntaggedOutbound,
89
89
  uninstallNpmExtension,
90
90
  writeSystemsConfig
91
- } from "./chunk-ZOI6D2YH.js";
91
+ } from "./chunk-W5Z2H3LU.js";
92
92
  import {
93
93
  loadMergedEnv,
94
94
  mindEnvPath,
95
95
  readEnv,
96
96
  sharedEnvPath,
97
97
  writeEnv
98
- } from "./chunk-ITH5ZLZJ.js";
99
- import "./chunk-NRJ3ZYFP.js";
98
+ } from "./chunk-6ZAT5PYV.js";
99
+ import "./chunk-YN6ISG7A.js";
100
100
  import {
101
101
  applyInitFiles,
102
+ applyTemplateHomeFiles,
102
103
  composeTemplate,
103
104
  copyTemplateToDir,
104
105
  findTemplatesRoot,
106
+ isKnownTemplate,
105
107
  listFiles
106
- } from "./chunk-46DYYHN6.js";
108
+ } from "./chunk-WSRGS4XP.js";
107
109
  import {
108
110
  SEED_SKILLS,
109
111
  STANDARD_SKILLS,
@@ -123,7 +125,7 @@ import {
123
125
  syncBuiltinSkills,
124
126
  uninstallSkill,
125
127
  updateSkill
126
- } from "./chunk-UX7FPDDO.js";
128
+ } from "./chunk-JIGVTFIR.js";
127
129
  import {
128
130
  addMessage,
129
131
  createChannel,
@@ -155,20 +157,20 @@ import {
155
157
  setConversationPrivate,
156
158
  subscribe as subscribe2,
157
159
  updateChannelSettings
158
- } from "./chunk-3Y7UDHO7.js";
160
+ } from "./chunk-2R4JIZCB.js";
159
161
  import {
160
162
  readVoluteConfig,
161
163
  writeVoluteConfig
162
164
  } from "./chunk-CU6OFXMM.js";
163
- import "./chunk-KMHC36CA.js";
165
+ import "./chunk-U7UASV36.js";
164
166
  import {
165
167
  getActiveMinds,
166
168
  onMindEvent,
167
169
  stopAll
168
- } from "./chunk-42UMLIQR.js";
170
+ } from "./chunk-PP5CGT2P.js";
169
171
  import {
170
172
  extractTextContent
171
- } from "./chunk-NERYUSER.js";
173
+ } from "./chunk-GMFCSXWB.js";
172
174
  import {
173
175
  PROMPT_DEFAULTS,
174
176
  PROMPT_KEYS,
@@ -191,12 +193,12 @@ import {
191
193
  summarizeTurn,
192
194
  takeErrored,
193
195
  trackToolUse
194
- } from "./chunk-YMMYN2V3.js";
196
+ } from "./chunk-YATR5BXD.js";
195
197
  import {
196
198
  exec,
197
199
  gitExec,
198
200
  resolveVoluteBin
199
- } from "./chunk-AEAZRTEV.js";
201
+ } from "./chunk-Y2XLASFJ.js";
200
202
  import {
201
203
  chownMindDir,
202
204
  createMindUser,
@@ -204,7 +206,7 @@ import {
204
206
  ensureVoluteGroup,
205
207
  isIsolationEnabled,
206
208
  wrapForIsolation
207
- } from "./chunk-6SYHHEQ7.js";
209
+ } from "./chunk-4ED2DBNC.js";
208
210
  import {
209
211
  getAiConfig,
210
212
  getAvailableModels,
@@ -221,12 +223,12 @@ import {
221
223
  setProviderRefreshHook,
222
224
  setUtilityModel,
223
225
  unqualifyModelId
224
- } from "./chunk-ZXPWTH4I.js";
226
+ } from "./chunk-VK2YD7VJ.js";
225
227
  import {
226
228
  isSetupComplete,
227
229
  readGlobalConfig,
228
230
  writeGlobalConfig
229
- } from "./chunk-DNU6XLE2.js";
231
+ } from "./chunk-N64Q7FMP.js";
230
232
  import {
231
233
  approveUser,
232
234
  changePassword,
@@ -245,11 +247,11 @@ import {
245
247
  syncMindProfile,
246
248
  updateUserProfile,
247
249
  verifyUser
248
- } from "./chunk-E25SO3QW.js";
250
+ } from "./chunk-6TPRURK5.js";
249
251
  import {
250
252
  broadcast,
251
253
  subscribe
252
- } from "./chunk-QYI65HCL.js";
254
+ } from "./chunk-2RQIIKFC.js";
253
255
  import {
254
256
  logBuffer,
255
257
  logger_default
@@ -274,12 +276,13 @@ import {
274
276
  removeMind,
275
277
  setMindRunning,
276
278
  setMindStage,
279
+ setMindTemplate,
277
280
  setMindTemplateHash,
278
281
  stateDir,
279
282
  validateMindName,
280
283
  voluteHome,
281
284
  voluteSystemDir
282
- } from "./chunk-B4WPXYPI.js";
285
+ } from "./chunk-VDODEQSJ.js";
283
286
  import {
284
287
  activity,
285
288
  channels,
@@ -291,8 +294,8 @@ import {
291
294
  systemPrompts,
292
295
  turns,
293
296
  users
294
- } from "./chunk-2HZRJ35V.js";
295
- import "./chunk-LMMQX4CK.js";
297
+ } from "./chunk-MHFAWJCC.js";
298
+ import "./chunk-K3NQKI34.js";
296
299
 
297
300
  // packages/daemon/src/daemon.ts
298
301
  import { randomBytes } from "crypto";
@@ -2013,7 +2016,7 @@ var app4 = new Hono4().post("/:platform/inbound", zValidator3("json", inboundSch
2013
2016
  }
2014
2017
  const participants = await getParticipants(channel.id);
2015
2018
  if (!participants.some((p) => p.userId === puppet.id)) {
2016
- const { addParticipant } = await import("./conversations-AYLXPOGC.js");
2019
+ const { addParticipant } = await import("./conversations-KW7IYESK.js");
2017
2020
  await addParticipant(channel.id, puppet.id);
2018
2021
  }
2019
2022
  const contentBlocks = body.content;
@@ -2106,8 +2109,8 @@ async function fanOutToBridgedMinds(opts) {
2106
2109
  const participants = await getParticipants(opts.conversationId);
2107
2110
  const mindParticipants = participants.filter((p) => p.userType === "mind");
2108
2111
  const participantNames = participants.map((p) => p.username);
2109
- const { getMindManager: getMindManager2 } = await import("./mind-manager-4NFK4GEU.js");
2110
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-TTNOLIX5.js");
2112
+ const { getMindManager: getMindManager2 } = await import("./mind-manager-VU3RGCXD.js");
2113
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-T3AXQB3R.js");
2111
2114
  const manager = getMindManager2();
2112
2115
  const sm = getSleepManagerIfReady2();
2113
2116
  const targetMinds = mindParticipants.filter((ap) => {
@@ -2319,7 +2322,7 @@ async function notifyMind(mindName, message) {
2319
2322
  const entry = await findMind(mindName);
2320
2323
  if (!entry) return;
2321
2324
  try {
2322
- const { sendSystemMessage } = await import("./system-chat-7CA2PP6A.js");
2325
+ const { sendSystemMessage } = await import("./system-chat-HCPHUQGI.js");
2323
2326
  await sendSystemMessage(mindName, message);
2324
2327
  } catch (err) {
2325
2328
  logger_default.warn(`[file-sharing] notify mind ${mindName} failed`, logger_default.errorData(err));
@@ -3365,7 +3368,7 @@ async function cleanupVariant(variantName, projectRoot, variantPath, opts) {
3365
3368
  logger_default.warn(`failed to stop variant ${variantName}`, logger_default.errorData(err));
3366
3369
  }
3367
3370
  }
3368
- const { findMind: findMind2 } = await import("./registry-GV35XFT7.js");
3371
+ const { findMind: findMind2 } = await import("./registry-RAXNFN7K.js");
3369
3372
  const variantEntry = await findMind2(variantName);
3370
3373
  const branchName = variantEntry?.branch ?? variantName;
3371
3374
  if (existsSync6(variantPath)) {
@@ -3622,7 +3625,7 @@ async function getMindStatus(name, port, registryRunning) {
3622
3625
  const manager = getMindManager();
3623
3626
  let status = "stopped";
3624
3627
  try {
3625
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-TTNOLIX5.js");
3628
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-T3AXQB3R.js");
3626
3629
  if (getSleepManagerIfReady2()?.isSleeping(name)) {
3627
3630
  status = "sleeping";
3628
3631
  }
@@ -3754,7 +3757,8 @@ async function npmInstallAsMind(cwd, mindName) {
3754
3757
  await exec("npm", ["install"], { cwd });
3755
3758
  }
3756
3759
  }
3757
- async function mergeUpgradeAndRestart(mindName, dir, worktreeDir, upgradeVariantName, upgradeBranch, template) {
3760
+ async function mergeUpgradeAndRestart(mindName, dir, worktreeDir, upgradeVariantName, upgradeBranch, template, oldTemplate) {
3761
+ const templateChanged = template !== oldTemplate;
3758
3762
  const mainStatus = (await gitExec(["status", "--porcelain"], { cwd: dir })).trim();
3759
3763
  if (mainStatus) {
3760
3764
  await gitExec(["add", "-A"], { cwd: dir });
@@ -3770,10 +3774,33 @@ async function mergeUpgradeAndRestart(mindName, dir, worktreeDir, upgradeVariant
3770
3774
  await gitExec(["branch", "-D", upgradeBranch], { cwd: dir });
3771
3775
  } catch {
3772
3776
  }
3777
+ let switchWarning;
3778
+ if (templateChanged) {
3779
+ try {
3780
+ applyTemplateHomeFiles(resolve11(dir, "home"), template);
3781
+ await gitExec(["add", "home/"], { cwd: dir });
3782
+ try {
3783
+ await gitExec(["diff", "--cached", "--quiet"], { cwd: dir });
3784
+ } catch {
3785
+ await gitExec(["commit", "-m", `swap template-owned home files for ${template}`], {
3786
+ cwd: dir
3787
+ });
3788
+ }
3789
+ chownMindDir(dir, mindName);
3790
+ switchWarning = `Switched ${oldTemplate}\u2192${template}: config reset to ${template} defaults, mechanics doc replaced, conversation starts fresh (sessions aren't portable across runtimes).`;
3791
+ } catch (err) {
3792
+ logger_default.warn(`failed to swap template home files for ${mindName}`, logger_default.errorData(err));
3793
+ return {
3794
+ ok: true,
3795
+ warning: `Upgrade merged but template switch ${oldTemplate}\u2192${template} failed: ${err instanceof Error ? err.message : String(err)}. The mind is still registered as ${oldTemplate}; re-run the switch or fix home/ manually.`
3796
+ };
3797
+ }
3798
+ }
3773
3799
  try {
3774
3800
  await setMindTemplateHash(mindName, computeTemplateHash(template));
3801
+ await setMindTemplate(mindName, template);
3775
3802
  } catch (err) {
3776
- logger_default.warn(`failed to update template hash for ${mindName}`, logger_default.errorData(err));
3803
+ logger_default.warn(`failed to update template for ${mindName}`, logger_default.errorData(err));
3777
3804
  }
3778
3805
  try {
3779
3806
  await npmInstallAsMind(dir, mindName);
@@ -3797,7 +3824,7 @@ async function mergeUpgradeAndRestart(mindName, dir, worktreeDir, upgradeVariant
3797
3824
  warning: `Upgrade merged but mind restart failed: ${e instanceof Error ? e.message : String(e)}`
3798
3825
  };
3799
3826
  }
3800
- return { ok: true };
3827
+ return { ok: true, warning: switchWarning };
3801
3828
  }
3802
3829
  async function importFromArchive(c, tempDir, nameOverride, manifest) {
3803
3830
  const extractedMindDir = resolve11(tempDir, "mind");
@@ -4093,7 +4120,7 @@ var app13 = new Hono15().post("/", requireAdminOrSystem, zValidator5("json", cre
4093
4120
  applyInitFiles(dest);
4094
4121
  const { publicKeyPem } = generateIdentity(dest);
4095
4122
  {
4096
- const { readGlobalConfig: readGlobal } = await import("./setup-OTEC3ZPM.js");
4123
+ const { readGlobalConfig: readGlobal } = await import("./setup-3434PQ5Q.js");
4097
4124
  const mindDefaults = readGlobal().mindDefaults;
4098
4125
  const config2 = readVoluteConfig(dest);
4099
4126
  if (!config2) throw new Error("Failed to read volute.json after identity generation");
@@ -4184,7 +4211,7 @@ The human who planted you described you as: "${body.description}"
4184
4211
  }
4185
4212
  let skillSet = body.skills ?? (body.stage === "seed" ? SEED_SKILLS : getStandardSkillsWithExtensions());
4186
4213
  if (body.stage === "seed" && !body.skills) {
4187
- const { isImagegenEnabled } = await import("./setup-OTEC3ZPM.js");
4214
+ const { isImagegenEnabled } = await import("./setup-3434PQ5Q.js");
4188
4215
  if (isImagegenEnabled()) {
4189
4216
  skillSet = [...skillSet, "imagegen"];
4190
4217
  }
@@ -4202,7 +4229,7 @@ The human who planted you described you as: "${body.description}"
4202
4229
  try {
4203
4230
  const spiritEntry = await findMind("volute");
4204
4231
  if (spiritEntry) {
4205
- const { spiritDir } = await import("./spirit-T6GK5GEP.js");
4232
+ const { spiritDir } = await import("./spirit-KTBHLULO.js");
4206
4233
  const sDir = spiritEntry.dir ?? spiritDir();
4207
4234
  const spiritConfig = readVoluteConfig(sDir) ?? {};
4208
4235
  const schedules = spiritConfig.schedules ?? [];
@@ -4217,7 +4244,7 @@ The human who planted you described you as: "${body.description}"
4217
4244
  });
4218
4245
  spiritConfig.schedules = schedules;
4219
4246
  writeVoluteConfig(sDir, spiritConfig);
4220
- const { getScheduler: getScheduler2 } = await import("./scheduler-PDARH4CE.js");
4247
+ const { getScheduler: getScheduler2 } = await import("./scheduler-SXELVRWO.js");
4221
4248
  getScheduler2().loadSchedules("volute", sDir);
4222
4249
  }
4223
4250
  }
@@ -4482,7 +4509,7 @@ ${user.trimEnd()}
4482
4509
  const manager = getMindManager();
4483
4510
  try {
4484
4511
  if (context?.type === "reload") {
4485
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-TTNOLIX5.js");
4512
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-T3AXQB3R.js");
4486
4513
  const sleepState = getSleepManagerIfReady2()?.getState(name);
4487
4514
  if (sleepState?.sleeping) {
4488
4515
  logger_default.info(`skipping reload for ${name} during sleep \u2014 will apply on next wake`);
@@ -4577,7 +4604,7 @@ ${user.trimEnd()}
4577
4604
  const name = c.req.param("name");
4578
4605
  const entry = await findMind(name);
4579
4606
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4580
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-TTNOLIX5.js");
4607
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-T3AXQB3R.js");
4581
4608
  const sm = getSleepManagerIfReady2();
4582
4609
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4583
4610
  return c.json(sm.getState(name));
@@ -4585,7 +4612,7 @@ ${user.trimEnd()}
4585
4612
  const name = c.req.param("name");
4586
4613
  const entry = await findMind(name);
4587
4614
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4588
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-TTNOLIX5.js");
4615
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-T3AXQB3R.js");
4589
4616
  const sm = getSleepManagerIfReady2();
4590
4617
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4591
4618
  if (sm.isSleeping(name)) return c.json({ error: "Mind is already sleeping" }, 409);
@@ -4605,7 +4632,7 @@ ${user.trimEnd()}
4605
4632
  const name = c.req.param("name");
4606
4633
  const entry = await findMind(name);
4607
4634
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4608
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-TTNOLIX5.js");
4635
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-T3AXQB3R.js");
4609
4636
  const sm = getSleepManagerIfReady2();
4610
4637
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4611
4638
  const sleepState = sm.getState(name);
@@ -4620,7 +4647,7 @@ ${user.trimEnd()}
4620
4647
  const name = c.req.param("name");
4621
4648
  const entry = await findMind(name);
4622
4649
  if (!entry) return c.json({ error: "Mind not found" }, 404);
4623
- const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-TTNOLIX5.js");
4650
+ const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-T3AXQB3R.js");
4624
4651
  const sm = getSleepManagerIfReady2();
4625
4652
  if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
4626
4653
  const flushed = await sm.flushQueuedMessages(name);
@@ -4638,7 +4665,7 @@ ${user.trimEnd()}
4638
4665
  if (body.avatar !== void 0) profile.avatar = basename(body.avatar);
4639
4666
  config2.profile = profile;
4640
4667
  writeVoluteConfig(dir, config2);
4641
- const { syncMindProfile: syncMindProfile2 } = await import("./auth-X6ZITZ7D.js");
4668
+ const { syncMindProfile: syncMindProfile2 } = await import("./auth-VYW2ECCE.js");
4642
4669
  await syncMindProfile2(name, profile);
4643
4670
  broadcast({ type: "profile_updated", mind: name, summary: `${name} profile updated` });
4644
4671
  return c.json({ ok: true });
@@ -4685,7 +4712,7 @@ ${user.trimEnd()}
4685
4712
  const config2 = readVoluteConfig(dir);
4686
4713
  const displayNameSet = !!config2?.profile?.displayName;
4687
4714
  const avatarSet = !!config2?.profile?.avatar;
4688
- const { isImagegenEnabled } = await import("./setup-OTEC3ZPM.js");
4715
+ const { isImagegenEnabled } = await import("./setup-3434PQ5Q.js");
4689
4716
  const imagegenEnabled = isImagegenEnabled();
4690
4717
  const done = [];
4691
4718
  const remaining = [];
@@ -4723,7 +4750,7 @@ ${user.trimEnd()}
4723
4750
  try {
4724
4751
  const spiritEntry = await findMind("volute");
4725
4752
  if (spiritEntry) {
4726
- const { spiritDir } = await import("./spirit-T6GK5GEP.js");
4753
+ const { spiritDir } = await import("./spirit-KTBHLULO.js");
4727
4754
  const sDir = spiritEntry.dir ?? spiritDir();
4728
4755
  const spiritConfig = readVoluteConfig(sDir);
4729
4756
  if (spiritConfig?.schedules) {
@@ -4731,7 +4758,7 @@ ${user.trimEnd()}
4731
4758
  spiritConfig.schedules = spiritConfig.schedules.filter((s) => s.id !== nurtureId);
4732
4759
  if (spiritConfig.schedules.length === 0) spiritConfig.schedules = void 0;
4733
4760
  writeVoluteConfig(sDir, spiritConfig);
4734
- const { getScheduler: getScheduler2 } = await import("./scheduler-PDARH4CE.js");
4761
+ const { getScheduler: getScheduler2 } = await import("./scheduler-SXELVRWO.js");
4735
4762
  getScheduler2().loadSchedules("volute", sDir);
4736
4763
  }
4737
4764
  }
@@ -4783,7 +4810,11 @@ ${user.trimEnd()}
4783
4810
  body = await c.req.json();
4784
4811
  } catch {
4785
4812
  }
4786
- const template = body.template ?? entry.template ?? "claude";
4813
+ const oldTemplate = entry.template ?? "claude";
4814
+ const template = body.template ?? oldTemplate;
4815
+ if (!isKnownTemplate(template)) {
4816
+ return c.json({ error: `Unknown template: ${template}` }, 400);
4817
+ }
4787
4818
  const UPGRADE_BRANCH = "upgrade";
4788
4819
  const upgradeVariantName = `${mindName}-upgrade`;
4789
4820
  const worktreeDir = resolve11(dir, ".variants", UPGRADE_BRANCH);
@@ -4852,7 +4883,8 @@ ${user.trimEnd()}
4852
4883
  worktreeDir,
4853
4884
  upgradeVariantName,
4854
4885
  UPGRADE_BRANCH,
4855
- template
4886
+ template,
4887
+ oldTemplate
4856
4888
  );
4857
4889
  return c.json(result);
4858
4890
  } catch (err) {
@@ -4984,7 +5016,8 @@ ${user.trimEnd()}
4984
5016
  worktreeDir,
4985
5017
  upgradeVariantName,
4986
5018
  UPGRADE_BRANCH,
4987
- template
5019
+ template,
5020
+ oldTemplate
4988
5021
  );
4989
5022
  return c.json(result);
4990
5023
  } catch (err) {
@@ -5160,7 +5193,7 @@ ${user.trimEnd()}
5160
5193
  }
5161
5194
  writeVoluteConfig(dir, existing);
5162
5195
  if (body.unescapeNewlines !== void 0) {
5163
- const { clearEchoTextCache } = await import("./echo-text-JUNRP4ER.js");
5196
+ const { clearEchoTextCache } = await import("./echo-text-QVPS6QDM.js");
5164
5197
  clearEchoTextCache(name);
5165
5198
  }
5166
5199
  const needsConfigJson = body.model !== void 0 || body.thinkingLevel !== void 0 || body.maxThinkingTokens !== void 0 || body.compaction !== void 0;
@@ -5237,7 +5270,7 @@ ${user.trimEnd()}
5237
5270
  }
5238
5271
  if (entry.mindType === "spirit" && body.model !== void 0) {
5239
5272
  try {
5240
- const { readGlobalConfig: readGlobalConfig2, writeGlobalConfig: writeGlobalConfig2 } = await import("./setup-OTEC3ZPM.js");
5273
+ const { readGlobalConfig: readGlobalConfig2, writeGlobalConfig: writeGlobalConfig2 } = await import("./setup-3434PQ5Q.js");
5241
5274
  const globalConfig = readGlobalConfig2();
5242
5275
  globalConfig.spiritModel = body.model;
5243
5276
  writeGlobalConfig2(globalConfig);
@@ -5265,7 +5298,7 @@ ${user.trimEnd()}
5265
5298
  if (!body.systemPrompt || !body.message) {
5266
5299
  return c.json({ error: "systemPrompt and message required" }, 400);
5267
5300
  }
5268
- const { aiComplete: aiCompleteFn, isAiConfigured } = await import("./ai-service-EVLKMAJD.js");
5301
+ const { aiComplete: aiCompleteFn, isAiConfigured } = await import("./ai-service-ZHEPFC3U.js");
5269
5302
  if (!isAiConfigured()) {
5270
5303
  return c.json({ error: "AI service not configured" }, 503);
5271
5304
  }
@@ -6009,7 +6042,7 @@ var app15 = new Hono17().get("/:name/clock/status", requireSelf(), async (c) =>
6009
6042
  const body = await c.req.text();
6010
6043
  const message = `[webhook: ${event}] ${body}`;
6011
6044
  try {
6012
- const { sendSystemMessage } = await import("./system-chat-7CA2PP6A.js");
6045
+ const { sendSystemMessage } = await import("./system-chat-HCPHUQGI.js");
6013
6046
  await sendSystemMessage(name, message);
6014
6047
  return c.json({ ok: true });
6015
6048
  } catch (err) {
@@ -6063,7 +6096,7 @@ setup.get("/status", async (c) => {
6063
6096
  let hasAccount = false;
6064
6097
  if (hasSystem) {
6065
6098
  try {
6066
- const { listUsersByType: listUsersByType2 } = await import("./auth-X6ZITZ7D.js");
6099
+ const { listUsersByType: listUsersByType2 } = await import("./auth-VYW2ECCE.js");
6067
6100
  const brains = await listUsersByType2("brain");
6068
6101
  hasAccount = brains.length > 0;
6069
6102
  } catch (err) {
@@ -6274,7 +6307,7 @@ setup.post("/account", async (c) => {
6274
6307
  }
6275
6308
  }
6276
6309
  try {
6277
- const { createUser: createUser2, updateUserProfile: updateUserProfile2 } = await import("./auth-X6ZITZ7D.js");
6310
+ const { createUser: createUser2, updateUserProfile: updateUserProfile2 } = await import("./auth-VYW2ECCE.js");
6278
6311
  const user = await createUser2(body.username.trim(), body.password);
6279
6312
  if (body.displayName?.trim()) {
6280
6313
  await updateUserProfile2(user.id, { display_name: body.displayName.trim() });
@@ -6320,7 +6353,7 @@ setup.post("/models", async (c) => {
6320
6353
  return c.json({ error: "Spirit model is required" }, 400);
6321
6354
  }
6322
6355
  try {
6323
- const { setEnabledModels: setEnabledModels3, setUtilityModel: setUtilityModel2 } = await import("./ai-service-EVLKMAJD.js");
6356
+ const { setEnabledModels: setEnabledModels3, setUtilityModel: setUtilityModel2 } = await import("./ai-service-ZHEPFC3U.js");
6324
6357
  setEnabledModels3(body.models);
6325
6358
  const config2 = readGlobalConfig();
6326
6359
  config2.spiritModel = body.spiritModel.trim();
@@ -6338,15 +6371,15 @@ setup.post("/complete", async (c) => {
6338
6371
  return c.json({ error: "Setup already complete" }, 400);
6339
6372
  }
6340
6373
  try {
6341
- const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-T6GK5GEP.js");
6342
- const { startSpiritFull } = await import("./mind-service-X7FH3NA4.js");
6374
+ const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-KTBHLULO.js");
6375
+ const { startSpiritFull } = await import("./mind-service-L7LMMDYJ.js");
6343
6376
  await ensureSpiritProject();
6344
6377
  await syncSpiritTemplate();
6345
6378
  const warnings = [];
6346
6379
  const config2 = readGlobalConfig();
6347
6380
  if (config2.setup?.service && config2.setup?.type === "local") {
6348
6381
  try {
6349
- const { installUserService } = await import("./service-install-W3FQXJKB.js");
6382
+ const { installUserService } = await import("./service-install-NLGAVTQS.js");
6350
6383
  const installed = await installUserService(config2.port, config2.hostname);
6351
6384
  if (!installed) {
6352
6385
  warnings.push("Service installation is not supported on this platform.");
@@ -6374,8 +6407,8 @@ setup.post("/complete", async (c) => {
6374
6407
  }
6375
6408
  let spiritConversationId;
6376
6409
  try {
6377
- const { getOrCreateMindUser: getOrCreateMindUser2, listUsersByType: listUsersByType2 } = await import("./auth-X6ZITZ7D.js");
6378
- const { createConversation: createConversation2, findDMConversation: findDMConversation2 } = await import("./conversations-AYLXPOGC.js");
6410
+ const { getOrCreateMindUser: getOrCreateMindUser2, listUsersByType: listUsersByType2 } = await import("./auth-VYW2ECCE.js");
6411
+ const { createConversation: createConversation2, findDMConversation: findDMConversation2 } = await import("./conversations-KW7IYESK.js");
6379
6412
  const spiritUser = await getOrCreateMindUser2("volute");
6380
6413
  const brains = await listUsersByType2("brain");
6381
6414
  const admin2 = brains.find((u) => u.role === "admin");
@@ -6397,8 +6430,8 @@ setup.post("/complete", async (c) => {
6397
6430
  logger_default.info("setup complete state", { spiritConversationId, spiritStarted });
6398
6431
  if (spiritConversationId && spiritStarted) {
6399
6432
  try {
6400
- const { deliverMessage: deliverMessage2 } = await import("./message-delivery-Q7TU24IA.js");
6401
- const { listUsersByType: listUsers2 } = await import("./auth-X6ZITZ7D.js");
6433
+ const { deliverMessage: deliverMessage2 } = await import("./message-delivery-X4CZE2L6.js");
6434
+ const { listUsersByType: listUsers2 } = await import("./auth-VYW2ECCE.js");
6402
6435
  const admins = await listUsers2("brain");
6403
6436
  const admin2 = admins.find((u) => u.role === "admin");
6404
6437
  const adminName = admin2?.display_name || admin2?.username || "the admin";
@@ -7155,8 +7188,8 @@ var app21 = new Hono24().get("/:name/variants", async (c) => {
7155
7188
  await cleanupVariant(variantName, projectRoot, variantEntry.dir);
7156
7189
  if (variantName.endsWith("-upgrade") || variantName === "upgrade") {
7157
7190
  try {
7158
- const { computeTemplateHash: computeTemplateHash2 } = await import("./template-hash-DMHSLRDX.js");
7159
- const { setMindTemplateHash: setMindTemplateHash2 } = await import("./registry-GV35XFT7.js");
7191
+ const { computeTemplateHash: computeTemplateHash2 } = await import("./template-hash-JARTCRGS.js");
7192
+ const { setMindTemplateHash: setMindTemplateHash2 } = await import("./registry-RAXNFN7K.js");
7160
7193
  const tmpl = parentEntry.template ?? "claude";
7161
7194
  await setMindTemplateHash2(mindName, computeTemplateHash2(tmpl));
7162
7195
  } catch (err) {
@@ -7928,18 +7961,18 @@ async function startDaemon(opts) {
7928
7961
  const DAEMON_JSON_PATH = resolve17(systemDir, "daemon.json");
7929
7962
  mkdirSync10(home, { recursive: true });
7930
7963
  ensureSystemDir();
7931
- const { migrateSetupCompleted } = await import("./setup-OTEC3ZPM.js");
7964
+ const { migrateSetupCompleted } = await import("./setup-3434PQ5Q.js");
7932
7965
  migrateSetupCompleted();
7933
- await (await import("./db-ZEPKEJJD.js")).getDb();
7966
+ await (await import("./db-D4FVCA5I.js")).getDb();
7934
7967
  try {
7935
7968
  const { eq: eq7, and: and5 } = await import("drizzle-orm");
7936
- const { users: users2 } = await import("./schema-LYQUDL7G.js");
7937
- const db = await (await import("./db-ZEPKEJJD.js")).getDb();
7969
+ const { users: users2 } = await import("./schema-HHYJDG7B.js");
7970
+ const db = await (await import("./db-D4FVCA5I.js")).getDb();
7938
7971
  await db.update(users2).set({ role: "system" }).where(and5(eq7(users2.user_type, "system"), eq7(users2.role, "user")));
7939
7972
  } catch (err) {
7940
7973
  logger_default.warn("failed to migrate system user role", logger_default.errorData(err));
7941
7974
  }
7942
- const { initSandbox } = await import("./sandbox-5R32QKWQ.js");
7975
+ const { initSandbox } = await import("./sandbox-O3GZTS7J.js");
7943
7976
  await initSandbox();
7944
7977
  try {
7945
7978
  await syncBuiltinSkills();
@@ -7966,7 +7999,7 @@ async function startDaemon(opts) {
7966
7999
  logger_default.warn("failed to ensure #system channel", logger_default.errorData(err));
7967
8000
  }
7968
8001
  try {
7969
- const { getOrCreateSystemUser: getOrCreateSystemUser2 } = await import("./auth-X6ZITZ7D.js");
8002
+ const { getOrCreateSystemUser: getOrCreateSystemUser2 } = await import("./auth-VYW2ECCE.js");
7970
8003
  await getOrCreateSystemUser2();
7971
8004
  } catch (err) {
7972
8005
  logger_default.warn(
@@ -7975,12 +8008,12 @@ async function startDaemon(opts) {
7975
8008
  );
7976
8009
  }
7977
8010
  const token = process.env.VOLUTE_DAEMON_TOKEN || randomBytes(32).toString("hex");
7978
- const { readGlobalConfig: readGlobalConfig2 } = await import("./setup-OTEC3ZPM.js");
8011
+ const { readGlobalConfig: readGlobalConfig2 } = await import("./setup-3434PQ5Q.js");
7979
8012
  const globalCfg = readGlobalConfig2();
7980
8013
  let tls;
7981
8014
  if (opts.tailscale || globalCfg.tailscale) {
7982
8015
  try {
7983
- const { getTailscaleTls } = await import("./tailscale-X4HRKRTW.js");
8016
+ const { getTailscaleTls } = await import("./tailscale-PK3AI5EV.js");
7984
8017
  const tlsConfig = await getTailscaleTls();
7985
8018
  tls = { key: tlsConfig.key, cert: tlsConfig.cert };
7986
8019
  logger_default.info("Tailscale HTTPS enabled", { hostname: tlsConfig.hostname });
@@ -8059,10 +8092,10 @@ async function startDaemon(opts) {
8059
8092
  await Promise.all(workers);
8060
8093
  }
8061
8094
  try {
8062
- const { isSetupComplete: isSetupComplete2 } = await import("./setup-OTEC3ZPM.js");
8095
+ const { isSetupComplete: isSetupComplete2 } = await import("./setup-3434PQ5Q.js");
8063
8096
  if (isSetupComplete2()) {
8064
- const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-T6GK5GEP.js");
8065
- const { startSpiritFull } = await import("./mind-service-X7FH3NA4.js");
8097
+ const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-KTBHLULO.js");
8098
+ const { startSpiritFull } = await import("./mind-service-L7LMMDYJ.js");
8066
8099
  await ensureSpiritProject();
8067
8100
  await syncSpiritTemplate();
8068
8101
  const spiritEntry = await findMind("volute");
@@ -8079,7 +8112,7 @@ async function startDaemon(opts) {
8079
8112
  bridgeManager.startBridges(daemonPort).catch((err) => {
8080
8113
  logger_default.warn("failed to start bridges", logger_default.errorData(err));
8081
8114
  });
8082
- import("./cloud-sync-GOSJZIHH.js").then(
8115
+ import("./cloud-sync-GV6O2HN2.js").then(
8083
8116
  ({ consumeQueuedMessages }) => consumeQueuedMessages().catch((err) => {
8084
8117
  logger_default.warn("failed to consume queued cloud messages", logger_default.errorData(err));
8085
8118
  })
@@ -8087,7 +8120,7 @@ async function startDaemon(opts) {
8087
8120
  logger_default.warn("failed to load cloud-sync module", logger_default.errorData(err));
8088
8121
  });
8089
8122
  try {
8090
- const { backfillTemplateHashes, notifyVersionUpdate } = await import("./version-notify-DK6AHWX7.js");
8123
+ const { backfillTemplateHashes, notifyVersionUpdate } = await import("./version-notify-SSNAWZMX.js");
8091
8124
  backfillTemplateHashes();
8092
8125
  notifyVersionUpdate().catch((err) => {
8093
8126
  logger_default.warn("failed to send version update notifications", logger_default.errorData(err));
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ getDb
4
+ } from "./chunk-VDODEQSJ.js";
5
+ import "./chunk-MHFAWJCC.js";
6
+ import "./chunk-K3NQKI34.js";
7
+ export {
8
+ getDb
9
+ };
@@ -8,7 +8,7 @@ import {
8
8
  syncPublishedPages,
9
9
  syncSystemPages
10
10
  } from "./chunk-QHG4OMZL.js";
11
- import "./chunk-LMMQX4CK.js";
11
+ import "./chunk-K3NQKI34.js";
12
12
  export {
13
13
  getAllSites,
14
14
  getPublishedPages,
@@ -6,7 +6,7 @@ import {
6
6
  command
7
7
  } from "./chunk-TXSA4Q3V.js";
8
8
  import "./chunk-O7IGP7ZW.js";
9
- import "./chunk-LMMQX4CK.js";
9
+ import "./chunk-K3NQKI34.js";
10
10
 
11
11
  // packages/cli/src/commands/delete.ts
12
12
  var cmd = command({
@@ -18,8 +18,8 @@ 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-H6MEKK2W.js");
22
- const { getClient, urlOf } = await import("./api-client-NFM6GX2N.js");
21
+ const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
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" : "");
25
25
  const res = await daemonFetch(url, { method: "DELETE" });