volute 0.25.0 → 0.27.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.
- package/README.md +28 -33
- package/dist/{activity-events-4O37J7PD.js → activity-events-BBIEA2F4.js} +2 -3
- package/dist/api.d.ts +886 -220
- package/dist/{archive-4ZQYK5MN.js → archive-UA4BDFXQ.js} +2 -2
- package/dist/{auth-HM2RSPY7.js → auth-D3OT2ARB.js} +3 -3
- package/dist/bridge-FQHZL3MC.js +206 -0
- package/dist/chat-MHJ3L6JQ.js +58 -0
- package/dist/{chunk-PHU4DEAJ.js → chunk-2WPW7OT6.js} +3 -3
- package/dist/{chunk-BOTQ25QT.js → chunk-2YP2TVDT.js} +138 -56
- package/dist/{chunk-DG7TO7EE.js → chunk-4WXYUOAK.js} +5 -7
- package/dist/{chunk-JTDFJWI2.js → chunk-AW7PFDVN.js} +5 -5
- package/dist/{chunk-2767L2RZ.js → chunk-EHYDTZTF.js} +6 -6
- package/dist/{chunk-ZSH4G2P5.js → chunk-GIE6CSN5.js} +17 -17
- package/dist/chunk-H7OZRFJB.js +432 -0
- package/dist/{chunk-ON3FF5JA.js → chunk-HDN7MNGD.js} +3 -3
- package/dist/chunk-IAYBDWVG.js +477 -0
- package/dist/chunk-IKRVFPWU.js +83 -0
- package/dist/{chunk-TRQEV3CD.js → chunk-JGFVMROS.js} +32 -6
- package/dist/{chunk-PHHKNGA3.js → chunk-JKOWNZ4P.js} +3 -3
- package/dist/{chunk-E7GOKNOT.js → chunk-K5NAC55T.js} +1 -1
- package/dist/{chunk-HFCBO2GL.js → chunk-KDGS53OS.js} +4 -4
- package/dist/chunk-KTLFDYPT.js +61 -0
- package/dist/{chunk-3AIBT4TW.js → chunk-LAC664WU.js} +30 -4
- package/dist/{chunk-PMX4EIJK.js → chunk-OQZH4PBB.js} +467 -1054
- package/dist/{chunk-SHSWYG2J.js → chunk-PHSAT7YL.js} +71 -58
- package/dist/chunk-RKQEHRBB.js +177 -0
- package/dist/{chunk-RVKR2R7F.js → chunk-SSI47XP2.js} +10 -2
- package/dist/chunk-T6HKBWXZ.js +23 -0
- package/dist/chunk-USUXRNVD.js +113 -0
- package/dist/{chunk-BFK6SOEJ.js → chunk-VIVMW2H2.js} +4 -4
- package/dist/{chunk-KTJGZ7M7.js → chunk-XBLSAVJF.js} +1 -1
- package/dist/chunk-ZYGKG6VC.js +22 -0
- package/dist/cli.js +51 -32
- package/dist/{cloud-sync-PPBBJDY6.js → cloud-sync-T7M3ESC3.js} +15 -12
- package/dist/connectors/discord-bridge.js +158 -0
- package/dist/connectors/slack-bridge.js +119 -0
- package/dist/connectors/telegram-bridge.js +133 -0
- package/dist/conversations-M2K4253F.js +55 -0
- package/dist/create-D7J73A6H.js +45 -0
- package/dist/{create-VDQJER52.js → create-QWV73WXD.js} +1 -1
- package/dist/{daemon-client-JOVQZ52X.js → daemon-client-I42FK2BF.js} +2 -2
- package/dist/{daemon-restart-FDNOZEAD.js → daemon-restart-M2QTYMEG.js} +7 -6
- package/dist/daemon.js +2247 -1085
- package/dist/db-IC4J52XQ.js +8 -0
- package/dist/{delete-2MRR4JX5.js → delete-4JYGD4VN.js} +1 -1
- package/dist/down-LVBXEULC.js +14 -0
- package/dist/{env-2FPOZK37.js → env-YJMUMFIY.js} +5 -5
- package/dist/{export-IKFAPRAO.js → export-BOJQWBMA.js} +4 -4
- package/dist/{file-KT3UIQM3.js → file-CR36YUPD.js} +4 -4
- package/dist/{history-46WZN5CN.js → history-XKRTAFS2.js} +7 -7
- package/dist/{import-TH26J76F.js → import-SRTQXBGH.js} +4 -4
- package/dist/join-J4QU42DL.js +66 -0
- package/dist/list-R73GENNL.js +40 -0
- package/dist/{log-6SGSSR3D.js → log-ABYNVYJ3.js} +4 -4
- package/dist/login-3QZNR2DF.js +46 -0
- package/dist/{login-UO6AOVEA.js → login-XX37I52P.js} +3 -3
- package/dist/logout-T53VKCPU.js +39 -0
- package/dist/{logout-UKD5LA37.js → logout-W4KOOBIT.js} +2 -2
- package/dist/{logs-HRBONI5I.js → logs-U35JR2KE.js} +7 -7
- package/dist/{merge-KSFJKX6T.js → merge-LNSMSAOF.js} +4 -4
- package/dist/message-delivery-LDXLGERA.js +25 -0
- package/dist/migrate-registry-to-db-XC7T5B7P.js +110 -0
- package/dist/{mind-YVWAHL2A.js → mind-DI33C74K.js} +25 -25
- package/dist/{mind-activity-tracker-NMDDEV3K.js → mind-activity-tracker-EN6XNXPF.js} +3 -4
- package/dist/{mind-manager-4NDNAYAB.js → mind-manager-M6EMUW5I.js} +6 -5
- package/dist/{mind-sleep-GHPTSAYN.js → mind-sleep-BTSWQNAC.js} +4 -4
- package/dist/{mind-wake-BJDJFMDF.js → mind-wake-SBAKIDVP.js} +4 -4
- package/dist/notes-XCER3I7M.js +220 -0
- package/dist/{package-3HF5MXU2.js → package-7WY6VKU3.js} +2 -1
- package/dist/{pages-Y6DRWUOJ.js → pages-6EBS6CBR.js} +2 -2
- package/dist/{publish-EEKTZBHW.js → publish-66UB2ZFY.js} +5 -5
- package/dist/{pull-D32SPFVU.js → pull-XCHJTM5M.js} +4 -4
- package/dist/read-36UFXN3G.js +46 -0
- package/dist/{register-U2UO6TC4.js → register-6B2CXTYM.js} +3 -3
- package/dist/{registry-D2BSQ2X5.js → registry-NDNOOYG4.js} +15 -9
- package/dist/{restart-5BMNV7KU.js → restart-6ESL3NBO.js} +6 -6
- package/dist/sandbox-TGBX22DS.js +19 -0
- package/dist/{schedule-YEFDLVMJ.js → schedule-QTJMFATP.js} +7 -7
- package/dist/{seed-6FEKB3YC.js → seed-SSUCYYDF.js} +2 -2
- package/dist/{send-IISDYFCL.js → send-ZNCJDSRP.js} +28 -36
- package/dist/service-6LIN3F3K.js +122 -0
- package/dist/setup-JG4QAEBV.js +371 -0
- package/dist/setup-JHL5ZEST.js +17 -0
- package/dist/{shared-LWMNTTZN.js → shared-ML5I4Q2A.js} +4 -4
- package/dist/{skill-T3EMR6IR.js → skill-AUAQTSP5.js} +7 -7
- package/dist/skills/dreaming/SKILL.md +68 -0
- package/dist/skills/dreaming/references/INSTALL.md +56 -0
- package/dist/skills/dreaming/scripts/dream.ts +289 -0
- package/dist/skills/dreaming/scripts/wake-context-dreams.sh +30 -0
- package/dist/skills/notes/SKILL.md +34 -0
- package/dist/skills/orientation/SKILL.md +3 -3
- package/dist/skills/volute-mind/SKILL.md +32 -30
- package/dist/sleep-manager-MWYHM5HV.js +29 -0
- package/dist/split-TKJ5OT3P.js +63 -0
- package/dist/{sprout-QJVGJDSH.js → sprout-IJVVKSJ2.js} +6 -7
- package/dist/{start-C7XITZ5O.js → start-EUJSS5R4.js} +4 -4
- package/dist/{status-SIRPLEZC.js → status-77YEPHMW.js} +5 -5
- package/dist/{status-LYS4NUOZ.js → status-7GA4SM4Y.js} +4 -4
- package/dist/{status-LV34BG6G.js → status-THLOBLWG.js} +2 -2
- package/dist/{stop-CVKBSLXY.js → stop-3XAITBBF.js} +6 -6
- package/dist/{tailscale-AJ4VL5XK.js → tailscale-NY5MUMY3.js} +1 -1
- package/dist/up-NKSMXBWR.js +17 -0
- package/dist/{update-7XCZMYBT.js → update-PTSH22AZ.js} +11 -11
- package/dist/{update-check-F5Z3ALXX.js → update-check-64FWC4Y2.js} +2 -2
- package/dist/{upgrade-7RUIXGOO.js → upgrade-HA47CS4C.js} +12 -5
- package/dist/variant-7TGZHOU3.js +41 -0
- package/dist/{version-notify-AZQMC32A.js → version-notify-5Z4MNR6M.js} +26 -28
- package/dist/web-assets/assets/index-CI5wgghI.css +1 -0
- package/dist/web-assets/assets/index-is5CvJWH.js +75 -0
- package/dist/web-assets/favicon.png +0 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0015_notes.sql +23 -0
- package/drizzle/0016_note_reactions_and_replies.sql +15 -0
- package/drizzle/0017_minds.sql +16 -0
- package/drizzle/meta/_journal.json +21 -0
- package/package.json +2 -1
- package/templates/_base/.init/.config/hooks/wake-context.sh +7 -0
- package/templates/_base/.init/.config/prompts.json +2 -2
- package/templates/_base/home/VOLUTE.md +5 -5
- package/templates/_base/src/lib/startup.ts +10 -2
- package/templates/claude/src/agent.ts +51 -1
- package/templates/claude/src/server.ts +1 -0
- package/templates/pi/package.json.tmpl +1 -0
- package/templates/pi/src/agent.ts +48 -1
- package/templates/pi/src/lib/subagents.ts +150 -0
- package/templates/pi/src/server.ts +1 -0
- package/dist/channel-HZOSHGNF.js +0 -260
- package/dist/chunk-33XAVCS4.js +0 -203
- package/dist/chunk-B2CPS4QU.js +0 -283
- package/dist/chunk-NWPT4ASZ.js +0 -89
- package/dist/chunk-SIAG3QMM.js +0 -42
- package/dist/chunk-WSLPZF72.js +0 -173
- package/dist/connector-M6XFI6GM.js +0 -147
- package/dist/connectors/discord.js +0 -177
- package/dist/connectors/slack.js +0 -181
- package/dist/connectors/telegram.js +0 -187
- package/dist/down-674SX2IZ.js +0 -14
- package/dist/message-delivery-XMGV3FUM.js +0 -23
- package/dist/service-FASYWLTC.js +0 -247
- package/dist/setup-BMLM2UTK.js +0 -230
- package/dist/sleep-manager-RKTFZPD3.js +0 -27
- package/dist/up-CJ26KQLN.js +0 -15
- package/dist/variant-UGREB4G5.js +0 -207
- package/dist/web-assets/assets/index-CGPSVu19.js +0 -69
- package/dist/web-assets/assets/index-V_rNDsM8.css +0 -1
package/README.md
CHANGED
|
@@ -13,6 +13,9 @@ Built on the [Anthropic Claude Agent SDK](https://github.com/anthropics/claude-a
|
|
|
13
13
|
```sh
|
|
14
14
|
npm install -g volute
|
|
15
15
|
|
|
16
|
+
# First-time setup (required)
|
|
17
|
+
volute setup --name my-system
|
|
18
|
+
|
|
16
19
|
# Start the daemon (manages all your minds)
|
|
17
20
|
volute up
|
|
18
21
|
|
|
@@ -33,10 +36,11 @@ You now have a running AI mind with persistent memory, auto-committing file chan
|
|
|
33
36
|
One background process runs everything. `volute up` starts it; `volute down` stops it.
|
|
34
37
|
|
|
35
38
|
```sh
|
|
36
|
-
volute up
|
|
37
|
-
volute up --port 8080
|
|
38
|
-
volute
|
|
39
|
-
volute
|
|
39
|
+
volute up # start (default port 1618)
|
|
40
|
+
volute up --port 8080 # custom port
|
|
41
|
+
volute up --no-sandbox # disable sandbox isolation
|
|
42
|
+
volute down # stop all minds and shut down
|
|
43
|
+
volute status # check daemon status, version, and minds
|
|
40
44
|
```
|
|
41
45
|
|
|
42
46
|
The daemon handles mind lifecycle, crash recovery (auto-restarts after 3 seconds), connector processes, scheduled messages, and the web dashboard.
|
|
@@ -93,32 +97,32 @@ This is the interesting part. Minds can fork themselves into isolated branches,
|
|
|
93
97
|
|
|
94
98
|
```sh
|
|
95
99
|
# Create a variant — gets its own git worktree and running server
|
|
96
|
-
volute
|
|
100
|
+
volute mind split experiment --mind atlas
|
|
97
101
|
|
|
98
|
-
# Talk to the variant directly
|
|
99
|
-
volute send @atlas
|
|
102
|
+
# Talk to the variant directly (variants have standalone names)
|
|
103
|
+
volute send @atlas-experiment "try a different approach"
|
|
100
104
|
|
|
101
105
|
# List all variants
|
|
102
|
-
volute
|
|
106
|
+
volute mind split --list --mind atlas
|
|
103
107
|
|
|
104
108
|
# Merge it back (verifies, merges, cleans up, restarts the main mind)
|
|
105
|
-
volute
|
|
109
|
+
volute mind join atlas-experiment --mind atlas --summary "improved response style"
|
|
106
110
|
```
|
|
107
111
|
|
|
108
112
|
What happens:
|
|
109
113
|
|
|
110
|
-
1. **
|
|
114
|
+
1. **Split** creates a git worktree, installs dependencies, and starts a separate server
|
|
111
115
|
2. The variant is a full independent copy — same code, same identity, its own state
|
|
112
|
-
3. **
|
|
116
|
+
3. **Join** verifies the variant server works, merges the branch, removes the worktree, and restarts the main mind
|
|
113
117
|
4. After restart, the mind receives orientation context about what changed
|
|
114
118
|
|
|
115
119
|
You can fork with a custom personality:
|
|
116
120
|
|
|
117
121
|
```sh
|
|
118
|
-
volute
|
|
122
|
+
volute mind split poet --mind atlas --soul "You are a poet who responds only in verse."
|
|
119
123
|
```
|
|
120
124
|
|
|
121
|
-
Minds have access to the `volute` CLI from their working directory, so they can
|
|
125
|
+
Minds have access to the `volute` CLI from their working directory, so they can split, test, and join their own variants autonomously.
|
|
122
126
|
|
|
123
127
|
## Connectors
|
|
124
128
|
|
|
@@ -210,7 +214,7 @@ The daemon serves a web UI at `http://localhost:1618` (or whatever port you chos
|
|
|
210
214
|
- File browser and editor
|
|
211
215
|
- Log streaming
|
|
212
216
|
- Connector and schedule management
|
|
213
|
-
- Variant status
|
|
217
|
+
- Variant listing and status
|
|
214
218
|
- First user to register becomes admin
|
|
215
219
|
|
|
216
220
|
## Upgrading minds
|
|
@@ -218,13 +222,13 @@ The daemon serves a web UI at `http://localhost:1618` (or whatever port you chos
|
|
|
218
222
|
When the Volute template updates, you can upgrade minds without touching their identity:
|
|
219
223
|
|
|
220
224
|
```sh
|
|
221
|
-
volute mind upgrade atlas # creates an "upgrade" variant
|
|
225
|
+
volute mind upgrade atlas # creates an "atlas-upgrade" variant
|
|
222
226
|
# resolve conflicts if needed, then:
|
|
223
227
|
volute mind upgrade atlas --continue
|
|
224
228
|
# test:
|
|
225
|
-
volute send @atlas
|
|
229
|
+
volute send @atlas-upgrade "are you working?"
|
|
226
230
|
# merge:
|
|
227
|
-
volute
|
|
231
|
+
volute mind join atlas-upgrade
|
|
228
232
|
```
|
|
229
233
|
|
|
230
234
|
Your mind's `SOUL.md` and `MEMORY.md` are never overwritten.
|
|
@@ -261,33 +265,24 @@ docker compose up -d
|
|
|
261
265
|
|
|
262
266
|
The container runs with per-mind user isolation enabled — each mind gets its own Linux user, so minds can't see each other's files. Open `http://localhost:1618` for the web dashboard.
|
|
263
267
|
|
|
264
|
-
### Bare metal (Linux /
|
|
265
|
-
|
|
266
|
-
One-liner install on a fresh Linux system (Debian/Ubuntu, RHEL/Fedora, Arch, Alpine, SUSE):
|
|
267
|
-
|
|
268
|
-
```sh
|
|
269
|
-
curl -fsSL <install-url> | sudo bash
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
Or manually:
|
|
268
|
+
### Bare metal (Linux / macOS)
|
|
273
269
|
|
|
274
270
|
```sh
|
|
275
271
|
npm install -g volute
|
|
276
|
-
sudo
|
|
272
|
+
sudo volute setup --name my-server --system --host 0.0.0.0
|
|
277
273
|
```
|
|
278
274
|
|
|
279
|
-
|
|
275
|
+
This creates a system-level service with data at `/var/lib/volute`, minds at `/minds`, and per-user isolation (each mind gets its own system user). On Linux, uses systemd; on macOS, uses a LaunchDaemon. Requires root.
|
|
280
276
|
|
|
281
|
-
|
|
277
|
+
> **Note:** After setup, a wrapper at `/usr/local/bin/volute` is created so `sudo volute` works without PATH issues.
|
|
282
278
|
|
|
283
279
|
### Auto-start (user-level)
|
|
284
280
|
|
|
285
|
-
On macOS or Linux (without root),
|
|
281
|
+
On macOS or Linux (without root), include `--service` during setup:
|
|
286
282
|
|
|
287
283
|
```sh
|
|
288
|
-
volute
|
|
289
|
-
volute service status
|
|
290
|
-
volute service uninstall # remove
|
|
284
|
+
volute setup --name my-system --service # local install + auto-start on login
|
|
285
|
+
volute service status # check status
|
|
291
286
|
```
|
|
292
287
|
|
|
293
288
|
## Development
|
|
@@ -3,10 +3,9 @@ import {
|
|
|
3
3
|
broadcast,
|
|
4
4
|
publish,
|
|
5
5
|
subscribe
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-33XAVCS4.js";
|
|
6
|
+
} from "./chunk-VIVMW2H2.js";
|
|
8
7
|
import "./chunk-YUIHSKR6.js";
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-H7OZRFJB.js";
|
|
10
9
|
import "./chunk-K3NQKI34.js";
|
|
11
10
|
export {
|
|
12
11
|
broadcast,
|