volute 0.47.0 → 0.49.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 +82 -331
- package/dist/{accept-YAFP5JFJ.js → accept-KYNC5X3U.js} +3 -3
- package/dist/{activity-events-MIOK3IOU.js → activity-events-GJJAI2WT.js} +4 -4
- package/dist/{ai-service-CVZEYKTK.js → ai-service-A7FS7EC3.js} +9 -5
- package/dist/{archive-6Z4GFQPH.js → archive-7E3YE6VF.js} +3 -3
- package/dist/{auth-A4VGHADI.js → auth-ABYLOEZ7.js} +5 -5
- package/dist/{avatar-image-7S3WA77A.js → avatar-image-6ATV2IOZ.js} +6 -5
- package/dist/{backup-IIAFOW2L.js → backup-XYAMT4CU.js} +15 -15
- package/dist/{bridge-TIZGSXOD.js → bridge-3FNSWLNQ.js} +3 -3
- package/dist/{channels-ITE4YC57.js → channels-SGQZHNQJ.js} +3 -3
- package/dist/{chat-AJLJCQ3M.js → chat-OGXAEXMV.js} +9 -9
- package/dist/{chunk-LTLFOSA4.js → chunk-3B427GUK.js} +3 -3
- package/dist/{chunk-RUFLGTOT.js → chunk-4B62E4CG.js} +2 -2
- package/dist/{chunk-ODDGGLM6.js → chunk-4DSGN4FL.js} +3 -3
- package/dist/{chunk-BGYHLR54.js → chunk-6HGEZJDH.js} +2 -2
- package/dist/{chunk-RBNMDAKB.js → chunk-BCG45AQB.js} +15 -1
- package/dist/{chunk-5IERLDUS.js → chunk-DAIIMBLB.js} +26 -6
- package/dist/{chunk-DGGZVZTM.js → chunk-DVN6DNMI.js} +1 -1
- package/dist/chunk-DW4TRDOZ.js +29 -0
- package/dist/chunk-EADX54RG.js +113 -0
- package/dist/{chunk-EIQDZC43.js → chunk-EFT2OALG.js} +6 -2
- package/dist/{chunk-XHN6XBWV.js → chunk-EG5LSKHU.js} +2 -2
- package/dist/{chunk-VMCZBXF2.js → chunk-FBBS4BVR.js} +10 -34
- package/dist/{chunk-IWJSNMSY.js → chunk-GWVFDUNB.js} +45 -14
- package/dist/{chunk-CBOIHNMR.js → chunk-HCYQRME2.js} +41 -5
- package/dist/{chunk-4I72V3E5.js → chunk-IH5TKXX6.js} +15 -15
- package/dist/{chunk-5NN2VHJV.js → chunk-JBIFXB6I.js} +4 -4
- package/dist/{chunk-JSVHH32K.js → chunk-JCBPU57A.js} +15 -13
- package/dist/{chunk-M3XDVS5Q.js → chunk-JCWB2ITW.js} +2 -2
- package/dist/{chunk-JCMGDCGX.js → chunk-JPGHSXSV.js} +20 -25
- package/dist/{chunk-K23P5Q5N.js → chunk-K3JOLGWF.js} +30 -8
- package/dist/{chunk-3YUBFTDN.js → chunk-KHCKZ36O.js} +1 -1
- package/dist/{chunk-7KRIHYLR.js → chunk-L27YYONJ.js} +2 -2
- package/dist/{chunk-SZJCJVXV.js → chunk-MG3Z34YE.js} +2 -2
- package/dist/{chunk-SKNXMUIU.js → chunk-NJHN6IRB.js} +26 -2
- package/dist/{chunk-2OIYNHWO.js → chunk-NOIAHMJB.js} +1 -1
- package/dist/{chunk-2MJ7EOMT.js → chunk-P4LHVRNE.js} +1 -0
- package/dist/{chunk-IYG4FBMP.js → chunk-PY24ZL62.js} +1 -1
- package/dist/{chunk-F55GRIEK.js → chunk-QQBOI3QA.js} +356 -296
- package/dist/{chunk-T2TP6ZC6.js → chunk-QUSMYGNQ.js} +6 -0
- package/dist/{chunk-KDLYIECM.js → chunk-R772ET2M.js} +18 -4
- package/dist/{chunk-WW6C3PLV.js → chunk-RSBL3FAD.js} +39 -6
- package/dist/{mind-list-KEGRGQEQ.js → chunk-SHKM5RGD.js} +19 -6
- package/dist/{chunk-YKA7DCVW.js → chunk-SX72DOO3.js} +1 -1
- package/dist/chunk-TXJL36ZQ.js +48 -0
- package/dist/{chunk-M6TTZRGH.js → chunk-VIUH5CHQ.js} +72 -24
- package/dist/{chunk-HPGN6XRT.js → chunk-VNRSXEBF.js} +4 -4
- package/dist/{chunk-PFZBNKUH.js → chunk-WCFSBH33.js} +0 -1
- package/dist/chunk-XTEKINWG.js +158 -0
- package/dist/{chunk-LWDTP6DH.js → chunk-YIJGKHIS.js} +32 -2
- package/dist/{chunk-MTRMQFCQ.js → chunk-ZX46PGCC.js} +2 -2
- package/dist/cli.js +34 -26
- package/dist/{clock-E6N5Y3YW.js → clock-6JZL2FS6.js} +3 -3
- package/dist/{cloud-sync-LQTVDTQ3.js → cloud-sync-VFDTNNCA.js} +22 -20
- package/dist/{config-TJLYUV3U.js → config-RPSLA2HX.js} +3 -3
- package/dist/{conversations-C7IKYSHD.js → conversations-TUM5PJJ4.js} +5 -5
- package/dist/{create-A7PDHIIL.js → create-VIQVP3QB.js} +3 -3
- package/dist/{create-PQQXKTJK.js → create-Z5FSDNVZ.js} +16 -5
- package/dist/{daemon-client-IYR4KCPU.js → daemon-client-ZFY5MOAL.js} +5 -3
- package/dist/{daemon-restart-5F3YTLZK.js → daemon-restart-54L4B6AQ.js} +7 -7
- package/dist/daemon.js +1105 -601
- package/dist/{db-FO6LXYCW.js → db-F6UMFRYD.js} +2 -2
- package/dist/{db-LZTLA7XC.js → db-IPXRJUI7.js} +1 -1
- package/dist/{delete-HPLC7ETU.js → delete-ESEP7NGQ.js} +1 -1
- package/dist/delivery-manager-RBXBPVWM.js +36 -0
- package/dist/{delivery-router-3QFG2ZEX.js → delivery-router-VUOL5YSA.js} +8 -6
- package/dist/{down-ZI4S6265.js → down-6X7KX7BZ.js} +5 -5
- package/dist/echo-text-B6NZ5FGE.js +36 -0
- package/dist/env-KUL4XKN2.js +18 -0
- package/dist/{env-HRL2PWAT.js → env-ZYMSCB7B.js} +6 -6
- package/dist/{exec-QIFYZG4C.js → exec-FBXA3CM4.js} +3 -3
- package/dist/{export-4GVGNW54.js → export-TNBPDH77.js} +4 -4
- package/dist/{extension-QBY4C44L.js → extension-J4ZQ2GHV.js} +3 -3
- package/dist/{extensions-PIMIQ7J3.js → extensions-AWNO3SZF.js} +22 -20
- package/dist/{files-FEFZKMNM.js → files-BVBRJJ2P.js} +6 -6
- package/dist/{import-7MO3YTRE.js → import-ZUNKMCKC.js} +9 -9
- package/dist/{isolation-MCT4ZYLT.js → isolation-OPCZQRTH.js} +3 -3
- package/dist/{join-ZJV7W6MO.js → join-34TR2GXQ.js} +1 -1
- package/dist/{list-LQO2DCIK.js → list-PMUXZNAM.js} +3 -3
- package/dist/{login-OF4WXDAN.js → login-KAKNFCW5.js} +14 -5
- package/dist/{login-6TLMI2TQ.js → login-LKNLCJPA.js} +3 -3
- package/dist/{logout-ERE2BGA3.js → logout-RLT62RQP.js} +5 -5
- package/dist/{logout-BK53HXNY.js → logout-YZRMZ3O2.js} +3 -3
- package/dist/message-delivery-ABPV76EA.js +42 -0
- package/dist/{mind-POOHFZHP.js → mind-IF6CGMFW.js} +23 -19
- package/dist/{mind-activity-tracker-YVZPC4A5.js → mind-activity-tracker-YMMERB6B.js} +5 -5
- package/dist/mind-contacts-BKUFPUCU.js +64 -0
- package/dist/{mind-history-47DN6ILW.js → mind-history-WI5OI3BW.js} +5 -5
- package/dist/mind-list-OTHV4ZO4.js +13 -0
- package/dist/{mind-profile-PEQYASQX.js → mind-profile-LUG353ZT.js} +1 -1
- package/dist/mind-service-42GDO4KH.js +44 -0
- package/dist/{mind-sleep-IN3WPA76.js → mind-sleep-VBV7YRSU.js} +5 -5
- package/dist/{mind-status-SMUWJKGV.js → mind-status-BJNPGXKC.js} +8 -3
- package/dist/{mind-wake-R54BPESY.js → mind-wake-LVTZ55EZ.js} +3 -3
- package/dist/notices-N6BCGHFV.js +25 -0
- package/dist/{package-WPEE2HVJ.js → package-PD67VPHB.js} +8 -5
- package/dist/prompts-MDHDLWEX.js +24 -0
- package/dist/{read-PWAJOQIQ.js → read-YSWUXYL7.js} +3 -3
- package/dist/{register-7SZJFHU6.js → register-TWQDKQRT.js} +3 -3
- package/dist/{registry-UMMDRPRM.js → registry-3ELJPUGJ.js} +6 -2
- package/dist/{reject-6VH7N2A4.js → reject-SXGCYN4A.js} +3 -3
- package/dist/{restart-H5WJDMA7.js → restart-5F5QDBOG.js} +5 -5
- package/dist/{sandbox-G4X4K3UN.js → sandbox-XPYA7UIF.js} +5 -5
- package/dist/scheduler-K7Y7Z7FQ.js +34 -0
- package/dist/{schema-VEVO7HG6.js → schema-6YONVTKZ.js} +1 -1
- package/dist/{seed-VANPU43L.js → seed-NQED7PSX.js} +1 -1
- package/dist/{seed-check-VLTVILOV.js → seed-check-TYD7RRZY.js} +1 -1
- package/dist/{seed-cmd-SYVDZKM4.js → seed-cmd-QF3F2G4S.js} +3 -3
- package/dist/{seed-create-3FGZPS6C.js → seed-create-XOO4N2OE.js} +6 -4
- package/dist/seed-readiness-3LRYASA4.js +18 -0
- package/dist/{seed-sprout-H7QLFPFM.js → seed-sprout-HSBBGSS2.js} +32 -33
- package/dist/{send-HYDFGC6G.js → send-IHRJYNXA.js} +8 -8
- package/dist/{service-SYJ5G6LP.js → service-YCOPCTSZ.js} +4 -4
- package/dist/{service-install-FQ43Z4DF.js → service-install-Y46OTF55.js} +5 -5
- package/dist/{setup-QJHGMGSN.js → setup-F4TE64YI.js} +7 -7
- package/dist/{setup-KFYVWTXG.js → setup-TCN7VH5U.js} +9 -3
- package/dist/{skill-GUKG2YVH.js → skill-4CYJLYVY.js} +6 -6
- package/dist/skills/dreaming/SKILL.md +5 -1
- package/dist/skills/dreaming/scripts/dream.ts +5 -1
- package/dist/skills/orientation/SKILL.md +8 -7
- package/dist/skills/tending/SKILL.md +51 -2
- package/dist/skills/volute-mind/SKILL.md +5 -3
- package/dist/skills/volute-mind/references/routing.md +6 -5
- package/dist/skills/volute-mind/references/variants.md +48 -14
- package/dist/{skills-L2CMTW7A.js → skills-NN5UZCUU.js} +8 -6
- package/dist/sleep-manager-DSPXFHGX.js +38 -0
- package/dist/spirit-SSJMYC6A.js +31 -0
- package/dist/{split-WBMZXBHF.js → split-JF2VWTXA.js} +5 -2
- package/dist/{sprout-LTL5P36T.js → sprout-AXA2SECQ.js} +1 -1
- package/dist/{src-OJHARHTF.js → src-ZN4LXMPI.js} +17 -8
- package/dist/{start-X46I3GXB.js → start-BTVMTP3K.js} +5 -5
- package/dist/{status-V4RJMHJ4.js → status-VJGXMQ4L.js} +10 -8
- package/dist/{stop-HJQV4YSM.js → stop-YORESK4U.js} +5 -5
- package/dist/system-chat-M2XOBKEM.js +40 -0
- package/dist/{systems-B5YJKMW4.js → systems-5MH2ELQE.js} +6 -6
- package/dist/{tailscale-MCLY5GYE.js → tailscale-AMMVKDXB.js} +3 -3
- package/dist/{template-staleness-EMQORSGG.js → template-staleness-HKGCTS3H.js} +4 -4
- package/dist/{turn-tracker-JZRZDFWV.js → turn-tracker-JQ2YUUY2.js} +7 -7
- package/dist/up-SDLTLPAO.js +20 -0
- package/dist/{update-ACV4SAY3.js → update-WEA4N2TR.js} +5 -5
- package/dist/{update-check-266R4ZSY.js → update-check-DZOTONII.js} +3 -3
- package/dist/{upgrade-NWAZ7MLD.js → upgrade-K5FIQPQD.js} +1 -1
- package/dist/variant-cleanup-P4MBNLJD.js +33 -0
- package/dist/{version-notify-XRGTEEDK.js → version-notify-WFA5XB5A.js} +27 -25
- package/dist/web-assets/assets/index-BostMFoR.css +1 -0
- package/dist/web-assets/assets/index-CKlqUkyG.js +92 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0013_variant_purpose.sql +3 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +8 -5
- package/packages/extensions/pages/dist/ui/assets/index-BuXnE-rb.css +1 -0
- package/packages/extensions/pages/dist/ui/assets/index-DtzftuPA.js +2 -0
- package/packages/extensions/pages/dist/ui/index.html +2 -2
- package/templates/_base/.init/.local/hooks/startup-context.ts +19 -2
- package/templates/_base/home/VOLUTE.md +13 -1
- package/templates/_base/src/lib/daemon-client.ts +27 -7
- package/templates/_base/src/lib/startup.ts +16 -1
- package/templates/claude/src/agent.ts +10 -3
- package/templates/claude/src/lib/hooks/identity-reload.ts +12 -3
- package/templates/claude/src/server.ts +4 -2
- package/templates/pi/src/agent.ts +7 -10
- package/templates/pi/src/lib/dispatch.ts +65 -0
- package/templates/pi/src/lib/event-handler.ts +47 -6
- package/dist/delivery-manager-TN5KK2AP.js +0 -34
- package/dist/echo-text-SEQCLGAT.js +0 -34
- package/dist/message-delivery-ZE3YGJDD.js +0 -38
- package/dist/mind-service-JFY7UG5E.js +0 -40
- package/dist/scheduler-HQSDYJFY.js +0 -32
- package/dist/sleep-manager-3NA7ZJP3.js +0 -36
- package/dist/spirit-WXN4IDBF.js +0 -23
- package/dist/system-chat-N2F7HVY3.js +0 -38
- package/dist/up-J2PBPOZL.js +0 -18
- package/dist/volute-config-A52FHWKM.js +0 -14
- package/dist/web-assets/assets/index-DtctoDXY.css +0 -1
- package/dist/web-assets/assets/index-Wpyb2CML.js +0 -86
- package/packages/extensions/pages/dist/ui/assets/index-BcY6lnq4.css +0 -1
- package/packages/extensions/pages/dist/ui/assets/index-CQjEQg1r.js +0 -2
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
markIdle,
|
|
5
5
|
onMindEvent,
|
|
6
6
|
stopAll
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-ZX46PGCC.js";
|
|
8
|
+
import "./chunk-3B427GUK.js";
|
|
9
|
+
import "./chunk-QUSMYGNQ.js";
|
|
10
|
+
import "./chunk-RSBL3FAD.js";
|
|
11
|
+
import "./chunk-P4LHVRNE.js";
|
|
12
12
|
import "./chunk-K3NQKI34.js";
|
|
13
13
|
export {
|
|
14
14
|
getActiveMinds,
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
relativeAge
|
|
4
|
+
} from "./chunk-SHKM5RGD.js";
|
|
5
|
+
import {
|
|
6
|
+
resolveMindName
|
|
7
|
+
} from "./chunk-BTY4WNFE.js";
|
|
8
|
+
import {
|
|
9
|
+
daemonFetch
|
|
10
|
+
} from "./chunk-BCG45AQB.js";
|
|
11
|
+
import {
|
|
12
|
+
getClient,
|
|
13
|
+
urlOf
|
|
14
|
+
} from "./chunk-LOPXTW6H.js";
|
|
15
|
+
import {
|
|
16
|
+
command
|
|
17
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
18
|
+
import "./chunk-O7IGP7ZW.js";
|
|
19
|
+
import "./chunk-K3NQKI34.js";
|
|
20
|
+
|
|
21
|
+
// packages/cli/src/commands/mind-contacts.ts
|
|
22
|
+
var cmd = command({
|
|
23
|
+
name: "volute mind contacts",
|
|
24
|
+
description: "Who a mind has recently been in contact with (freshness-independent)",
|
|
25
|
+
flags: {
|
|
26
|
+
mind: { type: "string", description: "Mind name" },
|
|
27
|
+
hours: { type: "string", description: "Lookback window in hours (default 48)" }
|
|
28
|
+
},
|
|
29
|
+
examples: ["volute mind contacts --mind atlas", "volute mind contacts atlas --hours 24"],
|
|
30
|
+
run: async ({ flags }) => {
|
|
31
|
+
const name = resolveMindName(flags);
|
|
32
|
+
const client = getClient();
|
|
33
|
+
const url = client.api.minds[":name"].history.contacts.$url({ param: { name } });
|
|
34
|
+
if (flags.hours) url.searchParams.set("hours", flags.hours);
|
|
35
|
+
const res = await daemonFetch(urlOf(url));
|
|
36
|
+
if (!res.ok) {
|
|
37
|
+
let errorMsg = `Failed to get contacts: ${res.status}`;
|
|
38
|
+
try {
|
|
39
|
+
const data = await res.json();
|
|
40
|
+
if (data.error) errorMsg = data.error;
|
|
41
|
+
} catch {
|
|
42
|
+
}
|
|
43
|
+
console.error(errorMsg);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
const { hours, contacts } = await res.json();
|
|
47
|
+
if (contacts.length === 0) {
|
|
48
|
+
console.log(`No contacts for ${name} in the last ${hours}h.`);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
console.log(`Recent contacts for ${name} (last ${hours}h):`);
|
|
52
|
+
for (const row of contacts) {
|
|
53
|
+
const channel = row.channel ?? "(unknown)";
|
|
54
|
+
const ago = relativeAge(row.last_at);
|
|
55
|
+
const last = ago ? `${ago} ago` : row.last_at;
|
|
56
|
+
const who = row.last_sender ? `, with ${row.last_sender}` : "";
|
|
57
|
+
console.log(` ${channel} \u2014 last ${last}, ${row.message_count} msg${who}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
var run = cmd.execute;
|
|
62
|
+
export {
|
|
63
|
+
run
|
|
64
|
+
};
|
|
@@ -6,17 +6,17 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
resolveMindName
|
|
8
8
|
} from "./chunk-BTY4WNFE.js";
|
|
9
|
-
import {
|
|
10
|
-
command
|
|
11
|
-
} from "./chunk-TXSA4Q3V.js";
|
|
12
|
-
import "./chunk-O7IGP7ZW.js";
|
|
13
9
|
import {
|
|
14
10
|
daemonFetch
|
|
15
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BCG45AQB.js";
|
|
16
12
|
import {
|
|
17
13
|
getClient,
|
|
18
14
|
urlOf
|
|
19
15
|
} from "./chunk-LOPXTW6H.js";
|
|
16
|
+
import {
|
|
17
|
+
command
|
|
18
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
19
|
+
import "./chunk-O7IGP7ZW.js";
|
|
20
20
|
import "./chunk-K3NQKI34.js";
|
|
21
21
|
|
|
22
22
|
// packages/cli/src/commands/mind-history.ts
|
|
@@ -29,7 +29,7 @@ var cmd = command({
|
|
|
29
29
|
);
|
|
30
30
|
process.exit(1);
|
|
31
31
|
}
|
|
32
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
32
|
+
const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
|
|
33
33
|
const body = {};
|
|
34
34
|
if (displayName) body.displayName = displayName;
|
|
35
35
|
if (description) body.description = description;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
buildSeedOrientation,
|
|
4
|
+
recordMissingCredentialsNotice,
|
|
5
|
+
sleepMind,
|
|
6
|
+
startMindFull,
|
|
7
|
+
startSpiritFull,
|
|
8
|
+
stopMindFull,
|
|
9
|
+
stopSpiritFull,
|
|
10
|
+
wakeMind
|
|
11
|
+
} from "./chunk-QQBOI3QA.js";
|
|
12
|
+
import "./chunk-VIUH5CHQ.js";
|
|
13
|
+
import "./chunk-RRZ4RQQU.js";
|
|
14
|
+
import "./chunk-EFT2OALG.js";
|
|
15
|
+
import "./chunk-K3JOLGWF.js";
|
|
16
|
+
import "./chunk-GWVFDUNB.js";
|
|
17
|
+
import "./chunk-4DSGN4FL.js";
|
|
18
|
+
import "./chunk-VNRSXEBF.js";
|
|
19
|
+
import "./chunk-JPGHSXSV.js";
|
|
20
|
+
import "./chunk-JCWB2ITW.js";
|
|
21
|
+
import "./chunk-XTEKINWG.js";
|
|
22
|
+
import "./chunk-ZX46PGCC.js";
|
|
23
|
+
import "./chunk-FBBS4BVR.js";
|
|
24
|
+
import "./chunk-DW4TRDOZ.js";
|
|
25
|
+
import "./chunk-WCFSBH33.js";
|
|
26
|
+
import "./chunk-DVN6DNMI.js";
|
|
27
|
+
import "./chunk-PY24ZL62.js";
|
|
28
|
+
import "./chunk-YIJGKHIS.js";
|
|
29
|
+
import "./chunk-NJHN6IRB.js";
|
|
30
|
+
import "./chunk-3B427GUK.js";
|
|
31
|
+
import "./chunk-QUSMYGNQ.js";
|
|
32
|
+
import "./chunk-RSBL3FAD.js";
|
|
33
|
+
import "./chunk-P4LHVRNE.js";
|
|
34
|
+
import "./chunk-K3NQKI34.js";
|
|
35
|
+
export {
|
|
36
|
+
buildSeedOrientation,
|
|
37
|
+
recordMissingCredentialsNotice,
|
|
38
|
+
sleepMind,
|
|
39
|
+
startMindFull,
|
|
40
|
+
startSpiritFull,
|
|
41
|
+
stopMindFull,
|
|
42
|
+
stopSpiritFull,
|
|
43
|
+
wakeMind
|
|
44
|
+
};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
parseDuration
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JCBPU57A.js";
|
|
5
5
|
import "./chunk-5T5YMX6S.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveMindName
|
|
8
8
|
} from "./chunk-BTY4WNFE.js";
|
|
9
|
+
import {
|
|
10
|
+
daemonFetch
|
|
11
|
+
} from "./chunk-BCG45AQB.js";
|
|
12
|
+
import "./chunk-LOPXTW6H.js";
|
|
9
13
|
import {
|
|
10
14
|
command
|
|
11
15
|
} from "./chunk-TXSA4Q3V.js";
|
|
12
16
|
import "./chunk-O7IGP7ZW.js";
|
|
13
|
-
import {
|
|
14
|
-
daemonFetch
|
|
15
|
-
} from "./chunk-RBNMDAKB.js";
|
|
16
|
-
import "./chunk-LOPXTW6H.js";
|
|
17
17
|
import "./chunk-K3NQKI34.js";
|
|
18
18
|
|
|
19
19
|
// packages/cli/src/commands/mind-sleep.ts
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-BTY4WNFE.js";
|
|
5
|
+
import {
|
|
6
|
+
daemonFetch
|
|
7
|
+
} from "./chunk-BCG45AQB.js";
|
|
5
8
|
import {
|
|
6
9
|
command
|
|
7
10
|
} from "./chunk-TXSA4Q3V.js";
|
|
8
11
|
import "./chunk-O7IGP7ZW.js";
|
|
9
|
-
import {
|
|
10
|
-
daemonFetch
|
|
11
|
-
} from "./chunk-RBNMDAKB.js";
|
|
12
12
|
import "./chunk-K3NQKI34.js";
|
|
13
13
|
|
|
14
14
|
// packages/cli/src/commands/mind-status.ts
|
|
@@ -44,6 +44,11 @@ var cmd = command({
|
|
|
44
44
|
if (mind.templateStale) {
|
|
45
45
|
console.log(`Template: outdated \u2014 run 'volute mind upgrade ${mind.name}'`);
|
|
46
46
|
}
|
|
47
|
+
if (mind.lastNotice) {
|
|
48
|
+
const label = mind.lastNotice.kind === "turn_error" ? "Last turn failed" : "Last issue";
|
|
49
|
+
console.log(`
|
|
50
|
+
${label}: ${mind.lastNotice.detail}`);
|
|
51
|
+
}
|
|
47
52
|
if (mind.channels && mind.channels.length > 0) {
|
|
48
53
|
console.log(`
|
|
49
54
|
Channels:`);
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-BTY4WNFE.js";
|
|
5
|
+
import {
|
|
6
|
+
daemonFetch
|
|
7
|
+
} from "./chunk-BCG45AQB.js";
|
|
5
8
|
import {
|
|
6
9
|
command
|
|
7
10
|
} from "./chunk-TXSA4Q3V.js";
|
|
8
11
|
import "./chunk-O7IGP7ZW.js";
|
|
9
|
-
import {
|
|
10
|
-
daemonFetch
|
|
11
|
-
} from "./chunk-RBNMDAKB.js";
|
|
12
12
|
import "./chunk-K3NQKI34.js";
|
|
13
13
|
|
|
14
14
|
// packages/cli/src/commands/mind-wake.ts
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
MIND_LEVEL_SESSION,
|
|
4
|
+
clearDeliveredNotices,
|
|
5
|
+
drainNotices,
|
|
6
|
+
formatNotices,
|
|
7
|
+
hasUndeliveredNotice,
|
|
8
|
+
latestFailureNotice,
|
|
9
|
+
latestNotice,
|
|
10
|
+
recordNotice
|
|
11
|
+
} from "./chunk-XTEKINWG.js";
|
|
12
|
+
import "./chunk-QUSMYGNQ.js";
|
|
13
|
+
import "./chunk-RSBL3FAD.js";
|
|
14
|
+
import "./chunk-P4LHVRNE.js";
|
|
15
|
+
import "./chunk-K3NQKI34.js";
|
|
16
|
+
export {
|
|
17
|
+
MIND_LEVEL_SESSION,
|
|
18
|
+
clearDeliveredNotices,
|
|
19
|
+
drainNotices,
|
|
20
|
+
formatNotices,
|
|
21
|
+
hasUndeliveredNotice,
|
|
22
|
+
latestFailureNotice,
|
|
23
|
+
latestNotice,
|
|
24
|
+
recordNotice
|
|
25
|
+
};
|
|
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
|
|
|
4
4
|
// package.json
|
|
5
5
|
var package_default = {
|
|
6
6
|
name: "volute",
|
|
7
|
-
version: "0.
|
|
7
|
+
version: "0.49.0",
|
|
8
8
|
description: "CLI for creating and managing self-modifying AI minds powered by the Claude Agent SDK",
|
|
9
9
|
type: "module",
|
|
10
10
|
license: "MIT",
|
|
@@ -49,9 +49,10 @@ var package_default = {
|
|
|
49
49
|
scripts: {
|
|
50
50
|
dev: "tsx src/cli.ts",
|
|
51
51
|
build: "npm run build:ext && tsup && cp -r skills dist/skills && npm run build:web",
|
|
52
|
-
"
|
|
53
|
-
"build:
|
|
54
|
-
"
|
|
52
|
+
"ext-theme": "npm run build:ext-theme --workspace=packages/ui && cp packages/ui/dist/ext-theme.css packages/web/public/ext-theme.css",
|
|
53
|
+
"build:ext": "npm run ext-theme && npm run build:ui --workspace=packages/extensions/notes && npm run build:ui --workspace=packages/extensions/pages && npm run build:ui --workspace=packages/extensions/plan",
|
|
54
|
+
"build:web": "npm run ext-theme && npm run build:ui --workspace=packages/web",
|
|
55
|
+
"dev:web": "npm run ext-theme && npm run dev --workspace=packages/web",
|
|
55
56
|
test: "node --import tsx --import ./test/setup.ts --test --test-force-exit --test-concurrency=4 $(find test -name '*.test.ts' ! -name 'daemon-e2e.test.ts' | sort)",
|
|
56
57
|
"test:e2e": "node --import tsx --import ./test/setup.ts --test --test-force-exit --test-concurrency=1 test/daemon-e2e.test.ts",
|
|
57
58
|
"test:all": "npm test && npm run test:e2e",
|
|
@@ -62,6 +63,7 @@ var package_default = {
|
|
|
62
63
|
"typecheck:templates": "tsx scripts/typecheck-templates.ts",
|
|
63
64
|
"lint:templates": "biome check templates/",
|
|
64
65
|
"typecheck:web": "svelte-check --tsconfig packages/web/tsconfig.json",
|
|
66
|
+
knip: "knip --workspace packages/web --include files",
|
|
65
67
|
prepare: "lefthook install",
|
|
66
68
|
prepublishOnly: "npm run build",
|
|
67
69
|
"db:generate": "drizzle-kit generate",
|
|
@@ -69,10 +71,10 @@ var package_default = {
|
|
|
69
71
|
},
|
|
70
72
|
dependencies: {
|
|
71
73
|
"@anthropic-ai/sandbox-runtime": "^0.0.56",
|
|
74
|
+
"@earendil-works/pi-ai": "^0.80.3",
|
|
72
75
|
"@hono/node-server": "^2.0.6",
|
|
73
76
|
"@hono/zod-validator": "^0.8.0",
|
|
74
77
|
"@libsql/client": "^0.17.4",
|
|
75
|
-
"@earendil-works/pi-ai": "^0.80.3",
|
|
76
78
|
"@slack/bolt": "^4.7.3",
|
|
77
79
|
"adm-zip": "^0.5.17",
|
|
78
80
|
bcryptjs: "^3.0.3",
|
|
@@ -97,6 +99,7 @@ var package_default = {
|
|
|
97
99
|
"@types/node": "^26.0.0",
|
|
98
100
|
dompurify: "^3.4.11",
|
|
99
101
|
"drizzle-kit": "^0.31.10",
|
|
102
|
+
knip: "^6.26.0",
|
|
100
103
|
lefthook: "^2.1.9",
|
|
101
104
|
marked: "^18.0.5",
|
|
102
105
|
svelte: "^5.56.3",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
MEMORY_PLACEHOLDER_MARKER,
|
|
4
|
+
ORIENTATION_MARKER,
|
|
5
|
+
PROMPT_DEFAULTS,
|
|
6
|
+
PROMPT_KEYS,
|
|
7
|
+
getMindPromptDefaults,
|
|
8
|
+
getPrompt,
|
|
9
|
+
getPromptIfCustom,
|
|
10
|
+
substitute
|
|
11
|
+
} from "./chunk-JPGHSXSV.js";
|
|
12
|
+
import "./chunk-RSBL3FAD.js";
|
|
13
|
+
import "./chunk-P4LHVRNE.js";
|
|
14
|
+
import "./chunk-K3NQKI34.js";
|
|
15
|
+
export {
|
|
16
|
+
MEMORY_PLACEHOLDER_MARKER,
|
|
17
|
+
ORIENTATION_MARKER,
|
|
18
|
+
PROMPT_DEFAULTS,
|
|
19
|
+
PROMPT_KEYS,
|
|
20
|
+
getMindPromptDefaults,
|
|
21
|
+
getPrompt,
|
|
22
|
+
getPromptIfCustom,
|
|
23
|
+
substitute
|
|
24
|
+
};
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
resolveMindName
|
|
8
8
|
} from "./chunk-BTY4WNFE.js";
|
|
9
|
+
import {
|
|
10
|
+
daemonFetch
|
|
11
|
+
} from "./chunk-BCG45AQB.js";
|
|
9
12
|
import {
|
|
10
13
|
command
|
|
11
14
|
} from "./chunk-TXSA4Q3V.js";
|
|
12
15
|
import "./chunk-O7IGP7ZW.js";
|
|
13
|
-
import {
|
|
14
|
-
daemonFetch
|
|
15
|
-
} from "./chunk-RBNMDAKB.js";
|
|
16
16
|
import "./chunk-K3NQKI34.js";
|
|
17
17
|
|
|
18
18
|
// packages/cli/src/commands/chat/read.ts
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
promptLine
|
|
4
4
|
} from "./chunk-VHWGEJ4V.js";
|
|
5
|
+
import {
|
|
6
|
+
daemonFetch
|
|
7
|
+
} from "./chunk-BCG45AQB.js";
|
|
5
8
|
import {
|
|
6
9
|
command
|
|
7
10
|
} from "./chunk-TXSA4Q3V.js";
|
|
8
11
|
import "./chunk-O7IGP7ZW.js";
|
|
9
|
-
import {
|
|
10
|
-
daemonFetch
|
|
11
|
-
} from "./chunk-RBNMDAKB.js";
|
|
12
12
|
import "./chunk-K3NQKI34.js";
|
|
13
13
|
|
|
14
14
|
// packages/cli/src/commands/systems/register.ts
|
|
@@ -4,7 +4,9 @@ import {
|
|
|
4
4
|
addMind,
|
|
5
5
|
addSpirit,
|
|
6
6
|
addVariant,
|
|
7
|
+
countCappedMinds,
|
|
7
8
|
daemonLoopback,
|
|
9
|
+
deleteMindDbFootprint,
|
|
8
10
|
ensureSystemDir,
|
|
9
11
|
ensureVoluteHome,
|
|
10
12
|
findMind,
|
|
@@ -28,15 +30,17 @@ import {
|
|
|
28
30
|
voluteHome,
|
|
29
31
|
voluteSystemDir,
|
|
30
32
|
voluteUserHome
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-RSBL3FAD.js";
|
|
34
|
+
import "./chunk-P4LHVRNE.js";
|
|
33
35
|
import "./chunk-K3NQKI34.js";
|
|
34
36
|
export {
|
|
35
37
|
SPIRIT_NAME,
|
|
36
38
|
addMind,
|
|
37
39
|
addSpirit,
|
|
38
40
|
addVariant,
|
|
41
|
+
countCappedMinds,
|
|
39
42
|
daemonLoopback,
|
|
43
|
+
deleteMindDbFootprint,
|
|
40
44
|
ensureSystemDir,
|
|
41
45
|
ensureVoluteHome,
|
|
42
46
|
findMind,
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-BTY4WNFE.js";
|
|
5
|
+
import {
|
|
6
|
+
daemonFetch
|
|
7
|
+
} from "./chunk-BCG45AQB.js";
|
|
5
8
|
import {
|
|
6
9
|
command
|
|
7
10
|
} from "./chunk-TXSA4Q3V.js";
|
|
8
11
|
import "./chunk-O7IGP7ZW.js";
|
|
9
|
-
import {
|
|
10
|
-
daemonFetch
|
|
11
|
-
} from "./chunk-RBNMDAKB.js";
|
|
12
12
|
import "./chunk-K3NQKI34.js";
|
|
13
13
|
|
|
14
14
|
// packages/cli/src/commands/chat/reject.ts
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-BTY4WNFE.js";
|
|
5
|
-
import {
|
|
6
|
-
command
|
|
7
|
-
} from "./chunk-TXSA4Q3V.js";
|
|
8
|
-
import "./chunk-O7IGP7ZW.js";
|
|
9
5
|
import {
|
|
10
6
|
daemonFetch
|
|
11
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BCG45AQB.js";
|
|
12
8
|
import {
|
|
13
9
|
getClient,
|
|
14
10
|
urlOf
|
|
15
11
|
} from "./chunk-LOPXTW6H.js";
|
|
12
|
+
import {
|
|
13
|
+
command
|
|
14
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
15
|
+
import "./chunk-O7IGP7ZW.js";
|
|
16
16
|
import "./chunk-K3NQKI34.js";
|
|
17
17
|
|
|
18
18
|
// packages/cli/src/commands/restart.ts
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
isSandboxOptional,
|
|
8
8
|
shellEscape,
|
|
9
9
|
wrapForSandbox
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-JCWB2ITW.js";
|
|
11
|
+
import "./chunk-NJHN6IRB.js";
|
|
12
|
+
import "./chunk-QUSMYGNQ.js";
|
|
13
|
+
import "./chunk-RSBL3FAD.js";
|
|
14
|
+
import "./chunk-P4LHVRNE.js";
|
|
15
15
|
import "./chunk-K3NQKI34.js";
|
|
16
16
|
export {
|
|
17
17
|
SandboxUnavailableError,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
Scheduler,
|
|
4
|
+
getScheduler,
|
|
5
|
+
initScheduler
|
|
6
|
+
} from "./chunk-QQBOI3QA.js";
|
|
7
|
+
import "./chunk-VIUH5CHQ.js";
|
|
8
|
+
import "./chunk-RRZ4RQQU.js";
|
|
9
|
+
import "./chunk-EFT2OALG.js";
|
|
10
|
+
import "./chunk-K3JOLGWF.js";
|
|
11
|
+
import "./chunk-GWVFDUNB.js";
|
|
12
|
+
import "./chunk-4DSGN4FL.js";
|
|
13
|
+
import "./chunk-VNRSXEBF.js";
|
|
14
|
+
import "./chunk-JPGHSXSV.js";
|
|
15
|
+
import "./chunk-JCWB2ITW.js";
|
|
16
|
+
import "./chunk-XTEKINWG.js";
|
|
17
|
+
import "./chunk-ZX46PGCC.js";
|
|
18
|
+
import "./chunk-FBBS4BVR.js";
|
|
19
|
+
import "./chunk-DW4TRDOZ.js";
|
|
20
|
+
import "./chunk-WCFSBH33.js";
|
|
21
|
+
import "./chunk-DVN6DNMI.js";
|
|
22
|
+
import "./chunk-PY24ZL62.js";
|
|
23
|
+
import "./chunk-YIJGKHIS.js";
|
|
24
|
+
import "./chunk-NJHN6IRB.js";
|
|
25
|
+
import "./chunk-3B427GUK.js";
|
|
26
|
+
import "./chunk-QUSMYGNQ.js";
|
|
27
|
+
import "./chunk-RSBL3FAD.js";
|
|
28
|
+
import "./chunk-P4LHVRNE.js";
|
|
29
|
+
import "./chunk-K3NQKI34.js";
|
|
30
|
+
export {
|
|
31
|
+
Scheduler,
|
|
32
|
+
getScheduler,
|
|
33
|
+
initScheduler
|
|
34
|
+
};
|
|
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
|
|
|
4
4
|
// packages/cli/src/commands/seed.ts
|
|
5
5
|
async function run(args) {
|
|
6
6
|
console.error("Note: `volute mind seed` is now `volute seed create`");
|
|
7
|
-
await import("./seed-create-
|
|
7
|
+
await import("./seed-create-XOO4N2OE.js").then((m) => m.run(args));
|
|
8
8
|
}
|
|
9
9
|
export {
|
|
10
10
|
run
|
|
@@ -13,7 +13,7 @@ var cmd = command({
|
|
|
13
13
|
flags: {},
|
|
14
14
|
run: async ({ args }) => {
|
|
15
15
|
const name = args.name;
|
|
16
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
16
|
+
const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
|
|
17
17
|
const res = await daemonFetch(`/api/minds/${encodeURIComponent(name)}/seed-check`);
|
|
18
18
|
if (!res.ok) {
|
|
19
19
|
if (res.status === 404) {
|
|
@@ -12,15 +12,15 @@ var cmd = subcommands({
|
|
|
12
12
|
commands: {
|
|
13
13
|
create: {
|
|
14
14
|
description: "Plant a new seed",
|
|
15
|
-
run: (args) => import("./seed-create-
|
|
15
|
+
run: (args) => import("./seed-create-XOO4N2OE.js").then((m) => m.run(args))
|
|
16
16
|
},
|
|
17
17
|
sprout: {
|
|
18
18
|
description: "Complete orientation and become a full mind",
|
|
19
|
-
run: (args) => import("./seed-sprout-
|
|
19
|
+
run: (args) => import("./seed-sprout-HSBBGSS2.js").then((m) => m.run(args))
|
|
20
20
|
},
|
|
21
21
|
check: {
|
|
22
22
|
description: "Check seed readiness",
|
|
23
|
-
run: (args) => import("./seed-check-
|
|
23
|
+
run: (args) => import("./seed-check-TYD7RRZY.js").then((m) => m.run(args))
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
});
|
|
@@ -47,19 +47,19 @@ var cmd = command({
|
|
|
47
47
|
const name = args.name;
|
|
48
48
|
const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
|
|
49
49
|
const createdBy = flags["created-by"];
|
|
50
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
50
|
+
const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
|
|
51
51
|
const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
|
|
52
52
|
const client = getClient();
|
|
53
53
|
let model = flags.model;
|
|
54
54
|
let template = flags.template;
|
|
55
55
|
if (!template) {
|
|
56
|
-
const { resolveTemplate } = await import("./ai-service-
|
|
56
|
+
const { resolveTemplate } = await import("./ai-service-A7FS7EC3.js");
|
|
57
57
|
template = await resolveTemplate(model);
|
|
58
58
|
}
|
|
59
59
|
if (template !== "claude" && !model) {
|
|
60
60
|
if (process.env.VOLUTE_MIND || !process.stdin.isTTY) {
|
|
61
|
-
const { getSpiritModel } = await import("./spirit-
|
|
62
|
-
const { qualifyModelId } = await import("./ai-service-
|
|
61
|
+
const { getSpiritModel } = await import("./spirit-SSJMYC6A.js");
|
|
62
|
+
const { qualifyModelId } = await import("./ai-service-A7FS7EC3.js");
|
|
63
63
|
const spiritModel = getSpiritModel();
|
|
64
64
|
if (spiritModel) {
|
|
65
65
|
model = template === "pi" ? qualifyModelId(spiritModel) : spiritModel;
|
|
@@ -91,6 +91,8 @@ var cmd = command({
|
|
|
91
91
|
console.error(createData.error ?? "Failed to create mind");
|
|
92
92
|
process.exit(1);
|
|
93
93
|
}
|
|
94
|
+
if (createData.credentialWarning) console.warn(`
|
|
95
|
+
\u26A0 ${createData.credentialWarning}`);
|
|
94
96
|
const startRes = await daemonFetch(
|
|
95
97
|
urlOf(client.api.minds[":name"].start.$url({ param: { name } })),
|
|
96
98
|
{ method: "POST" }
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
evaluateSeedChecklist,
|
|
4
|
+
isMemoryWritten,
|
|
5
|
+
isSoulWritten
|
|
6
|
+
} from "./chunk-TXJL36ZQ.js";
|
|
7
|
+
import "./chunk-JPGHSXSV.js";
|
|
8
|
+
import "./chunk-DW4TRDOZ.js";
|
|
9
|
+
import "./chunk-WCFSBH33.js";
|
|
10
|
+
import "./chunk-NJHN6IRB.js";
|
|
11
|
+
import "./chunk-RSBL3FAD.js";
|
|
12
|
+
import "./chunk-P4LHVRNE.js";
|
|
13
|
+
import "./chunk-K3NQKI34.js";
|
|
14
|
+
export {
|
|
15
|
+
evaluateSeedChecklist,
|
|
16
|
+
isMemoryWritten,
|
|
17
|
+
isSoulWritten
|
|
18
|
+
};
|