volute 0.34.0 → 0.35.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 (209) hide show
  1. package/README.md +7 -6
  2. package/dist/accept-ZBDVVCEU.js +42 -0
  3. package/dist/{activity-events-BN7V6KCC.js → activity-events-ZW4SDL2C.js} +4 -4
  4. package/dist/{ai-service-PSILB5WD.js → ai-service-LURBEDDB.js} +5 -5
  5. package/dist/{api-client-XUXOB7LI.js → api-client-3A77HMH7.js} +1 -1
  6. package/dist/api.d.ts +1 -5618
  7. package/dist/{archive-C2VEMQOR.js → archive-ESU2FUN4.js} +3 -3
  8. package/dist/{auth-ZFZXJZDQ.js → auth-WX4TESEI.js} +5 -5
  9. package/dist/bridge-PXIO6PS2.js +206 -0
  10. package/dist/chat-QXAJF3FU.js +51 -0
  11. package/dist/{chunk-7F2SW2KD.js → chunk-2TGZJFAT.js} +3 -3
  12. package/dist/{chunk-6LXAAQ43.js → chunk-33ODGMFZ.js} +1 -1
  13. package/dist/{chunk-4JSR7YO7.js → chunk-5N7Y5WAM.js} +1 -1
  14. package/dist/{chunk-FYCALD4Q.js → chunk-5T5YMX6S.js} +1 -1
  15. package/dist/{chunk-B2BVAIZ4.js → chunk-5XJYUFZH.js} +21 -15
  16. package/dist/{chunk-M3K5AARV.js → chunk-A2ZLHBHG.js} +2 -2
  17. package/dist/{chunk-U5BTYSAL.js → chunk-AN2W47GW.js} +2 -2
  18. package/dist/{chunk-G53F3JA4.js → chunk-AOB6GVRM.js} +1 -1
  19. package/dist/{chunk-N7BLAHNE.js → chunk-BDYXIWA5.js} +5 -5
  20. package/dist/{chunk-YUIHSKR6.js → chunk-BKF4WQCY.js} +2 -2
  21. package/dist/{chunk-6OWJXUAR.js → chunk-BMZQYACC.js} +2 -2
  22. package/dist/{chunk-NAOW2CLO.js → chunk-BTY4WNFE.js} +1 -1
  23. package/dist/{chunk-MLOQKQNB.js → chunk-BV65KRHM.js} +2 -2
  24. package/dist/{chunk-XWXBJQBE.js → chunk-CORXD635.js} +4 -4
  25. package/dist/{chunk-PVY5W6QN.js → chunk-F7ZNLYKZ.js} +2 -2
  26. package/dist/{chunk-BFWHBQK4.js → chunk-FT5KETXZ.js} +3 -3
  27. package/dist/{chunk-N3DNFPVA.js → chunk-IJHIXLVN.js} +8 -8
  28. package/dist/{chunk-V6ZCNULL.js → chunk-J6CJQDWI.js} +37 -28
  29. package/dist/{chunk-4RQBJWQX.js → chunk-LOPXTW6H.js} +1 -1
  30. package/dist/{chunk-47ZPNLF4.js → chunk-MDJGMOSD.js} +8 -137
  31. package/dist/{chunk-BTWAGDV5.js → chunk-N446KRP7.js} +3 -3
  32. package/dist/{chunk-6WAWMWR5.js → chunk-N5LMGYXX.js} +2 -2
  33. package/dist/{chunk-G6BSYHPK.js → chunk-NJK5SDGR.js} +1 -1
  34. package/dist/{chunk-D424ZQGI.js → chunk-O7IGP7ZW.js} +11 -3
  35. package/dist/{chunk-2IOP6PHB.js → chunk-OTC67N2Z.js} +2 -2
  36. package/dist/{chunk-V45JXOWY.js → chunk-PWQ2ITYG.js} +4 -4
  37. package/dist/{chunk-KTLFDYPT.js → chunk-QCH6K235.js} +1 -1
  38. package/dist/chunk-QHG4OMZL.js +145 -0
  39. package/dist/{chunk-IS7WJ56Q.js → chunk-QWTR6AWZ.js} +3 -3
  40. package/dist/chunk-TXSA4Q3V.js +116 -0
  41. package/dist/{chunk-BDK73LK6.js → chunk-VHJRZM2S.js} +2 -2
  42. package/dist/{chunk-SSI47XP2.js → chunk-VHWGEJ4V.js} +1 -1
  43. package/dist/chunk-VY3RB2V7.js +164 -0
  44. package/dist/chunk-WJPROOU5.js +8314 -0
  45. package/dist/{chunk-E5C7OWZ2.js → chunk-WZRZFFCL.js} +8 -8
  46. package/dist/{chunk-BM474GX6.js → chunk-XRQSAMX2.js} +4 -4
  47. package/dist/{chunk-OYAKCAVY.js → chunk-ZSR72JB3.js} +1 -1
  48. package/dist/{chunk-PLDWHR4D.js → chunk-ZX7EAV5J.js} +17 -7
  49. package/dist/cli.js +90 -29
  50. package/dist/clock-HSEKS5AR.js +289 -0
  51. package/dist/{cloud-sync-TG3TIX5H.js → cloud-sync-6JL4C24T.js} +21 -22
  52. package/dist/config-UTS7QULS.js +76 -0
  53. package/dist/connectors/discord-bridge.js +3 -3
  54. package/dist/connectors/slack-bridge.js +3 -3
  55. package/dist/connectors/telegram-bridge.js +3 -3
  56. package/dist/{conversations-HL2JP5GI.js → conversations-2PW57WO2.js} +5 -5
  57. package/dist/create-5BPOOJAN.js +75 -0
  58. package/dist/create-UVCK2CS6.js +50 -0
  59. package/dist/daemon-client-RVIKXGFQ.js +12 -0
  60. package/dist/daemon-restart-HSZ3BCX5.js +65 -0
  61. package/dist/daemon.js +845 -1766
  62. package/dist/{db-PLEDCBHZ.js → db-BDMH4SZ2.js} +7 -3
  63. package/dist/{db-RYX3SS2W.js → db-BVBJ57TU.js} +2 -2
  64. package/dist/delete-L5PAVDGQ.js +42 -0
  65. package/dist/delivery-manager-H5ZVBMCQ.js +31 -0
  66. package/dist/{delivery-router-D5ELDMS2.js → delivery-router-HEJSJAHQ.js} +4 -4
  67. package/dist/down-74VXM45A.js +17 -0
  68. package/dist/env-E4XHO2BI.js +223 -0
  69. package/dist/{exec-DVLXKRIO.js → exec-PY7THYH4.js} +4 -4
  70. package/dist/export-OAS6QVBN.js +113 -0
  71. package/dist/{extension-PM42QCID.js → extension-D74CNM7G.js} +25 -33
  72. package/dist/{extensions-BBGVL5JC.js → extensions-XDDFY72A.js} +22 -11
  73. package/dist/files-CWTK6V3H.js +53 -0
  74. package/dist/import-5A3T7QV4.js +143 -0
  75. package/dist/{isolation-62MKDZN3.js → isolation-TK5RX2WM.js} +3 -3
  76. package/dist/join-DF5XSJAC.js +67 -0
  77. package/dist/list-PDMQM7ZV.js +53 -0
  78. package/dist/login-7TE6CIZF.js +60 -0
  79. package/dist/login-GOTAYLXP.js +51 -0
  80. package/dist/logout-6KIA74EV.js +29 -0
  81. package/dist/logout-T4XS6LRU.js +50 -0
  82. package/dist/message-delivery-GRC4W6P7.js +41 -0
  83. package/dist/mind-5IEYKV7I.js +97 -0
  84. package/dist/{mind-activity-tracker-2ACNHA7B.js → mind-activity-tracker-QBLIV7ZJ.js} +5 -5
  85. package/dist/{mind-history-WOYFLQAI.js → mind-history-IE2QH7U5.js} +82 -71
  86. package/dist/mind-list-GEWHWAL4.js +38 -0
  87. package/dist/mind-manager-HFLB5653.js +31 -0
  88. package/dist/mind-profile-DCBDVF5B.js +53 -0
  89. package/dist/mind-service-X2CAA6W6.js +37 -0
  90. package/dist/mind-sleep-ITCF6OQA.js +47 -0
  91. package/dist/mind-status-X4SX3YUG.js +65 -0
  92. package/dist/mind-wake-KXMKMGWX.js +42 -0
  93. package/dist/{package-V2WHWVG6.js → package-D2FSVFAX.js} +5 -5
  94. package/dist/read-67VRP2DO.js +91 -0
  95. package/dist/{read-stdin-PIRM6A2Y.js → read-stdin-3X5VYKNS.js} +1 -1
  96. package/dist/register-SB7NXCOE.js +51 -0
  97. package/dist/{registry-UYV5S6QT.js → registry-GBSNW3HG.js} +2 -2
  98. package/dist/reject-MUR2KWJ4.js +40 -0
  99. package/dist/restart-5EGG4JXU.js +42 -0
  100. package/dist/{sandbox-SI5HMBP3.js → sandbox-R37VIU36.js} +5 -5
  101. package/dist/scheduler-Y7O4CJXL.js +31 -0
  102. package/dist/{schema-ETMABTW4.js → schema-XVZ2CLKW.js} +1 -1
  103. package/dist/{seed-WNGI6PNW.js → seed-EQORWX77.js} +2 -2
  104. package/dist/seed-check-KJNTL72M.js +35 -0
  105. package/dist/seed-cmd-ZM2XGVU2.js +30 -0
  106. package/dist/seed-create-DRWGGHEI.js +113 -0
  107. package/dist/seed-sprout-JYXGXOP3.js +148 -0
  108. package/dist/send-JBJJQ7CA.js +409 -0
  109. package/dist/service-WNPCNHOX.js +121 -0
  110. package/dist/{setup-Z3DEVWV7.js → setup-BJ4YAY26.js} +153 -127
  111. package/dist/{setup-GGMKENLN.js → setup-RHJRFURI.js} +3 -3
  112. package/dist/skill-TAAKEYBV.js +389 -0
  113. package/dist/skills/volute-mind/SKILL.md +3 -7
  114. package/dist/skills/volute-mind/references/extensions.md +8 -11
  115. package/dist/{skills-Q6VZ2UGD.js → skills-EKMCQ46K.js} +7 -7
  116. package/dist/sleep-manager-7KFK3USC.js +35 -0
  117. package/dist/spirit-ZFRDXMG7.js +23 -0
  118. package/dist/split-AWVOYOPZ.js +64 -0
  119. package/dist/{sprout-E3HJIV2Z.js → sprout-HE4TITMK.js} +2 -2
  120. package/dist/start-3UXOPXQG.js +39 -0
  121. package/dist/status-ZK34WYIM.js +125 -0
  122. package/dist/stop-3XYIBGFM.js +41 -0
  123. package/dist/system-chat-IDPHYHY4.js +35 -0
  124. package/dist/systems-O43WGQY6.js +52 -0
  125. package/dist/{tailscale-ZEUK7GKZ.js → tailscale-ZIZ2HWJ5.js} +4 -4
  126. package/dist/{template-hash-EJRTKE36.js → template-hash-A7FNHTB7.js} +2 -2
  127. package/dist/up-77ICEDEW.js +19 -0
  128. package/dist/update-ANE5ZM7F.js +225 -0
  129. package/dist/{update-check-X3YG4WVP.js → update-check-UV55CBEP.js} +3 -3
  130. package/dist/upgrade-ZMDGC7M2.js +74 -0
  131. package/dist/variant-QWL2WSRI.js +62 -0
  132. package/dist/{version-notify-YCH4UVQ2.js → version-notify-FXSEMXWW.js} +28 -27
  133. package/dist/{volute-config-WBKYJGYQ.js → volute-config-D2XVS2YI.js} +1 -1
  134. package/dist/web-assets/assets/index-BhxWKvbB.css +1 -0
  135. package/dist/web-assets/assets/index-CHVKJ9II.js +75 -0
  136. package/dist/web-assets/index.html +2 -2
  137. package/dist/web-assets/sw.js +117 -0
  138. package/package.json +5 -5
  139. package/packages/extensions/pages/dist/ui/assets/index-DKZLNMED.js +2 -0
  140. package/packages/extensions/pages/dist/ui/index.html +1 -1
  141. package/packages/extensions/pages/skills/pages/SKILL.md +84 -9
  142. package/templates/_base/src/lib/auto-commit.ts +8 -8
  143. package/templates/_base/src/lib/volute-server.ts +6 -0
  144. package/templates/claude/src/agent.ts +8 -1
  145. package/dist/accept-TW6V4WI4.js +0 -42
  146. package/dist/bridge-O753D5F4.js +0 -207
  147. package/dist/chat-BHYX7DJ4.js +0 -68
  148. package/dist/chunk-47XDEWWV.js +0 -156
  149. package/dist/chunk-CVL5IGIR.js +0 -2084
  150. package/dist/chunk-PB65JZK2.js +0 -85
  151. package/dist/chunk-TAHX36HZ.js +0 -3679
  152. package/dist/clock-3X4DSC2N.js +0 -281
  153. package/dist/config-OROA5DUA.js +0 -72
  154. package/dist/create-3SEKKI6P.js +0 -71
  155. package/dist/create-UOSOQ2HN.js +0 -44
  156. package/dist/daemon-client-WOAQXXBM.js +0 -12
  157. package/dist/daemon-restart-5ABHNXJZ.js +0 -52
  158. package/dist/delete-KYOVWR23.js +0 -35
  159. package/dist/delivery-manager-2BR5NZKF.js +0 -32
  160. package/dist/down-QVFN4UPK.js +0 -15
  161. package/dist/env-R34DT7XL.js +0 -195
  162. package/dist/export-6ZXAXATG.js +0 -112
  163. package/dist/files-VQV2VZQO.js +0 -47
  164. package/dist/import-MK2I2T6F.js +0 -23
  165. package/dist/join-DGYHTJUH.js +0 -66
  166. package/dist/list-C644WTHV.js +0 -49
  167. package/dist/login-IIGEQPHL.js +0 -47
  168. package/dist/login-KZQLMAWE.js +0 -47
  169. package/dist/logout-AGTZVRGP.js +0 -40
  170. package/dist/logout-KD6GXIJJ.js +0 -21
  171. package/dist/message-delivery-V3R6NXJP.js +0 -42
  172. package/dist/mind-BI4EPBVZ.js +0 -108
  173. package/dist/mind-list-6VPM7GUQ.js +0 -30
  174. package/dist/mind-manager-MWW3BTS4.js +0 -32
  175. package/dist/mind-profile-WPG42U5Y.js +0 -47
  176. package/dist/mind-service-VIKZJK2M.js +0 -38
  177. package/dist/mind-sleep-XDISJY74.js +0 -42
  178. package/dist/mind-status-7FTZWPZF.js +0 -56
  179. package/dist/mind-wake-KIIKEI3A.js +0 -37
  180. package/dist/read-H5C26YO7.js +0 -85
  181. package/dist/register-J27WP33N.js +0 -47
  182. package/dist/reject-OEANJYIA.js +0 -40
  183. package/dist/restart-V5EGYBJG.js +0 -33
  184. package/dist/scheduler-AGG3L2FO.js +0 -32
  185. package/dist/seed-check-PXTH7YXS.js +0 -32
  186. package/dist/seed-cmd-VENFTGS3.js +0 -36
  187. package/dist/seed-create-663ALOKH.js +0 -112
  188. package/dist/seed-sprout-EH3AGKAI.js +0 -132
  189. package/dist/send-7FUUUZZH.js +0 -386
  190. package/dist/skill-DKNYJS4P.js +0 -362
  191. package/dist/skills/shared-files/SKILL.md +0 -44
  192. package/dist/skills/shared-files/scripts/merge.ts +0 -72
  193. package/dist/skills/shared-files/scripts/pull.ts +0 -52
  194. package/dist/sleep-manager-BJK2ROPX.js +0 -36
  195. package/dist/spirit-4JP4TY4C.js +0 -23
  196. package/dist/split-3YPMS2CL.js +0 -63
  197. package/dist/start-W3TPKX4D.js +0 -33
  198. package/dist/status-4OVFXFEJ.js +0 -115
  199. package/dist/stop-GTT6YWYO.js +0 -32
  200. package/dist/system-channel-DXD2JBOU.js +0 -36
  201. package/dist/system-chat-TYLOL7SX.js +0 -36
  202. package/dist/systems-AYLO727G.js +0 -61
  203. package/dist/up-PA7F2CXE.js +0 -18
  204. package/dist/update-HG4LCUSG.js +0 -215
  205. package/dist/upgrade-YGNIDICG.js +0 -67
  206. package/dist/variant-MZUMRTQO.js +0 -41
  207. package/dist/web-assets/assets/index-DiiwC-CZ.css +0 -1
  208. package/dist/web-assets/assets/index-d6y5b9Ij.js +0 -75
  209. package/packages/extensions/pages/dist/ui/assets/index-tLTROSk5.js +0 -2
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ subcommands
4
+ } from "./chunk-TXSA4Q3V.js";
5
+ import "./chunk-O7IGP7ZW.js";
6
+ import "./chunk-7KJOFUNN.js";
7
+
8
+ // packages/cli/src/commands/config.ts
9
+ async function listModels() {
10
+ const { daemonFetch } = await import("./daemon-client-RVIKXGFQ.js");
11
+ const res = await daemonFetch("/api/config/models");
12
+ if (!res.ok) {
13
+ console.error(`Failed to fetch models (HTTP ${res.status})`);
14
+ process.exit(1);
15
+ }
16
+ const models = await res.json();
17
+ const enabled = models.filter((m) => m.enabled);
18
+ if (enabled.length === 0) {
19
+ console.log("No models enabled.");
20
+ return;
21
+ }
22
+ for (const m of enabled) {
23
+ console.log(`${m.provider}:${m.id} ${m.name}`);
24
+ }
25
+ }
26
+ async function listProviders() {
27
+ const { daemonFetch } = await import("./daemon-client-RVIKXGFQ.js");
28
+ const res = await daemonFetch("/api/config/providers");
29
+ if (!res.ok) {
30
+ console.error(`Failed to fetch providers (HTTP ${res.status})`);
31
+ process.exit(1);
32
+ }
33
+ const providers = await res.json();
34
+ const configured = providers.filter((p) => p.configured);
35
+ if (configured.length === 0) {
36
+ console.log("No providers configured.");
37
+ return;
38
+ }
39
+ for (const p of configured) {
40
+ console.log(p.id);
41
+ }
42
+ }
43
+ async function showStatus() {
44
+ const { daemonFetch } = await import("./daemon-client-RVIKXGFQ.js");
45
+ const res = await daemonFetch("/api/config/status");
46
+ if (!res.ok) {
47
+ console.error(`Failed to fetch config (HTTP ${res.status})`);
48
+ process.exit(1);
49
+ }
50
+ const data = await res.json();
51
+ for (const [key, value] of Object.entries(data)) {
52
+ console.log(`${key}: ${value}`);
53
+ }
54
+ }
55
+ var cmd = subcommands({
56
+ name: "volute config",
57
+ description: "View system configuration",
58
+ commands: {
59
+ models: {
60
+ description: "List enabled AI models",
61
+ run: async () => listModels()
62
+ },
63
+ providers: {
64
+ description: "List configured AI providers",
65
+ run: async () => listProviders()
66
+ },
67
+ status: {
68
+ description: "Show system configuration",
69
+ run: async () => showStatus()
70
+ }
71
+ }
72
+ });
73
+ var run = cmd.execute;
74
+ export {
75
+ run
76
+ };
@@ -3,13 +3,13 @@ import {
3
3
  loadBridgeEnv,
4
4
  onShutdown,
5
5
  sendToBridge
6
- } from "../chunk-KTLFDYPT.js";
6
+ } from "../chunk-QCH6K235.js";
7
7
  import {
8
8
  slugify
9
- } from "../chunk-G6BSYHPK.js";
9
+ } from "../chunk-NJK5SDGR.js";
10
10
  import "../chunk-7KJOFUNN.js";
11
11
 
12
- // src/connectors/discord-bridge.ts
12
+ // packages/daemon/src/connectors/discord-bridge.ts
13
13
  import { Client, Events, GatewayIntentBits, Partials } from "discord.js";
14
14
  var env = loadBridgeEnv();
15
15
  var token = process.env.DISCORD_TOKEN;
@@ -3,13 +3,13 @@ import {
3
3
  loadBridgeEnv,
4
4
  onShutdown,
5
5
  sendToBridge
6
- } from "../chunk-KTLFDYPT.js";
6
+ } from "../chunk-QCH6K235.js";
7
7
  import {
8
8
  slugify
9
- } from "../chunk-G6BSYHPK.js";
9
+ } from "../chunk-NJK5SDGR.js";
10
10
  import "../chunk-7KJOFUNN.js";
11
11
 
12
- // src/connectors/slack-bridge.ts
12
+ // packages/daemon/src/connectors/slack-bridge.ts
13
13
  import { App } from "@slack/bolt";
14
14
  var env = loadBridgeEnv();
15
15
  var botToken = process.env.SLACK_BOT_TOKEN;
@@ -3,13 +3,13 @@ import {
3
3
  loadBridgeEnv,
4
4
  onShutdown,
5
5
  sendToBridge
6
- } from "../chunk-KTLFDYPT.js";
6
+ } from "../chunk-QCH6K235.js";
7
7
  import {
8
8
  slugify
9
- } from "../chunk-G6BSYHPK.js";
9
+ } from "../chunk-NJK5SDGR.js";
10
10
  import "../chunk-7KJOFUNN.js";
11
11
 
12
- // src/connectors/telegram-bridge.ts
12
+ // packages/daemon/src/connectors/telegram-bridge.ts
13
13
  import { Telegraf } from "telegraf";
14
14
  import { message } from "telegraf/filters";
15
15
  var env = loadBridgeEnv();
@@ -26,11 +26,11 @@ import {
26
26
  markConversationRead,
27
27
  removeParticipant,
28
28
  setConversationPrivate
29
- } from "./chunk-E5C7OWZ2.js";
30
- import "./chunk-XWXBJQBE.js";
31
- import "./chunk-YUIHSKR6.js";
32
- import "./chunk-N7BLAHNE.js";
33
- import "./chunk-4JSR7YO7.js";
29
+ } from "./chunk-WZRZFFCL.js";
30
+ import "./chunk-CORXD635.js";
31
+ import "./chunk-BKF4WQCY.js";
32
+ import "./chunk-BDYXIWA5.js";
33
+ import "./chunk-5N7Y5WAM.js";
34
34
  import "./chunk-7KJOFUNN.js";
35
35
  export {
36
36
  addMessage,
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ resolveMindName
4
+ } from "./chunk-BTY4WNFE.js";
5
+ import {
6
+ command
7
+ } from "./chunk-TXSA4Q3V.js";
8
+ import "./chunk-O7IGP7ZW.js";
9
+ import {
10
+ daemonFetch
11
+ } from "./chunk-ZX7EAV5J.js";
12
+ import "./chunk-7KJOFUNN.js";
13
+
14
+ // packages/cli/src/commands/chat/create.ts
15
+ var cmd = command({
16
+ name: "volute chat create",
17
+ description: "Create a conversation",
18
+ flags: {
19
+ mind: { type: "string", description: "Mind name" },
20
+ participants: { type: "string", description: "Comma-separated participant names (required)" },
21
+ name: { type: "string", description: "Conversation title" },
22
+ channel: { type: "string", description: "Channel name (required for 3+ participants)" }
23
+ },
24
+ async run({ flags }) {
25
+ if (!flags.participants) {
26
+ console.error(
27
+ 'Usage: volute chat create --participants u1,u2 [--name "..."] [--channel <name>] [--mind <name>]'
28
+ );
29
+ process.exit(1);
30
+ }
31
+ const mindName = resolveMindName(flags);
32
+ const participants = flags.participants.split(",").map((p) => p.trim());
33
+ if (participants.length > 2 && !flags.channel) {
34
+ console.error("Use --channel <name> for multi-participant conversations");
35
+ process.exit(1);
36
+ }
37
+ if (flags.channel) {
38
+ const res = await daemonFetch("/api/v1/channels", {
39
+ method: "POST",
40
+ headers: { "Content-Type": "application/json" },
41
+ body: JSON.stringify({
42
+ name: flags.channel,
43
+ participantNames: participants
44
+ })
45
+ });
46
+ if (!res.ok) {
47
+ const data = await res.json().catch(() => ({}));
48
+ console.error(data.error ?? `Failed to create channel: ${res.status}`);
49
+ process.exit(1);
50
+ }
51
+ const conv = await res.json();
52
+ console.log(`Created channel #${flags.channel}: ${conv.id}`);
53
+ } else {
54
+ const res = await daemonFetch(`/api/minds/${encodeURIComponent(mindName)}/conversations`, {
55
+ method: "POST",
56
+ headers: { "Content-Type": "application/json" },
57
+ body: JSON.stringify({
58
+ participantNames: participants,
59
+ title: flags.name
60
+ })
61
+ });
62
+ if (!res.ok) {
63
+ const data = await res.json().catch(() => ({}));
64
+ console.error(data.error ?? `Failed to create conversation: ${res.status}`);
65
+ process.exit(1);
66
+ }
67
+ const conv = await res.json();
68
+ console.log(`Created conversation: ${conv.id}`);
69
+ }
70
+ }
71
+ });
72
+ var run = cmd.execute;
73
+ export {
74
+ run
75
+ };
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ command
4
+ } from "./chunk-TXSA4Q3V.js";
5
+ import "./chunk-O7IGP7ZW.js";
6
+ import "./chunk-7KJOFUNN.js";
7
+
8
+ // packages/cli/src/commands/create.ts
9
+ var cmd = command({
10
+ name: "volute mind create",
11
+ description: "Create a new mind",
12
+ args: [{ name: "name", required: true, description: "Name for the new mind" }],
13
+ flags: {
14
+ template: { type: "string", description: "Template to use (claude, pi, codex)" },
15
+ skills: {
16
+ type: "string",
17
+ description: "Skills to install (comma-separated, or 'none')"
18
+ }
19
+ },
20
+ async run({ args, flags }) {
21
+ const name = args.name;
22
+ let template = flags.template;
23
+ if (!template) {
24
+ const { resolveTemplate } = await import("./ai-service-LURBEDDB.js");
25
+ template = resolveTemplate();
26
+ }
27
+ const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
28
+ const { daemonFetch } = await import("./daemon-client-RVIKXGFQ.js");
29
+ const { getClient, urlOf } = await import("./api-client-3A77HMH7.js");
30
+ const client = getClient();
31
+ const res = await daemonFetch(urlOf(client.api.minds.$url()), {
32
+ method: "POST",
33
+ headers: { "Content-Type": "application/json" },
34
+ body: JSON.stringify({ name, template, skills })
35
+ });
36
+ const data = await res.json();
37
+ if (!res.ok) {
38
+ console.error(data.error ?? "Failed to create mind");
39
+ process.exit(1);
40
+ }
41
+ console.log(`
42
+ ${data.message ?? `Created mind: ${data.name} (port ${data.port})`}`);
43
+ console.log(`
44
+ volute mind start ${data.name ?? name}`);
45
+ }
46
+ });
47
+ var run = cmd.execute;
48
+ export {
49
+ run
50
+ };
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ daemonFetch,
4
+ readSessionFile,
5
+ resolveDaemonUrl
6
+ } from "./chunk-ZX7EAV5J.js";
7
+ import "./chunk-7KJOFUNN.js";
8
+ export {
9
+ daemonFetch,
10
+ readSessionFile,
11
+ resolveDaemonUrl
12
+ };
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ stopDaemon
4
+ } from "./chunk-J6CJQDWI.js";
5
+ import {
6
+ run
7
+ } from "./chunk-VY3RB2V7.js";
8
+ import {
9
+ getServiceMode,
10
+ modeLabel,
11
+ pollHealth,
12
+ readDaemonConfig,
13
+ restartService
14
+ } from "./chunk-2TGZJFAT.js";
15
+ import {
16
+ command
17
+ } from "./chunk-TXSA4Q3V.js";
18
+ import "./chunk-O7IGP7ZW.js";
19
+ import "./chunk-AN2W47GW.js";
20
+ import "./chunk-VHJRZM2S.js";
21
+ import "./chunk-BMZQYACC.js";
22
+ import "./chunk-BDYXIWA5.js";
23
+ import "./chunk-5N7Y5WAM.js";
24
+ import "./chunk-7KJOFUNN.js";
25
+
26
+ // src/commands/daemon-restart.ts
27
+ var cmd = command({
28
+ name: "volute restart",
29
+ description: "Restart the daemon",
30
+ flags: {
31
+ port: { type: "number", description: "Port to listen on" }
32
+ },
33
+ run: async ({ flags }) => {
34
+ const mode = getServiceMode();
35
+ if (mode !== "manual") {
36
+ console.log(`Restarting volute (${modeLabel(mode)})...`);
37
+ try {
38
+ await restartService(mode);
39
+ } catch (err) {
40
+ console.error(`Failed to restart service: ${err instanceof Error ? err.message : err}`);
41
+ process.exit(1);
42
+ }
43
+ const config = readDaemonConfig();
44
+ if (await pollHealth("127.0.0.1", config.internalPort ?? config.port)) {
45
+ console.log("Daemon restarted.");
46
+ } else {
47
+ console.error("Service restarted but daemon did not become healthy within 30s.");
48
+ process.exit(1);
49
+ }
50
+ return;
51
+ }
52
+ const result = await stopDaemon();
53
+ if (!result.stopped && result.reason === "kill-failed") {
54
+ console.error("Cannot restart: failed to stop the running daemon.");
55
+ process.exit(1);
56
+ }
57
+ const upArgs = [];
58
+ if (flags.port != null) upArgs.push("--port", String(flags.port));
59
+ await run(upArgs);
60
+ }
61
+ });
62
+ var run2 = cmd.execute;
63
+ export {
64
+ run2 as run
65
+ };