volute 0.30.1 → 0.32.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 (227) hide show
  1. package/README.md +15 -22
  2. package/dist/{accept-E3PAH3QJ.js → accept-74M7I4RZ.js} +5 -4
  3. package/dist/{activity-events-BKBPPUBP.js → activity-events-HETAODOK.js} +3 -2
  4. package/dist/{ai-service-VAJT5UBS.js → ai-service-ZIPCV3MX.js} +20 -5
  5. package/dist/api.d.ts +341 -397
  6. package/dist/{archive-WWDBWYN2.js → archive-INXYFVCW.js} +3 -2
  7. package/dist/auth-6DMGES3I.js +44 -0
  8. package/dist/{bridge-RO37CUFM.js → bridge-BVCBTGPF.js} +5 -4
  9. package/dist/{chat-TCUNPFGO.js → chat-XT4OBJBU.js} +8 -8
  10. package/dist/{chunk-P7VFDSSG.js → chunk-2FLJ63GU.js} +2 -2
  11. package/dist/{chunk-ZWKTUQEL.js → chunk-2NGTS5UU.js} +1 -1
  12. package/dist/{chunk-JGFRDMR6.js → chunk-ALEF47VT.js} +1 -1
  13. package/dist/{chunk-MDPCSXZ4.js → chunk-D5G5YOPL.js} +163 -15
  14. package/dist/{chunk-VGWJSNHS.js → chunk-G53F3JA4.js} +1 -35
  15. package/dist/{chunk-A6TUJJ3L.js → chunk-G6BSYHPK.js} +2 -2
  16. package/dist/{chunk-DTC6EH5I.js → chunk-I5KY25PQ.js} +1 -9
  17. package/dist/{chunk-NSBFETWP.js → chunk-IYDIE3HG.js} +64 -26
  18. package/dist/{chunk-W5OOPLNP.js → chunk-JJ7W6WSB.js} +3 -3
  19. package/dist/{chunk-G3GBKZGG.js → chunk-LGB6JBHI.js} +54 -2
  20. package/dist/chunk-LRCG2JLP.js +251 -0
  21. package/dist/{chunk-FXHXHI2A.js → chunk-LSGWR54X.js} +3 -6
  22. package/dist/{chunk-S5LR3XYJ.js → chunk-M7UL5S3Q.js} +1 -1
  23. package/dist/chunk-PB65JZK2.js +85 -0
  24. package/dist/chunk-PVY5W6QN.js +41 -0
  25. package/dist/{chunk-QVAQ5454.js → chunk-QBQ424EM.js} +3007 -2126
  26. package/dist/{chunk-P27RV5WM.js → chunk-QZANELPX.js} +6 -2
  27. package/dist/{chunk-FSM45XD5.js → chunk-R7E6CRVQ.js} +1 -1
  28. package/dist/{chunk-HHTXM4JT.js → chunk-RPZZSXV3.js} +39 -195
  29. package/dist/{chunk-UPA6COHU.js → chunk-RSX4OPZY.js} +5 -5
  30. package/dist/{chunk-2C2VXEBB.js → chunk-S6NFERDC.js} +21 -57
  31. package/dist/chunk-SKLSMHXO.js +208 -0
  32. package/dist/{chunk-IKHDUZRH.js → chunk-SX5TKJBZ.js} +2 -2
  33. package/dist/chunk-TDRYEPH4.js +185 -0
  34. package/dist/chunk-TSXLLQZW.js +46 -0
  35. package/dist/{chunk-EFVHR7KH.js → chunk-UKVWJRKN.js} +24 -5
  36. package/dist/{chunk-2NDZC3S7.js → chunk-WKF5FEFK.js} +688 -389
  37. package/dist/cli.js +93 -24
  38. package/dist/{clock-G3ALCMLJ.js → clock-2UOZ6JPU.js} +11 -8
  39. package/dist/{cloud-sync-JV4LJOK3.js → cloud-sync-JN3NWKEM.js} +16 -14
  40. package/dist/config-H2H4UIF7.js +72 -0
  41. package/dist/connectors/discord-bridge.js +1 -1
  42. package/dist/connectors/slack-bridge.js +1 -1
  43. package/dist/connectors/telegram-bridge.js +1 -1
  44. package/dist/{conversations-7KVQV7EZ.js → conversations-3O5O6AS3.js} +8 -7
  45. package/dist/{create-JTLS7GX3.js → create-RNLNCORE.js} +5 -4
  46. package/dist/{create-VQSQHJQW.js → create-WBBYI6V7.js} +6 -2
  47. package/dist/daemon-client-6QXHZ7US.js +12 -0
  48. package/dist/{daemon-restart-4JGBHEJ4.js → daemon-restart-NGFHFAUF.js} +7 -7
  49. package/dist/daemon.js +2446 -1999
  50. package/dist/{db-HMFPIRO2.js → db-F34YLV7D.js} +2 -1
  51. package/dist/db-RA45JBFG.js +16 -0
  52. package/dist/{delete-JESHKE7F.js → delete-QTGWEDBI.js} +1 -1
  53. package/dist/delivery-manager-SDVXFD4W.js +28 -0
  54. package/dist/delivery-router-FL45JL7N.js +21 -0
  55. package/dist/down-TB3ESMNP.js +14 -0
  56. package/dist/{env-CLXXT7M2.js → env-RLYQBOOP.js} +5 -4
  57. package/dist/{export-EGA5M5PB.js → export-SUYRLI5Q.js} +4 -3
  58. package/dist/{extension-WZ4SUPJB.js → extension-FQ5D3NCC.js} +6 -6
  59. package/dist/{extensions-ECO4RPFQ.js → extensions-GDYWQXC4.js} +9 -7
  60. package/dist/{files-4VEJDASH.js → files-EAMPO2SJ.js} +6 -5
  61. package/dist/{history-EJMMLXDO.js → history-FO5PHBQ5.js} +9 -4
  62. package/dist/{import-YCGPMBSI.js → import-DDUFE7AY.js} +4 -3
  63. package/dist/{join-2GBJKZEN.js → join-I5QEE3LG.js} +1 -1
  64. package/dist/{list-Q6O7FGAN.js → list-DW2VRTOZ.js} +5 -4
  65. package/dist/{login-RL6AU2SM.js → login-7CHPW2PN.js} +5 -4
  66. package/dist/{login-RET5WESK.js → login-RIJF2F4G.js} +3 -2
  67. package/dist/{logout-CGAGJN3L.js → logout-5MLHZALK.js} +3 -2
  68. package/dist/{logout-JRPBEMMR.js → logout-UZJRGY4Z.js} +3 -2
  69. package/dist/message-delivery-2FIM7QKO.js +32 -0
  70. package/dist/{mind-LUWRQUQ5.js → mind-2B6M7Y25.js} +18 -18
  71. package/dist/{mind-activity-tracker-VYN2ZZ2M.js → mind-activity-tracker-NZZT2NTT.js} +4 -3
  72. package/dist/{mind-list-V5WW5DUA.js → mind-list-WUPMQDYQ.js} +3 -2
  73. package/dist/mind-manager-BNCMGYXW.js +28 -0
  74. package/dist/mind-service-AV273WT4.js +34 -0
  75. package/dist/{mind-sleep-R6PTNNW4.js → mind-sleep-B7BHJLH7.js} +5 -4
  76. package/dist/{mind-status-I4ISFJ6I.js → mind-status-L3EFFRPR.js} +3 -2
  77. package/dist/{mind-wake-67ZQEWAV.js → mind-wake-GY3RFX7Y.js} +5 -4
  78. package/dist/{package-OYUD4ZJ4.js → package-PK6JUFL3.js} +3 -3
  79. package/dist/read-5AMJRO3D.js +75 -0
  80. package/dist/{register-NZDSTLP3.js → register-V2JZZKFK.js} +5 -4
  81. package/dist/{registry-ODSALQQL.js → registry-PJ4S5PHQ.js} +8 -1
  82. package/dist/{reject-2HZOJEIJ.js → reject-33HEZMZ4.js} +5 -4
  83. package/dist/{restart-QHS3NT64.js → restart-3UCMRUVC.js} +5 -4
  84. package/dist/{sandbox-O5FUSF43.js → sandbox-JANNTX6U.js} +4 -3
  85. package/dist/schema-PA3M5ZKH.js +32 -0
  86. package/dist/seed-ALUQ55FF.js +112 -0
  87. package/dist/{send-OAN3RYYY.js → send-3MI36LEF.js} +58 -69
  88. package/dist/{setup-QMDK5RZX.js → setup-SZIARWI6.js} +5 -4
  89. package/dist/{setup-XJH3E7YM.js → setup-WENLVPVP.js} +9 -9
  90. package/dist/{skill-FZIN4W4Q.js → skill-TUVOTW4Z.js} +5 -4
  91. package/dist/skills/dreaming/SKILL.md +6 -4
  92. package/dist/skills/dreaming/references/INSTALL.md +4 -5
  93. package/dist/skills/dreaming/scripts/dream.ts +5 -27
  94. package/dist/skills/dreaming/scripts/wake-context-dreams.sh +1 -1
  95. package/dist/skills/imagegen/SKILL.md +6 -5
  96. package/dist/skills/imagegen/references/INSTALL.md +1 -1
  97. package/dist/skills/resonance/SKILL.md +4 -1
  98. package/dist/skills/resonance/references/INSTALL.md +2 -2
  99. package/dist/skills/resonance/scripts/resonance-hook.sh +2 -0
  100. package/dist/skills/resonance/scripts/resonance.ts +35 -5
  101. package/dist/skills/volute-admin/SKILL.md +83 -0
  102. package/dist/skills/volute-mind/SKILL.md +12 -12
  103. package/dist/skills-XNZK6P4K.js +61 -0
  104. package/dist/sleep-manager-53DZOWW7.js +32 -0
  105. package/dist/spirit-N4W4UQRH.js +217 -0
  106. package/dist/{split-EXYGGGQN.js → split-STOROBYJ.js} +1 -1
  107. package/dist/{sprout-AXQ6H5DB.js → sprout-L2GFOVF7.js} +9 -8
  108. package/dist/{start-MTOVL6SY.js → start-K2NCUUCG.js} +5 -4
  109. package/dist/{status-ZRO37MWR.js → status-TCUMUO6M.js} +5 -5
  110. package/dist/{stop-OK5WEPVC.js → stop-H26JZDXF.js} +5 -4
  111. package/dist/system-chat-NPYFYZVI.js +32 -0
  112. package/dist/{systems-W3BBMSOZ.js → systems-DHBKVYEY.js} +6 -5
  113. package/dist/{tailscale-BM72RXCJ.js → tailscale-XHQBZROW.js} +2 -1
  114. package/dist/{template-hash-3HOR4UAJ.js → template-hash-A6VVKOXJ.js} +2 -1
  115. package/dist/up-6I6BHRTO.js +17 -0
  116. package/dist/{update-PLPHMMZ2.js → update-QVPRF6GR.js} +5 -5
  117. package/dist/{update-check-CVCN7MF6.js → update-check-ZD6OOIYQ.js} +3 -2
  118. package/dist/{upgrade-I6NPCYUU.js → upgrade-O4Q7WJM3.js} +12 -14
  119. package/dist/{version-notify-2NTWVEHL.js → version-notify-TCKWBZZG.js} +22 -23
  120. package/dist/web-assets/assets/index-Bui7U9Uu.css +1 -0
  121. package/dist/web-assets/assets/index-e36DIo1b.js +73 -0
  122. package/dist/web-assets/ext-theme.css +94 -0
  123. package/dist/web-assets/index.html +2 -2
  124. package/drizzle/0000_baseline.sql +152 -0
  125. package/drizzle/0001_add_conversation_private.sql +1 -0
  126. package/drizzle/0002_turns.sql +21 -0
  127. package/drizzle/0003_turn_feed_links.sql +11 -0
  128. package/drizzle/0004_spirits.sql +5 -0
  129. package/drizzle/meta/0000_snapshot.json +3 -223
  130. package/drizzle/meta/0001_snapshot.json +3 -294
  131. package/drizzle/meta/0002_snapshot.json +3 -335
  132. package/drizzle/meta/0003_snapshot.json +3 -413
  133. package/drizzle/meta/0004_snapshot.json +3 -406
  134. package/drizzle/meta/_journal.json +10 -101
  135. package/package.json +3 -3
  136. package/packages/extensions/notes/dist/ui/assets/index-8jWEv9SA.js +61 -0
  137. package/packages/extensions/notes/dist/ui/assets/index-DkaB7Ytd.css +1 -0
  138. package/packages/extensions/notes/dist/ui/index.html +2 -2
  139. package/packages/extensions/notes/skills/notes/SKILL.md +8 -8
  140. package/packages/extensions/pages/skills/pages/SKILL.md +17 -44
  141. package/templates/_base/.init/.config/hooks/pre-prompt/session-activity.ts +40 -0
  142. package/templates/_base/.init/.local/bin/volute +27 -0
  143. package/templates/_base/.init/.local/hooks/pre-prompt/session-activity.ts +40 -0
  144. package/templates/_base/.init/.local/hooks/startup-context.ts +58 -0
  145. package/templates/_base/home/.config/routes.json +1 -1
  146. package/templates/_base/src/lib/auto-commit.ts +82 -43
  147. package/templates/_base/src/lib/daemon-client.ts +40 -36
  148. package/templates/_base/src/lib/format-prefix.ts +1 -0
  149. package/templates/_base/src/lib/hook-loader.ts +155 -0
  150. package/templates/_base/src/lib/router.ts +17 -1
  151. package/templates/_base/src/lib/startup.ts +17 -12
  152. package/templates/_base/src/lib/transparency.ts +2 -2
  153. package/templates/_base/src/lib/volute-server.ts +2 -5
  154. package/templates/claude/.init/.claude/settings.json +1 -1
  155. package/templates/claude/.init/.config/routes.json +2 -2
  156. package/templates/claude/src/agent.ts +97 -14
  157. package/templates/claude/src/lib/hooks/auto-commit.ts +7 -3
  158. package/templates/claude/src/lib/message-channel.ts +7 -2
  159. package/templates/claude/src/server.ts +0 -9
  160. package/templates/codex/.init/.config/routes.json +11 -0
  161. package/templates/codex/.init/AGENTS.md +29 -0
  162. package/templates/codex/home/.config/config.json.tmpl +7 -0
  163. package/templates/codex/package.json.tmpl +20 -0
  164. package/templates/codex/src/agent.ts +553 -0
  165. package/templates/codex/src/lib/content.ts +16 -0
  166. package/templates/codex/src/lib/session-store.ts +56 -0
  167. package/templates/codex/src/server.ts +59 -0
  168. package/templates/codex/volute-template.json +8 -0
  169. package/templates/pi/.init/.config/routes.json +2 -2
  170. package/templates/pi/package.json.tmpl +1 -1
  171. package/templates/pi/src/agent.ts +63 -9
  172. package/templates/pi/src/lib/event-handler.ts +6 -4
  173. package/templates/pi/src/lib/reply-instructions-extension.ts +32 -11
  174. package/dist/chunk-7D47T4RB.js +0 -84
  175. package/dist/chunk-CVH6Y2YG.js +0 -59
  176. package/dist/chunk-EFP3PE6C.js +0 -232
  177. package/dist/chunk-LIRWLNAK.js +0 -729
  178. package/dist/daemon-client-BCTFGVCZ.js +0 -9
  179. package/dist/down-NGBMGORS.js +0 -14
  180. package/dist/message-delivery-6YMVNOEC.js +0 -28
  181. package/dist/migrate-registry-to-db-FK35IPEH.js +0 -110
  182. package/dist/mind-manager-YFCOIAAX.js +0 -18
  183. package/dist/pages-watcher-Z3PKNROC.js +0 -21
  184. package/dist/read-WQMPTSN2.js +0 -46
  185. package/dist/seed-WUQMPLDM.js +0 -71
  186. package/dist/skills/sessions/SKILL.md +0 -49
  187. package/dist/sleep-manager-O7YQFCV5.js +0 -30
  188. package/dist/up-BXUAIDXB.js +0 -17
  189. package/dist/web-assets/assets/index--kREqKl9.js +0 -72
  190. package/dist/web-assets/assets/index-BXYTG0nJ.css +0 -1
  191. package/drizzle/0000_flaky_mariko_yashida.sql +0 -34
  192. package/drizzle/0001_careless_warpath.sql +0 -12
  193. package/drizzle/0002_wealthy_the_call.sql +0 -6
  194. package/drizzle/0003_clean_ego.sql +0 -12
  195. package/drizzle/0004_magical_silverclaw.sql +0 -1
  196. package/drizzle/0005_rename_agents_to_minds.sql +0 -11
  197. package/drizzle/0006_mind_history.sql +0 -20
  198. package/drizzle/0007_system_prompts.sql +0 -5
  199. package/drizzle/0008_volute_channels.sql +0 -24
  200. package/drizzle/0009_shared_skills.sql +0 -9
  201. package/drizzle/0010_delivery_queue.sql +0 -12
  202. package/drizzle/0011_rename_human_to_brain.sql +0 -1
  203. package/drizzle/0012_activity.sql +0 -11
  204. package/drizzle/0013_user_profiles.sql +0 -3
  205. package/drizzle/0014_conversation_reads.sql +0 -7
  206. package/drizzle/0015_notes.sql +0 -23
  207. package/drizzle/0016_note_reactions_and_replies.sql +0 -15
  208. package/drizzle/0017_minds.sql +0 -16
  209. package/drizzle/meta/0005_snapshot.json +0 -410
  210. package/drizzle/meta/0006_snapshot.json +0 -7
  211. package/drizzle/meta/0007_snapshot.json +0 -7
  212. package/drizzle/meta/0008_snapshot.json +0 -7
  213. package/drizzle/meta/0009_snapshot.json +0 -7
  214. package/drizzle/meta/0010_snapshot.json +0 -7
  215. package/drizzle/meta/0011_snapshot.json +0 -7
  216. package/drizzle/meta/0012_snapshot.json +0 -7
  217. package/drizzle/meta/0013_snapshot.json +0 -7
  218. package/packages/extensions/notes/dist/ui/assets/index-DgawVO5g.css +0 -1
  219. package/packages/extensions/notes/dist/ui/assets/index-qUWoeC4c.js +0 -2
  220. package/packages/extensions/notes/skills/notes/scripts/notes.mjs +0 -185
  221. package/templates/_base/.init/.config/hooks/startup-context.sh +0 -46
  222. package/templates/_base/.init/.config/scripts/session-reader.ts +0 -59
  223. package/templates/_base/home/public/.gitkeep +0 -0
  224. package/templates/_base/src/lib/session-monitor.ts +0 -400
  225. package/templates/claude/src/lib/hooks/session-context.ts +0 -32
  226. package/templates/pi/src/lib/session-context-extension.ts +0 -35
  227. /package/templates/_base/.init/{.config → .local}/hooks/wake-context.sh +0 -0
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- daemonFetch
4
- } from "./chunk-EFVHR7KH.js";
5
- import "./chunk-HHTXM4JT.js";
6
- import "./chunk-K3NQKI34.js";
7
- export {
8
- daemonFetch
9
- };
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- run,
4
- stopDaemon
5
- } from "./chunk-P7VFDSSG.js";
6
- import "./chunk-FXHXHI2A.js";
7
- import "./chunk-CVH6Y2YG.js";
8
- import "./chunk-G3GBKZGG.js";
9
- import "./chunk-HHTXM4JT.js";
10
- import "./chunk-K3NQKI34.js";
11
- export {
12
- run,
13
- stopDaemon
14
- };
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- deliverMessage,
4
- extractTextContent,
5
- recordInbound,
6
- resolveSleepAction
7
- } from "./chunk-QVAQ5454.js";
8
- import "./chunk-FSM45XD5.js";
9
- import "./chunk-LIRWLNAK.js";
10
- import "./chunk-IKHDUZRH.js";
11
- import "./chunk-2C2VXEBB.js";
12
- import "./chunk-2NDZC3S7.js";
13
- import "./chunk-P27RV5WM.js";
14
- import "./chunk-MDPCSXZ4.js";
15
- import "./chunk-ZWKTUQEL.js";
16
- import "./chunk-YUIHSKR6.js";
17
- import "./chunk-CVH6Y2YG.js";
18
- import "./chunk-G3GBKZGG.js";
19
- import "./chunk-7D47T4RB.js";
20
- import "./chunk-A6TUJJ3L.js";
21
- import "./chunk-HHTXM4JT.js";
22
- import "./chunk-K3NQKI34.js";
23
- export {
24
- deliverMessage,
25
- extractTextContent,
26
- recordInbound,
27
- resolveSleepAction
28
- };
@@ -1,110 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- logger_default
4
- } from "./chunk-YUIHSKR6.js";
5
- import {
6
- getDb,
7
- minds,
8
- voluteSystemDir
9
- } from "./chunk-HHTXM4JT.js";
10
- import "./chunk-K3NQKI34.js";
11
-
12
- // src/lib/migrate-registry-to-db.ts
13
- import { existsSync, readFileSync, renameSync } from "fs";
14
- import { resolve } from "path";
15
- async function migrateRegistryToDb() {
16
- const systemDir = voluteSystemDir();
17
- const mindsJsonPath = resolve(systemDir, "minds.json");
18
- const variantsJsonPath = resolve(systemDir, "variants.json");
19
- if (!existsSync(mindsJsonPath) && !existsSync(variantsJsonPath)) return;
20
- const db = await getDb();
21
- let mindEntries = [];
22
- let mindsParseOk = true;
23
- if (existsSync(mindsJsonPath)) {
24
- try {
25
- mindEntries = JSON.parse(readFileSync(mindsJsonPath, "utf-8"));
26
- } catch (err) {
27
- mindsParseOk = false;
28
- logger_default.error("failed to parse minds.json during migration", { error: err });
29
- }
30
- }
31
- let allVariants = {};
32
- let variantsParseOk = true;
33
- if (existsSync(variantsJsonPath)) {
34
- try {
35
- allVariants = JSON.parse(readFileSync(variantsJsonPath, "utf-8"));
36
- } catch (err) {
37
- variantsParseOk = false;
38
- logger_default.error("failed to parse variants.json during migration", { error: err });
39
- }
40
- }
41
- let mindFailCount = 0;
42
- for (const entry of mindEntries) {
43
- try {
44
- await db.insert(minds).values({
45
- name: entry.name,
46
- port: entry.port,
47
- stage: entry.stage ?? "sprouted",
48
- template: entry.template ?? null,
49
- template_hash: entry.templateHash ?? null,
50
- running: entry.running ? 1 : 0,
51
- created_at: entry.created
52
- }).onConflictDoNothing();
53
- } catch (err) {
54
- mindFailCount++;
55
- logger_default.warn(`failed to migrate mind ${entry.name} to DB`, { error: err });
56
- }
57
- }
58
- let variantFailCount = 0;
59
- for (const [mindName, variants] of Object.entries(allVariants)) {
60
- for (const v of variants) {
61
- try {
62
- await db.insert(minds).values({
63
- name: `${mindName}@${v.name}`,
64
- port: v.port,
65
- parent: mindName,
66
- dir: v.path,
67
- branch: v.branch,
68
- running: v.running ? 1 : 0,
69
- created_at: v.created
70
- }).onConflictDoNothing();
71
- } catch (err) {
72
- variantFailCount++;
73
- logger_default.warn(`failed to migrate variant ${mindName}@${v.name} to DB`, { error: err });
74
- }
75
- }
76
- }
77
- if (mindFailCount > 0) {
78
- logger_default.error(`${mindFailCount} mind(s) failed to migrate \u2014 minds.json will not be renamed`);
79
- }
80
- if (variantFailCount > 0) {
81
- logger_default.error(
82
- `${variantFailCount} variant(s) failed to migrate \u2014 variants.json will not be renamed`
83
- );
84
- }
85
- if (mindsParseOk && mindFailCount === 0) {
86
- try {
87
- if (existsSync(mindsJsonPath)) {
88
- renameSync(mindsJsonPath, `${mindsJsonPath}.bak`);
89
- }
90
- } catch (err) {
91
- logger_default.warn("failed to rename minds.json to .bak", { error: err });
92
- }
93
- }
94
- if (variantsParseOk && variantFailCount === 0) {
95
- try {
96
- if (existsSync(variantsJsonPath)) {
97
- renameSync(variantsJsonPath, `${variantsJsonPath}.bak`);
98
- }
99
- } catch (err) {
100
- logger_default.warn("failed to rename variants.json to .bak", { error: err });
101
- }
102
- }
103
- const count = mindEntries.length + Object.values(allVariants).flat().length;
104
- if (count > 0) {
105
- logger_default.info(`migrated ${count} entries from JSON to DB`);
106
- }
107
- }
108
- export {
109
- migrateRegistryToDb
110
- };
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- MindManager,
4
- getMindManager,
5
- initMindManager
6
- } from "./chunk-LIRWLNAK.js";
7
- import "./chunk-IKHDUZRH.js";
8
- import "./chunk-ZWKTUQEL.js";
9
- import "./chunk-YUIHSKR6.js";
10
- import "./chunk-G3GBKZGG.js";
11
- import "./chunk-7D47T4RB.js";
12
- import "./chunk-HHTXM4JT.js";
13
- import "./chunk-K3NQKI34.js";
14
- export {
15
- MindManager,
16
- getMindManager,
17
- initMindManager
18
- };
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- getCachedRecentPages,
4
- getCachedSites,
5
- startSystemWatcher,
6
- startWatcher,
7
- stopAllWatchers,
8
- stopWatcher
9
- } from "./chunk-EFP3PE6C.js";
10
- import "./chunk-P27RV5WM.js";
11
- import "./chunk-YUIHSKR6.js";
12
- import "./chunk-HHTXM4JT.js";
13
- import "./chunk-K3NQKI34.js";
14
- export {
15
- getCachedRecentPages,
16
- getCachedSites,
17
- startSystemWatcher,
18
- startWatcher,
19
- stopAllWatchers,
20
- stopWatcher
21
- };
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- resolveMindName
4
- } from "./chunk-NAOW2CLO.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-EFVHR7KH.js";
8
- import {
9
- parseArgs
10
- } from "./chunk-D424ZQGI.js";
11
- import "./chunk-HHTXM4JT.js";
12
- import "./chunk-K3NQKI34.js";
13
-
14
- // src/commands/chat/read.ts
15
- async function run(args) {
16
- const { positional, flags } = parseArgs(args, {
17
- mind: { type: "string" },
18
- limit: { type: "number" }
19
- });
20
- const conversationId = positional[0];
21
- if (!conversationId) {
22
- console.error("Usage: volute chat read <conversation-id> [--limit N] [--mind <name>]");
23
- process.exit(1);
24
- }
25
- const mindName = resolveMindName(flags);
26
- const limit = String(flags.limit ?? 50);
27
- const res = await daemonFetch(
28
- `/api/minds/${encodeURIComponent(mindName)}/conversations/${encodeURIComponent(conversationId)}/messages?limit=${limit}`
29
- );
30
- if (!res.ok) {
31
- console.error(`Failed to read conversation: ${res.status}`);
32
- process.exit(1);
33
- }
34
- const data = await res.json();
35
- for (const msg of data.messages) {
36
- const sender = msg.sender_name ?? msg.role;
37
- const text = Array.isArray(msg.content) ? msg.content.filter((b) => b.type === "text").map((b) => b.text).join("") : msg.content;
38
- const time = new Date(
39
- msg.created_at.endsWith("Z") ? msg.created_at : `${msg.created_at}Z`
40
- ).toLocaleString();
41
- console.log(`[${time}] ${sender}: ${text}`);
42
- }
43
- }
44
- export {
45
- run
46
- };
@@ -1,71 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- parseArgs
4
- } from "./chunk-D424ZQGI.js";
5
- import "./chunk-K3NQKI34.js";
6
-
7
- // src/commands/seed.ts
8
- async function run(args) {
9
- const { positional, flags } = parseArgs(args, {
10
- template: { type: "string" },
11
- model: { type: "string" },
12
- description: { type: "string" },
13
- skills: { type: "string" }
14
- });
15
- const name = positional[0];
16
- if (!name) {
17
- console.error(
18
- "Usage: volute mind seed <name> [--template <name>] [--model <model>] [--description <text>] [--skills <list|none>]"
19
- );
20
- process.exit(1);
21
- }
22
- const template = flags.template ?? "claude";
23
- const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
24
- const { daemonFetch } = await import("./daemon-client-BCTFGVCZ.js");
25
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
26
- const client = getClient();
27
- const createRes = await daemonFetch(urlOf(client.api.minds.$url()), {
28
- method: "POST",
29
- headers: { "Content-Type": "application/json" },
30
- body: JSON.stringify({
31
- name,
32
- template,
33
- stage: "seed",
34
- description: flags.description,
35
- model: flags.model,
36
- skills
37
- })
38
- });
39
- const createData = await createRes.json();
40
- if (!createRes.ok) {
41
- console.error(createData.error ?? "Failed to create mind");
42
- process.exit(1);
43
- }
44
- const startRes = await daemonFetch(
45
- urlOf(client.api.minds[":name"].start.$url({ param: { name } })),
46
- { method: "POST" }
47
- );
48
- if (!startRes.ok) {
49
- const startData = await startRes.json();
50
- console.error(startData.error ?? "Failed to start mind");
51
- process.exit(1);
52
- }
53
- const initialMessage = "You've just been created. A human planted you as a seed. Start a conversation with them \u2014 introduce yourself, ask questions, and begin exploring who you want to be.";
54
- await daemonFetch(urlOf(client.api.minds[":name"].message.$url({ param: { name } })), {
55
- method: "POST",
56
- headers: { "Content-Type": "application/json" },
57
- body: JSON.stringify({
58
- content: [{ type: "text", text: initialMessage }],
59
- channel: "system",
60
- sender: "system"
61
- })
62
- });
63
- console.log(`
64
- Seeded mind: ${name} (port ${createData.port})`);
65
- console.log(`
66
- Talk to your new mind:`);
67
- console.log(` volute chat send @${name} "hello"`);
68
- }
69
- export {
70
- run
71
- };
@@ -1,49 +0,0 @@
1
- ---
2
- name: Sessions
3
- description: This skill should be used when checking activity in other sessions, reading session logs, understanding cross-session context, or investigating what happened in another session. Covers "session activity", "other sessions", "session reader", "session log", "cross-session", "what happened in discord", "check session".
4
- ---
5
-
6
- # Cross-Session Awareness
7
-
8
- You can have multiple concurrent sessions (main, discord, email, etc.), each with its own conversation history stored as a JSONL file.
9
-
10
- ## Automatic Updates
11
-
12
- When a message arrives, you automatically receive a brief summary of new activity in other sessions (if any). This appears as a `[Session Activity]` block showing what happened since your last check.
13
-
14
- ## Listing Sessions
15
-
16
- To see which sessions are active:
17
-
18
- ```sh
19
- ls ../.mind/sessions/ # claude template
20
- ls ../.mind/pi-sessions/ # pi template
21
- ```
22
-
23
- ## Reading a Session Log
24
-
25
- For a detailed view of what happened in another session, run the session reader script:
26
-
27
- ```sh
28
- npx tsx .config/scripts/session-reader.ts <session-name> [--lines N]
29
- ```
30
-
31
- - `session-name`: The session to inspect (e.g., `discord`, `main`, `email`)
32
- - `--lines N`: Number of recent entries to show (default: 50)
33
-
34
- ### Output Format
35
-
36
- The reader shows a chronological log with:
37
- - **User messages**: Full text of what was sent
38
- - **Assistant text**: Full text of your responses
39
- - **Tool uses**: `[ToolName primary-arg]` format (e.g., `[Edit home/MEMORY.md]`, `[Bash npm test]`)
40
- - **Timestamps** on each entry
41
-
42
- Thinking blocks, tool result content, and metadata entries are omitted for readability.
43
-
44
- ## When to Use This
45
-
46
- - When you receive a `[Session Activity]` summary and want more detail
47
- - When you want to understand what happened in another session before responding
48
- - When coordinating work across multiple sessions
49
- - When a user references something from a different channel
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- SleepManager,
4
- getSleepManager,
5
- getSleepManagerIfReady,
6
- initSleepManager,
7
- matchesGlob
8
- } from "./chunk-QVAQ5454.js";
9
- import "./chunk-FSM45XD5.js";
10
- import "./chunk-LIRWLNAK.js";
11
- import "./chunk-IKHDUZRH.js";
12
- import "./chunk-2C2VXEBB.js";
13
- import "./chunk-2NDZC3S7.js";
14
- import "./chunk-P27RV5WM.js";
15
- import "./chunk-MDPCSXZ4.js";
16
- import "./chunk-ZWKTUQEL.js";
17
- import "./chunk-YUIHSKR6.js";
18
- import "./chunk-CVH6Y2YG.js";
19
- import "./chunk-G3GBKZGG.js";
20
- import "./chunk-7D47T4RB.js";
21
- import "./chunk-A6TUJJ3L.js";
22
- import "./chunk-HHTXM4JT.js";
23
- import "./chunk-K3NQKI34.js";
24
- export {
25
- SleepManager,
26
- getSleepManager,
27
- getSleepManagerIfReady,
28
- initSleepManager,
29
- matchesGlob
30
- };
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- run
4
- } from "./chunk-W5OOPLNP.js";
5
- import "./chunk-FXHXHI2A.js";
6
- import "./chunk-CVH6Y2YG.js";
7
- import "./chunk-G3GBKZGG.js";
8
- import {
9
- readGlobalConfig
10
- } from "./chunk-7D47T4RB.js";
11
- import "./chunk-D424ZQGI.js";
12
- import "./chunk-HHTXM4JT.js";
13
- import "./chunk-K3NQKI34.js";
14
- export {
15
- readGlobalConfig,
16
- run
17
- };