volute 0.33.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 (255) hide show
  1. package/README.md +7 -6
  2. package/dist/accept-ZBDVVCEU.js +42 -0
  3. package/dist/activity-events-ZW4SDL2C.js +15 -0
  4. package/dist/{ai-service-SBY2WG7O.js → ai-service-LURBEDDB.js} +6 -6
  5. package/dist/{api-client-YPKOZP2O.js → api-client-3A77HMH7.js} +2 -2
  6. package/dist/api.d.ts +1 -5195
  7. package/dist/{archive-INXYFVCW.js → archive-ESU2FUN4.js} +4 -4
  8. package/dist/{auth-GKCDSO4T.js → auth-WX4TESEI.js} +6 -6
  9. package/dist/bridge-PXIO6PS2.js +206 -0
  10. package/dist/chat-QXAJF3FU.js +51 -0
  11. package/dist/{chunk-NNB4WIG7.js → chunk-2TGZJFAT.js} +3 -3
  12. package/dist/{chunk-6LXAAQ43.js → chunk-33ODGMFZ.js} +1 -1
  13. package/dist/{chunk-RPZZSXV3.js → chunk-5N7Y5WAM.js} +21 -2
  14. package/dist/chunk-5T5YMX6S.js +23 -0
  15. package/dist/{chunk-7J3HEVR7.js → chunk-5XJYUFZH.js} +28 -16
  16. package/dist/chunk-7KJOFUNN.js +22 -0
  17. package/dist/{chunk-2NGTS5UU.js → chunk-A2ZLHBHG.js} +2 -2
  18. package/dist/{chunk-KIEPMIM5.js → chunk-AN2W47GW.js} +2 -2
  19. package/dist/{chunk-G53F3JA4.js → chunk-AOB6GVRM.js} +1 -1
  20. package/dist/{chunk-LRCG2JLP.js → chunk-BDYXIWA5.js} +9 -5
  21. package/dist/{chunk-YUIHSKR6.js → chunk-BKF4WQCY.js} +2 -2
  22. package/dist/{chunk-N432I7QH.js → chunk-BMZQYACC.js} +2 -2
  23. package/dist/{chunk-NAOW2CLO.js → chunk-BTY4WNFE.js} +1 -1
  24. package/dist/{chunk-ALEF47VT.js → chunk-BV65KRHM.js} +2 -2
  25. package/dist/{chunk-KVK2DLWI.js → chunk-CORXD635.js} +4 -4
  26. package/dist/{chunk-PVY5W6QN.js → chunk-F7ZNLYKZ.js} +2 -2
  27. package/dist/{chunk-QTUVYI7W.js → chunk-FT5KETXZ.js} +3 -3
  28. package/dist/{chunk-C7I35G4R.js → chunk-IJHIXLVN.js} +44 -8
  29. package/dist/{chunk-JUKK7FPS.js → chunk-J6CJQDWI.js} +37 -28
  30. package/dist/{chunk-4RQBJWQX.js → chunk-LOPXTW6H.js} +1 -1
  31. package/dist/{chunk-RSX4OPZY.js → chunk-MDJGMOSD.js} +8 -137
  32. package/dist/{chunk-LOEJ4HPQ.js → chunk-N446KRP7.js} +3 -3
  33. package/dist/{chunk-I5KY25PQ.js → chunk-N5LMGYXX.js} +2 -2
  34. package/dist/{chunk-G6BSYHPK.js → chunk-NJK5SDGR.js} +1 -1
  35. package/dist/{chunk-D424ZQGI.js → chunk-O7IGP7ZW.js} +11 -3
  36. package/dist/{chunk-M7UL5S3Q.js → chunk-OTC67N2Z.js} +2 -2
  37. package/dist/{chunk-GY5HBI7A.js → chunk-PWQ2ITYG.js} +4 -4
  38. package/dist/{chunk-KTLFDYPT.js → chunk-QCH6K235.js} +1 -1
  39. package/dist/chunk-QHG4OMZL.js +145 -0
  40. package/dist/{chunk-SKLSMHXO.js → chunk-QWTR6AWZ.js} +3 -3
  41. package/dist/chunk-TXSA4Q3V.js +116 -0
  42. package/dist/{chunk-VH33ZWMW.js → chunk-VHJRZM2S.js} +2 -2
  43. package/dist/{chunk-SSI47XP2.js → chunk-VHWGEJ4V.js} +1 -1
  44. package/dist/chunk-VY3RB2V7.js +164 -0
  45. package/dist/chunk-WJPROOU5.js +8314 -0
  46. package/dist/{chunk-RVGLDGMI.js → chunk-WZRZFFCL.js} +25 -27
  47. package/dist/{chunk-JYVGHWEJ.js → chunk-XRQSAMX2.js} +4 -4
  48. package/dist/{chunk-OYAKCAVY.js → chunk-ZSR72JB3.js} +1 -1
  49. package/dist/{chunk-UKVWJRKN.js → chunk-ZX7EAV5J.js} +17 -7
  50. package/dist/cli.js +90 -29
  51. package/dist/clock-HSEKS5AR.js +289 -0
  52. package/dist/{cloud-sync-4NWLMFVH.js → cloud-sync-6JL4C24T.js} +22 -23
  53. package/dist/config-UTS7QULS.js +76 -0
  54. package/dist/connectors/discord-bridge.js +4 -4
  55. package/dist/connectors/slack-bridge.js +4 -4
  56. package/dist/connectors/telegram-bridge.js +4 -4
  57. package/dist/{conversations-AWI5SZW2.js → conversations-2PW57WO2.js} +6 -6
  58. package/dist/create-5BPOOJAN.js +75 -0
  59. package/dist/create-UVCK2CS6.js +50 -0
  60. package/dist/daemon-client-RVIKXGFQ.js +12 -0
  61. package/dist/daemon-restart-HSZ3BCX5.js +65 -0
  62. package/dist/daemon.js +1349 -1211
  63. package/dist/db-BDMH4SZ2.js +20 -0
  64. package/dist/db-BVBJ57TU.js +9 -0
  65. package/dist/delete-L5PAVDGQ.js +42 -0
  66. package/dist/delivery-manager-H5ZVBMCQ.js +31 -0
  67. package/dist/{delivery-router-FL45JL7N.js → delivery-router-HEJSJAHQ.js} +5 -5
  68. package/dist/down-74VXM45A.js +17 -0
  69. package/dist/env-E4XHO2BI.js +223 -0
  70. package/dist/exec-PY7THYH4.js +17 -0
  71. package/dist/export-OAS6QVBN.js +113 -0
  72. package/dist/extension-D74CNM7G.js +89 -0
  73. package/dist/extensions-XDDFY72A.js +49 -0
  74. package/dist/files-CWTK6V3H.js +53 -0
  75. package/dist/import-5A3T7QV4.js +143 -0
  76. package/dist/{isolation-LLAYQYDY.js → isolation-TK5RX2WM.js} +4 -4
  77. package/dist/join-DF5XSJAC.js +67 -0
  78. package/dist/lib-DYEZMGW7.js +6588 -0
  79. package/dist/list-PDMQM7ZV.js +53 -0
  80. package/dist/login-7TE6CIZF.js +60 -0
  81. package/dist/login-GOTAYLXP.js +51 -0
  82. package/dist/logout-6KIA74EV.js +29 -0
  83. package/dist/logout-T4XS6LRU.js +50 -0
  84. package/dist/message-delivery-GRC4W6P7.js +41 -0
  85. package/dist/mind-5IEYKV7I.js +97 -0
  86. package/dist/mind-activity-tracker-QBLIV7ZJ.js +18 -0
  87. package/dist/mind-history-IE2QH7U5.js +275 -0
  88. package/dist/mind-list-GEWHWAL4.js +38 -0
  89. package/dist/mind-manager-HFLB5653.js +31 -0
  90. package/dist/mind-profile-DCBDVF5B.js +53 -0
  91. package/dist/mind-service-X2CAA6W6.js +37 -0
  92. package/dist/mind-sleep-ITCF6OQA.js +47 -0
  93. package/dist/mind-status-X4SX3YUG.js +65 -0
  94. package/dist/mind-wake-KXMKMGWX.js +42 -0
  95. package/dist/{package-U3VFO273.js → package-D2FSVFAX.js} +11 -8
  96. package/dist/read-67VRP2DO.js +91 -0
  97. package/dist/{read-stdin-HQJ7774D.js → read-stdin-3X5VYKNS.js} +2 -2
  98. package/dist/register-SB7NXCOE.js +51 -0
  99. package/dist/{registry-PJ4S5PHQ.js → registry-GBSNW3HG.js} +3 -3
  100. package/dist/reject-MUR2KWJ4.js +40 -0
  101. package/dist/restart-5EGG4JXU.js +42 -0
  102. package/dist/{sandbox-GJOK4QLQ.js → sandbox-R37VIU36.js} +6 -6
  103. package/dist/scheduler-Y7O4CJXL.js +31 -0
  104. package/dist/{schema-PA3M5ZKH.js → schema-XVZ2CLKW.js} +4 -2
  105. package/dist/{seed-QDYVLG74.js → seed-EQORWX77.js} +3 -3
  106. package/dist/seed-check-KJNTL72M.js +35 -0
  107. package/dist/seed-cmd-ZM2XGVU2.js +30 -0
  108. package/dist/seed-create-DRWGGHEI.js +113 -0
  109. package/dist/seed-sprout-JYXGXOP3.js +148 -0
  110. package/dist/send-JBJJQ7CA.js +409 -0
  111. package/dist/service-WNPCNHOX.js +121 -0
  112. package/dist/{setup-XMCBE3LF.js → setup-BJ4YAY26.js} +155 -129
  113. package/dist/{setup-TISPCO22.js → setup-RHJRFURI.js} +4 -4
  114. package/dist/skill-TAAKEYBV.js +389 -0
  115. package/dist/skills/plan-coordinator/SKILL.md +60 -0
  116. package/dist/skills/volute-mind/SKILL.md +9 -227
  117. package/dist/skills/volute-mind/references/extensions.md +34 -0
  118. package/dist/skills/volute-mind/references/integrations.md +48 -0
  119. package/dist/skills/volute-mind/references/routing.md +86 -0
  120. package/dist/skills/volute-mind/references/sleep.md +33 -0
  121. package/dist/skills/volute-mind/references/variants.md +31 -0
  122. package/dist/{skills-7FV7EJTE.js → skills-EKMCQ46K.js} +12 -8
  123. package/dist/sleep-manager-7KFK3USC.js +35 -0
  124. package/dist/spirit-ZFRDXMG7.js +23 -0
  125. package/dist/split-AWVOYOPZ.js +64 -0
  126. package/dist/{sprout-WKLZXUIQ.js → sprout-HE4TITMK.js} +3 -3
  127. package/dist/start-3UXOPXQG.js +39 -0
  128. package/dist/status-ZK34WYIM.js +125 -0
  129. package/dist/stop-3XYIBGFM.js +41 -0
  130. package/dist/system-chat-IDPHYHY4.js +35 -0
  131. package/dist/systems-O43WGQY6.js +52 -0
  132. package/dist/{tailscale-XHQBZROW.js → tailscale-ZIZ2HWJ5.js} +5 -5
  133. package/dist/template-hash-A7FNHTB7.js +9 -0
  134. package/dist/up-77ICEDEW.js +19 -0
  135. package/dist/update-ANE5ZM7F.js +225 -0
  136. package/dist/{update-check-ZD6OOIYQ.js → update-check-UV55CBEP.js} +4 -4
  137. package/dist/upgrade-ZMDGC7M2.js +74 -0
  138. package/dist/variant-QWL2WSRI.js +62 -0
  139. package/dist/{version-notify-NBI2MTJO.js → version-notify-FXSEMXWW.js} +29 -28
  140. package/dist/{volute-config-HD7WWUQC.js → volute-config-D2XVS2YI.js} +2 -2
  141. package/dist/web-assets/assets/index-BhxWKvbB.css +1 -0
  142. package/dist/web-assets/assets/index-CHVKJ9II.js +75 -0
  143. package/dist/web-assets/ext-theme.css +48 -9
  144. package/dist/web-assets/index.html +2 -2
  145. package/dist/web-assets/sw.js +117 -0
  146. package/drizzle/0005_meta_summaries.sql +15 -0
  147. package/drizzle/meta/0005_snapshot.json +7 -0
  148. package/drizzle/meta/_journal.json +7 -0
  149. package/package.json +10 -7
  150. package/packages/extensions/pages/dist/ui/assets/index-DKZLNMED.js +2 -0
  151. package/packages/extensions/pages/dist/ui/index.html +1 -1
  152. package/packages/extensions/pages/skills/pages/SKILL.md +84 -9
  153. package/packages/extensions/plan/dist/ui/assets/index-CJj2gZnZ.css +1 -0
  154. package/packages/extensions/plan/dist/ui/assets/index-FMEJmvQz.js +61 -0
  155. package/packages/extensions/plan/dist/ui/index.html +14 -0
  156. package/packages/extensions/plan/skills/plan/SKILL.md +43 -0
  157. package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +37 -0
  158. package/templates/_base/home/VOLUTE.md +12 -19
  159. package/templates/_base/src/lib/auto-commit.ts +8 -8
  160. package/templates/_base/src/lib/context-breakdown.ts +450 -0
  161. package/templates/_base/src/lib/format-prefix.ts +17 -0
  162. package/templates/_base/src/lib/hook-loader.ts +8 -2
  163. package/templates/_base/src/lib/router.ts +75 -33
  164. package/templates/_base/src/lib/routing.ts +4 -1
  165. package/templates/_base/src/lib/startup.ts +16 -8
  166. package/templates/_base/src/lib/types.ts +2 -1
  167. package/templates/_base/src/lib/volute-server.ts +75 -8
  168. package/templates/claude/.init/CLAUDE.md +4 -10
  169. package/templates/claude/package.json.tmpl +1 -0
  170. package/templates/claude/src/agent.ts +108 -33
  171. package/templates/claude/src/lib/hooks/reply-instructions.ts +27 -7
  172. package/templates/claude/src/lib/stream-consumer.ts +2 -2
  173. package/templates/claude/src/server.ts +1 -0
  174. package/templates/codex/package.json.tmpl +1 -0
  175. package/templates/codex/src/agent.ts +80 -8
  176. package/templates/codex/src/server.ts +1 -4
  177. package/templates/pi/package.json.tmpl +1 -0
  178. package/templates/pi/src/agent.ts +115 -36
  179. package/templates/pi/src/lib/event-handler.ts +22 -7
  180. package/templates/pi/src/lib/reply-instructions-extension.ts +23 -4
  181. package/templates/pi/src/lib/subagents.ts +20 -17
  182. package/templates/pi/src/server.ts +2 -5
  183. package/dist/accept-D5VBM7JW.js +0 -42
  184. package/dist/activity-events-XJO3P4RR.js +0 -15
  185. package/dist/bridge-TXWWPPOJ.js +0 -207
  186. package/dist/chat-U5ZOME3O.js +0 -68
  187. package/dist/chunk-3Z2DPESO.js +0 -3634
  188. package/dist/chunk-A2A4KLFE.js +0 -1528
  189. package/dist/chunk-K3NQKI34.js +0 -10
  190. package/dist/chunk-NPKSDYA2.js +0 -156
  191. package/dist/chunk-PB65JZK2.js +0 -85
  192. package/dist/clock-BVH3V6E3.js +0 -266
  193. package/dist/config-H2H4UIF7.js +0 -72
  194. package/dist/create-2FK7Z46Y.js +0 -44
  195. package/dist/create-YWD2TIP4.js +0 -71
  196. package/dist/daemon-client-6QXHZ7US.js +0 -12
  197. package/dist/daemon-restart-GOBUKLX7.js +0 -52
  198. package/dist/db-F34YLV7D.js +0 -9
  199. package/dist/db-RA45JBFG.js +0 -16
  200. package/dist/delete-QTGWEDBI.js +0 -35
  201. package/dist/delivery-manager-PFAKEJTC.js +0 -32
  202. package/dist/down-FWWTEKXM.js +0 -15
  203. package/dist/env-JCOF2222.js +0 -191
  204. package/dist/export-SUYRLI5Q.js +0 -112
  205. package/dist/extension-OBTGKQQD.js +0 -175
  206. package/dist/extensions-KYNTVTMO.js +0 -30
  207. package/dist/files-65PMW5IK.js +0 -47
  208. package/dist/history-DKCDI3JO.js +0 -128
  209. package/dist/import-DDUFE7AY.js +0 -23
  210. package/dist/join-I5QEE3LG.js +0 -66
  211. package/dist/list-JQ463EDA.js +0 -41
  212. package/dist/login-D7ETSU4R.js +0 -47
  213. package/dist/login-RIJF2F4G.js +0 -47
  214. package/dist/logout-5MLHZALK.js +0 -40
  215. package/dist/logout-UZJRGY4Z.js +0 -21
  216. package/dist/message-delivery-DFF5SJRM.js +0 -42
  217. package/dist/mind-IOJFLEM5.js +0 -108
  218. package/dist/mind-activity-tracker-F6O4Q2SL.js +0 -18
  219. package/dist/mind-list-WUPMQDYQ.js +0 -30
  220. package/dist/mind-manager-NBJF5D26.js +0 -32
  221. package/dist/mind-profile-P67FEHOY.js +0 -47
  222. package/dist/mind-service-2MQ6UK5N.js +0 -38
  223. package/dist/mind-sleep-WW2IX7JT.js +0 -42
  224. package/dist/mind-status-L3EFFRPR.js +0 -56
  225. package/dist/mind-wake-VSSGW465.js +0 -37
  226. package/dist/read-EBY56C33.js +0 -75
  227. package/dist/register-HD74C4TT.js +0 -47
  228. package/dist/reject-UJKFBHRO.js +0 -40
  229. package/dist/restart-3UCMRUVC.js +0 -33
  230. package/dist/scheduler-ZZ7XGQG6.js +0 -32
  231. package/dist/seed-check-S2IX25RL.js +0 -32
  232. package/dist/seed-cmd-DKOUFEAU.js +0 -36
  233. package/dist/seed-create-4XBBOLRH.js +0 -112
  234. package/dist/seed-sprout-GQEIIQRT.js +0 -132
  235. package/dist/send-QIV2INHB.js +0 -373
  236. package/dist/skill-PSQGRRJX.js +0 -358
  237. package/dist/skills/shared-files/SKILL.md +0 -44
  238. package/dist/skills/shared-files/scripts/merge.ts +0 -72
  239. package/dist/skills/shared-files/scripts/pull.ts +0 -52
  240. package/dist/sleep-manager-JTXSN7NV.js +0 -36
  241. package/dist/spirit-VRONKFMF.js +0 -23
  242. package/dist/split-STOROBYJ.js +0 -63
  243. package/dist/start-K2NCUUCG.js +0 -33
  244. package/dist/status-3JBTFSMI.js +0 -115
  245. package/dist/stop-H26JZDXF.js +0 -32
  246. package/dist/system-chat-JAPOJ3KE.js +0 -36
  247. package/dist/systems-XRI52VCH.js +0 -61
  248. package/dist/template-hash-A6VVKOXJ.js +0 -9
  249. package/dist/up-M5AS6SBV.js +0 -18
  250. package/dist/update-UD543CXX.js +0 -215
  251. package/dist/upgrade-O4Q7WJM3.js +0 -67
  252. package/dist/variant-7TGZHOU3.js +0 -41
  253. package/dist/web-assets/assets/index-CWJrVveV.css +0 -1
  254. package/dist/web-assets/assets/index-DJt14FRI.js +0 -75
  255. package/packages/extensions/pages/dist/ui/assets/index-tLTROSk5.js +0 -2
@@ -1,71 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- resolveMindName
4
- } from "./chunk-NAOW2CLO.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-UKVWJRKN.js";
8
- import {
9
- parseArgs
10
- } from "./chunk-D424ZQGI.js";
11
- import "./chunk-LRCG2JLP.js";
12
- import "./chunk-RPZZSXV3.js";
13
- import "./chunk-K3NQKI34.js";
14
-
15
- // src/commands/chat/create.ts
16
- async function run(args) {
17
- const { flags } = parseArgs(args, {
18
- mind: { type: "string" },
19
- participants: { type: "string" },
20
- name: { type: "string" },
21
- channel: { type: "string" }
22
- });
23
- if (!flags.participants) {
24
- console.error(
25
- 'Usage: volute chat create --participants u1,u2 [--name "..."] [--channel <name>] [--mind <name>]'
26
- );
27
- process.exit(1);
28
- }
29
- const mindName = resolveMindName(flags);
30
- const participants = flags.participants.split(",").map((p) => p.trim());
31
- if (participants.length > 2 && !flags.channel) {
32
- console.error("Use --channel <name> for multi-participant conversations");
33
- process.exit(1);
34
- }
35
- if (flags.channel) {
36
- const res = await daemonFetch("/api/v1/channels", {
37
- method: "POST",
38
- headers: { "Content-Type": "application/json" },
39
- body: JSON.stringify({
40
- name: flags.channel,
41
- participantNames: participants
42
- })
43
- });
44
- if (!res.ok) {
45
- const data = await res.json().catch(() => ({}));
46
- console.error(data.error ?? `Failed to create channel: ${res.status}`);
47
- process.exit(1);
48
- }
49
- const conv = await res.json();
50
- console.log(`Created channel #${flags.channel}: ${conv.id}`);
51
- } else {
52
- const res = await daemonFetch(`/api/minds/${encodeURIComponent(mindName)}/conversations`, {
53
- method: "POST",
54
- headers: { "Content-Type": "application/json" },
55
- body: JSON.stringify({
56
- participantNames: participants,
57
- title: flags.name
58
- })
59
- });
60
- if (!res.ok) {
61
- const data = await res.json().catch(() => ({}));
62
- console.error(data.error ?? `Failed to create conversation: ${res.status}`);
63
- process.exit(1);
64
- }
65
- const conv = await res.json();
66
- console.log(`Created conversation: ${conv.id}`);
67
- }
68
- }
69
- export {
70
- run
71
- };
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- daemonFetch,
4
- readSessionFile
5
- } from "./chunk-UKVWJRKN.js";
6
- import "./chunk-LRCG2JLP.js";
7
- import "./chunk-RPZZSXV3.js";
8
- import "./chunk-K3NQKI34.js";
9
- export {
10
- daemonFetch,
11
- readSessionFile
12
- };
@@ -1,52 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- run
4
- } from "./chunk-NPKSDYA2.js";
5
- import {
6
- stopDaemon
7
- } from "./chunk-JUKK7FPS.js";
8
- import {
9
- getServiceMode,
10
- modeLabel,
11
- pollHealth,
12
- readDaemonConfig,
13
- restartService
14
- } from "./chunk-NNB4WIG7.js";
15
- import "./chunk-KIEPMIM5.js";
16
- import "./chunk-VH33ZWMW.js";
17
- import "./chunk-N432I7QH.js";
18
- import "./chunk-D424ZQGI.js";
19
- import "./chunk-LRCG2JLP.js";
20
- import "./chunk-RPZZSXV3.js";
21
- import "./chunk-K3NQKI34.js";
22
-
23
- // src/commands/daemon-restart.ts
24
- async function run2(args) {
25
- const mode = getServiceMode();
26
- if (mode !== "manual") {
27
- console.log(`Restarting volute (${modeLabel(mode)})...`);
28
- try {
29
- await restartService(mode);
30
- } catch (err) {
31
- console.error(`Failed to restart service: ${err instanceof Error ? err.message : err}`);
32
- process.exit(1);
33
- }
34
- const config = readDaemonConfig();
35
- if (await pollHealth("127.0.0.1", config.internalPort ?? config.port)) {
36
- console.log("Daemon restarted.");
37
- } else {
38
- console.error("Service restarted but daemon did not become healthy within 30s.");
39
- process.exit(1);
40
- }
41
- return;
42
- }
43
- const result = await stopDaemon();
44
- if (!result.stopped && result.reason === "kill-failed") {
45
- console.error("Cannot restart: failed to stop the running daemon.");
46
- process.exit(1);
47
- }
48
- await run(args);
49
- }
50
- export {
51
- run2 as run
52
- };
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- getDb
4
- } from "./chunk-LRCG2JLP.js";
5
- import "./chunk-RPZZSXV3.js";
6
- import "./chunk-K3NQKI34.js";
7
- export {
8
- getDb
9
- };
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- getAllSites,
4
- getPublishedPages,
5
- getRecentPages,
6
- initDb,
7
- syncPublishedPages
8
- } from "./chunk-PB65JZK2.js";
9
- import "./chunk-K3NQKI34.js";
10
- export {
11
- getAllSites,
12
- getPublishedPages,
13
- getRecentPages,
14
- initDb,
15
- syncPublishedPages
16
- };
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- resolveMindName
4
- } from "./chunk-NAOW2CLO.js";
5
- import {
6
- parseArgs
7
- } from "./chunk-D424ZQGI.js";
8
- import "./chunk-K3NQKI34.js";
9
-
10
- // src/commands/delete.ts
11
- async function run(args) {
12
- const { positional, flags } = parseArgs(args, {
13
- force: { type: "boolean" }
14
- });
15
- const name = resolveMindName({ mind: positional[0] });
16
- const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
17
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
18
- const client = getClient();
19
- const url = urlOf(client.api.minds[":name"].$url({ param: { name } })) + (flags.force ? "?force=true" : "");
20
- const res = await daemonFetch(url, { method: "DELETE" });
21
- const data = await res.json();
22
- if (!res.ok) {
23
- console.error(data.error ?? "Failed to delete mind");
24
- process.exit(1);
25
- }
26
- console.log(`Removed ${name}.`);
27
- if (flags.force) {
28
- console.log("Deleted mind directory.");
29
- } else {
30
- console.log("Use --force to also delete the mind directory.");
31
- }
32
- }
33
- export {
34
- run
35
- };
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- DeliveryManager,
4
- getDeliveryManager,
5
- initDeliveryManager
6
- } from "./chunk-3Z2DPESO.js";
7
- import "./chunk-SKLSMHXO.js";
8
- import "./chunk-LOEJ4HPQ.js";
9
- import "./chunk-RVGLDGMI.js";
10
- import "./chunk-GY5HBI7A.js";
11
- import "./chunk-7J3HEVR7.js";
12
- import "./chunk-G53F3JA4.js";
13
- import "./chunk-OYAKCAVY.js";
14
- import "./chunk-2NGTS5UU.js";
15
- import "./chunk-A2A4KLFE.js";
16
- import "./chunk-PB65JZK2.js";
17
- import "./chunk-JYVGHWEJ.js";
18
- import "./chunk-KVK2DLWI.js";
19
- import "./chunk-C7I35G4R.js";
20
- import "./chunk-QTUVYI7W.js";
21
- import "./chunk-YUIHSKR6.js";
22
- import "./chunk-KIEPMIM5.js";
23
- import "./chunk-VH33ZWMW.js";
24
- import "./chunk-N432I7QH.js";
25
- import "./chunk-LRCG2JLP.js";
26
- import "./chunk-RPZZSXV3.js";
27
- import "./chunk-K3NQKI34.js";
28
- export {
29
- DeliveryManager,
30
- getDeliveryManager,
31
- initDeliveryManager
32
- };
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- run,
4
- stopDaemon
5
- } from "./chunk-JUKK7FPS.js";
6
- import "./chunk-NNB4WIG7.js";
7
- import "./chunk-KIEPMIM5.js";
8
- import "./chunk-VH33ZWMW.js";
9
- import "./chunk-LRCG2JLP.js";
10
- import "./chunk-RPZZSXV3.js";
11
- import "./chunk-K3NQKI34.js";
12
- export {
13
- run,
14
- stopDaemon
15
- };
@@ -1,191 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- promptLine
4
- } from "./chunk-SSI47XP2.js";
5
- import {
6
- getClient,
7
- urlOf
8
- } from "./chunk-4RQBJWQX.js";
9
- import {
10
- daemonFetch
11
- } from "./chunk-UKVWJRKN.js";
12
- import {
13
- parseArgs
14
- } from "./chunk-D424ZQGI.js";
15
- import "./chunk-LRCG2JLP.js";
16
- import "./chunk-RPZZSXV3.js";
17
- import "./chunk-K3NQKI34.js";
18
-
19
- // src/commands/env.ts
20
- function maskValue(value) {
21
- if (value.length <= 6) return "***";
22
- return `${value.slice(0, 3)}...${value.slice(-3)}`;
23
- }
24
- async function run(args) {
25
- const { positional, flags } = parseArgs(args, {
26
- mind: { type: "string" },
27
- reveal: { type: "boolean" }
28
- });
29
- const subcommand = positional[0];
30
- const client = getClient();
31
- switch (subcommand) {
32
- case "set": {
33
- const key = positional[1];
34
- if (!key) {
35
- console.error("Usage: volute env set <KEY> [<VALUE>] [--mind <name>]");
36
- process.exit(1);
37
- }
38
- const value = positional[2] ?? await promptLine(`Enter value for ${key}: `);
39
- let res;
40
- if (flags.mind) {
41
- res = await daemonFetch(
42
- urlOf(
43
- client.api.minds[":name"].env[":key"].$url({
44
- param: { name: flags.mind, key }
45
- })
46
- ),
47
- {
48
- method: "PUT",
49
- headers: { "Content-Type": "application/json" },
50
- body: JSON.stringify({ value })
51
- }
52
- );
53
- } else {
54
- res = await daemonFetch(urlOf(client.api.env[":key"].$url({ param: { key } })), {
55
- method: "PUT",
56
- headers: { "Content-Type": "application/json" },
57
- body: JSON.stringify({ value })
58
- });
59
- }
60
- if (!res.ok) {
61
- const body = await res.json().catch(() => ({}));
62
- console.error(body.error ?? `Failed to set ${key}`);
63
- process.exit(1);
64
- }
65
- const scope = flags.mind ? `mind:${flags.mind}` : "shared";
66
- console.log(`Set ${key} [${scope}]`);
67
- break;
68
- }
69
- case "get": {
70
- const key = positional[1];
71
- if (!key) {
72
- console.error("Usage: volute env get <KEY> [--mind <name>]");
73
- process.exit(1);
74
- }
75
- if (flags.mind) {
76
- const res = await daemonFetch(
77
- urlOf(
78
- client.api.minds[":name"].env[":key"].$url({
79
- param: { name: flags.mind, key }
80
- })
81
- )
82
- );
83
- if (!res.ok) {
84
- const body = await res.json().catch(() => ({}));
85
- console.error(body.error ?? `${key} not set`);
86
- process.exit(1);
87
- }
88
- const data = await res.json();
89
- console.log(data.value);
90
- } else {
91
- const res = await daemonFetch(urlOf(client.api.env.$url()));
92
- if (!res.ok) {
93
- console.error(`Failed to read shared env`);
94
- process.exit(1);
95
- }
96
- const env = await res.json();
97
- if (key in env) {
98
- console.log(env[key]);
99
- } else {
100
- console.error(`${key} not set`);
101
- process.exit(1);
102
- }
103
- }
104
- break;
105
- }
106
- case "list": {
107
- if (flags.mind) {
108
- const res = await daemonFetch(
109
- urlOf(client.api.minds[":name"].env.$url({ param: { name: flags.mind } }))
110
- );
111
- if (!res.ok) {
112
- const body = await res.json().catch(() => ({}));
113
- console.error(body.error ?? "Failed to list env");
114
- process.exit(1);
115
- }
116
- const data = await res.json();
117
- const allKeys = /* @__PURE__ */ new Set([...Object.keys(data.shared), ...Object.keys(data.mind)]);
118
- if (allKeys.size === 0) {
119
- console.log("No environment variables set.");
120
- return;
121
- }
122
- for (const key of [...allKeys].sort()) {
123
- const scope = key in data.mind ? "mind" : "shared";
124
- const raw = key in data.mind ? data.mind[key] : data.shared[key];
125
- const value = flags.reveal ? raw : maskValue(raw);
126
- console.log(`${key}=${value} [${scope}]`);
127
- }
128
- } else {
129
- const res = await daemonFetch(urlOf(client.api.env.$url()));
130
- if (!res.ok) {
131
- console.error("Failed to list shared env");
132
- process.exit(1);
133
- }
134
- const env = await res.json();
135
- const keys = Object.keys(env);
136
- if (keys.length === 0) {
137
- console.log("No shared environment variables set.");
138
- return;
139
- }
140
- for (const key of keys.sort()) {
141
- const value = flags.reveal ? env[key] : maskValue(env[key]);
142
- console.log(`${key}=${value} [shared]`);
143
- }
144
- }
145
- break;
146
- }
147
- case "remove": {
148
- const key = positional[1];
149
- if (!key) {
150
- console.error("Usage: volute env remove <KEY> [--mind <name>]");
151
- process.exit(1);
152
- }
153
- let res;
154
- if (flags.mind) {
155
- res = await daemonFetch(
156
- urlOf(
157
- client.api.minds[":name"].env[":key"].$url({
158
- param: { name: flags.mind, key }
159
- })
160
- ),
161
- { method: "DELETE" }
162
- );
163
- } else {
164
- res = await daemonFetch(urlOf(client.api.env[":key"].$url({ param: { key } })), {
165
- method: "DELETE"
166
- });
167
- }
168
- if (!res.ok) {
169
- const scope2 = flags.mind ? `mind:${flags.mind}` : "shared";
170
- console.error(`${key} not set in ${scope2} scope`);
171
- process.exit(1);
172
- }
173
- const scope = flags.mind ? `mind:${flags.mind}` : "shared";
174
- console.log(`Removed ${key} [${scope}]`);
175
- break;
176
- }
177
- case "--help":
178
- case "-h":
179
- case void 0:
180
- console.log(`Usage: volute env <set|get|list|remove> [--mind <name>]`);
181
- break;
182
- default:
183
- console.error(`Usage: volute env <set|get|list|remove> [--mind <name>]`);
184
- console.error(`
185
- Unknown subcommand: ${subcommand}`);
186
- process.exit(1);
187
- }
188
- }
189
- export {
190
- run
191
- };
@@ -1,112 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- addHistoryToArchive,
4
- createExportArchive
5
- } from "./chunk-I5KY25PQ.js";
6
- import {
7
- parseArgs
8
- } from "./chunk-D424ZQGI.js";
9
- import {
10
- findMind,
11
- mindDir
12
- } from "./chunk-LRCG2JLP.js";
13
- import "./chunk-RPZZSXV3.js";
14
- import "./chunk-K3NQKI34.js";
15
-
16
- // src/commands/export.ts
17
- import { existsSync, writeFileSync } from "fs";
18
- import { resolve } from "path";
19
- async function run(args) {
20
- const { positional, flags } = parseArgs(args, {
21
- "include-env": { type: "boolean" },
22
- "include-identity": { type: "boolean" },
23
- "include-connectors": { type: "boolean" },
24
- "include-history": { type: "boolean" },
25
- "include-sessions": { type: "boolean" },
26
- "include-src": { type: "boolean" },
27
- all: { type: "boolean" },
28
- output: { type: "string" }
29
- });
30
- const name = positional[0];
31
- if (!name) {
32
- console.error(
33
- "Usage: volute mind export <name> [--include-env] [--include-identity] [--include-connectors] [--include-history] [--include-sessions] [--include-src] [--all] [--output <path>]"
34
- );
35
- process.exit(1);
36
- }
37
- const entry = await findMind(name);
38
- if (!entry) {
39
- console.error(`Unknown mind: ${name}`);
40
- process.exit(1);
41
- }
42
- const dir = mindDir(name);
43
- if (!existsSync(dir)) {
44
- console.error(`Mind directory missing: ${dir}`);
45
- process.exit(1);
46
- }
47
- const includeAll = flags.all;
48
- const includeEnv = includeAll || flags["include-env"];
49
- const includeIdentity = includeAll || flags["include-identity"];
50
- const includeConnectors = includeAll || flags["include-connectors"];
51
- const includeHistory = includeAll || flags["include-history"];
52
- const includeSessions = includeAll || flags["include-sessions"];
53
- const includeSrc = includeAll || flags["include-src"];
54
- const zip = createExportArchive({
55
- name,
56
- template: entry.template ?? "claude",
57
- stage: entry.stage,
58
- includeSrc,
59
- includeEnv,
60
- includeIdentity,
61
- includeConnectors,
62
- includeHistory,
63
- includeSessions
64
- });
65
- if (includeHistory) {
66
- try {
67
- const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
68
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
69
- const client = getClient();
70
- const res = await daemonFetch(
71
- urlOf(client.api.minds[":name"].history.export.$url({ param: { name } }))
72
- );
73
- if (!res.ok) {
74
- const text = await res.text().catch(() => "");
75
- throw new Error(`Failed to fetch history: HTTP ${res.status}${text ? ` - ${text}` : ""}`);
76
- }
77
- const rows = await res.json();
78
- addHistoryToArchive(zip, rows);
79
- } catch (err) {
80
- console.error(`Error: could not export history: ${err.message}`);
81
- process.exit(1);
82
- }
83
- }
84
- const outputPath = resolve(flags.output ?? `${name}.volute`);
85
- const buf = zip.toBuffer();
86
- try {
87
- writeFileSync(outputPath, buf);
88
- } catch (err) {
89
- console.error(`Failed to write archive to ${outputPath}: ${err.message}`);
90
- process.exit(1);
91
- }
92
- const sizeMB = (buf.length / 1024 / 1024).toFixed(2);
93
- console.log(`
94
- Exported ${name} \u2192 ${outputPath} (${sizeMB} MB)`);
95
- const included = [];
96
- const excluded = [];
97
- for (const [key, val] of [
98
- ["src", includeSrc],
99
- ["env", includeEnv],
100
- ["identity", includeIdentity],
101
- ["connectors", includeConnectors],
102
- ["history", includeHistory],
103
- ["sessions", includeSessions]
104
- ]) {
105
- (val ? included : excluded).push(key);
106
- }
107
- if (included.length > 0) console.log(` Included: ${included.join(", ")}`);
108
- if (excluded.length > 0) console.log(` Excluded: ${excluded.join(", ")}`);
109
- }
110
- export {
111
- run
112
- };