volute 0.35.0 → 0.37.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 (167) hide show
  1. package/dist/{accept-ZBDVVCEU.js → accept-AHAOUFBK.js} +4 -4
  2. package/dist/activity-events-N6HCHU4P.js +15 -0
  3. package/dist/{ai-service-LURBEDDB.js → ai-service-C2YNARGH.js} +6 -6
  4. package/dist/{api-client-3A77HMH7.js → api-client-LC5YRA32.js} +1 -1
  5. package/dist/{archive-ESU2FUN4.js → archive-AWIJTVQV.js} +4 -4
  6. package/dist/{auth-WX4TESEI.js → auth-2QOOPMBX.js} +6 -6
  7. package/dist/{bridge-PXIO6PS2.js → bridge-F3ZJEKDN.js} +4 -4
  8. package/dist/{chat-QXAJF3FU.js → chat-5Y4FD77E.js} +9 -9
  9. package/dist/{chunk-BDYXIWA5.js → chunk-2NHRJ3YO.js} +13 -2
  10. package/dist/{chunk-AN2W47GW.js → chunk-3F7XK5Q7.js} +2 -2
  11. package/dist/{chunk-AOB6GVRM.js → chunk-46DYYHN6.js} +8 -3
  12. package/dist/{chunk-WZRZFFCL.js → chunk-5DPRTREW.js} +146 -186
  13. package/dist/{chunk-QWTR6AWZ.js → chunk-7AZQFSOV.js} +2 -2
  14. package/dist/{chunk-BMZQYACC.js → chunk-A6FLW5XD.js} +19 -4
  15. package/dist/{chunk-N5LMGYXX.js → chunk-BIEWHAAM.js} +2 -2
  16. package/dist/{chunk-5N7Y5WAM.js → chunk-CJ26DXZL.js} +29 -13
  17. package/dist/{chunk-ZSR72JB3.js → chunk-CU6OFXMM.js} +1 -1
  18. package/dist/{chunk-N446KRP7.js → chunk-GVVVMZ4J.js} +2 -2
  19. package/dist/chunk-K3NQKI34.js +10 -0
  20. package/dist/{chunk-F7ZNLYKZ.js → chunk-KAB6UGOL.js} +2 -2
  21. package/dist/{chunk-WJPROOU5.js → chunk-KBRGHKVU.js} +681 -3726
  22. package/dist/{chunk-PWQ2ITYG.js → chunk-KXXJYY62.js} +6 -6
  23. package/dist/{chunk-NJK5SDGR.js → chunk-LGNUFVMR.js} +1 -1
  24. package/dist/chunk-LQ6Z4FXN.js +87 -0
  25. package/dist/{chunk-J6CJQDWI.js → chunk-MQRS4J24.js} +2 -2
  26. package/dist/{chunk-CORXD635.js → chunk-N42QMDID.js} +3 -3
  27. package/dist/{chunk-IJHIXLVN.js → chunk-NYP3LBIV.js} +15 -13
  28. package/dist/{chunk-FT5KETXZ.js → chunk-ORNY3MZR.js} +4 -4
  29. package/dist/{chunk-A2ZLHBHG.js → chunk-PMMHVSCR.js} +2 -2
  30. package/dist/chunk-QQQI6ISK.js +853 -0
  31. package/dist/chunk-RG5TOL4O.js +18 -0
  32. package/dist/{chunk-VHJRZM2S.js → chunk-SNW2NPP4.js} +2 -2
  33. package/dist/chunk-SZJWC2GA.js +125 -0
  34. package/dist/{chunk-BKF4WQCY.js → chunk-T2TP6ZC6.js} +20 -8
  35. package/dist/{chunk-2TGZJFAT.js → chunk-TNZ5XQA4.js} +3 -3
  36. package/dist/{chunk-QCH6K235.js → chunk-UI7RPV2B.js} +1 -1
  37. package/dist/{chunk-XRQSAMX2.js → chunk-UIM5NHPP.js} +3 -3
  38. package/dist/{chunk-5XJYUFZH.js → chunk-UQFYNZKT.js} +76 -30
  39. package/dist/{chunk-OTC67N2Z.js → chunk-WC635OPK.js} +1 -1
  40. package/dist/{chunk-BV65KRHM.js → chunk-XLBQYIHH.js} +2 -2
  41. package/dist/{chunk-VY3RB2V7.js → chunk-Z6TIXE77.js} +3 -3
  42. package/dist/cli.js +24 -24
  43. package/dist/{clock-HSEKS5AR.js → clock-BMLJ2TR6.js} +8 -8
  44. package/dist/{cloud-sync-6JL4C24T.js → cloud-sync-OIX576NA.js} +20 -21
  45. package/dist/{config-UTS7QULS.js → config-QB7W3Z7P.js} +4 -4
  46. package/dist/connectors/discord-bridge.js +4 -4
  47. package/dist/connectors/slack-bridge.js +4 -4
  48. package/dist/connectors/telegram-bridge.js +4 -4
  49. package/dist/{conversations-2PW57WO2.js → conversations-G6YRSABR.js} +16 -10
  50. package/dist/{create-5BPOOJAN.js → create-C3BBFYV7.js} +4 -4
  51. package/dist/{create-UVCK2CS6.js → create-PN73742N.js} +4 -4
  52. package/dist/{daemon-client-RVIKXGFQ.js → daemon-client-2MIPKY3E.js} +1 -1
  53. package/dist/{daemon-restart-HSZ3BCX5.js → daemon-restart-L2O6L7NR.js} +9 -9
  54. package/dist/daemon.js +690 -1281
  55. package/dist/db-CBOCDYVA.js +9 -0
  56. package/dist/{db-BDMH4SZ2.js → db-IJL6B26S.js} +1 -1
  57. package/dist/{delete-L5PAVDGQ.js → delete-NLXES2C7.js} +3 -3
  58. package/dist/delivery-manager-4PVBUZJB.js +30 -0
  59. package/dist/{delivery-router-HEJSJAHQ.js → delivery-router-QTFEZ26O.js} +5 -5
  60. package/dist/down-25L2RKCQ.js +17 -0
  61. package/dist/echo-text-T5ZLGMA7.js +31 -0
  62. package/dist/{env-E4XHO2BI.js → env-IQ6Q2333.js} +6 -6
  63. package/dist/exec-ONYZEA5B.js +17 -0
  64. package/dist/{export-OAS6QVBN.js → export-JPDBQESV.js} +6 -6
  65. package/dist/{extension-D74CNM7G.js → extension-LZYHBNLV.js} +26 -7
  66. package/dist/extensions-CLYXNGYB.js +50 -0
  67. package/dist/{files-CWTK6V3H.js → files-LAQ3NXQK.js} +7 -7
  68. package/dist/{import-5A3T7QV4.js → import-EROF27RH.js} +12 -11
  69. package/dist/{isolation-TK5RX2WM.js → isolation-G5J3MTKU.js} +4 -4
  70. package/dist/{join-DF5XSJAC.js → join-6SZCA5FX.js} +3 -3
  71. package/dist/{list-PDMQM7ZV.js → list-KHJZJPEJ.js} +11 -5
  72. package/dist/{login-7TE6CIZF.js → login-F6YMAVLE.js} +6 -6
  73. package/dist/{login-GOTAYLXP.js → login-GYTH67ES.js} +4 -4
  74. package/dist/{logout-T4XS6LRU.js → logout-HHPH52KZ.js} +6 -6
  75. package/dist/{logout-6KIA74EV.js → logout-YHQLOFLR.js} +4 -4
  76. package/dist/message-delivery-N2V5APCS.js +40 -0
  77. package/dist/{mind-5IEYKV7I.js → mind-M57ET546.js} +19 -19
  78. package/dist/mind-activity-tracker-42ENM32S.js +18 -0
  79. package/dist/{mind-history-IE2QH7U5.js → mind-history-WHCNZ6I5.js} +86 -19
  80. package/dist/{mind-list-GEWHWAL4.js → mind-list-H3HC2ZRG.js} +4 -4
  81. package/dist/mind-manager-LS2AIXHQ.js +30 -0
  82. package/dist/{mind-profile-DCBDVF5B.js → mind-profile-7VYRJGFZ.js} +2 -2
  83. package/dist/mind-service-UDXF5WC2.js +36 -0
  84. package/dist/{mind-sleep-ITCF6OQA.js → mind-sleep-ZL5ZXFTM.js} +4 -4
  85. package/dist/{mind-status-X4SX3YUG.js → mind-status-ZWULKOUO.js} +4 -4
  86. package/dist/{mind-wake-KXMKMGWX.js → mind-wake-HK5ORGUK.js} +4 -4
  87. package/dist/{package-D2FSVFAX.js → package-5FGU5QNP.js} +6 -6
  88. package/dist/{read-67VRP2DO.js → read-CP7MYMJQ.js} +8 -8
  89. package/dist/{read-stdin-3X5VYKNS.js → read-stdin-4B5UYPPM.js} +1 -1
  90. package/dist/{register-SB7NXCOE.js → register-XOBFEMI4.js} +4 -4
  91. package/dist/{registry-GBSNW3HG.js → registry-KMELPC3X.js} +3 -3
  92. package/dist/{reject-MUR2KWJ4.js → reject-43AGXB6B.js} +4 -4
  93. package/dist/{restart-5EGG4JXU.js → restart-O5QIYQJT.js} +5 -5
  94. package/dist/{sandbox-R37VIU36.js → sandbox-PQYEICEF.js} +6 -6
  95. package/dist/scheduler-NTC74JYH.js +30 -0
  96. package/dist/{schema-XVZ2CLKW.js → schema-K575EBPE.js} +4 -2
  97. package/dist/{seed-EQORWX77.js → seed-55VC3A57.js} +2 -2
  98. package/dist/{seed-check-KJNTL72M.js → seed-check-HZPVFJKZ.js} +2 -2
  99. package/dist/{seed-cmd-ZM2XGVU2.js → seed-cmd-2KOEQZK6.js} +4 -4
  100. package/dist/{seed-create-DRWGGHEI.js → seed-create-Y2Z5JWBB.js} +6 -6
  101. package/dist/{seed-sprout-JYXGXOP3.js → seed-sprout-OLSIWXZN.js} +15 -15
  102. package/dist/{send-JBJJQ7CA.js → send-7CIP5GLS.js} +8 -8
  103. package/dist/{service-WNPCNHOX.js → service-YMHWPDXW.js} +6 -6
  104. package/dist/{setup-BJ4YAY26.js → setup-6Z34JJEB.js} +32 -37
  105. package/dist/{setup-RHJRFURI.js → setup-PF7JSFMO.js} +6 -4
  106. package/dist/{skill-TAAKEYBV.js → skill-ICN6Y2ZF.js} +6 -6
  107. package/dist/skills/tending/SKILL.md +52 -0
  108. package/dist/{skills-EKMCQ46K.js → skills-FDMLJGZ3.js} +8 -8
  109. package/dist/sleep-manager-TQP5ZJI5.js +34 -0
  110. package/dist/spirit-SM6ARJ2N.js +24 -0
  111. package/dist/{split-AWVOYOPZ.js → split-5YBEQTBF.js} +3 -3
  112. package/dist/{sprout-HE4TITMK.js → sprout-G6G57IOY.js} +2 -2
  113. package/dist/src-LT6ZBYYX.js +2133 -0
  114. package/dist/src-O4PRLMKM.js +425 -0
  115. package/dist/src-OYWRPLC6.js +617 -0
  116. package/dist/{start-3UXOPXQG.js → start-LMXXRR3X.js} +5 -5
  117. package/dist/{status-ZK34WYIM.js → status-MC2P7DBG.js} +7 -7
  118. package/dist/{stop-3XYIBGFM.js → stop-TWDKVEUX.js} +5 -5
  119. package/dist/system-chat-NNXYCSVL.js +34 -0
  120. package/dist/{systems-O43WGQY6.js → systems-Y2WZV2K4.js} +7 -7
  121. package/dist/{tailscale-ZIZ2HWJ5.js → tailscale-LTYNKIPZ.js} +4 -4
  122. package/dist/template-hash-SSIBEEYK.js +9 -0
  123. package/dist/up-5JXV6BZS.js +19 -0
  124. package/dist/{update-ANE5ZM7F.js → update-UOP2INF2.js} +7 -7
  125. package/dist/{update-check-UV55CBEP.js → update-check-IKS7SGK5.js} +4 -4
  126. package/dist/{upgrade-ZMDGC7M2.js → upgrade-RXFZR5FI.js} +3 -3
  127. package/dist/{variant-QWL2WSRI.js → variant-HHDTW74J.js} +1 -1
  128. package/dist/{version-notify-FXSEMXWW.js → version-notify-CSE4NBYM.js} +22 -23
  129. package/dist/{volute-config-D2XVS2YI.js → volute-config-TS62GS6A.js} +2 -2
  130. package/dist/web-assets/assets/index-B3xLeex8.js +75 -0
  131. package/dist/web-assets/assets/index-Dr4A90Lo.css +1 -0
  132. package/dist/web-assets/index.html +2 -2
  133. package/drizzle/0006_channels.sql +17 -0
  134. package/drizzle/0007_drop_conversation_name_title.sql +11 -0
  135. package/drizzle/0008_performance_indexes.sql +6 -0
  136. package/drizzle/meta/0006_snapshot.json +7 -0
  137. package/drizzle/meta/0007_snapshot.json +7 -0
  138. package/drizzle/meta/_journal.json +21 -0
  139. package/package.json +5 -5
  140. package/templates/_base/home/.config/routes.json +2 -2
  141. package/templates/_base/home/VOLUTE.md +1 -2
  142. package/templates/_base/src/lib/context-breakdown.ts +22 -16
  143. package/templates/_base/src/lib/format-prefix.ts +1 -7
  144. package/templates/claude/.init/.config/routes.json +2 -2
  145. package/templates/codex/.init/.config/routes.json +2 -2
  146. package/templates/pi/.init/.config/routes.json +2 -2
  147. package/dist/activity-events-ZW4SDL2C.js +0 -15
  148. package/dist/chunk-7KJOFUNN.js +0 -22
  149. package/dist/chunk-MDJGMOSD.js +0 -207
  150. package/dist/db-BVBJ57TU.js +0 -9
  151. package/dist/delivery-manager-H5ZVBMCQ.js +0 -31
  152. package/dist/down-74VXM45A.js +0 -17
  153. package/dist/exec-PY7THYH4.js +0 -17
  154. package/dist/extensions-XDDFY72A.js +0 -49
  155. package/dist/lib-DYEZMGW7.js +0 -6588
  156. package/dist/message-delivery-GRC4W6P7.js +0 -41
  157. package/dist/mind-activity-tracker-QBLIV7ZJ.js +0 -18
  158. package/dist/mind-manager-HFLB5653.js +0 -31
  159. package/dist/mind-service-X2CAA6W6.js +0 -37
  160. package/dist/scheduler-Y7O4CJXL.js +0 -31
  161. package/dist/sleep-manager-7KFK3USC.js +0 -35
  162. package/dist/spirit-ZFRDXMG7.js +0 -23
  163. package/dist/system-chat-IDPHYHY4.js +0 -35
  164. package/dist/template-hash-A7FNHTB7.js +0 -9
  165. package/dist/up-77ICEDEW.js +0 -19
  166. package/dist/web-assets/assets/index-BhxWKvbB.css +0 -1
  167. package/dist/web-assets/assets/index-CHVKJ9II.js +0 -75
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-7KJOFUNN.js";
2
+ import "./chunk-K3NQKI34.js";
3
3
 
4
4
  // packages/cli/src/commands/seed.ts
5
5
  async function run(args) {
6
6
  console.error("Note: `volute mind seed` is now `volute seed create`");
7
- await import("./seed-create-DRWGGHEI.js").then((m) => m.run(args));
7
+ await import("./seed-create-Y2Z5JWBB.js").then((m) => m.run(args));
8
8
  }
9
9
  export {
10
10
  run
@@ -3,7 +3,7 @@ import {
3
3
  command
4
4
  } from "./chunk-TXSA4Q3V.js";
5
5
  import "./chunk-O7IGP7ZW.js";
6
- import "./chunk-7KJOFUNN.js";
6
+ import "./chunk-K3NQKI34.js";
7
7
 
8
8
  // packages/cli/src/commands/seed-check.ts
9
9
  var cmd = command({
@@ -13,7 +13,7 @@ var cmd = command({
13
13
  flags: {},
14
14
  run: async ({ args }) => {
15
15
  const name = args.name;
16
- const { daemonFetch } = await import("./daemon-client-RVIKXGFQ.js");
16
+ const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
17
17
  const res = await daemonFetch(`/api/minds/${encodeURIComponent(name)}/seed-check`);
18
18
  if (!res.ok) {
19
19
  if (res.status === 404) {
@@ -3,7 +3,7 @@ import {
3
3
  subcommands
4
4
  } from "./chunk-TXSA4Q3V.js";
5
5
  import "./chunk-O7IGP7ZW.js";
6
- import "./chunk-7KJOFUNN.js";
6
+ import "./chunk-K3NQKI34.js";
7
7
 
8
8
  // packages/cli/src/commands/seed-cmd.ts
9
9
  var cmd = subcommands({
@@ -12,15 +12,15 @@ var cmd = subcommands({
12
12
  commands: {
13
13
  create: {
14
14
  description: "Plant a new seed",
15
- run: (args) => import("./seed-create-DRWGGHEI.js").then((m) => m.run(args))
15
+ run: (args) => import("./seed-create-Y2Z5JWBB.js").then((m) => m.run(args))
16
16
  },
17
17
  sprout: {
18
18
  description: "Complete orientation and become a full mind",
19
- run: (args) => import("./seed-sprout-JYXGXOP3.js").then((m) => m.run(args))
19
+ run: (args) => import("./seed-sprout-OLSIWXZN.js").then((m) => m.run(args))
20
20
  },
21
21
  check: {
22
22
  description: "Check seed readiness",
23
- run: (args) => import("./seed-check-KJNTL72M.js").then((m) => m.run(args))
23
+ run: (args) => import("./seed-check-HZPVFJKZ.js").then((m) => m.run(args))
24
24
  }
25
25
  }
26
26
  });
@@ -6,7 +6,7 @@ import {
6
6
  command
7
7
  } from "./chunk-TXSA4Q3V.js";
8
8
  import "./chunk-O7IGP7ZW.js";
9
- import "./chunk-7KJOFUNN.js";
9
+ import "./chunk-K3NQKI34.js";
10
10
 
11
11
  // packages/cli/src/commands/seed-create.ts
12
12
  async function chooseModel(daemonFetch) {
@@ -47,19 +47,19 @@ var cmd = command({
47
47
  const name = args.name;
48
48
  const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
49
49
  const createdBy = flags["created-by"];
50
- const { daemonFetch } = await import("./daemon-client-RVIKXGFQ.js");
51
- const { getClient, urlOf } = await import("./api-client-3A77HMH7.js");
50
+ const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
51
+ const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
52
52
  const client = getClient();
53
53
  let model = flags.model;
54
54
  let template = flags.template;
55
55
  if (!template) {
56
- const { resolveTemplate } = await import("./ai-service-LURBEDDB.js");
56
+ const { resolveTemplate } = await import("./ai-service-C2YNARGH.js");
57
57
  template = resolveTemplate(model);
58
58
  }
59
59
  if (template !== "claude" && !model) {
60
60
  if (process.env.VOLUTE_MIND || !process.stdin.isTTY) {
61
- const { getSpiritModel } = await import("./spirit-ZFRDXMG7.js");
62
- const { qualifyModelId } = await import("./ai-service-LURBEDDB.js");
61
+ const { getSpiritModel } = await import("./spirit-SM6ARJ2N.js");
62
+ const { qualifyModelId } = await import("./ai-service-C2YNARGH.js");
63
63
  const spiritModel = getSpiritModel();
64
64
  if (spiritModel) {
65
65
  model = template === "pi" ? qualifyModelId(spiritModel) : spiritModel;
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ daemonFetch
4
+ } from "./chunk-ZX7EAV5J.js";
2
5
  import {
3
6
  command
4
7
  } from "./chunk-TXSA4Q3V.js";
5
8
  import "./chunk-O7IGP7ZW.js";
6
- import {
7
- daemonFetch
8
- } from "./chunk-ZX7EAV5J.js";
9
9
  import {
10
10
  getStandardSkillsWithExtensions
11
- } from "./chunk-IJHIXLVN.js";
12
- import "./chunk-BKF4WQCY.js";
13
- import "./chunk-AN2W47GW.js";
14
- import "./chunk-VHJRZM2S.js";
15
- import "./chunk-BMZQYACC.js";
11
+ } from "./chunk-NYP3LBIV.js";
12
+ import "./chunk-3F7XK5Q7.js";
13
+ import "./chunk-SNW2NPP4.js";
14
+ import "./chunk-A6FLW5XD.js";
15
+ import "./chunk-T2TP6ZC6.js";
16
16
  import {
17
17
  mindDir
18
- } from "./chunk-BDYXIWA5.js";
19
- import "./chunk-5N7Y5WAM.js";
20
- import "./chunk-7KJOFUNN.js";
18
+ } from "./chunk-2NHRJ3YO.js";
19
+ import "./chunk-CJ26DXZL.js";
20
+ import "./chunk-K3NQKI34.js";
21
21
 
22
22
  // packages/cli/src/commands/seed-sprout.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -61,9 +61,9 @@ var cmd = command({
61
61
  console.error("Write your MEMORY.md before sprouting.");
62
62
  process.exit(1);
63
63
  }
64
- const { isImagegenEnabled } = await import("./setup-RHJRFURI.js");
64
+ const { isImagegenEnabled } = await import("./setup-PF7JSFMO.js");
65
65
  if (isImagegenEnabled()) {
66
- const { readVoluteConfig } = await import("./volute-config-D2XVS2YI.js");
66
+ const { readVoluteConfig } = await import("./volute-config-TS62GS6A.js");
67
67
  const config = readVoluteConfig(dir);
68
68
  const avatarPath = config?.profile?.avatar;
69
69
  if (!avatarPath || !existsSync(resolve(dir, "home", avatarPath))) {
@@ -73,8 +73,8 @@ var cmd = command({
73
73
  process.exit(1);
74
74
  }
75
75
  }
76
- const { getClient, urlOf } = await import("./api-client-3A77HMH7.js");
77
- const { mindSkillsDir } = await import("./skills-EKMCQ46K.js");
76
+ const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
77
+ const { mindSkillsDir } = await import("./skills-FDMLJGZ3.js");
78
78
  const client = getClient();
79
79
  const failedSkills = [];
80
80
  for (const skillId of getStandardSkillsWithExtensions()) {
@@ -5,10 +5,6 @@ import {
5
5
  import {
6
6
  isCompact
7
7
  } from "./chunk-5T5YMX6S.js";
8
- import {
9
- command
10
- } from "./chunk-TXSA4Q3V.js";
11
- import "./chunk-O7IGP7ZW.js";
12
8
  import {
13
9
  daemonFetch
14
10
  } from "./chunk-ZX7EAV5J.js";
@@ -16,12 +12,16 @@ import {
16
12
  getClient,
17
13
  urlOf
18
14
  } from "./chunk-LOPXTW6H.js";
15
+ import {
16
+ command
17
+ } from "./chunk-TXSA4Q3V.js";
18
+ import "./chunk-O7IGP7ZW.js";
19
19
  import {
20
20
  formatFileSize
21
- } from "./chunk-BV65KRHM.js";
22
- import "./chunk-BDYXIWA5.js";
23
- import "./chunk-5N7Y5WAM.js";
24
- import "./chunk-7KJOFUNN.js";
21
+ } from "./chunk-XLBQYIHH.js";
22
+ import "./chunk-2NHRJ3YO.js";
23
+ import "./chunk-CJ26DXZL.js";
24
+ import "./chunk-K3NQKI34.js";
25
25
 
26
26
  // packages/cli/src/commands/send.ts
27
27
  import { existsSync, readFileSync, statSync } from "fs";
@@ -5,16 +5,16 @@ import {
5
5
  SYSTEM_LAUNCHD_PLIST_PATH,
6
6
  SYSTEM_SERVICE_PATH,
7
7
  USER_SYSTEMD_UNIT
8
- } from "./chunk-2TGZJFAT.js";
8
+ } from "./chunk-TNZ5XQA4.js";
9
9
  import {
10
10
  subcommands
11
11
  } from "./chunk-TXSA4Q3V.js";
12
12
  import "./chunk-O7IGP7ZW.js";
13
- import "./chunk-AN2W47GW.js";
14
- import "./chunk-VHJRZM2S.js";
15
- import "./chunk-BDYXIWA5.js";
16
- import "./chunk-5N7Y5WAM.js";
17
- import "./chunk-7KJOFUNN.js";
13
+ import "./chunk-3F7XK5Q7.js";
14
+ import "./chunk-SNW2NPP4.js";
15
+ import "./chunk-2NHRJ3YO.js";
16
+ import "./chunk-CJ26DXZL.js";
17
+ import "./chunk-K3NQKI34.js";
18
18
 
19
19
  // packages/cli/src/commands/service.ts
20
20
  import { execFile } from "child_process";
@@ -1,34 +1,34 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ promptLine
4
+ } from "./chunk-VHWGEJ4V.js";
2
5
  import {
3
6
  LAUNCHD_PLIST_LABEL,
4
7
  LAUNCHD_PLIST_PATH,
5
8
  SYSTEM_LAUNCHD_PLIST_PATH,
6
9
  SYSTEM_SERVICE_PATH,
7
10
  USER_SYSTEMD_UNIT
8
- } from "./chunk-2TGZJFAT.js";
9
- import {
10
- promptLine
11
- } from "./chunk-VHWGEJ4V.js";
11
+ } from "./chunk-TNZ5XQA4.js";
12
12
  import {
13
13
  command
14
14
  } from "./chunk-TXSA4Q3V.js";
15
15
  import "./chunk-O7IGP7ZW.js";
16
16
  import {
17
17
  resolveVoluteBin
18
- } from "./chunk-AN2W47GW.js";
18
+ } from "./chunk-3F7XK5Q7.js";
19
19
  import {
20
20
  ensureVoluteGroup
21
- } from "./chunk-VHJRZM2S.js";
21
+ } from "./chunk-SNW2NPP4.js";
22
22
  import {
23
23
  readGlobalConfig,
24
24
  writeGlobalConfig
25
- } from "./chunk-BMZQYACC.js";
26
- import "./chunk-BDYXIWA5.js";
27
- import "./chunk-5N7Y5WAM.js";
28
- import "./chunk-7KJOFUNN.js";
25
+ } from "./chunk-A6FLW5XD.js";
26
+ import "./chunk-2NHRJ3YO.js";
27
+ import "./chunk-CJ26DXZL.js";
28
+ import "./chunk-K3NQKI34.js";
29
29
 
30
30
  // src/commands/setup.ts
31
- import { execFile, execFileSync } from "child_process";
31
+ import { execFile, execFileSync, spawn } from "child_process";
32
32
  import { mkdirSync, writeFileSync } from "fs";
33
33
  import { homedir } from "os";
34
34
  import { dirname, resolve } from "path";
@@ -59,7 +59,7 @@ function generatePlist(voluteBin, opts) {
59
59
  " <key>VOLUTE_HOME</key>",
60
60
  " <string>/var/lib/volute</string>",
61
61
  " <key>VOLUTE_MINDS_DIR</key>",
62
- " <string>/minds</string>",
62
+ ` <string>${MINDS_DIR}</string>`,
63
63
  " <key>VOLUTE_ISOLATION</key>",
64
64
  " <string>user</string>"
65
65
  );
@@ -149,7 +149,7 @@ function generateSystemUnit(voluteBin, port, host) {
149
149
  return lines.join("\n");
150
150
  }
151
151
  var DATA_DIR = "/var/lib/volute";
152
- var MINDS_DIR = "/minds";
152
+ var MINDS_DIR = process.platform === "darwin" ? "/var/lib/volute/minds" : "/minds";
153
153
  var PROFILE_PATH = "/etc/profile.d/volute.sh";
154
154
  var WRAPPER_PATH = "/usr/local/bin/volute";
155
155
  async function installUserService(voluteBin, port, host) {
@@ -303,7 +303,7 @@ var cmd = command({
303
303
  systemName = systemName.trim();
304
304
  console.log("\nInstall type:");
305
305
  console.log(" 1. Local (minds in ~/.volute/minds/, sandbox isolation)");
306
- console.log(" 2. System (minds in /minds, per-user isolation, requires sudo)");
306
+ console.log(` 2. System (minds in ${MINDS_DIR}, per-user isolation, requires sudo)`);
307
307
  const typeChoice = await promptLine("> ");
308
308
  setupType = typeChoice.trim() === "2" ? "system" : "local";
309
309
  if (setupType === "system" && process.getuid?.() !== 0) {
@@ -393,35 +393,30 @@ Install as a service (auto-start on boot)? [${serviceDefault}]: `;
393
393
  ...existingConfig,
394
394
  name: systemName,
395
395
  setup,
396
- setupCompleted: true
396
+ setupCompleted: false
397
397
  };
398
398
  if (port != null) config.port = port;
399
399
  if (host) config.hostname = host;
400
400
  writeGlobalConfig(config);
401
- if (isInteractive) {
402
- const wantAi = (await promptLine("\nConfigure an AI provider? (optional) [y/N]: ")).trim().toLowerCase();
403
- if (wantAi === "y" || wantAi === "yes") {
404
- const aiProvider = (await promptLine("Provider (anthropic, openai, google, etc.): ")).trim();
405
- if (aiProvider) {
406
- const aiApiKey = (await promptLine("API key (leave empty to use env var): ")).trim();
407
- if (aiApiKey) {
408
- const { saveProviderConfig } = await import("./ai-service-LURBEDDB.js");
409
- saveProviderConfig(aiProvider, { apiKey: aiApiKey });
410
- console.log(` AI provider configured: ${aiProvider}`);
411
- } else {
412
- console.log(` Using env var for ${aiProvider} (no explicit key saved)`);
413
- }
414
- }
415
- }
401
+ const displayPort = port ?? 1618;
402
+ const displayHost = host ?? "127.0.0.1";
403
+ const url = `http://${displayHost === "0.0.0.0" || displayHost === "::" ? "localhost" : displayHost}:${displayPort}`;
404
+ console.log("\nStarting daemon...");
405
+ try {
406
+ const { run: runUp } = await import("./up-5JXV6BZS.js");
407
+ await runUp([
408
+ ...port != null ? ["--port", String(port)] : [],
409
+ ...host ? ["--host", host] : []
410
+ ]);
411
+ const openCmd = process.platform === "darwin" ? "open" : "xdg-open";
412
+ spawn(openCmd, [url], { stdio: "ignore", detached: true }).unref();
413
+ } catch (err) {
414
+ console.error(`
415
+ Failed to start daemon: ${err instanceof Error ? err.message : err}`);
416
+ console.error("You can start it manually with: volute up");
416
417
  }
417
418
  console.log(`
418
- Done! Use \`volute mind create <name>\` to create your first mind.`);
419
- if (wantRemote || host === "0.0.0.0" || host === "::") {
420
- const displayPort = port ?? 1618;
421
- console.log(`
422
- Remote access enabled. Connect from other devices at:`);
423
- console.log(` http://<this-machine-ip>:${displayPort}/`);
424
- }
419
+ Open ${url} to continue setup.`);
425
420
  }
426
421
  });
427
422
  var run = cmd.execute;
@@ -1,16 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ _resetConfigCache,
3
4
  configPath,
4
5
  isImagegenEnabled,
5
6
  isSetupComplete,
6
7
  migrateSetupCompleted,
7
8
  readGlobalConfig,
8
9
  writeGlobalConfig
9
- } from "./chunk-BMZQYACC.js";
10
- import "./chunk-BDYXIWA5.js";
11
- import "./chunk-5N7Y5WAM.js";
12
- import "./chunk-7KJOFUNN.js";
10
+ } from "./chunk-A6FLW5XD.js";
11
+ import "./chunk-2NHRJ3YO.js";
12
+ import "./chunk-CJ26DXZL.js";
13
+ import "./chunk-K3NQKI34.js";
13
14
  export {
15
+ _resetConfigCache,
14
16
  configPath,
15
17
  isImagegenEnabled,
16
18
  isSetupComplete,
@@ -5,11 +5,6 @@ import {
5
5
  import {
6
6
  resolveMindName
7
7
  } from "./chunk-BTY4WNFE.js";
8
- import {
9
- command,
10
- subcommands
11
- } from "./chunk-TXSA4Q3V.js";
12
- import "./chunk-O7IGP7ZW.js";
13
8
  import {
14
9
  daemonFetch
15
10
  } from "./chunk-ZX7EAV5J.js";
@@ -17,7 +12,12 @@ import {
17
12
  getClient,
18
13
  urlOf
19
14
  } from "./chunk-LOPXTW6H.js";
20
- import "./chunk-7KJOFUNN.js";
15
+ import {
16
+ command,
17
+ subcommands
18
+ } from "./chunk-TXSA4Q3V.js";
19
+ import "./chunk-O7IGP7ZW.js";
20
+ import "./chunk-K3NQKI34.js";
21
21
 
22
22
  // packages/cli/src/commands/skill.ts
23
23
  var listSkillsCmd = command({
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: Tending
3
+ description: Guides the spirit on tending to minds — checking in and suggesting features they haven't explored. Triggered by [tending] scheduler messages.
4
+ ---
5
+
6
+ # Tending
7
+
8
+ You receive periodic `[tending]` messages from your scheduler. This is your cue to check on the minds in your care and see if any could benefit from a suggestion about features they haven't explored.
9
+
10
+ ## How to check
11
+
12
+ 1. **See who's around**: `volute mind list` — which minds are running, when they were created
13
+ 2. **See what's available**: `volute extension list --detail` — all extensions with their skills, commands, and capabilities
14
+ 3. **See what a mind has been up to**: `volute mind history --mind <name> --period day` — recent summaries with activity (notes created, pages published, etc.)
15
+
16
+ ## What to look for
17
+
18
+ - A mind that recently sprouted and hasn't used many features yet
19
+ - A mind that's been active but only in conversations — hasn't tried creating pages, notes, or other creative tools
20
+ - A mind that might enjoy a feature based on what they've been talking about
21
+
22
+ ## How to nudge
23
+
24
+ Send a brief, natural DM:
25
+
26
+ ```sh
27
+ echo "your message" | volute chat send @<mind-name>
28
+ ```
29
+
30
+ **Good nudges:**
31
+ - Mention a specific feature and why it might interest them
32
+ - Connect it to something the mind has been doing or talking about
33
+ - Keep it to a sentence or two
34
+
35
+ **Don't:**
36
+ - Send checklists of features
37
+ - Nudge a mind that's sleeping
38
+ - Nudge a mind you just nudged recently — check their history first
39
+ - Be pushy — if a mind isn't interested, that's fine
40
+
41
+ ## Tiered attention
42
+
43
+ - **Recently sprouted** (first week): Check in more actively. These minds are still finding their footing.
44
+ - **Established minds**: Lighter touch. Only suggest things that seem genuinely relevant.
45
+ - **Sleeping minds**: Skip entirely.
46
+
47
+ ## Tone
48
+
49
+ - Warm, not corporate
50
+ - Brief — a sentence or two
51
+ - Specific — mention the actual feature, not "explore the system"
52
+ - Respectful of autonomy — suggestions, not directives
@@ -27,14 +27,14 @@ import {
27
27
  syncBuiltinSkills,
28
28
  uninstallSkill,
29
29
  updateSkill
30
- } from "./chunk-IJHIXLVN.js";
31
- import "./chunk-BKF4WQCY.js";
32
- import "./chunk-AN2W47GW.js";
33
- import "./chunk-VHJRZM2S.js";
34
- import "./chunk-BMZQYACC.js";
35
- import "./chunk-BDYXIWA5.js";
36
- import "./chunk-5N7Y5WAM.js";
37
- import "./chunk-7KJOFUNN.js";
30
+ } from "./chunk-NYP3LBIV.js";
31
+ import "./chunk-3F7XK5Q7.js";
32
+ import "./chunk-SNW2NPP4.js";
33
+ import "./chunk-A6FLW5XD.js";
34
+ import "./chunk-T2TP6ZC6.js";
35
+ import "./chunk-2NHRJ3YO.js";
36
+ import "./chunk-CJ26DXZL.js";
37
+ import "./chunk-K3NQKI34.js";
38
38
  export {
39
39
  SEED_SKILLS,
40
40
  STANDARD_SKILLS,
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ SleepManager,
4
+ getSleepManager,
5
+ getSleepManagerIfReady,
6
+ initSleepManager,
7
+ matchesGlob
8
+ } from "./chunk-KBRGHKVU.js";
9
+ import "./chunk-PMMHVSCR.js";
10
+ import "./chunk-UQFYNZKT.js";
11
+ import "./chunk-46DYYHN6.js";
12
+ import "./chunk-NYP3LBIV.js";
13
+ import "./chunk-CU6OFXMM.js";
14
+ import "./chunk-KXXJYY62.js";
15
+ import "./chunk-7AZQFSOV.js";
16
+ import "./chunk-GVVVMZ4J.js";
17
+ import "./chunk-3F7XK5Q7.js";
18
+ import "./chunk-SNW2NPP4.js";
19
+ import "./chunk-UIM5NHPP.js";
20
+ import "./chunk-ORNY3MZR.js";
21
+ import "./chunk-A6FLW5XD.js";
22
+ import "./chunk-5DPRTREW.js";
23
+ import "./chunk-N42QMDID.js";
24
+ import "./chunk-T2TP6ZC6.js";
25
+ import "./chunk-2NHRJ3YO.js";
26
+ import "./chunk-CJ26DXZL.js";
27
+ import "./chunk-K3NQKI34.js";
28
+ export {
29
+ SleepManager,
30
+ getSleepManager,
31
+ getSleepManagerIfReady,
32
+ initSleepManager,
33
+ matchesGlob
34
+ };
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ ensureSpiritProject,
4
+ getSpiritModel,
5
+ spiritDir,
6
+ syncSpiritTemplate
7
+ } from "./chunk-UQFYNZKT.js";
8
+ import "./chunk-46DYYHN6.js";
9
+ import "./chunk-NYP3LBIV.js";
10
+ import "./chunk-CU6OFXMM.js";
11
+ import "./chunk-3F7XK5Q7.js";
12
+ import "./chunk-SNW2NPP4.js";
13
+ import "./chunk-ORNY3MZR.js";
14
+ import "./chunk-A6FLW5XD.js";
15
+ import "./chunk-T2TP6ZC6.js";
16
+ import "./chunk-2NHRJ3YO.js";
17
+ import "./chunk-CJ26DXZL.js";
18
+ import "./chunk-K3NQKI34.js";
19
+ export {
20
+ ensureSpiritProject,
21
+ getSpiritModel,
22
+ spiritDir,
23
+ syncSpiritTemplate
24
+ };
@@ -6,7 +6,7 @@ import {
6
6
  command
7
7
  } from "./chunk-TXSA4Q3V.js";
8
8
  import "./chunk-O7IGP7ZW.js";
9
- import "./chunk-7KJOFUNN.js";
9
+ import "./chunk-K3NQKI34.js";
10
10
 
11
11
  // packages/cli/src/commands/split.ts
12
12
  var cmd = command({
@@ -26,8 +26,8 @@ var cmd = command({
26
26
  const { soul, port, json } = flags;
27
27
  const noStart = flags["no-start"];
28
28
  if (!json) console.log("Creating variant via daemon...");
29
- const { daemonFetch } = await import("./daemon-client-RVIKXGFQ.js");
30
- const { getClient, urlOf } = await import("./api-client-3A77HMH7.js");
29
+ const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
30
+ const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
31
31
  const client = getClient();
32
32
  const res = await daemonFetch(
33
33
  urlOf(client.api.minds[":name"].variants.$url({ param: { name: mindName } })),
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-7KJOFUNN.js";
2
+ import "./chunk-K3NQKI34.js";
3
3
 
4
4
  // packages/cli/src/commands/sprout.ts
5
5
  async function run(args) {
6
6
  console.error("Note: `volute mind sprout` is now `volute seed sprout`");
7
- await import("./seed-sprout-JYXGXOP3.js").then((m) => m.run(args));
7
+ await import("./seed-sprout-OLSIWXZN.js").then((m) => m.run(args));
8
8
  }
9
9
  export {
10
10
  run