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.
- package/README.md +15 -22
- package/dist/{accept-E3PAH3QJ.js → accept-74M7I4RZ.js} +5 -4
- package/dist/{activity-events-BKBPPUBP.js → activity-events-HETAODOK.js} +3 -2
- package/dist/{ai-service-VAJT5UBS.js → ai-service-ZIPCV3MX.js} +20 -5
- package/dist/api.d.ts +341 -397
- package/dist/{archive-WWDBWYN2.js → archive-INXYFVCW.js} +3 -2
- package/dist/auth-6DMGES3I.js +44 -0
- package/dist/{bridge-RO37CUFM.js → bridge-BVCBTGPF.js} +5 -4
- package/dist/{chat-TCUNPFGO.js → chat-XT4OBJBU.js} +8 -8
- package/dist/{chunk-P7VFDSSG.js → chunk-2FLJ63GU.js} +2 -2
- package/dist/{chunk-ZWKTUQEL.js → chunk-2NGTS5UU.js} +1 -1
- package/dist/{chunk-JGFRDMR6.js → chunk-ALEF47VT.js} +1 -1
- package/dist/{chunk-MDPCSXZ4.js → chunk-D5G5YOPL.js} +163 -15
- package/dist/{chunk-VGWJSNHS.js → chunk-G53F3JA4.js} +1 -35
- package/dist/{chunk-A6TUJJ3L.js → chunk-G6BSYHPK.js} +2 -2
- package/dist/{chunk-DTC6EH5I.js → chunk-I5KY25PQ.js} +1 -9
- package/dist/{chunk-NSBFETWP.js → chunk-IYDIE3HG.js} +64 -26
- package/dist/{chunk-W5OOPLNP.js → chunk-JJ7W6WSB.js} +3 -3
- package/dist/{chunk-G3GBKZGG.js → chunk-LGB6JBHI.js} +54 -2
- package/dist/chunk-LRCG2JLP.js +251 -0
- package/dist/{chunk-FXHXHI2A.js → chunk-LSGWR54X.js} +3 -6
- package/dist/{chunk-S5LR3XYJ.js → chunk-M7UL5S3Q.js} +1 -1
- package/dist/chunk-PB65JZK2.js +85 -0
- package/dist/chunk-PVY5W6QN.js +41 -0
- package/dist/{chunk-QVAQ5454.js → chunk-QBQ424EM.js} +3007 -2126
- package/dist/{chunk-P27RV5WM.js → chunk-QZANELPX.js} +6 -2
- package/dist/{chunk-FSM45XD5.js → chunk-R7E6CRVQ.js} +1 -1
- package/dist/{chunk-HHTXM4JT.js → chunk-RPZZSXV3.js} +39 -195
- package/dist/{chunk-UPA6COHU.js → chunk-RSX4OPZY.js} +5 -5
- package/dist/{chunk-2C2VXEBB.js → chunk-S6NFERDC.js} +21 -57
- package/dist/chunk-SKLSMHXO.js +208 -0
- package/dist/{chunk-IKHDUZRH.js → chunk-SX5TKJBZ.js} +2 -2
- package/dist/chunk-TDRYEPH4.js +185 -0
- package/dist/chunk-TSXLLQZW.js +46 -0
- package/dist/{chunk-EFVHR7KH.js → chunk-UKVWJRKN.js} +24 -5
- package/dist/{chunk-2NDZC3S7.js → chunk-WKF5FEFK.js} +688 -389
- package/dist/cli.js +93 -24
- package/dist/{clock-G3ALCMLJ.js → clock-2UOZ6JPU.js} +11 -8
- package/dist/{cloud-sync-JV4LJOK3.js → cloud-sync-JN3NWKEM.js} +16 -14
- package/dist/config-H2H4UIF7.js +72 -0
- package/dist/connectors/discord-bridge.js +1 -1
- package/dist/connectors/slack-bridge.js +1 -1
- package/dist/connectors/telegram-bridge.js +1 -1
- package/dist/{conversations-7KVQV7EZ.js → conversations-3O5O6AS3.js} +8 -7
- package/dist/{create-JTLS7GX3.js → create-RNLNCORE.js} +5 -4
- package/dist/{create-VQSQHJQW.js → create-WBBYI6V7.js} +6 -2
- package/dist/daemon-client-6QXHZ7US.js +12 -0
- package/dist/{daemon-restart-4JGBHEJ4.js → daemon-restart-NGFHFAUF.js} +7 -7
- package/dist/daemon.js +2446 -1999
- package/dist/{db-HMFPIRO2.js → db-F34YLV7D.js} +2 -1
- package/dist/db-RA45JBFG.js +16 -0
- package/dist/{delete-JESHKE7F.js → delete-QTGWEDBI.js} +1 -1
- package/dist/delivery-manager-SDVXFD4W.js +28 -0
- package/dist/delivery-router-FL45JL7N.js +21 -0
- package/dist/down-TB3ESMNP.js +14 -0
- package/dist/{env-CLXXT7M2.js → env-RLYQBOOP.js} +5 -4
- package/dist/{export-EGA5M5PB.js → export-SUYRLI5Q.js} +4 -3
- package/dist/{extension-WZ4SUPJB.js → extension-FQ5D3NCC.js} +6 -6
- package/dist/{extensions-ECO4RPFQ.js → extensions-GDYWQXC4.js} +9 -7
- package/dist/{files-4VEJDASH.js → files-EAMPO2SJ.js} +6 -5
- package/dist/{history-EJMMLXDO.js → history-FO5PHBQ5.js} +9 -4
- package/dist/{import-YCGPMBSI.js → import-DDUFE7AY.js} +4 -3
- package/dist/{join-2GBJKZEN.js → join-I5QEE3LG.js} +1 -1
- package/dist/{list-Q6O7FGAN.js → list-DW2VRTOZ.js} +5 -4
- package/dist/{login-RL6AU2SM.js → login-7CHPW2PN.js} +5 -4
- package/dist/{login-RET5WESK.js → login-RIJF2F4G.js} +3 -2
- package/dist/{logout-CGAGJN3L.js → logout-5MLHZALK.js} +3 -2
- package/dist/{logout-JRPBEMMR.js → logout-UZJRGY4Z.js} +3 -2
- package/dist/message-delivery-2FIM7QKO.js +32 -0
- package/dist/{mind-LUWRQUQ5.js → mind-2B6M7Y25.js} +18 -18
- package/dist/{mind-activity-tracker-VYN2ZZ2M.js → mind-activity-tracker-NZZT2NTT.js} +4 -3
- package/dist/{mind-list-V5WW5DUA.js → mind-list-WUPMQDYQ.js} +3 -2
- package/dist/mind-manager-BNCMGYXW.js +28 -0
- package/dist/mind-service-AV273WT4.js +34 -0
- package/dist/{mind-sleep-R6PTNNW4.js → mind-sleep-B7BHJLH7.js} +5 -4
- package/dist/{mind-status-I4ISFJ6I.js → mind-status-L3EFFRPR.js} +3 -2
- package/dist/{mind-wake-67ZQEWAV.js → mind-wake-GY3RFX7Y.js} +5 -4
- package/dist/{package-OYUD4ZJ4.js → package-PK6JUFL3.js} +3 -3
- package/dist/read-5AMJRO3D.js +75 -0
- package/dist/{register-NZDSTLP3.js → register-V2JZZKFK.js} +5 -4
- package/dist/{registry-ODSALQQL.js → registry-PJ4S5PHQ.js} +8 -1
- package/dist/{reject-2HZOJEIJ.js → reject-33HEZMZ4.js} +5 -4
- package/dist/{restart-QHS3NT64.js → restart-3UCMRUVC.js} +5 -4
- package/dist/{sandbox-O5FUSF43.js → sandbox-JANNTX6U.js} +4 -3
- package/dist/schema-PA3M5ZKH.js +32 -0
- package/dist/seed-ALUQ55FF.js +112 -0
- package/dist/{send-OAN3RYYY.js → send-3MI36LEF.js} +58 -69
- package/dist/{setup-QMDK5RZX.js → setup-SZIARWI6.js} +5 -4
- package/dist/{setup-XJH3E7YM.js → setup-WENLVPVP.js} +9 -9
- package/dist/{skill-FZIN4W4Q.js → skill-TUVOTW4Z.js} +5 -4
- package/dist/skills/dreaming/SKILL.md +6 -4
- package/dist/skills/dreaming/references/INSTALL.md +4 -5
- package/dist/skills/dreaming/scripts/dream.ts +5 -27
- package/dist/skills/dreaming/scripts/wake-context-dreams.sh +1 -1
- package/dist/skills/imagegen/SKILL.md +6 -5
- package/dist/skills/imagegen/references/INSTALL.md +1 -1
- package/dist/skills/resonance/SKILL.md +4 -1
- package/dist/skills/resonance/references/INSTALL.md +2 -2
- package/dist/skills/resonance/scripts/resonance-hook.sh +2 -0
- package/dist/skills/resonance/scripts/resonance.ts +35 -5
- package/dist/skills/volute-admin/SKILL.md +83 -0
- package/dist/skills/volute-mind/SKILL.md +12 -12
- package/dist/skills-XNZK6P4K.js +61 -0
- package/dist/sleep-manager-53DZOWW7.js +32 -0
- package/dist/spirit-N4W4UQRH.js +217 -0
- package/dist/{split-EXYGGGQN.js → split-STOROBYJ.js} +1 -1
- package/dist/{sprout-AXQ6H5DB.js → sprout-L2GFOVF7.js} +9 -8
- package/dist/{start-MTOVL6SY.js → start-K2NCUUCG.js} +5 -4
- package/dist/{status-ZRO37MWR.js → status-TCUMUO6M.js} +5 -5
- package/dist/{stop-OK5WEPVC.js → stop-H26JZDXF.js} +5 -4
- package/dist/system-chat-NPYFYZVI.js +32 -0
- package/dist/{systems-W3BBMSOZ.js → systems-DHBKVYEY.js} +6 -5
- package/dist/{tailscale-BM72RXCJ.js → tailscale-XHQBZROW.js} +2 -1
- package/dist/{template-hash-3HOR4UAJ.js → template-hash-A6VVKOXJ.js} +2 -1
- package/dist/up-6I6BHRTO.js +17 -0
- package/dist/{update-PLPHMMZ2.js → update-QVPRF6GR.js} +5 -5
- package/dist/{update-check-CVCN7MF6.js → update-check-ZD6OOIYQ.js} +3 -2
- package/dist/{upgrade-I6NPCYUU.js → upgrade-O4Q7WJM3.js} +12 -14
- package/dist/{version-notify-2NTWVEHL.js → version-notify-TCKWBZZG.js} +22 -23
- package/dist/web-assets/assets/index-Bui7U9Uu.css +1 -0
- package/dist/web-assets/assets/index-e36DIo1b.js +73 -0
- package/dist/web-assets/ext-theme.css +94 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0000_baseline.sql +152 -0
- package/drizzle/0001_add_conversation_private.sql +1 -0
- package/drizzle/0002_turns.sql +21 -0
- package/drizzle/0003_turn_feed_links.sql +11 -0
- package/drizzle/0004_spirits.sql +5 -0
- package/drizzle/meta/0000_snapshot.json +3 -223
- package/drizzle/meta/0001_snapshot.json +3 -294
- package/drizzle/meta/0002_snapshot.json +3 -335
- package/drizzle/meta/0003_snapshot.json +3 -413
- package/drizzle/meta/0004_snapshot.json +3 -406
- package/drizzle/meta/_journal.json +10 -101
- package/package.json +3 -3
- package/packages/extensions/notes/dist/ui/assets/index-8jWEv9SA.js +61 -0
- package/packages/extensions/notes/dist/ui/assets/index-DkaB7Ytd.css +1 -0
- package/packages/extensions/notes/dist/ui/index.html +2 -2
- package/packages/extensions/notes/skills/notes/SKILL.md +8 -8
- package/packages/extensions/pages/skills/pages/SKILL.md +17 -44
- package/templates/_base/.init/.config/hooks/pre-prompt/session-activity.ts +40 -0
- package/templates/_base/.init/.local/bin/volute +27 -0
- package/templates/_base/.init/.local/hooks/pre-prompt/session-activity.ts +40 -0
- package/templates/_base/.init/.local/hooks/startup-context.ts +58 -0
- package/templates/_base/home/.config/routes.json +1 -1
- package/templates/_base/src/lib/auto-commit.ts +82 -43
- package/templates/_base/src/lib/daemon-client.ts +40 -36
- package/templates/_base/src/lib/format-prefix.ts +1 -0
- package/templates/_base/src/lib/hook-loader.ts +155 -0
- package/templates/_base/src/lib/router.ts +17 -1
- package/templates/_base/src/lib/startup.ts +17 -12
- package/templates/_base/src/lib/transparency.ts +2 -2
- package/templates/_base/src/lib/volute-server.ts +2 -5
- package/templates/claude/.init/.claude/settings.json +1 -1
- package/templates/claude/.init/.config/routes.json +2 -2
- package/templates/claude/src/agent.ts +97 -14
- package/templates/claude/src/lib/hooks/auto-commit.ts +7 -3
- package/templates/claude/src/lib/message-channel.ts +7 -2
- package/templates/claude/src/server.ts +0 -9
- package/templates/codex/.init/.config/routes.json +11 -0
- package/templates/codex/.init/AGENTS.md +29 -0
- package/templates/codex/home/.config/config.json.tmpl +7 -0
- package/templates/codex/package.json.tmpl +20 -0
- package/templates/codex/src/agent.ts +553 -0
- package/templates/codex/src/lib/content.ts +16 -0
- package/templates/codex/src/lib/session-store.ts +56 -0
- package/templates/codex/src/server.ts +59 -0
- package/templates/codex/volute-template.json +8 -0
- package/templates/pi/.init/.config/routes.json +2 -2
- package/templates/pi/package.json.tmpl +1 -1
- package/templates/pi/src/agent.ts +63 -9
- package/templates/pi/src/lib/event-handler.ts +6 -4
- package/templates/pi/src/lib/reply-instructions-extension.ts +32 -11
- package/dist/chunk-7D47T4RB.js +0 -84
- package/dist/chunk-CVH6Y2YG.js +0 -59
- package/dist/chunk-EFP3PE6C.js +0 -232
- package/dist/chunk-LIRWLNAK.js +0 -729
- package/dist/daemon-client-BCTFGVCZ.js +0 -9
- package/dist/down-NGBMGORS.js +0 -14
- package/dist/message-delivery-6YMVNOEC.js +0 -28
- package/dist/migrate-registry-to-db-FK35IPEH.js +0 -110
- package/dist/mind-manager-YFCOIAAX.js +0 -18
- package/dist/pages-watcher-Z3PKNROC.js +0 -21
- package/dist/read-WQMPTSN2.js +0 -46
- package/dist/seed-WUQMPLDM.js +0 -71
- package/dist/skills/sessions/SKILL.md +0 -49
- package/dist/sleep-manager-O7YQFCV5.js +0 -30
- package/dist/up-BXUAIDXB.js +0 -17
- package/dist/web-assets/assets/index--kREqKl9.js +0 -72
- package/dist/web-assets/assets/index-BXYTG0nJ.css +0 -1
- package/drizzle/0000_flaky_mariko_yashida.sql +0 -34
- package/drizzle/0001_careless_warpath.sql +0 -12
- package/drizzle/0002_wealthy_the_call.sql +0 -6
- package/drizzle/0003_clean_ego.sql +0 -12
- package/drizzle/0004_magical_silverclaw.sql +0 -1
- package/drizzle/0005_rename_agents_to_minds.sql +0 -11
- package/drizzle/0006_mind_history.sql +0 -20
- package/drizzle/0007_system_prompts.sql +0 -5
- package/drizzle/0008_volute_channels.sql +0 -24
- package/drizzle/0009_shared_skills.sql +0 -9
- package/drizzle/0010_delivery_queue.sql +0 -12
- package/drizzle/0011_rename_human_to_brain.sql +0 -1
- package/drizzle/0012_activity.sql +0 -11
- package/drizzle/0013_user_profiles.sql +0 -3
- package/drizzle/0014_conversation_reads.sql +0 -7
- package/drizzle/0015_notes.sql +0 -23
- package/drizzle/0016_note_reactions_and_replies.sql +0 -15
- package/drizzle/0017_minds.sql +0 -16
- package/drizzle/meta/0005_snapshot.json +0 -410
- package/drizzle/meta/0006_snapshot.json +0 -7
- package/drizzle/meta/0007_snapshot.json +0 -7
- package/drizzle/meta/0008_snapshot.json +0 -7
- package/drizzle/meta/0009_snapshot.json +0 -7
- package/drizzle/meta/0010_snapshot.json +0 -7
- package/drizzle/meta/0011_snapshot.json +0 -7
- package/drizzle/meta/0012_snapshot.json +0 -7
- package/drizzle/meta/0013_snapshot.json +0 -7
- package/packages/extensions/notes/dist/ui/assets/index-DgawVO5g.css +0 -1
- package/packages/extensions/notes/dist/ui/assets/index-qUWoeC4c.js +0 -2
- package/packages/extensions/notes/skills/notes/scripts/notes.mjs +0 -185
- package/templates/_base/.init/.config/hooks/startup-context.sh +0 -46
- package/templates/_base/.init/.config/scripts/session-reader.ts +0 -59
- package/templates/_base/home/public/.gitkeep +0 -0
- package/templates/_base/src/lib/session-monitor.ts +0 -400
- package/templates/claude/src/lib/hooks/session-context.ts +0 -32
- package/templates/pi/src/lib/session-context-extension.ts +0 -35
- /package/templates/_base/.init/{.config → .local}/hooks/wake-context.sh +0 -0
package/dist/cli.js
CHANGED
|
@@ -10,14 +10,28 @@ if (!process.env.VOLUTE_HOME) {
|
|
|
10
10
|
var command = process.argv[2];
|
|
11
11
|
var args = process.argv.slice(3);
|
|
12
12
|
if (command === "--version" || command === "-v") {
|
|
13
|
-
const { default: pkg } = await import("./package-
|
|
13
|
+
const { default: pkg } = await import("./package-PK6JUFL3.js");
|
|
14
14
|
console.log(pkg.version);
|
|
15
15
|
process.exit(0);
|
|
16
16
|
}
|
|
17
|
-
var ungatedCommands = /* @__PURE__ */ new Set([
|
|
17
|
+
var ungatedCommands = /* @__PURE__ */ new Set([
|
|
18
|
+
"setup",
|
|
19
|
+
"--help",
|
|
20
|
+
"-h",
|
|
21
|
+
"--version",
|
|
22
|
+
"-v",
|
|
23
|
+
"update",
|
|
24
|
+
"up",
|
|
25
|
+
"down",
|
|
26
|
+
"restart",
|
|
27
|
+
"status",
|
|
28
|
+
"login",
|
|
29
|
+
"logout",
|
|
30
|
+
"service",
|
|
31
|
+
void 0
|
|
32
|
+
]);
|
|
18
33
|
if (!ungatedCommands.has(command)) {
|
|
19
|
-
const { isSetupComplete
|
|
20
|
-
migrateSetupConfig();
|
|
34
|
+
const { isSetupComplete } = await import("./setup-SZIARWI6.js");
|
|
21
35
|
if (!isSetupComplete()) {
|
|
22
36
|
console.error("Volute is not set up. Run `volute setup` first.");
|
|
23
37
|
process.exit(1);
|
|
@@ -25,55 +39,55 @@ if (!ungatedCommands.has(command)) {
|
|
|
25
39
|
}
|
|
26
40
|
switch (command) {
|
|
27
41
|
case "setup":
|
|
28
|
-
await import("./setup-
|
|
42
|
+
await import("./setup-WENLVPVP.js").then((m) => m.run(args));
|
|
29
43
|
break;
|
|
30
44
|
case "mind":
|
|
31
|
-
await import("./mind-
|
|
45
|
+
await import("./mind-2B6M7Y25.js").then((m) => m.run(args));
|
|
32
46
|
break;
|
|
33
47
|
case "chat":
|
|
34
|
-
await import("./chat-
|
|
48
|
+
await import("./chat-XT4OBJBU.js").then((m) => m.run(args));
|
|
35
49
|
break;
|
|
36
50
|
case "variant":
|
|
37
51
|
await import("./variant-7TGZHOU3.js").then((m) => m.run(args));
|
|
38
52
|
break;
|
|
39
53
|
case "clock":
|
|
40
|
-
await import("./clock-
|
|
41
|
-
break;
|
|
42
|
-
case "schedule":
|
|
43
|
-
await import("./clock-G3ALCMLJ.js").then((m) => m.run(args));
|
|
54
|
+
await import("./clock-2UOZ6JPU.js").then((m) => m.run(args));
|
|
44
55
|
break;
|
|
45
56
|
case "skill":
|
|
46
|
-
await import("./skill-
|
|
57
|
+
await import("./skill-TUVOTW4Z.js").then((m) => m.run(args));
|
|
47
58
|
break;
|
|
48
59
|
case "env":
|
|
49
|
-
await import("./env-
|
|
60
|
+
await import("./env-RLYQBOOP.js").then((m) => m.run(args));
|
|
61
|
+
break;
|
|
62
|
+
case "config":
|
|
63
|
+
await import("./config-H2H4UIF7.js").then((m) => m.run(args));
|
|
50
64
|
break;
|
|
51
65
|
case "up":
|
|
52
|
-
await import("./up-
|
|
66
|
+
await import("./up-6I6BHRTO.js").then((m) => m.run(args));
|
|
53
67
|
break;
|
|
54
68
|
case "down":
|
|
55
|
-
await import("./down-
|
|
69
|
+
await import("./down-TB3ESMNP.js").then((m) => m.run(args));
|
|
56
70
|
break;
|
|
57
71
|
case "restart":
|
|
58
|
-
await import("./daemon-restart-
|
|
72
|
+
await import("./daemon-restart-NGFHFAUF.js").then((m) => m.run(args));
|
|
59
73
|
break;
|
|
60
74
|
case "update":
|
|
61
|
-
await import("./update-
|
|
75
|
+
await import("./update-QVPRF6GR.js").then((m) => m.run(args));
|
|
62
76
|
break;
|
|
63
77
|
case "status":
|
|
64
|
-
await import("./status-
|
|
78
|
+
await import("./status-TCUMUO6M.js").then((m) => m.run(args));
|
|
65
79
|
break;
|
|
66
80
|
case "extension":
|
|
67
|
-
await import("./extension-
|
|
81
|
+
await import("./extension-FQ5D3NCC.js").then((m) => m.run(args));
|
|
68
82
|
break;
|
|
69
83
|
case "systems":
|
|
70
|
-
await import("./systems-
|
|
84
|
+
await import("./systems-DHBKVYEY.js").then((m) => m.run(args));
|
|
71
85
|
break;
|
|
72
86
|
case "login":
|
|
73
|
-
await import("./login-
|
|
87
|
+
await import("./login-RIJF2F4G.js").then((m) => m.run(args));
|
|
74
88
|
break;
|
|
75
89
|
case "logout":
|
|
76
|
-
await import("./logout-
|
|
90
|
+
await import("./logout-5MLHZALK.js").then((m) => m.run(args));
|
|
77
91
|
break;
|
|
78
92
|
case "--help":
|
|
79
93
|
case "-h":
|
|
@@ -111,6 +125,10 @@ System:
|
|
|
111
125
|
update Update volute
|
|
112
126
|
systems register/login/logout volute.systems account
|
|
113
127
|
|
|
128
|
+
Extensions:
|
|
129
|
+
notes write/list/read/... Manage notes
|
|
130
|
+
pages notify Notify page updates
|
|
131
|
+
|
|
114
132
|
Options:
|
|
115
133
|
--version, -v Show version number
|
|
116
134
|
--help, -h Show this help message
|
|
@@ -120,13 +138,64 @@ Run 'volute <command> --help' for details.
|
|
|
120
138
|
Mind-scoped commands (chat, clock, skill)
|
|
121
139
|
use --mind <name> or VOLUTE_MIND env var to identify the mind.`);
|
|
122
140
|
break;
|
|
123
|
-
default:
|
|
141
|
+
default: {
|
|
142
|
+
let isExtensionCommand = false;
|
|
143
|
+
try {
|
|
144
|
+
const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
|
|
145
|
+
const res = await daemonFetch("/api/extensions/commands");
|
|
146
|
+
if (res.ok) {
|
|
147
|
+
const extCommands = await res.json();
|
|
148
|
+
if (command && command in extCommands) {
|
|
149
|
+
isExtensionCommand = true;
|
|
150
|
+
const subcommand = args[0];
|
|
151
|
+
const ext = extCommands[command];
|
|
152
|
+
if (!subcommand || !(subcommand in ext.commands)) {
|
|
153
|
+
console.log(`volute ${command} \u2014 ${Object.keys(ext.commands).join(", ")}
|
|
154
|
+
`);
|
|
155
|
+
for (const [name, meta] of Object.entries(ext.commands)) {
|
|
156
|
+
console.log(` ${name.padEnd(12)} ${meta.description}`);
|
|
157
|
+
}
|
|
158
|
+
process.exit(0);
|
|
159
|
+
}
|
|
160
|
+
const cmdArgs = args.slice(1);
|
|
161
|
+
let mind = process.env.VOLUTE_MIND;
|
|
162
|
+
const mindIdx = cmdArgs.indexOf("--mind");
|
|
163
|
+
if (mindIdx !== -1 && cmdArgs[mindIdx + 1]) {
|
|
164
|
+
mind = cmdArgs[mindIdx + 1];
|
|
165
|
+
cmdArgs.splice(mindIdx, 2);
|
|
166
|
+
}
|
|
167
|
+
const cmdRes = await daemonFetch(`/api/ext/${command}/commands/${subcommand}`, {
|
|
168
|
+
method: "POST",
|
|
169
|
+
headers: { "Content-Type": "application/json" },
|
|
170
|
+
body: JSON.stringify({ args: cmdArgs, mind })
|
|
171
|
+
});
|
|
172
|
+
if (!cmdRes.ok) {
|
|
173
|
+
const text = await cmdRes.text().catch(() => "");
|
|
174
|
+
console.error(`Extension command failed (HTTP ${cmdRes.status}): ${text}`);
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
const result = await cmdRes.json();
|
|
178
|
+
if (result.error) {
|
|
179
|
+
console.error(result.error);
|
|
180
|
+
process.exit(1);
|
|
181
|
+
}
|
|
182
|
+
if (result.output) console.log(result.output);
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
} catch (err) {
|
|
187
|
+
if (isExtensionCommand) {
|
|
188
|
+
console.error(`Extension command failed: ${err instanceof Error ? err.message : err}`);
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
124
192
|
console.error(`Unknown command: ${command}
|
|
125
193
|
Run 'volute --help' for usage.`);
|
|
126
194
|
process.exit(1);
|
|
195
|
+
}
|
|
127
196
|
}
|
|
128
197
|
if (command !== "update") {
|
|
129
|
-
import("./update-check-
|
|
198
|
+
import("./update-check-ZD6OOIYQ.js").then((m) => m.checkForUpdate()).then((result) => {
|
|
130
199
|
if (result.updateAvailable) {
|
|
131
200
|
console.error(`
|
|
132
201
|
Update available: ${result.current} \u2192 ${result.latest}`);
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-NAOW2CLO.js";
|
|
5
|
-
import {
|
|
6
|
-
daemonFetch
|
|
7
|
-
} from "./chunk-EFVHR7KH.js";
|
|
8
5
|
import {
|
|
9
6
|
getClient,
|
|
10
7
|
urlOf
|
|
@@ -12,7 +9,11 @@ import {
|
|
|
12
9
|
import {
|
|
13
10
|
parseArgs
|
|
14
11
|
} from "./chunk-D424ZQGI.js";
|
|
15
|
-
import
|
|
12
|
+
import {
|
|
13
|
+
daemonFetch
|
|
14
|
+
} from "./chunk-UKVWJRKN.js";
|
|
15
|
+
import "./chunk-LRCG2JLP.js";
|
|
16
|
+
import "./chunk-RPZZSXV3.js";
|
|
16
17
|
import "./chunk-K3NQKI34.js";
|
|
17
18
|
|
|
18
19
|
// src/commands/clock.ts
|
|
@@ -33,10 +34,10 @@ async function run(args) {
|
|
|
33
34
|
await removeSchedule(args.slice(1));
|
|
34
35
|
break;
|
|
35
36
|
case "sleep":
|
|
36
|
-
await import("./mind-sleep-
|
|
37
|
+
await import("./mind-sleep-B7BHJLH7.js").then((m) => m.run(args.slice(1)));
|
|
37
38
|
break;
|
|
38
39
|
case "wake":
|
|
39
|
-
await import("./mind-wake-
|
|
40
|
+
await import("./mind-wake-GY3RFX7Y.js").then((m) => m.run(args.slice(1)));
|
|
40
41
|
break;
|
|
41
42
|
case "--help":
|
|
42
43
|
case "-h":
|
|
@@ -52,8 +53,8 @@ function printUsage() {
|
|
|
52
53
|
console.log(`Usage:
|
|
53
54
|
volute clock status [--mind <name>]
|
|
54
55
|
volute clock list [--mind <name>]
|
|
55
|
-
volute clock add [--mind <name>] --id <name> --cron "..." --message/--script "..." [--
|
|
56
|
-
volute clock add [--mind <name>] --id <name> --in <duration> --message/--script "..." [--
|
|
56
|
+
volute clock add [--mind <name>] --id <name> --cron "..." --message/--script "..." [--session name] [--while-sleeping skip|queue|trigger-wake]
|
|
57
|
+
volute clock add [--mind <name>] --id <name> --in <duration> --message/--script "..." [--session name] [--while-sleeping skip|queue|trigger-wake]
|
|
57
58
|
volute clock remove [--mind <name>] --id <id>
|
|
58
59
|
volute clock sleep [name] [--wake-at <time>]
|
|
59
60
|
volute clock wake [name]
|
|
@@ -158,6 +159,7 @@ async function addSchedule(args) {
|
|
|
158
159
|
script: { type: "string" },
|
|
159
160
|
id: { type: "string" },
|
|
160
161
|
channel: { type: "string" },
|
|
162
|
+
session: { type: "string" },
|
|
161
163
|
"while-sleeping": { type: "string" }
|
|
162
164
|
});
|
|
163
165
|
const mind = resolveMindName(flags);
|
|
@@ -203,6 +205,7 @@ async function addSchedule(args) {
|
|
|
203
205
|
if (flags.script) body.script = flags.script;
|
|
204
206
|
if (flags.id) body.id = flags.id;
|
|
205
207
|
if (flags.channel) body.channel = flags.channel;
|
|
208
|
+
if (flags.session) body.session = flags.session;
|
|
206
209
|
if (flags["while-sleeping"]) {
|
|
207
210
|
const ws = flags["while-sleeping"];
|
|
208
211
|
if (!["skip", "queue", "trigger-wake"].includes(ws)) {
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
deliverMessage
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-IKHDUZRH.js";
|
|
4
|
+
} from "./chunk-QBQ424EM.js";
|
|
5
|
+
import "./chunk-SKLSMHXO.js";
|
|
6
|
+
import "./chunk-R7E6CRVQ.js";
|
|
8
7
|
import {
|
|
9
8
|
getAuthHeaders,
|
|
10
9
|
getWebhookUrl
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-S6NFERDC.js";
|
|
11
|
+
import "./chunk-SX5TKJBZ.js";
|
|
12
|
+
import "./chunk-2NGTS5UU.js";
|
|
13
|
+
import "./chunk-WKF5FEFK.js";
|
|
14
|
+
import "./chunk-PB65JZK2.js";
|
|
15
|
+
import "./chunk-TDRYEPH4.js";
|
|
16
|
+
import "./chunk-QZANELPX.js";
|
|
17
|
+
import "./chunk-D5G5YOPL.js";
|
|
18
|
+
import "./chunk-IYDIE3HG.js";
|
|
16
19
|
import {
|
|
17
20
|
logger_default
|
|
18
21
|
} from "./chunk-YUIHSKR6.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-HHTXM4JT.js";
|
|
22
|
+
import "./chunk-LGB6JBHI.js";
|
|
23
|
+
import "./chunk-TSXLLQZW.js";
|
|
24
|
+
import "./chunk-LRCG2JLP.js";
|
|
25
|
+
import "./chunk-RPZZSXV3.js";
|
|
24
26
|
import "./chunk-K3NQKI34.js";
|
|
25
27
|
|
|
26
28
|
// src/lib/cloud-sync.ts
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
parseArgs
|
|
4
|
+
} from "./chunk-D424ZQGI.js";
|
|
5
|
+
import "./chunk-K3NQKI34.js";
|
|
6
|
+
|
|
7
|
+
// src/commands/config.ts
|
|
8
|
+
async function run(args) {
|
|
9
|
+
const { positional } = parseArgs(args, {});
|
|
10
|
+
const subcommand = positional[0];
|
|
11
|
+
switch (subcommand) {
|
|
12
|
+
case "models": {
|
|
13
|
+
const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
|
|
14
|
+
const res = await daemonFetch("/api/config/models");
|
|
15
|
+
if (!res.ok) {
|
|
16
|
+
console.error(`Failed to fetch models (HTTP ${res.status})`);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
const models = await res.json();
|
|
20
|
+
const enabled = models.filter((m) => m.enabled);
|
|
21
|
+
if (enabled.length === 0) {
|
|
22
|
+
console.log("No models enabled.");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
for (const m of enabled) {
|
|
26
|
+
console.log(`${m.provider}:${m.id} ${m.name}`);
|
|
27
|
+
}
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
case "providers": {
|
|
31
|
+
const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
|
|
32
|
+
const res = await daemonFetch("/api/config/providers");
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
console.error(`Failed to fetch providers (HTTP ${res.status})`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const providers = await res.json();
|
|
38
|
+
const configured = providers.filter((p) => p.configured);
|
|
39
|
+
if (configured.length === 0) {
|
|
40
|
+
console.log("No providers configured.");
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
for (const p of configured) {
|
|
44
|
+
console.log(p.id);
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case "status": {
|
|
49
|
+
const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
|
|
50
|
+
const res = await daemonFetch("/api/config/status");
|
|
51
|
+
if (!res.ok) {
|
|
52
|
+
console.error(`Failed to fetch config (HTTP ${res.status})`);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const data = await res.json();
|
|
56
|
+
for (const [key, value] of Object.entries(data)) {
|
|
57
|
+
console.log(`${key}: ${value}`);
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
default:
|
|
62
|
+
console.error("Usage: volute config <models|providers|status>");
|
|
63
|
+
console.error("");
|
|
64
|
+
console.error(" models List enabled AI models (provider:id format)");
|
|
65
|
+
console.error(" providers List configured AI providers");
|
|
66
|
+
console.error(" status Show system configuration");
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
run
|
|
72
|
+
};
|
|
@@ -24,12 +24,13 @@ import {
|
|
|
24
24
|
listConversationsForUser,
|
|
25
25
|
listConversationsWithParticipants,
|
|
26
26
|
markConversationRead,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
27
|
+
removeParticipant,
|
|
28
|
+
setConversationPrivate
|
|
29
|
+
} from "./chunk-S6NFERDC.js";
|
|
30
|
+
import "./chunk-QZANELPX.js";
|
|
31
31
|
import "./chunk-YUIHSKR6.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-LRCG2JLP.js";
|
|
33
|
+
import "./chunk-RPZZSXV3.js";
|
|
33
34
|
import "./chunk-K3NQKI34.js";
|
|
34
35
|
export {
|
|
35
36
|
addMessage,
|
|
@@ -56,6 +57,6 @@ export {
|
|
|
56
57
|
listConversationsForUser,
|
|
57
58
|
listConversationsWithParticipants,
|
|
58
59
|
markConversationRead,
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
removeParticipant,
|
|
61
|
+
setConversationPrivate
|
|
61
62
|
};
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-NAOW2CLO.js";
|
|
5
|
-
import {
|
|
6
|
-
daemonFetch
|
|
7
|
-
} from "./chunk-EFVHR7KH.js";
|
|
8
5
|
import {
|
|
9
6
|
parseArgs
|
|
10
7
|
} from "./chunk-D424ZQGI.js";
|
|
11
|
-
import
|
|
8
|
+
import {
|
|
9
|
+
daemonFetch
|
|
10
|
+
} from "./chunk-UKVWJRKN.js";
|
|
11
|
+
import "./chunk-LRCG2JLP.js";
|
|
12
|
+
import "./chunk-RPZZSXV3.js";
|
|
12
13
|
import "./chunk-K3NQKI34.js";
|
|
13
14
|
|
|
14
15
|
// src/commands/chat/create.ts
|
|
@@ -11,13 +11,17 @@ async function run(args) {
|
|
|
11
11
|
skills: { type: "string" }
|
|
12
12
|
});
|
|
13
13
|
const name = positional[0];
|
|
14
|
-
|
|
14
|
+
let template = flags.template;
|
|
15
|
+
if (!template) {
|
|
16
|
+
const { resolveTemplate } = await import("./ai-service-ZIPCV3MX.js");
|
|
17
|
+
template = resolveTemplate();
|
|
18
|
+
}
|
|
15
19
|
if (!name) {
|
|
16
20
|
console.error("Usage: volute mind create <name> [--template <name>] [--skills <list|none>]");
|
|
17
21
|
process.exit(1);
|
|
18
22
|
}
|
|
19
23
|
const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
|
|
20
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
24
|
+
const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
|
|
21
25
|
const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
|
|
22
26
|
const client = getClient();
|
|
23
27
|
const res = await daemonFetch(urlOf(client.api.minds.$url()), {
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
run
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JJ7W6WSB.js";
|
|
5
5
|
import {
|
|
6
6
|
stopDaemon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2FLJ63GU.js";
|
|
8
8
|
import {
|
|
9
9
|
getServiceMode,
|
|
10
10
|
modeLabel,
|
|
11
11
|
pollHealth,
|
|
12
12
|
readDaemonConfig,
|
|
13
13
|
restartService
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-7D47T4RB.js";
|
|
14
|
+
} from "./chunk-LSGWR54X.js";
|
|
15
|
+
import "./chunk-LGB6JBHI.js";
|
|
16
|
+
import "./chunk-TSXLLQZW.js";
|
|
18
17
|
import "./chunk-D424ZQGI.js";
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-LRCG2JLP.js";
|
|
19
|
+
import "./chunk-RPZZSXV3.js";
|
|
20
20
|
import "./chunk-K3NQKI34.js";
|
|
21
21
|
|
|
22
22
|
// src/commands/daemon-restart.ts
|