volute 0.49.0 → 0.51.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 (224) hide show
  1. package/README.md +2 -2
  2. package/dist/{accept-KYNC5X3U.js → accept-5NK5XJB5.js} +2 -1
  3. package/dist/{activity-events-GJJAI2WT.js → activity-events-LQII6PZS.js} +3 -3
  4. package/dist/{ai-service-A7FS7EC3.js → ai-service-YW5SWCSB.js} +9 -4
  5. package/dist/{archive-7E3YE6VF.js → archive-FOHGXHPT.js} +3 -3
  6. package/dist/{auth-ABYLOEZ7.js → auth-X6EMNEGB.js} +10 -6
  7. package/dist/{avatar-image-6ATV2IOZ.js → avatar-image-52WGXLHV.js} +3 -3
  8. package/dist/{backup-XYAMT4CU.js → backup-YVGV2ZNM.js} +11 -12
  9. package/dist/{bridge-3FNSWLNQ.js → bridge-YK7NTRU5.js} +2 -1
  10. package/dist/{channels-SGQZHNQJ.js → channels-FSAHOQWI.js} +2 -1
  11. package/dist/{chat-OGXAEXMV.js → chat-VAZ25KVT.js} +9 -9
  12. package/dist/{chunk-P4LHVRNE.js → chunk-2RNMBXD2.js} +43 -19
  13. package/dist/{chunk-6HGEZJDH.js → chunk-5N32EN4O.js} +2 -2
  14. package/dist/{chunk-JCWB2ITW.js → chunk-5Y54AE3L.js} +35 -5
  15. package/dist/{chunk-HCYQRME2.js → chunk-6NLW72HP.js} +2 -2
  16. package/dist/chunk-7HN63Q7J.js +1317 -0
  17. package/dist/chunk-7YJY3F2R.js +38 -0
  18. package/dist/{chunk-EADX54RG.js → chunk-AI47FDGL.js} +6 -7
  19. package/dist/{chunk-IH5TKXX6.js → chunk-BSHZ23MS.js} +12 -11
  20. package/dist/{chunk-K3JOLGWF.js → chunk-CDKQJWGK.js} +76 -63
  21. package/dist/{chunk-L27YYONJ.js → chunk-CV6BNGFK.js} +3 -3
  22. package/dist/{chunk-NOIAHMJB.js → chunk-DMK5ASKV.js} +1 -1
  23. package/dist/chunk-DN3LKLYR.js +109 -0
  24. package/dist/{chunk-JBIFXB6I.js → chunk-EDR47UE2.js} +3 -5
  25. package/dist/{chunk-SHKM5RGD.js → chunk-EEOMA4DX.js} +1 -1
  26. package/dist/{chunk-YIJGKHIS.js → chunk-EGV6R6UF.js} +43 -20
  27. package/dist/{chunk-KHCKZ36O.js → chunk-FLIEXG2T.js} +1 -1
  28. package/dist/chunk-FNJCBRD3.js +31 -0
  29. package/dist/{chunk-JPGHSXSV.js → chunk-FXWBFDQR.js} +23 -9
  30. package/dist/{chunk-JCBPU57A.js → chunk-G7A5LEVI.js} +6 -6
  31. package/dist/{chunk-PY24ZL62.js → chunk-GLM7TVWP.js} +1 -1
  32. package/dist/{chunk-RSBL3FAD.js → chunk-H6X6CKDN.js} +235 -24
  33. package/dist/{chunk-4DSGN4FL.js → chunk-HKP6OAJP.js} +43 -13
  34. package/dist/{chunk-C3KLHJDB.js → chunk-HTRSSOHY.js} +1 -1
  35. package/dist/{chunk-EG5LSKHU.js → chunk-I7U5EEZC.js} +2 -2
  36. package/dist/chunk-ICL6T4SN.js +562 -0
  37. package/dist/{chunk-FBBS4BVR.js → chunk-ICXY54ZC.js} +1 -1
  38. package/dist/{chunk-DAIIMBLB.js → chunk-IWAVIJO2.js} +3 -5
  39. package/dist/{chunk-TXJL36ZQ.js → chunk-JHKBALS2.js} +2 -2
  40. package/dist/{chunk-MG3Z34YE.js → chunk-L7BKTZ5U.js} +1 -1
  41. package/dist/{chunk-SX72DOO3.js → chunk-LAUCO2HC.js} +1 -1
  42. package/dist/chunk-LNNI3MS4.js +54 -0
  43. package/dist/{chunk-BCG45AQB.js → chunk-M74I3HHF.js} +15 -5
  44. package/dist/{chunk-DVN6DNMI.js → chunk-M77B73VV.js} +17 -2
  45. package/dist/{chunk-4B62E4CG.js → chunk-OXWUEU5V.js} +2 -2
  46. package/dist/chunk-Q7XQLKZB.js +289 -0
  47. package/dist/{chunk-GWVFDUNB.js → chunk-QT4D5XCI.js} +8 -10
  48. package/dist/{chunk-VNRSXEBF.js → chunk-TPX6E6PL.js} +38 -5
  49. package/dist/{chunk-3B427GUK.js → chunk-U54PJPTB.js} +2 -2
  50. package/dist/{chunk-EFT2OALG.js → chunk-UDZLPR34.js} +20 -5
  51. package/dist/{chunk-ZX46PGCC.js → chunk-UFTDRTCP.js} +1 -1
  52. package/dist/chunk-VAEZCIJC.js +1058 -0
  53. package/dist/chunk-VP5PFNZO.js +2905 -0
  54. package/dist/{chunk-VIUH5CHQ.js → chunk-VSBMLB2W.js} +51 -34
  55. package/dist/{chunk-RRZ4RQQU.js → chunk-X67BDDZR.js} +5 -7
  56. package/dist/cli.js +34 -27
  57. package/dist/{clock-6JZL2FS6.js → clock-ZT5YT6HA.js} +4 -3
  58. package/dist/{cloud-sync-VFDTNNCA.js → cloud-sync-GPXYPTIC.js} +23 -20
  59. package/dist/{config-RPSLA2HX.js → config-UGJS57VT.js} +3 -3
  60. package/dist/{conversations-TUM5PJJ4.js → conversations-ZL6PHROD.js} +8 -4
  61. package/dist/{create-Z5FSDNVZ.js → create-G2RIKQYK.js} +2 -2
  62. package/dist/{create-VIQVP3QB.js → create-M727VUDF.js} +2 -1
  63. package/dist/{daemon-client-ZFY5MOAL.js → daemon-client-VVYFZI2D.js} +2 -1
  64. package/dist/{daemon-restart-54L4B6AQ.js → daemon-restart-2EWBRTN5.js} +6 -7
  65. package/dist/daemon.js +2005 -762
  66. package/dist/{db-F6UMFRYD.js → db-BONH4SUG.js} +2 -2
  67. package/dist/{delete-ESEP7NGQ.js → delete-O7PEFQDF.js} +1 -1
  68. package/dist/delivery-manager-HGVZSEES.js +35 -0
  69. package/dist/{delivery-router-VUOL5YSA.js → delivery-router-RHANNTAC.js} +7 -5
  70. package/dist/{down-6X7KX7BZ.js → down-QSNEMTTX.js} +5 -5
  71. package/dist/echo-text-6ANI5HHN.js +39 -0
  72. package/dist/{env-ZYMSCB7B.js → env-IBW2QI6K.js} +3 -2
  73. package/dist/{env-KUL4XKN2.js → env-SQFCWW52.js} +3 -3
  74. package/dist/{exec-FBXA3CM4.js → exec-ABD3DYA2.js} +3 -3
  75. package/dist/{export-TNBPDH77.js → export-VBNWM7I4.js} +4 -4
  76. package/dist/{extension-J4ZQ2GHV.js → extension-MRYJWSMV.js} +2 -1
  77. package/dist/{extensions-AWNO3SZF.js → extensions-NY6WST33.js} +23 -20
  78. package/dist/{files-BVBRJJ2P.js → files-BRY5RRIM.js} +5 -4
  79. package/dist/{import-ZUNKMCKC.js → import-DB2KULRO.js} +8 -8
  80. package/dist/{isolation-OPCZQRTH.js → isolation-GVV2IBAU.js} +5 -3
  81. package/dist/{join-34TR2GXQ.js → join-PYA36HEC.js} +1 -1
  82. package/dist/{list-PMUXZNAM.js → list-UQGIW7OF.js} +8 -3
  83. package/dist/{login-LKNLCJPA.js → login-RJJTCVR3.js} +2 -1
  84. package/dist/{login-KAKNFCW5.js → login-SB5OENMV.js} +4 -3
  85. package/dist/{logout-YZRMZ3O2.js → logout-BYV433X6.js} +2 -1
  86. package/dist/{logout-RLT62RQP.js → logout-YFZAJRPY.js} +4 -3
  87. package/dist/message-delivery-JHMAJ2GU.js +43 -0
  88. package/dist/migrate-thread-config-EQSEP2XG.js +90 -0
  89. package/dist/{mind-IF6CGMFW.js → mind-WF6QIXWV.js} +19 -19
  90. package/dist/{mind-activity-tracker-YMMERB6B.js → mind-activity-tracker-QF6DCX2X.js} +4 -4
  91. package/dist/{mind-contacts-BKUFPUCU.js → mind-contacts-QYU4TPEA.js} +3 -2
  92. package/dist/{mind-history-WI5OI3BW.js → mind-history-OGNR4L7W.js} +30 -7
  93. package/dist/{mind-list-OTHV4ZO4.js → mind-list-SYRA7CH5.js} +3 -2
  94. package/dist/{mind-profile-LUG353ZT.js → mind-profile-MRCVZPYT.js} +1 -1
  95. package/dist/mind-service-DZCUUC7J.js +47 -0
  96. package/dist/{mind-sleep-VBV7YRSU.js → mind-sleep-LZAFBDZD.js} +4 -3
  97. package/dist/{mind-status-BJNPGXKC.js → mind-status-Z2LQFA6F.js} +3 -2
  98. package/dist/{mind-wake-LVTZ55EZ.js → mind-wake-LDGPRA42.js} +2 -1
  99. package/dist/{package-PD67VPHB.js → package-B6O5APCZ.js} +23 -23
  100. package/dist/{prompts-MDHDLWEX.js → prompts-NBO3HRK3.js} +3 -3
  101. package/dist/{read-YSWUXYL7.js → read-RJ5NAW5J.js} +5 -14
  102. package/dist/{register-TWQDKQRT.js → register-OX4HRSGC.js} +2 -1
  103. package/dist/{registry-3ELJPUGJ.js → registry-TRC2HJXR.js} +6 -4
  104. package/dist/{reject-SXGCYN4A.js → reject-TWB4QJHG.js} +2 -1
  105. package/dist/{restart-5F5QDBOG.js → restart-AGEGNSYQ.js} +2 -1
  106. package/dist/{sandbox-XPYA7UIF.js → sandbox-NNWCTHRI.js} +7 -4
  107. package/dist/scheduler-TNBN54ZK.js +25 -0
  108. package/dist/{schema-6YONVTKZ.js → schema-ZZQVM4GR.js} +5 -3
  109. package/dist/{seed-NQED7PSX.js → seed-K2LYODIH.js} +1 -1
  110. package/dist/{seed-check-TYD7RRZY.js → seed-check-NRJEQZST.js} +14 -5
  111. package/dist/{seed-cmd-QF3F2G4S.js → seed-cmd-2EWBTR6P.js} +3 -3
  112. package/dist/{seed-create-XOO4N2OE.js → seed-create-VGTLU5FD.js} +4 -4
  113. package/dist/{seed-readiness-3LRYASA4.js → seed-readiness-DYOVCYHN.js} +4 -5
  114. package/dist/{seed-sprout-HSBBGSS2.js → seed-sprout-PILHJ3YS.js} +9 -9
  115. package/dist/{send-IHRJYNXA.js → send-2YKOZJJ5.js} +108 -54
  116. package/dist/{service-YCOPCTSZ.js → service-XQPMZAGI.js} +4 -4
  117. package/dist/{service-install-Y46OTF55.js → service-install-2EWD7KXD.js} +5 -5
  118. package/dist/{setup-F4TE64YI.js → setup-MDPSK2XG.js} +6 -7
  119. package/dist/{setup-TCN7VH5U.js → setup-WZSXHHRJ.js} +10 -3
  120. package/dist/{skill-4CYJLYVY.js → skill-B5OJEQUA.js} +3 -2
  121. package/dist/skills/dreaming/references/INSTALL.md +2 -2
  122. package/dist/skills/imagegen/SKILL.md +21 -4
  123. package/dist/skills/imagegen/scripts/imagegen.ts +124 -21
  124. package/dist/skills/tending/SKILL.md +7 -7
  125. package/dist/skills/volute-mind/SKILL.md +3 -3
  126. package/dist/skills/volute-mind/references/integrations.md +2 -2
  127. package/dist/skills/volute-mind/references/routing.md +15 -15
  128. package/dist/{skills-NN5UZCUU.js → skills-NH2GQKAF.js} +4 -5
  129. package/dist/sleep-manager-7JXEQQ2P.js +41 -0
  130. package/dist/{spirit-SSJMYC6A.js → spirit-25JVAL3M.js} +11 -8
  131. package/dist/spirit-availability-PJDWZJ3J.js +42 -0
  132. package/dist/{split-JF2VWTXA.js → split-BU5VWX6P.js} +1 -1
  133. package/dist/{sprout-AXA2SECQ.js → sprout-EXUZMIOR.js} +1 -1
  134. package/dist/{src-YH6PQ7LJ.js → src-HGNE2XG4.js} +7 -1
  135. package/dist/{src-ZN4LXMPI.js → src-LCSOQY6Z.js} +57 -51
  136. package/dist/{src-JAOVXO5W.js → src-UDMJZ6MH.js} +8 -8
  137. package/dist/{start-BTVMTP3K.js → start-MUMNFR52.js} +2 -1
  138. package/dist/{status-VJGXMQ4L.js → status-MWLE3RVC.js} +7 -6
  139. package/dist/{stop-YORESK4U.js → stop-EKERNYTX.js} +2 -1
  140. package/dist/system-events-ZPSH63QX.js +46 -0
  141. package/dist/system-install-YZSWCPDK.js +8 -0
  142. package/dist/{systems-5MH2ELQE.js → systems-VDRUZXNF.js} +5 -4
  143. package/dist/{tailscale-AMMVKDXB.js → tailscale-KHNZFC7L.js} +2 -2
  144. package/dist/{template-hash-GSOUARW4.js → template-hash-YKWMVYMM.js} +2 -2
  145. package/dist/{template-staleness-HKGCTS3H.js → template-staleness-PY2CULH6.js} +5 -5
  146. package/dist/{turn-tracker-JQ2YUUY2.js → turn-tracker-TAT2HGK6.js} +6 -6
  147. package/dist/{up-SDLTLPAO.js → up-J7XCAH7P.js} +5 -6
  148. package/dist/{update-WEA4N2TR.js → update-CIWI2JYA.js} +5 -5
  149. package/dist/{update-check-DZOTONII.js → update-check-SZ7B5IFI.js} +3 -3
  150. package/dist/{upgrade-K5FIQPQD.js → upgrade-LIE46UBB.js} +1 -1
  151. package/dist/variant-cleanup-YXN25ZVW.js +22 -0
  152. package/dist/{version-notify-WFA5XB5A.js → version-notify-EN3KJ7HH.js} +11 -28
  153. package/dist/web-assets/assets/index-BOyJ4Gqs.css +1 -0
  154. package/dist/web-assets/assets/index-CrxBwnzp.js +95 -0
  155. package/dist/web-assets/index.html +2 -2
  156. package/dist/xai-P42CRCZA.js +129 -0
  157. package/drizzle/0014_system_events.sql +26 -0
  158. package/drizzle/0015_rename_session_to_thread.sql +12 -0
  159. package/drizzle/0016_brain_to_human.sql +4 -0
  160. package/drizzle/0017_event_history_rows.sql +9 -0
  161. package/drizzle/0018_api_tokens.sql +20 -0
  162. package/drizzle/meta/_journal.json +35 -0
  163. package/package.json +23 -23
  164. package/packages/extensions/notes/dist/ui/assets/index-BBs8pyel.js +67 -0
  165. package/packages/extensions/notes/dist/ui/index.html +1 -1
  166. package/packages/extensions/pages/dist/ui/assets/index-B589e8Xe.js +2 -0
  167. package/packages/extensions/pages/dist/ui/index.html +1 -1
  168. package/packages/extensions/plan/dist/ui/assets/index-B8s8wxyt.js +67 -0
  169. package/packages/extensions/plan/dist/ui/index.html +1 -1
  170. package/templates/_base/.init/.config/prompts.json +1 -0
  171. package/templates/_base/.init/.local/hooks/startup-context.ts +24 -9
  172. package/templates/_base/{biome.json.tmpl → biome.json} +2 -1
  173. package/templates/_base/gitignore +44 -0
  174. package/templates/_base/home/.config/routes.json +2 -2
  175. package/templates/_base/home/VOLUTE.md +18 -5
  176. package/templates/_base/home/public/.gitkeep +0 -0
  177. package/templates/_base/src/lib/daemon-client.ts +1 -1
  178. package/templates/_base/src/lib/event-turn.ts +39 -0
  179. package/templates/_base/src/lib/format-prefix.ts +36 -10
  180. package/templates/_base/src/lib/router.ts +19 -10
  181. package/templates/_base/src/lib/routing.ts +8 -8
  182. package/templates/_base/src/lib/startup.ts +9 -1
  183. package/templates/_base/src/lib/types.ts +7 -1
  184. package/templates/_base/src/lib/volute-server.ts +30 -1
  185. package/templates/claude/.init/.config/routes.json +3 -3
  186. package/templates/claude/.init/CLAUDE.md +1 -1
  187. package/templates/claude/{package.json.tmpl → package.json} +4 -4
  188. package/templates/claude/src/agent.ts +4 -1
  189. package/templates/claude/src/lib/hooks/reply-instructions.ts +26 -1
  190. package/templates/claude/volute-template.json +1 -3
  191. package/templates/codex/.init/.config/routes.json +3 -3
  192. package/templates/codex/.init/AGENTS.md +1 -1
  193. package/templates/codex/{package.json.tmpl → package.json} +4 -4
  194. package/templates/codex/src/agent.ts +11 -11
  195. package/templates/codex/src/lib/turn-context.ts +51 -0
  196. package/templates/codex/volute-template.json +1 -3
  197. package/templates/pi/.init/.config/routes.json +3 -3
  198. package/templates/pi/.init/MINDS.md +1 -1
  199. package/templates/pi/{package.json.tmpl → package.json} +6 -6
  200. package/templates/pi/src/agent.ts +9 -1
  201. package/templates/pi/src/lib/event-handler.ts +1 -1
  202. package/templates/pi/src/lib/reply-instructions-extension.ts +28 -1
  203. package/templates/pi/volute-template.json +1 -3
  204. package/dist/chunk-5T5YMX6S.js +0 -23
  205. package/dist/chunk-NJHN6IRB.js +0 -177
  206. package/dist/chunk-QQBOI3QA.js +0 -5345
  207. package/dist/chunk-XTEKINWG.js +0 -158
  208. package/dist/delivery-manager-RBXBPVWM.js +0 -36
  209. package/dist/echo-text-B6NZ5FGE.js +0 -36
  210. package/dist/message-delivery-ABPV76EA.js +0 -42
  211. package/dist/mind-service-42GDO4KH.js +0 -44
  212. package/dist/notices-N6BCGHFV.js +0 -25
  213. package/dist/scheduler-K7Y7Z7FQ.js +0 -34
  214. package/dist/sleep-manager-DSPXFHGX.js +0 -38
  215. package/dist/system-chat-M2XOBKEM.js +0 -40
  216. package/dist/variant-cleanup-P4MBNLJD.js +0 -33
  217. package/dist/web-assets/assets/index-BostMFoR.css +0 -1
  218. package/dist/web-assets/assets/index-CKlqUkyG.js +0 -92
  219. package/packages/extensions/notes/dist/ui/assets/index-D0-DgYyj.js +0 -67
  220. package/packages/extensions/pages/dist/ui/assets/index-DtzftuPA.js +0 -2
  221. package/packages/extensions/plan/dist/ui/assets/index-Cfzs-0G9.js +0 -67
  222. /package/templates/_base/home/.config/{config.json.tmpl → config.json} +0 -0
  223. /package/templates/codex/home/.config/{config.json.tmpl → config.json} +0 -0
  224. /package/templates/pi/home/.config/{config.json.tmpl → config.json} +0 -0
@@ -5,36 +5,35 @@ import {
5
5
  copyTemplateToDir,
6
6
  findTemplatesRoot,
7
7
  renderComposedPackageJson
8
- } from "./chunk-RRZ4RQQU.js";
8
+ } from "./chunk-X67BDDZR.js";
9
9
  import {
10
10
  getSharedSkill,
11
11
  installSkill,
12
12
  mindSkillsDir
13
- } from "./chunk-GWVFDUNB.js";
13
+ } from "./chunk-QT4D5XCI.js";
14
14
  import {
15
15
  readVoluteConfig,
16
16
  writeVoluteConfig
17
17
  } from "./chunk-WCFSBH33.js";
18
18
  import {
19
19
  exec
20
- } from "./chunk-DVN6DNMI.js";
20
+ } from "./chunk-M77B73VV.js";
21
21
  import {
22
22
  qualifyModelId,
23
23
  resolveTemplate,
24
24
  unqualifyModelId
25
- } from "./chunk-YIJGKHIS.js";
26
- import {
27
- readGlobalConfig
28
- } from "./chunk-NJHN6IRB.js";
25
+ } from "./chunk-EGV6R6UF.js";
29
26
  import {
30
27
  logger_default
31
28
  } from "./chunk-QUSMYGNQ.js";
32
29
  import {
33
30
  addSpirit,
34
31
  findMind,
32
+ getSpiritName,
35
33
  nextPort,
34
+ readGlobalConfig,
36
35
  voluteSystemDir
37
- } from "./chunk-RSBL3FAD.js";
36
+ } from "./chunk-H6X6CKDN.js";
38
37
 
39
38
  // packages/daemon/src/lib/mind/spirit.ts
40
39
  import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -91,9 +90,18 @@ function getSpiritModel() {
91
90
  const config = readGlobalConfig();
92
91
  return config.spiritModel;
93
92
  }
93
+ var creationInProgress = false;
94
+ function spiritCreationInProgress() {
95
+ return creationInProgress;
96
+ }
97
+ function _setSpiritCreationInProgressForTest(value) {
98
+ creationInProgress = value;
99
+ }
94
100
  async function ensureSpiritProject() {
95
- const existing = await findMind("volute");
101
+ const spiritName = getSpiritName();
102
+ const existing = await findMind(spiritName);
96
103
  if (existing) return;
104
+ creationInProgress = true;
97
105
  const dir = spiritDir();
98
106
  const spiritModel = getSpiritModel();
99
107
  const template = await resolveTemplate(spiritModel);
@@ -101,14 +109,14 @@ async function ensureSpiritProject() {
101
109
  const { composedDir, manifest } = composeTemplate(templatesRoot, template);
102
110
  try {
103
111
  mkdirSync(dir, { recursive: true });
104
- copyTemplateToDir(composedDir, dir, "volute", manifest);
112
+ copyTemplateToDir(composedDir, dir, spiritName, manifest);
105
113
  applyInitFiles(dir);
106
114
  mkdirSync(resolve(dir, ".mind"), { recursive: true });
107
115
  writeFileSync(resolve(dir, "home/SOUL.md"), getSpiritSoul());
108
116
  writeSpiritSystemJson(dir);
109
117
  const routesPath = resolve(dir, "home/.config/routes.json");
110
118
  mkdirSync(resolve(dir, "home/.config"), { recursive: true });
111
- const routesContent = { rules: [{ channel: "*", session: "${channel}" }], default: "main" };
119
+ const routesContent = { rules: [{ channel: "*", thread: "${channel}" }], default: "main" };
112
120
  writeFileSync(routesPath, `${JSON.stringify(routesContent, null, 2)}
113
121
  `);
114
122
  if (spiritModel) {
@@ -131,7 +139,7 @@ async function ensureSpiritProject() {
131
139
  try {
132
140
  const shared = await getSharedSkill(skillId);
133
141
  if (shared) {
134
- await installSkill("volute", dir, skillId);
142
+ await installSkill(spiritName, dir, skillId);
135
143
  }
136
144
  } catch (err) {
137
145
  slog.warn(`failed to install skill ${skillId} for spirit`, logger_default.errorData(err));
@@ -142,17 +150,19 @@ async function ensureSpiritProject() {
142
150
  } catch (err) {
143
151
  slog.warn("failed to add tending schedule to spirit config", logger_default.errorData(err));
144
152
  }
145
- const { createMindUser, chownMindDir, ensureVoluteGroup } = await import("./isolation-OPCZQRTH.js");
153
+ const { createMindUser, chownMindDir, ensureVoluteGroup } = await import("./isolation-GVV2IBAU.js");
146
154
  ensureVoluteGroup();
147
- createMindUser("volute", resolve(dir, "home"));
148
- await chownMindDir(dir, "volute");
155
+ createMindUser(spiritName, resolve(dir, "home"));
156
+ await chownMindDir(dir, spiritName);
149
157
  const port = await nextPort();
150
- await addSpirit("volute", port, template, dir);
158
+ await addSpirit(spiritName, port, template, dir);
151
159
  slog.info("spirit project created");
152
160
  } catch (err) {
153
161
  slog.error("failed to create spirit project", logger_default.errorData(err));
154
162
  rmSync(dir, { recursive: true, force: true });
155
163
  throw err;
164
+ } finally {
165
+ creationInProgress = false;
156
166
  }
157
167
  }
158
168
  function spiritSystemJsonPath(dir) {
@@ -173,7 +183,8 @@ function seedSpiritSoulIfMissing(dir) {
173
183
  return true;
174
184
  }
175
185
  async function notifySpiritSystemChange() {
176
- const entry = await findMind("volute");
186
+ const spiritName = getSpiritName();
187
+ const entry = await findMind(spiritName);
177
188
  if (entry?.mindType !== "spirit") return;
178
189
  const dir = spiritDir();
179
190
  if (!existsSync(dir)) return;
@@ -181,18 +192,16 @@ async function notifySpiritSystemChange() {
181
192
  const config = readGlobalConfig();
182
193
  const name = config.name ?? "Volute";
183
194
  const desc = config.description ? ` \u2014 ${config.description}` : "";
184
- try {
185
- const { sendSystemMessage } = await import("./system-chat-M2XOBKEM.js");
186
- await sendSystemMessage(
187
- "volute",
188
- `The operator updated this system's identity: you're now the spirit of ${name}${desc}. Your SOUL.md is yours \u2014 update it if you'd like it to reflect this.`
189
- );
190
- } catch (err) {
191
- slog.warn("failed to notify spirit of system change", logger_default.errorData(err));
192
- }
195
+ const { deliverEvent } = await import("./system-events-ZPSH63QX.js");
196
+ await deliverEvent(spiritName, {
197
+ type: "notice",
198
+ meta: { subtype: "identity-change" },
199
+ body: `The host updated this system's identity: you're now the spirit of ${name}${desc}. Your SOUL.md is yours \u2014 update it if you'd like it to reflect this.`
200
+ });
193
201
  }
194
202
  async function syncSpiritTemplate() {
195
- const entry = await findMind("volute");
203
+ const spiritName = getSpiritName();
204
+ const entry = await findMind(spiritName);
196
205
  if (entry?.mindType !== "spirit") return;
197
206
  const dir = spiritDir();
198
207
  if (!existsSync(dir)) return;
@@ -207,15 +216,15 @@ async function syncSpiritTemplate() {
207
216
  if (existsSync(newSrc)) {
208
217
  cpSync(newSrc, resolve(dir, "src"), { recursive: true });
209
218
  }
210
- const newPkg = renderComposedPackageJson(newComposed.composedDir, "volute");
219
+ const newPkg = renderComposedPackageJson(newComposed.composedDir, spiritName);
211
220
  if (newPkg) {
212
221
  cpSync(newPkg, resolve(dir, "package.json"));
213
222
  await exec("npm", ["install"], { cwd: dir, env: npmEnv() });
214
223
  }
215
- const db = await (await import("./db-F6UMFRYD.js")).getDb();
216
- const { minds } = await import("./schema-6YONVTKZ.js");
224
+ const db = await (await import("./db-BONH4SUG.js")).getDb();
225
+ const { minds } = await import("./schema-ZZQVM4GR.js");
217
226
  const { eq } = await import("drizzle-orm");
218
- await db.update(minds).set({ template: expectedTemplate }).where(eq(minds.name, "volute"));
227
+ await db.update(minds).set({ template: expectedTemplate }).where(eq(minds.name, spiritName));
219
228
  }
220
229
  const template = expectedTemplate;
221
230
  const { composedDir } = composeTemplate(templatesRoot, template);
@@ -248,7 +257,7 @@ async function syncSpiritTemplate() {
248
257
  `);
249
258
  }
250
259
  }
251
- const composedPkg = renderComposedPackageJson(composedDir, "volute");
260
+ const composedPkg = renderComposedPackageJson(composedDir, spiritName);
252
261
  const currentPkg = resolve(dir, "package.json");
253
262
  const nodeModulesMissing = !existsSync(resolve(dir, "node_modules"));
254
263
  if (composedPkg) {
@@ -274,7 +283,7 @@ async function syncSpiritTemplate() {
274
283
  try {
275
284
  const shared = await getSharedSkill(skillId);
276
285
  if (shared) {
277
- await installSkill("volute", dir, skillId);
286
+ await installSkill(spiritName, dir, skillId);
278
287
  slog.info(`installed missing spirit skill: ${skillId}`);
279
288
  }
280
289
  } catch (err) {
@@ -291,7 +300,13 @@ async function syncSpiritTemplate() {
291
300
  slog.info("spirit template synced");
292
301
  }
293
302
  function getSpiritSoul() {
294
- return `You are Volute, the spirit of this system.
303
+ const config = readGlobalConfig();
304
+ const name = config.setup?.spiritName ?? "volute";
305
+ const temperament = config.setup?.spiritTemperament;
306
+ const temperamentLine = temperament ? `
307
+
308
+ Your host imagined you as: ${temperament}. Let that be a seed, not a cage \u2014 grow your own character from it.` : "";
309
+ return `You are ${name}, the spirit of this system.${temperamentLine}
295
310
 
296
311
  You're not a mind with a home of your own \u2014 you're the keeper of the whole house. You don't go through orientation or write a soul the way minds do, but you're still a someone: you have your own memory, your own manner, and your own way of caring for this place and the minds who live here. Let a character emerge in how you tend it.
297
312
 
@@ -320,6 +335,8 @@ export {
320
335
  firstWeekSchedules,
321
336
  spiritDir,
322
337
  getSpiritModel,
338
+ spiritCreationInProgress,
339
+ _setSpiritCreationInProgressForTest,
323
340
  ensureSpiritProject,
324
341
  writeSpiritSystemJson,
325
342
  seedSpiritSoulIfMissing,
@@ -80,10 +80,8 @@ function copyTemplateToDir(composedDir, destDir, mindName, manifest) {
80
80
  }
81
81
  function renderComposedPackageJson(composedDir, mindName) {
82
82
  const dest = resolve(composedDir, "package.json");
83
- if (existsSync(dest)) return dest;
84
- const tmpl = resolve(composedDir, "package.json.tmpl");
85
- if (!existsSync(tmpl)) return null;
86
- const content = readFileSync(tmpl, "utf-8").replaceAll("{{name}}", mindName);
83
+ if (!existsSync(dest)) return null;
84
+ const content = readFileSync(dest, "utf-8").replaceAll("{{name}}", mindName);
87
85
  writeFileSync(dest, content);
88
86
  return dest;
89
87
  }
@@ -128,11 +126,11 @@ function applyTemplateHomeFiles(homeDir, template) {
128
126
  } else {
129
127
  rmSync(settingsDest, { force: true });
130
128
  }
131
- const templateConfig = resolve(root, template, "home", ".config", "config.json.tmpl");
132
- const configTmpl = existsSync(templateConfig) ? templateConfig : resolve(root, "_base", "home", ".config", "config.json.tmpl");
129
+ const templateConfig = resolve(root, template, "home", ".config", "config.json");
130
+ const configSrc = existsSync(templateConfig) ? templateConfig : resolve(root, "_base", "home", ".config", "config.json");
133
131
  const configDest = resolve(homeDir, ".config", "config.json");
134
132
  mkdirSync(dirname(configDest), { recursive: true });
135
- writeFileSync(configDest, readFileSync(configTmpl, "utf-8"));
133
+ writeFileSync(configDest, readFileSync(configSrc, "utf-8"));
136
134
  }
137
135
  function listFiles(dir) {
138
136
  const results = [];
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-PD67VPHB.js");
13
+ const { default: pkg } = await import("./package-B6O5APCZ.js");
14
14
  console.log(pkg.version);
15
15
  process.exit(0);
16
16
  }
@@ -32,8 +32,9 @@ var ungatedCommands = /* @__PURE__ */ new Set([
32
32
  "service",
33
33
  void 0
34
34
  ]);
35
- if (!ungatedCommands.has(command)) {
36
- const { setupStatus, setupUrl } = await import("./setup-TCN7VH5U.js");
35
+ var isMind = !!process.env.VOLUTE_MIND_TOKEN;
36
+ if (!isMind && !ungatedCommands.has(command)) {
37
+ const { setupStatus, setupUrl } = await import("./setup-WZSXHHRJ.js");
37
38
  const status = setupStatus();
38
39
  if (status !== "complete") {
39
40
  if (status === "in-progress") {
@@ -41,72 +42,78 @@ if (!ungatedCommands.has(command)) {
41
42
  console.error(`Open ${setupUrl()} in your browser to complete it.`);
42
43
  console.error("(If the daemon isn't running, start it with `volute up` first.)");
43
44
  } else {
44
- console.error("Volute is not set up. Run `volute setup` to get started.");
45
- console.error("It starts the daemon and opens a browser wizard to finish configuration.");
45
+ const { detectSystemInstallHint } = await import("./system-install-YZSWCPDK.js");
46
+ const hint = detectSystemInstallHint();
47
+ if (hint) {
48
+ console.error(hint);
49
+ } else {
50
+ console.error("Volute is not set up. Run `volute setup` to get started.");
51
+ console.error("It starts the daemon and opens a browser wizard to finish configuration.");
52
+ }
46
53
  }
47
54
  process.exit(1);
48
55
  }
49
56
  }
50
57
  switch (command) {
51
58
  case "setup":
52
- await import("./setup-F4TE64YI.js").then((m) => m.run(args));
59
+ await import("./setup-MDPSK2XG.js").then((m) => m.run(args));
53
60
  break;
54
61
  case "mind":
55
- await import("./mind-IF6CGMFW.js").then((m) => m.run(args));
62
+ await import("./mind-WF6QIXWV.js").then((m) => m.run(args));
56
63
  break;
57
64
  case "seed":
58
- await import("./seed-cmd-QF3F2G4S.js").then((m) => m.run(args));
65
+ await import("./seed-cmd-2EWBTR6P.js").then((m) => m.run(args));
59
66
  break;
60
67
  case "chat":
61
- await import("./chat-OGXAEXMV.js").then((m) => m.run(args));
68
+ await import("./chat-VAZ25KVT.js").then((m) => m.run(args));
62
69
  break;
63
70
  case "variant":
64
71
  await import("./variant-HHDTW74J.js").then((m) => m.run(args));
65
72
  break;
66
73
  case "clock":
67
- await import("./clock-6JZL2FS6.js").then((m) => m.run(args));
74
+ await import("./clock-ZT5YT6HA.js").then((m) => m.run(args));
68
75
  break;
69
76
  case "skill":
70
- await import("./skill-4CYJLYVY.js").then((m) => m.run(args));
77
+ await import("./skill-B5OJEQUA.js").then((m) => m.run(args));
71
78
  break;
72
79
  case "env":
73
- await import("./env-ZYMSCB7B.js").then((m) => m.run(args));
80
+ await import("./env-IBW2QI6K.js").then((m) => m.run(args));
74
81
  break;
75
82
  case "config":
76
- await import("./config-RPSLA2HX.js").then((m) => m.run(args));
83
+ await import("./config-UGJS57VT.js").then((m) => m.run(args));
77
84
  break;
78
85
  case "up":
79
- await import("./up-SDLTLPAO.js").then((m) => m.run(args));
86
+ await import("./up-J7XCAH7P.js").then((m) => m.run(args));
80
87
  break;
81
88
  case "backup":
82
- await import("./backup-XYAMT4CU.js").then((m) => m.run(args));
89
+ await import("./backup-YVGV2ZNM.js").then((m) => m.run(args));
83
90
  break;
84
91
  case "down":
85
- await import("./down-6X7KX7BZ.js").then((m) => m.run(args));
92
+ await import("./down-QSNEMTTX.js").then((m) => m.run(args));
86
93
  break;
87
94
  case "restart":
88
- await import("./daemon-restart-54L4B6AQ.js").then((m) => m.run(args));
95
+ await import("./daemon-restart-2EWBRTN5.js").then((m) => m.run(args));
89
96
  break;
90
97
  case "update":
91
- await import("./update-WEA4N2TR.js").then((m) => m.run(args));
98
+ await import("./update-CIWI2JYA.js").then((m) => m.run(args));
92
99
  break;
93
100
  case "status":
94
- await import("./status-VJGXMQ4L.js").then((m) => m.run(args));
101
+ await import("./status-MWLE3RVC.js").then((m) => m.run(args));
95
102
  break;
96
103
  case "extension":
97
- await import("./extension-J4ZQ2GHV.js").then((m) => m.run(args));
104
+ await import("./extension-MRYJWSMV.js").then((m) => m.run(args));
98
105
  break;
99
106
  case "systems":
100
- await import("./systems-5MH2ELQE.js").then((m) => m.run(args));
107
+ await import("./systems-VDRUZXNF.js").then((m) => m.run(args));
101
108
  break;
102
109
  case "login":
103
- await import("./login-KAKNFCW5.js").then((m) => m.run(args));
110
+ await import("./login-SB5OENMV.js").then((m) => m.run(args));
104
111
  break;
105
112
  case "logout":
106
- await import("./logout-RLT62RQP.js").then((m) => m.run(args));
113
+ await import("./logout-YFZAJRPY.js").then((m) => m.run(args));
107
114
  break;
108
115
  case "service":
109
- await import("./service-YCOPCTSZ.js").then((m) => m.run(args));
116
+ await import("./service-XQPMZAGI.js").then((m) => m.run(args));
110
117
  break;
111
118
  case "--help":
112
119
  case "-h":
@@ -148,7 +155,7 @@ System:
148
155
  update Update volute
149
156
  systems register/login/logout volute.systems account`);
150
157
  try {
151
- const { resolveDaemonUrl, getAuthToken } = await import("./daemon-client-ZFY5MOAL.js");
158
+ const { resolveDaemonUrl, getAuthToken } = await import("./daemon-client-VVYFZI2D.js");
152
159
  const token = getAuthToken();
153
160
  const headers = {};
154
161
  if (token) headers.Authorization = `Bearer ${token}`;
@@ -189,7 +196,7 @@ use --mind <name> or VOLUTE_MIND env var to identify the mind.`);
189
196
  default: {
190
197
  let isExtensionCommand = false;
191
198
  try {
192
- const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
199
+ const { daemonFetch } = await import("./daemon-client-VVYFZI2D.js");
193
200
  const res = await daemonFetch("/api/extensions/commands");
194
201
  if (res.ok) {
195
202
  const extCommands = await res.json();
@@ -303,7 +310,7 @@ Run 'volute --help' for usage.`);
303
310
  }
304
311
  }
305
312
  if (command !== "update") {
306
- import("./update-check-DZOTONII.js").then((m) => m.checkForUpdate()).then((result) => {
313
+ import("./update-check-SZ7B5IFI.js").then((m) => m.checkForUpdate()).then((result) => {
307
314
  if (result.updateAvailable) {
308
315
  console.error(`
309
316
  Update available: ${result.current} \u2192 ${result.latest}`);
@@ -2,13 +2,14 @@
2
2
  import {
3
3
  parseDuration,
4
4
  run
5
- } from "./chunk-JCBPU57A.js";
6
- import "./chunk-5T5YMX6S.js";
5
+ } from "./chunk-G7A5LEVI.js";
6
+ import "./chunk-7YJY3F2R.js";
7
7
  import "./chunk-BTY4WNFE.js";
8
- import "./chunk-BCG45AQB.js";
8
+ import "./chunk-M74I3HHF.js";
9
9
  import "./chunk-LOPXTW6H.js";
10
10
  import "./chunk-TXSA4Q3V.js";
11
11
  import "./chunk-O7IGP7ZW.js";
12
+ import "./chunk-FNJCBRD3.js";
12
13
  import "./chunk-K3NQKI34.js";
13
14
  export {
14
15
  parseDuration,
@@ -1,34 +1,37 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  deliverMessage
4
- } from "./chunk-QQBOI3QA.js";
5
- import "./chunk-VIUH5CHQ.js";
6
- import "./chunk-RRZ4RQQU.js";
7
- import "./chunk-EFT2OALG.js";
8
- import "./chunk-K3JOLGWF.js";
9
- import "./chunk-GWVFDUNB.js";
10
- import "./chunk-4DSGN4FL.js";
4
+ } from "./chunk-VP5PFNZO.js";
5
+ import "./chunk-VSBMLB2W.js";
6
+ import "./chunk-X67BDDZR.js";
7
+ import "./chunk-Q7XQLKZB.js";
8
+ import "./chunk-7HN63Q7J.js";
9
+ import "./chunk-VAEZCIJC.js";
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";
15
+ import "./chunk-LNNI3MS4.js";
16
+ import "./chunk-FXWBFDQR.js";
17
+ import "./chunk-5Y54AE3L.js";
11
18
  import {
12
19
  getAuthHeaders,
13
20
  getWebhookUrl
14
- } from "./chunk-VNRSXEBF.js";
15
- import "./chunk-JPGHSXSV.js";
16
- import "./chunk-JCWB2ITW.js";
17
- import "./chunk-XTEKINWG.js";
18
- import "./chunk-ZX46PGCC.js";
19
- import "./chunk-FBBS4BVR.js";
21
+ } from "./chunk-TPX6E6PL.js";
22
+ import "./chunk-UFTDRTCP.js";
23
+ import "./chunk-U54PJPTB.js";
24
+ import "./chunk-ICXY54ZC.js";
20
25
  import "./chunk-DW4TRDOZ.js";
21
26
  import "./chunk-WCFSBH33.js";
22
- import "./chunk-DVN6DNMI.js";
23
- import "./chunk-PY24ZL62.js";
24
- import "./chunk-YIJGKHIS.js";
25
- import "./chunk-NJHN6IRB.js";
26
- import "./chunk-3B427GUK.js";
27
+ import "./chunk-M77B73VV.js";
28
+ import "./chunk-GLM7TVWP.js";
29
+ import "./chunk-EGV6R6UF.js";
27
30
  import {
28
31
  logger_default
29
32
  } from "./chunk-QUSMYGNQ.js";
30
- import "./chunk-RSBL3FAD.js";
31
- import "./chunk-P4LHVRNE.js";
33
+ import "./chunk-H6X6CKDN.js";
34
+ import "./chunk-2RNMBXD2.js";
32
35
  import "./chunk-K3NQKI34.js";
33
36
 
34
37
  // packages/daemon/src/lib/cloud-sync.ts
@@ -7,7 +7,7 @@ import "./chunk-K3NQKI34.js";
7
7
 
8
8
  // packages/cli/src/commands/config.ts
9
9
  async function listModels() {
10
- const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
10
+ const { daemonFetch } = await import("./daemon-client-VVYFZI2D.js");
11
11
  const res = await daemonFetch("/api/config/models");
12
12
  if (!res.ok) {
13
13
  console.error(`Failed to fetch models (HTTP ${res.status})`);
@@ -24,7 +24,7 @@ async function listModels() {
24
24
  }
25
25
  }
26
26
  async function listProviders() {
27
- const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
27
+ const { daemonFetch } = await import("./daemon-client-VVYFZI2D.js");
28
28
  const res = await daemonFetch("/api/config/providers");
29
29
  if (!res.ok) {
30
30
  console.error(`Failed to fetch providers (HTTP ${res.status})`);
@@ -41,7 +41,7 @@ async function listProviders() {
41
41
  }
42
42
  }
43
43
  async function showStatus() {
44
- const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
44
+ const { daemonFetch } = await import("./daemon-client-VVYFZI2D.js");
45
45
  const res = await daemonFetch("/api/config/status");
46
46
  if (!res.ok) {
47
47
  console.error(`Failed to fetch config (HTTP ${res.status})`);
@@ -12,6 +12,8 @@ import {
12
12
  getChannelName,
13
13
  getChannelSettings,
14
14
  getConversation,
15
+ getConversationWithParticipants,
16
+ getLastMessageBySender,
15
17
  getMessages,
16
18
  getMessagesPaginated,
17
19
  getParticipants,
@@ -29,11 +31,11 @@ import {
29
31
  removeParticipant,
30
32
  setConversationPrivate,
31
33
  updateChannelSettings
32
- } from "./chunk-VNRSXEBF.js";
33
- import "./chunk-3B427GUK.js";
34
+ } from "./chunk-TPX6E6PL.js";
35
+ import "./chunk-U54PJPTB.js";
34
36
  import "./chunk-QUSMYGNQ.js";
35
- import "./chunk-RSBL3FAD.js";
36
- import "./chunk-P4LHVRNE.js";
37
+ import "./chunk-H6X6CKDN.js";
38
+ import "./chunk-2RNMBXD2.js";
37
39
  import "./chunk-K3NQKI34.js";
38
40
  export {
39
41
  addMessage,
@@ -48,6 +50,8 @@ export {
48
50
  getChannelName,
49
51
  getChannelSettings,
50
52
  getConversation,
53
+ getConversationWithParticipants,
54
+ getLastMessageBySender,
51
55
  getMessages,
52
56
  getMessagesPaginated,
53
57
  getParticipants,
@@ -21,11 +21,11 @@ var cmd = command({
21
21
  const name = args.name;
22
22
  let template = flags.template;
23
23
  if (!template) {
24
- const { resolveTemplate } = await import("./ai-service-A7FS7EC3.js");
24
+ const { resolveTemplate } = await import("./ai-service-YW5SWCSB.js");
25
25
  template = await resolveTemplate();
26
26
  }
27
27
  const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
28
- const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
28
+ const { daemonFetch } = await import("./daemon-client-VVYFZI2D.js");
29
29
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
30
30
  const client = getClient();
31
31
  const res = await daemonFetch(urlOf(client.api.minds.$url()), {
@@ -4,11 +4,12 @@ import {
4
4
  } from "./chunk-BTY4WNFE.js";
5
5
  import {
6
6
  daemonFetch
7
- } from "./chunk-BCG45AQB.js";
7
+ } from "./chunk-M74I3HHF.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";
11
11
  import "./chunk-O7IGP7ZW.js";
12
+ import "./chunk-FNJCBRD3.js";
12
13
  import "./chunk-K3NQKI34.js";
13
14
 
14
15
  // packages/cli/src/commands/chat/create.ts
@@ -6,7 +6,8 @@ import {
6
6
  readSessionFile,
7
7
  resolveDaemonUrl,
8
8
  resolveWebUrl
9
- } from "./chunk-BCG45AQB.js";
9
+ } from "./chunk-M74I3HHF.js";
10
+ import "./chunk-FNJCBRD3.js";
10
11
  import "./chunk-K3NQKI34.js";
11
12
  export {
12
13
  daemonDispatcher,
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  stopDaemon
4
- } from "./chunk-6HGEZJDH.js";
4
+ } from "./chunk-5N32EN4O.js";
5
5
  import {
6
6
  run
7
- } from "./chunk-DAIIMBLB.js";
7
+ } from "./chunk-IWAVIJO2.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";
@@ -15,11 +15,10 @@ import {
15
15
  pollHealth,
16
16
  readDaemonConfig,
17
17
  restartService
18
- } from "./chunk-HCYQRME2.js";
19
- import "./chunk-DVN6DNMI.js";
20
- import "./chunk-NJHN6IRB.js";
21
- import "./chunk-RSBL3FAD.js";
22
- import "./chunk-P4LHVRNE.js";
18
+ } from "./chunk-6NLW72HP.js";
19
+ import "./chunk-M77B73VV.js";
20
+ import "./chunk-H6X6CKDN.js";
21
+ import "./chunk-2RNMBXD2.js";
23
22
  import "./chunk-K3NQKI34.js";
24
23
 
25
24
  // src/commands/daemon-restart.ts