volute 0.49.0 → 0.50.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 (210) 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-H7YI3BTF.js} +3 -3
  4. package/dist/{ai-service-A7FS7EC3.js → ai-service-V4CTNGI3.js} +5 -4
  5. package/dist/{archive-7E3YE6VF.js → archive-ORM3ENHI.js} +3 -3
  6. package/dist/{auth-ABYLOEZ7.js → auth-DT7GY7EZ.js} +10 -6
  7. package/dist/{avatar-image-6ATV2IOZ.js → avatar-image-QEPAP3A5.js} +3 -3
  8. package/dist/{backup-XYAMT4CU.js → backup-IE6PMXJO.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-W5K6HCBE.js} +9 -9
  12. package/dist/{chunk-3B427GUK.js → chunk-3BAFMGCJ.js} +2 -2
  13. package/dist/{chunk-4B62E4CG.js → chunk-4CN7OCJE.js} +2 -2
  14. package/dist/{chunk-VNRSXEBF.js → chunk-574M6I7F.js} +38 -5
  15. package/dist/{chunk-HCYQRME2.js → chunk-5FVANDON.js} +2 -2
  16. package/dist/{chunk-P4LHVRNE.js → chunk-5IIVOWSP.js} +27 -19
  17. package/dist/{chunk-TXJL36ZQ.js → chunk-5PKFJHCR.js} +2 -2
  18. package/dist/{chunk-JPGHSXSV.js → chunk-5TPC4KCV.js} +23 -9
  19. package/dist/{chunk-YIJGKHIS.js → chunk-632FJ23O.js} +24 -20
  20. package/dist/{chunk-IH5TKXX6.js → chunk-636GFQNE.js} +11 -11
  21. package/dist/{chunk-EFT2OALG.js → chunk-6BM2I736.js} +20 -5
  22. package/dist/{chunk-JCBPU57A.js → chunk-74T3CEXK.js} +6 -6
  23. package/dist/{chunk-EG5LSKHU.js → chunk-77IZUVBB.js} +2 -2
  24. package/dist/{chunk-K3JOLGWF.js → chunk-7DXLIYPY.js} +76 -63
  25. package/dist/chunk-7FDWPQCU.js +289 -0
  26. package/dist/chunk-7OZWKHA3.js +548 -0
  27. package/dist/{chunk-PY24ZL62.js → chunk-7UWXAJMK.js} +1 -1
  28. package/dist/{chunk-MG3Z34YE.js → chunk-7XDOTN4R.js} +1 -1
  29. package/dist/{chunk-SX72DOO3.js → chunk-AFSLNUTT.js} +1 -1
  30. package/dist/{chunk-DVN6DNMI.js → chunk-AJWFDIEY.js} +17 -2
  31. package/dist/chunk-ALIVXDM4.js +1014 -0
  32. package/dist/{chunk-RSBL3FAD.js → chunk-CAIYV33P.js} +234 -24
  33. package/dist/{chunk-ZX46PGCC.js → chunk-E5S3ILVA.js} +1 -1
  34. package/dist/{chunk-SHKM5RGD.js → chunk-EEOMA4DX.js} +1 -1
  35. package/dist/chunk-EQKSRVDE.js +2857 -0
  36. package/dist/chunk-FNJCBRD3.js +31 -0
  37. package/dist/{chunk-EADX54RG.js → chunk-HW6Q7AMB.js} +4 -4
  38. package/dist/chunk-JI67D7O2.js +1222 -0
  39. package/dist/{chunk-KHCKZ36O.js → chunk-KAEZOVP6.js} +1 -1
  40. package/dist/chunk-LNNI3MS4.js +54 -0
  41. package/dist/{chunk-BCG45AQB.js → chunk-M74I3HHF.js} +15 -5
  42. package/dist/chunk-MLZBBLMT.js +109 -0
  43. package/dist/{chunk-5T5YMX6S.js → chunk-PW65BXY5.js} +5 -0
  44. package/dist/{chunk-NOIAHMJB.js → chunk-QFVGPKJI.js} +1 -1
  45. package/dist/{chunk-VIUH5CHQ.js → chunk-SFRYRW37.js} +50 -33
  46. package/dist/{chunk-L27YYONJ.js → chunk-SSNZ6ZNN.js} +1 -1
  47. package/dist/{chunk-GWVFDUNB.js → chunk-TGJHGVBZ.js} +8 -10
  48. package/dist/{chunk-6HGEZJDH.js → chunk-U3EJJ7JN.js} +2 -2
  49. package/dist/{chunk-4DSGN4FL.js → chunk-UC6BNMGT.js} +43 -13
  50. package/dist/{chunk-JBIFXB6I.js → chunk-WBBKYUGF.js} +3 -5
  51. package/dist/{chunk-FBBS4BVR.js → chunk-X67VT4QO.js} +1 -1
  52. package/dist/{chunk-DAIIMBLB.js → chunk-YQOYZ6G7.js} +3 -5
  53. package/dist/{chunk-JCWB2ITW.js → chunk-ZUG76D3P.js} +35 -5
  54. package/dist/cli.js +34 -27
  55. package/dist/{clock-6JZL2FS6.js → clock-LH7UFNLJ.js} +4 -3
  56. package/dist/{cloud-sync-VFDTNNCA.js → cloud-sync-IDJFVDEP.js} +22 -19
  57. package/dist/{config-RPSLA2HX.js → config-UGJS57VT.js} +3 -3
  58. package/dist/{conversations-TUM5PJJ4.js → conversations-S2232Y5I.js} +8 -4
  59. package/dist/{create-Z5FSDNVZ.js → create-2M7DAHQX.js} +2 -2
  60. package/dist/{create-VIQVP3QB.js → create-M727VUDF.js} +2 -1
  61. package/dist/{daemon-client-ZFY5MOAL.js → daemon-client-VVYFZI2D.js} +2 -1
  62. package/dist/{daemon-restart-54L4B6AQ.js → daemon-restart-2AAGYFHE.js} +6 -7
  63. package/dist/daemon.js +1625 -529
  64. package/dist/{db-F6UMFRYD.js → db-QAY45Z56.js} +2 -2
  65. package/dist/{delete-ESEP7NGQ.js → delete-O7PEFQDF.js} +1 -1
  66. package/dist/delivery-manager-B4OKWD2P.js +33 -0
  67. package/dist/{delivery-router-VUOL5YSA.js → delivery-router-JE7SHYNU.js} +7 -5
  68. package/dist/{down-6X7KX7BZ.js → down-D4IRNEMJ.js} +5 -5
  69. package/dist/echo-text-WYAAODBV.js +39 -0
  70. package/dist/{env-ZYMSCB7B.js → env-ABM5IMA7.js} +3 -2
  71. package/dist/{env-KUL4XKN2.js → env-AZK5X4W7.js} +3 -3
  72. package/dist/{exec-FBXA3CM4.js → exec-2H65LMTA.js} +3 -3
  73. package/dist/{export-TNBPDH77.js → export-3E3EL6W3.js} +4 -4
  74. package/dist/{extension-J4ZQ2GHV.js → extension-MRYJWSMV.js} +2 -1
  75. package/dist/{extensions-AWNO3SZF.js → extensions-7KP3X6G7.js} +22 -19
  76. package/dist/{files-BVBRJJ2P.js → files-6BMKVG5G.js} +5 -4
  77. package/dist/{import-ZUNKMCKC.js → import-UPNTEBBT.js} +8 -8
  78. package/dist/{isolation-OPCZQRTH.js → isolation-OKDFM6WA.js} +5 -3
  79. package/dist/{join-34TR2GXQ.js → join-PYA36HEC.js} +1 -1
  80. package/dist/{list-PMUXZNAM.js → list-4BVGH7AN.js} +8 -3
  81. package/dist/{login-KAKNFCW5.js → login-MOXVLULE.js} +4 -3
  82. package/dist/{login-LKNLCJPA.js → login-RJJTCVR3.js} +2 -1
  83. package/dist/{logout-YZRMZ3O2.js → logout-BYV433X6.js} +2 -1
  84. package/dist/{logout-RLT62RQP.js → logout-DWD3OQVT.js} +4 -3
  85. package/dist/message-delivery-3456PXB7.js +43 -0
  86. package/dist/migrate-thread-config-4A5LW36Z.js +90 -0
  87. package/dist/{mind-IF6CGMFW.js → mind-NYRALSV2.js} +19 -19
  88. package/dist/{mind-activity-tracker-YMMERB6B.js → mind-activity-tracker-L7GCYXQR.js} +4 -4
  89. package/dist/{mind-contacts-BKUFPUCU.js → mind-contacts-QYU4TPEA.js} +3 -2
  90. package/dist/{mind-history-WI5OI3BW.js → mind-history-NXXOOTX6.js} +30 -7
  91. package/dist/{mind-list-OTHV4ZO4.js → mind-list-SYRA7CH5.js} +3 -2
  92. package/dist/{mind-profile-LUG353ZT.js → mind-profile-MRCVZPYT.js} +1 -1
  93. package/dist/mind-service-5TA7UJAT.js +47 -0
  94. package/dist/{mind-sleep-VBV7YRSU.js → mind-sleep-TH6BRQ5X.js} +4 -3
  95. package/dist/{mind-status-BJNPGXKC.js → mind-status-Z2LQFA6F.js} +3 -2
  96. package/dist/{mind-wake-LVTZ55EZ.js → mind-wake-LDGPRA42.js} +2 -1
  97. package/dist/{package-PD67VPHB.js → package-XYSV7NUT.js} +23 -23
  98. package/dist/{prompts-MDHDLWEX.js → prompts-QKFPX6DQ.js} +3 -3
  99. package/dist/{read-YSWUXYL7.js → read-ZXGUT4QC.js} +5 -3
  100. package/dist/{register-TWQDKQRT.js → register-OX4HRSGC.js} +2 -1
  101. package/dist/{registry-3ELJPUGJ.js → registry-4UF6OCOE.js} +6 -4
  102. package/dist/{reject-SXGCYN4A.js → reject-TWB4QJHG.js} +2 -1
  103. package/dist/{restart-5F5QDBOG.js → restart-AGEGNSYQ.js} +2 -1
  104. package/dist/{sandbox-XPYA7UIF.js → sandbox-EGEU5GGE.js} +7 -4
  105. package/dist/scheduler-UV6RUJ7P.js +25 -0
  106. package/dist/{schema-6YONVTKZ.js → schema-C2GIPD4V.js} +3 -3
  107. package/dist/{seed-NQED7PSX.js → seed-3IMBOAGK.js} +1 -1
  108. package/dist/{seed-check-TYD7RRZY.js → seed-check-NRJEQZST.js} +14 -5
  109. package/dist/{seed-cmd-QF3F2G4S.js → seed-cmd-U73XVQMI.js} +3 -3
  110. package/dist/{seed-create-XOO4N2OE.js → seed-create-FBLNVSUP.js} +4 -4
  111. package/dist/{seed-readiness-3LRYASA4.js → seed-readiness-QRA46ZJQ.js} +4 -5
  112. package/dist/{seed-sprout-HSBBGSS2.js → seed-sprout-3B4SZX7J.js} +9 -9
  113. package/dist/{send-IHRJYNXA.js → send-NBRZJXKX.js} +32 -10
  114. package/dist/{service-YCOPCTSZ.js → service-XMXAXGJD.js} +4 -4
  115. package/dist/{service-install-Y46OTF55.js → service-install-MOKTEG7B.js} +5 -5
  116. package/dist/{setup-TCN7VH5U.js → setup-CAJFOR2N.js} +10 -3
  117. package/dist/{setup-F4TE64YI.js → setup-JGYAXXW7.js} +6 -7
  118. package/dist/{skill-4CYJLYVY.js → skill-NXIHDQCG.js} +3 -2
  119. package/dist/skills/dreaming/references/INSTALL.md +2 -2
  120. package/dist/skills/imagegen/SKILL.md +21 -4
  121. package/dist/skills/imagegen/scripts/imagegen.ts +124 -21
  122. package/dist/skills/tending/SKILL.md +7 -7
  123. package/dist/skills/volute-mind/SKILL.md +3 -3
  124. package/dist/skills/volute-mind/references/integrations.md +2 -2
  125. package/dist/skills/volute-mind/references/routing.md +15 -15
  126. package/dist/{skills-NN5UZCUU.js → skills-5MSMT7PT.js} +4 -5
  127. package/dist/sleep-manager-LIEPO6WG.js +41 -0
  128. package/dist/{spirit-SSJMYC6A.js → spirit-IL5EMWYZ.js} +10 -7
  129. package/dist/spirit-availability-YFEGJNJ2.js +42 -0
  130. package/dist/{split-JF2VWTXA.js → split-BU5VWX6P.js} +1 -1
  131. package/dist/{sprout-AXA2SECQ.js → sprout-UPXGJ5HX.js} +1 -1
  132. package/dist/{src-YH6PQ7LJ.js → src-HGNE2XG4.js} +7 -1
  133. package/dist/{src-ZN4LXMPI.js → src-LCSOQY6Z.js} +57 -51
  134. package/dist/{src-JAOVXO5W.js → src-UDMJZ6MH.js} +8 -8
  135. package/dist/{start-BTVMTP3K.js → start-MUMNFR52.js} +2 -1
  136. package/dist/{status-VJGXMQ4L.js → status-IL67CYM4.js} +7 -6
  137. package/dist/{stop-YORESK4U.js → stop-EKERNYTX.js} +2 -1
  138. package/dist/system-events-A6IGCEC3.js +46 -0
  139. package/dist/system-install-YZSWCPDK.js +8 -0
  140. package/dist/{systems-5MH2ELQE.js → systems-VDRUZXNF.js} +5 -4
  141. package/dist/{tailscale-AMMVKDXB.js → tailscale-SJUW2ETR.js} +2 -2
  142. package/dist/{template-staleness-HKGCTS3H.js → template-staleness-T27VCGYA.js} +3 -3
  143. package/dist/{turn-tracker-JQ2YUUY2.js → turn-tracker-6EI2EL7G.js} +6 -6
  144. package/dist/{up-SDLTLPAO.js → up-CLL4665A.js} +5 -6
  145. package/dist/{update-WEA4N2TR.js → update-HVAUCQPN.js} +5 -5
  146. package/dist/{update-check-DZOTONII.js → update-check-2MGBBAFF.js} +3 -3
  147. package/dist/{upgrade-K5FIQPQD.js → upgrade-LIE46UBB.js} +1 -1
  148. package/dist/variant-cleanup-HJ7Z75R6.js +22 -0
  149. package/dist/{version-notify-WFA5XB5A.js → version-notify-7BUHWZNT.js} +10 -27
  150. package/dist/web-assets/assets/index-ClsUcXiW.js +95 -0
  151. package/dist/web-assets/assets/index-Dz3wTbtR.css +1 -0
  152. package/dist/web-assets/index.html +2 -2
  153. package/dist/xai-P42CRCZA.js +129 -0
  154. package/drizzle/0014_system_events.sql +26 -0
  155. package/drizzle/0015_rename_session_to_thread.sql +12 -0
  156. package/drizzle/0016_brain_to_human.sql +4 -0
  157. package/drizzle/0017_event_history_rows.sql +9 -0
  158. package/drizzle/meta/_journal.json +28 -0
  159. package/package.json +23 -23
  160. package/packages/extensions/notes/dist/ui/assets/index-BBs8pyel.js +67 -0
  161. package/packages/extensions/notes/dist/ui/index.html +1 -1
  162. package/packages/extensions/pages/dist/ui/assets/index-B589e8Xe.js +2 -0
  163. package/packages/extensions/pages/dist/ui/index.html +1 -1
  164. package/packages/extensions/plan/dist/ui/assets/index-B8s8wxyt.js +67 -0
  165. package/packages/extensions/plan/dist/ui/index.html +1 -1
  166. package/templates/_base/.init/.config/prompts.json +1 -0
  167. package/templates/_base/.init/.local/hooks/startup-context.ts +24 -9
  168. package/templates/_base/home/.config/routes.json +2 -2
  169. package/templates/_base/home/VOLUTE.md +18 -5
  170. package/templates/_base/src/lib/daemon-client.ts +1 -1
  171. package/templates/_base/src/lib/event-turn.ts +39 -0
  172. package/templates/_base/src/lib/format-prefix.ts +21 -2
  173. package/templates/_base/src/lib/router.ts +6 -2
  174. package/templates/_base/src/lib/routing.ts +8 -8
  175. package/templates/_base/src/lib/startup.ts +9 -1
  176. package/templates/_base/src/lib/types.ts +7 -1
  177. package/templates/_base/src/lib/volute-server.ts +30 -1
  178. package/templates/claude/.init/.config/routes.json +3 -3
  179. package/templates/claude/.init/CLAUDE.md +1 -1
  180. package/templates/claude/package.json.tmpl +4 -4
  181. package/templates/claude/src/agent.ts +4 -1
  182. package/templates/claude/src/lib/hooks/reply-instructions.ts +26 -1
  183. package/templates/codex/.init/.config/routes.json +3 -3
  184. package/templates/codex/.init/AGENTS.md +1 -1
  185. package/templates/codex/package.json.tmpl +4 -4
  186. package/templates/codex/src/agent.ts +11 -11
  187. package/templates/codex/src/lib/turn-context.ts +51 -0
  188. package/templates/pi/.init/.config/routes.json +3 -3
  189. package/templates/pi/.init/MINDS.md +1 -1
  190. package/templates/pi/package.json.tmpl +6 -6
  191. package/templates/pi/src/agent.ts +9 -1
  192. package/templates/pi/src/lib/event-handler.ts +1 -1
  193. package/templates/pi/src/lib/reply-instructions-extension.ts +28 -1
  194. package/dist/chunk-NJHN6IRB.js +0 -177
  195. package/dist/chunk-QQBOI3QA.js +0 -5345
  196. package/dist/chunk-XTEKINWG.js +0 -158
  197. package/dist/delivery-manager-RBXBPVWM.js +0 -36
  198. package/dist/echo-text-B6NZ5FGE.js +0 -36
  199. package/dist/message-delivery-ABPV76EA.js +0 -42
  200. package/dist/mind-service-42GDO4KH.js +0 -44
  201. package/dist/notices-N6BCGHFV.js +0 -25
  202. package/dist/scheduler-K7Y7Z7FQ.js +0 -34
  203. package/dist/sleep-manager-DSPXFHGX.js +0 -38
  204. package/dist/system-chat-M2XOBKEM.js +0 -40
  205. package/dist/variant-cleanup-P4MBNLJD.js +0 -33
  206. package/dist/web-assets/assets/index-BostMFoR.css +0 -1
  207. package/dist/web-assets/assets/index-CKlqUkyG.js +0 -92
  208. package/packages/extensions/notes/dist/ui/assets/index-D0-DgYyj.js +0 -67
  209. package/packages/extensions/pages/dist/ui/assets/index-DtzftuPA.js +0 -2
  210. package/packages/extensions/plan/dist/ui/assets/index-Cfzs-0G9.js +0 -67
@@ -8,14 +8,12 @@ import {
8
8
  modeLabel,
9
9
  pollHealth,
10
10
  startService
11
- } from "./chunk-HCYQRME2.js";
12
- import {
13
- readGlobalConfig
14
- } from "./chunk-NJHN6IRB.js";
11
+ } from "./chunk-5FVANDON.js";
15
12
  import {
13
+ readGlobalConfig,
16
14
  voluteHome,
17
15
  voluteSystemDir
18
- } from "./chunk-RSBL3FAD.js";
16
+ } from "./chunk-CAIYV33P.js";
19
17
 
20
18
  // src/commands/up.ts
21
19
  import { spawn } from "child_process";
@@ -1,13 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- readGlobalConfig
4
- } from "./chunk-NJHN6IRB.js";
5
2
  import {
6
3
  logger_default
7
4
  } from "./chunk-QUSMYGNQ.js";
5
+ import {
6
+ readGlobalConfig
7
+ } from "./chunk-CAIYV33P.js";
8
8
 
9
9
  // packages/daemon/src/lib/mind/sandbox.ts
10
10
  import { execFileSync } from "child_process";
11
+ import { existsSync, realpathSync } from "fs";
12
+ import { dirname, resolve } from "path";
11
13
  var slog = logger_default.child("sandbox");
12
14
  var sandboxManager = null;
13
15
  var SandboxUnavailableError = class extends Error {
@@ -69,6 +71,7 @@ async function initSandbox() {
69
71
  allowWrite: [],
70
72
  denyWrite: []
71
73
  },
74
+ network: {},
72
75
  ...ripgrepConfig ? { ripgrep: ripgrepConfig } : {}
73
76
  };
74
77
  await SandboxManager.initialize(config);
@@ -94,10 +97,32 @@ async function initSandbox() {
94
97
  throw new SandboxUnavailableError("sandbox runtime not available", err);
95
98
  }
96
99
  }
100
+ function voluteCliPaths(env = process.env) {
101
+ for (const dir of (env.PATH ?? "").split(":")) {
102
+ if (!dir || dir.endsWith("/.local/bin")) continue;
103
+ const shim = resolve(dir, "volute");
104
+ if (!existsSync(shim)) continue;
105
+ const paths = [shim, resolve(dirname(process.execPath), "..")];
106
+ let target;
107
+ try {
108
+ target = realpathSync(shim);
109
+ } catch {
110
+ return paths;
111
+ }
112
+ for (let dir2 = dirname(target); dir2 !== dirname(dir2); dir2 = dirname(dir2)) {
113
+ if (existsSync(resolve(dir2, "package.json"))) {
114
+ paths.push(dir2);
115
+ break;
116
+ }
117
+ }
118
+ return paths;
119
+ }
120
+ return [];
121
+ }
97
122
  async function buildSandboxReadConfig(_mindName, mindDir) {
98
123
  const userHome = process.env.HOME || "";
99
124
  const denyRead = [];
100
- const allowRead = [mindDir];
125
+ const allowRead = [mindDir, ...voluteCliPaths()];
101
126
  if (userHome) {
102
127
  denyRead.push(userHome);
103
128
  } else {
@@ -114,6 +139,9 @@ async function buildSandboxReadConfig(_mindName, mindDir) {
114
139
  function shellEscape(s) {
115
140
  return `'${s.replace(/'/g, "'\\''")}'`;
116
141
  }
142
+ function shellTempWritePaths() {
143
+ return process.platform === "darwin" ? ["/private/tmp", "/private/var/tmp"] : [];
144
+ }
117
145
  async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
118
146
  if (!sandboxManager) {
119
147
  if (isSandboxEnabled() && !isSandboxOptional()) {
@@ -126,7 +154,7 @@ async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
126
154
  filesystem: {
127
155
  denyRead,
128
156
  allowRead,
129
- allowWrite: allowWrite ?? [mindDir],
157
+ allowWrite: [...allowWrite ?? [mindDir], ...shellTempWritePaths()],
130
158
  denyWrite: []
131
159
  }
132
160
  };
@@ -151,7 +179,9 @@ export {
151
179
  isSandboxEnabled,
152
180
  isSandboxOptional,
153
181
  initSandbox,
182
+ voluteCliPaths,
154
183
  buildSandboxReadConfig,
155
184
  shellEscape,
185
+ shellTempWritePaths,
156
186
  wrapForSandbox
157
187
  };
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-XYSV7NUT.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-CAJFOR2N.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-JGYAXXW7.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-NYRALSV2.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-U73XVQMI.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-W5K6HCBE.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-LH7UFNLJ.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-NXIHDQCG.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-ABM5IMA7.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-CLL4665A.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-IE6PMXJO.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-D4IRNEMJ.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-2AAGYFHE.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-HVAUCQPN.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-IL67CYM4.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-MOXVLULE.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-DWD3OQVT.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-XMXAXGJD.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-2MGBBAFF.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-74T3CEXK.js";
6
+ import "./chunk-PW65BXY5.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";
4
+ } from "./chunk-EQKSRVDE.js";
5
+ import "./chunk-SFRYRW37.js";
6
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";
7
+ import "./chunk-7FDWPQCU.js";
8
+ import "./chunk-JI67D7O2.js";
9
+ import "./chunk-ALIVXDM4.js";
10
+ import "./chunk-6BM2I736.js";
11
+ import "./chunk-7DXLIYPY.js";
12
+ import "./chunk-TGJHGVBZ.js";
13
+ import "./chunk-UC6BNMGT.js";
14
+ import "./chunk-7OZWKHA3.js";
15
+ import "./chunk-LNNI3MS4.js";
16
+ import "./chunk-5TPC4KCV.js";
17
+ import "./chunk-ZUG76D3P.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-574M6I7F.js";
22
+ import "./chunk-E5S3ILVA.js";
23
+ import "./chunk-3BAFMGCJ.js";
24
+ import "./chunk-X67VT4QO.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-AJWFDIEY.js";
28
+ import "./chunk-7UWXAJMK.js";
29
+ import "./chunk-632FJ23O.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-CAIYV33P.js";
34
+ import "./chunk-5IIVOWSP.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-574M6I7F.js";
35
+ import "./chunk-3BAFMGCJ.js";
34
36
  import "./chunk-QUSMYGNQ.js";
35
- import "./chunk-RSBL3FAD.js";
36
- import "./chunk-P4LHVRNE.js";
37
+ import "./chunk-CAIYV33P.js";
38
+ import "./chunk-5IIVOWSP.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-V4CTNGI3.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-U3EJJ7JN.js";
5
5
  import {
6
6
  run
7
- } from "./chunk-DAIIMBLB.js";
7
+ } from "./chunk-YQOYZ6G7.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-5FVANDON.js";
19
+ import "./chunk-AJWFDIEY.js";
20
+ import "./chunk-CAIYV33P.js";
21
+ import "./chunk-5IIVOWSP.js";
23
22
  import "./chunk-K3NQKI34.js";
24
23
 
25
24
  // src/commands/daemon-restart.ts