volute 0.51.0 → 0.53.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/dist/{accept-5NK5XJB5.js → accept-I4GVGWA3.js} +6 -3
- package/dist/{auth-X6EMNEGB.js → auth-KRDSM55Q.js} +3 -1
- package/dist/{chat-VAZ25KVT.js → chat-WK2BLM7B.js} +9 -9
- package/dist/{chunk-VAEZCIJC.js → chunk-23UJGVYP.js} +9 -9
- package/dist/{chunk-VSBMLB2W.js → chunk-5DBGQBQR.js} +138 -13
- package/dist/chunk-5RBEEAKW.js +58 -0
- package/dist/{chunk-BSHZ23MS.js → chunk-7ARONCZW.js} +25 -3
- package/dist/{chunk-HKP6OAJP.js → chunk-7LT3YZUR.js} +12 -0
- package/dist/{chunk-FXWBFDQR.js → chunk-AP2KQMMW.js} +48 -9
- package/dist/{chunk-DMK5ASKV.js → chunk-F6D766VQ.js} +6 -2
- package/dist/{chunk-VP5PFNZO.js → chunk-HASADR3E.js} +73 -20
- package/dist/{chunk-ICL6T4SN.js → chunk-IQ7VNWH6.js} +26 -2
- package/dist/{chunk-G7A5LEVI.js → chunk-LN7XJ56R.js} +6 -6
- package/dist/{chunk-DN3LKLYR.js → chunk-P2TBUKLW.js} +3 -3
- package/dist/{chunk-Q7XQLKZB.js → chunk-PIZDPY4G.js} +20 -3
- package/dist/{chunk-JHKBALS2.js → chunk-RMADJFA7.js} +1 -1
- package/dist/{chunk-7HN63Q7J.js → chunk-RQRO6PC7.js} +40 -6
- package/dist/{chunk-QT4D5XCI.js → chunk-TAWRJ24T.js} +1 -1
- package/dist/{chunk-AI47FDGL.js → chunk-UO4MZQNO.js} +1 -1
- package/dist/chunk-UTKUO2KY.js +102 -0
- package/dist/{chunk-CDKQJWGK.js → chunk-VDZ4I4ZP.js} +160 -18
- package/dist/cli.js +16 -16
- package/dist/{clock-ZT5YT6HA.js → clock-SH4NQC2F.js} +3 -3
- package/dist/{cloud-sync-GPXYPTIC.js → cloud-sync-MJVJ33LD.js} +11 -10
- package/dist/{daemon-restart-2EWBRTN5.js → daemon-restart-BIGU4OKS.js} +1 -1
- package/dist/daemon.js +543 -236
- package/dist/{delete-O7PEFQDF.js → delete-CYVZUAV2.js} +4 -0
- package/dist/{delivery-manager-HGVZSEES.js → delivery-manager-FDHCZ7PU.js} +7 -5
- package/dist/delivery-notices-65TB3CBX.js +18 -0
- package/dist/{echo-text-6ANI5HHN.js → echo-text-KU6G4Z7V.js} +12 -11
- package/dist/{extensions-NY6WST33.js → extensions-VACUKFA5.js} +11 -10
- package/dist/{files-BRY5RRIM.js → files-CHPNEQXN.js} +5 -4
- package/dist/{join-PYA36HEC.js → join-KLRU72JJ.js} +10 -2
- package/dist/{message-delivery-JHMAJ2GU.js → message-delivery-TUXM3AAE.js} +15 -12
- package/dist/{mind-WF6QIXWV.js → mind-IX5AWUST.js} +13 -13
- package/dist/{mind-contacts-QYU4TPEA.js → mind-contacts-BKUOUJPV.js} +5 -5
- package/dist/{mind-history-OGNR4L7W.js → mind-history-RVF6KJ7K.js} +83 -11
- package/dist/{mind-list-SYRA7CH5.js → mind-list-KNU34SUD.js} +2 -2
- package/dist/{mind-service-DZCUUC7J.js → mind-service-WHFBUKZE.js} +11 -10
- package/dist/{mind-sleep-LZAFBDZD.js → mind-sleep-D3DEYAWG.js} +5 -5
- package/dist/{mind-status-Z2LQFA6F.js → mind-status-BPTLQ5Z6.js} +15 -3
- package/dist/{package-B6O5APCZ.js → package-BN5KMU54.js} +2 -2
- package/dist/{prompts-NBO3HRK3.js → prompts-HNKGCAEY.js} +1 -1
- package/dist/{reject-TWB4QJHG.js → reject-K2A4UK2Y.js} +9 -5
- package/dist/{scheduler-TNBN54ZK.js → scheduler-5X5UIQOQ.js} +7 -5
- package/dist/{seed-K2LYODIH.js → seed-LHZ33UB4.js} +1 -1
- package/dist/{seed-cmd-2EWBTR6P.js → seed-cmd-U4RVJ3UA.js} +2 -2
- package/dist/{seed-create-VGTLU5FD.js → seed-create-OQU4KNCB.js} +1 -1
- package/dist/{seed-readiness-DYOVCYHN.js → seed-readiness-WJYYRRCK.js} +2 -2
- package/dist/{seed-sprout-PILHJ3YS.js → seed-sprout-SFUYH2RG.js} +7 -7
- package/dist/{send-2YKOZJJ5.js → send-FWZAMDBN.js} +35 -20
- package/dist/{setup-MDPSK2XG.js → setup-RVSGCIF3.js} +1 -1
- package/dist/skills/memory/SKILL.md +47 -43
- package/dist/skills/volute-mind/references/variants.md +1 -1
- package/dist/{skills-NH2GQKAF.js → skills-QRPU6BWY.js} +1 -1
- package/dist/{sleep-manager-7JXEQQ2P.js → sleep-manager-NWUCRBZB.js} +11 -10
- package/dist/{spirit-25JVAL3M.js → spirit-I5ECLGRI.js} +16 -2
- package/dist/{spirit-availability-PJDWZJ3J.js → spirit-availability-NIUUYKU2.js} +12 -11
- package/dist/{sprout-EXUZMIOR.js → sprout-A2PMEF7Z.js} +1 -1
- package/dist/{system-events-ZPSH63QX.js → system-events-YTOU66QI.js} +7 -1
- package/dist/{systems-VDRUZXNF.js → systems-2DIJY4RF.js} +6 -6
- package/dist/{turn-tracker-TAT2HGK6.js → turn-tracker-NNHS6MAR.js} +4 -2
- package/dist/{up-J7XCAH7P.js → up-UGBHH743.js} +1 -1
- package/dist/{variant-cleanup-YXN25ZVW.js → variant-cleanup-CZDLIY3F.js} +7 -5
- package/dist/{version-notify-EN3KJ7HH.js → version-notify-SJVAQLZI.js} +4 -4
- package/dist/web-assets/assets/index-BHSU9r-4.css +1 -0
- package/dist/web-assets/assets/index-b7G7ZsVk.js +97 -0
- package/dist/web-assets/index.html +2 -2
- package/package.json +2 -2
- package/templates/_base/.init/.config/prompts.json +1 -1
- package/templates/_base/src/lib/auto-commit.ts +49 -11
- package/templates/_base/src/lib/codex-session-seed.ts +463 -0
- package/templates/_base/src/lib/daemon-client.ts +35 -0
- package/templates/_base/src/lib/pi-session-seed.ts +434 -0
- package/templates/_base/src/lib/seed-note.ts +78 -0
- package/templates/_base/src/lib/session-seed.ts +375 -0
- package/templates/_base/src/lib/startup.ts +108 -4
- package/templates/claude/.init/CLAUDE.md +3 -3
- package/templates/claude/src/agent.ts +267 -89
- package/templates/claude/src/lib/hooks/pre-compact.ts +30 -5
- package/templates/claude/src/lib/stream-consumer.ts +13 -0
- package/templates/claude/src/server.ts +2 -1
- package/templates/codex/.init/AGENTS.md +3 -3
- package/templates/codex/src/agent.ts +256 -39
- package/templates/codex/src/server.ts +2 -1
- package/templates/pi/.init/MINDS.md +3 -3
- package/templates/pi/src/agent.ts +269 -43
- package/templates/pi/src/lib/event-handler.ts +11 -0
- package/templates/pi/src/server.ts +3 -1
- package/dist/web-assets/assets/index-BOyJ4Gqs.css +0 -1
- package/dist/web-assets/assets/index-CrxBwnzp.js +0 -95
- package/dist/{backup-YVGV2ZNM.js → backup-WWXVIMYQ.js} +5 -5
- package/dist/{bridge-YK7NTRU5.js → bridge-KU2IKSH3.js} +3 -3
- package/dist/{channels-FSAHOQWI.js → channels-LW5ZLMSQ.js} +3 -3
- package/dist/{chunk-IWAVIJO2.js → chunk-BDHKCLWK.js} +0 -0
- package/dist/{chunk-EEOMA4DX.js → chunk-HTB7KDRU.js} +3 -3
- package/dist/{create-M727VUDF.js → create-C3XZACTV.js} +3 -3
- package/dist/{env-IBW2QI6K.js → env-BJGM6FBA.js} +5 -5
- package/dist/{extension-MRYJWSMV.js → extension-B2W52WZY.js} +3 -3
- package/dist/{list-UQGIW7OF.js → list-R2GDWOEE.js} +3 -3
- package/dist/{login-RJJTCVR3.js → login-EZ4RRDQX.js} +3 -3
- package/dist/{login-SB5OENMV.js → login-JDOAK465.js} +4 -4
- package/dist/{logout-YFZAJRPY.js → logout-K6ZGAJY5.js} +3 -3
- package/dist/{logout-BYV433X6.js → logout-MWSIUOQU.js} +3 -3
- package/dist/{mind-wake-LDGPRA42.js → mind-wake-DCDFFQKX.js} +3 -3
- package/dist/{read-RJ5NAW5J.js → read-J5RM674N.js} +3 -3
- package/dist/{register-OX4HRSGC.js → register-53LBGSDC.js} +3 -3
- package/dist/{restart-AGEGNSYQ.js → restart-R2WFNF5K.js} +4 -4
- package/dist/{skill-B5OJEQUA.js → skill-DXLLSUHB.js} +5 -5
- package/dist/{start-MUMNFR52.js → start-XDOUAWN3.js} +4 -4
- package/dist/{status-MWLE3RVC.js → status-EYG4A3OK.js} +3 -3
- package/dist/{stop-EKERNYTX.js → stop-O62RTEMD.js} +4 -4
|
@@ -28,6 +28,10 @@ var cmd = command({
|
|
|
28
28
|
console.error(data.error ?? "Failed to delete mind");
|
|
29
29
|
process.exit(1);
|
|
30
30
|
}
|
|
31
|
+
if (data.variant) {
|
|
32
|
+
console.log(`Deleted variant ${name}, including its git worktree and branch.`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
31
35
|
console.log(`Deleted ${name} from the registry.`);
|
|
32
36
|
if (flags.force) {
|
|
33
37
|
console.log("Deleted mind directory.");
|
|
@@ -5,13 +5,14 @@ import {
|
|
|
5
5
|
getDeliveryManager,
|
|
6
6
|
initDeliveryManager,
|
|
7
7
|
tryGetDeliveryManager
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-RQRO6PC7.js";
|
|
9
|
+
import "./chunk-23UJGVYP.js";
|
|
10
10
|
import "./chunk-UDZLPR34.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-VDZ4I4ZP.js";
|
|
12
|
+
import "./chunk-7LT3YZUR.js";
|
|
13
|
+
import "./chunk-IQ7VNWH6.js";
|
|
13
14
|
import "./chunk-LNNI3MS4.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-AP2KQMMW.js";
|
|
15
16
|
import "./chunk-5Y54AE3L.js";
|
|
16
17
|
import "./chunk-TPX6E6PL.js";
|
|
17
18
|
import "./chunk-UFTDRTCP.js";
|
|
@@ -23,6 +24,7 @@ import "./chunk-M77B73VV.js";
|
|
|
23
24
|
import "./chunk-GLM7TVWP.js";
|
|
24
25
|
import "./chunk-EGV6R6UF.js";
|
|
25
26
|
import "./chunk-QUSMYGNQ.js";
|
|
27
|
+
import "./chunk-LGNUFVMR.js";
|
|
26
28
|
import "./chunk-H6X6CKDN.js";
|
|
27
29
|
import "./chunk-2RNMBXD2.js";
|
|
28
30
|
import "./chunk-K3NQKI34.js";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
COALESCE_WINDOW_MINUTES,
|
|
4
|
+
recordDeliveryFailure,
|
|
5
|
+
recordSenderDeliveryFailure
|
|
6
|
+
} from "./chunk-UTKUO2KY.js";
|
|
7
|
+
import "./chunk-IQ7VNWH6.js";
|
|
8
|
+
import "./chunk-LNNI3MS4.js";
|
|
9
|
+
import "./chunk-AP2KQMMW.js";
|
|
10
|
+
import "./chunk-QUSMYGNQ.js";
|
|
11
|
+
import "./chunk-H6X6CKDN.js";
|
|
12
|
+
import "./chunk-2RNMBXD2.js";
|
|
13
|
+
import "./chunk-K3NQKI34.js";
|
|
14
|
+
export {
|
|
15
|
+
COALESCE_WINDOW_MINUTES,
|
|
16
|
+
recordDeliveryFailure,
|
|
17
|
+
recordSenderDeliveryFailure
|
|
18
|
+
};
|
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
import {
|
|
3
3
|
clearEchoTextCache,
|
|
4
4
|
echoTextToChannel
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7ARONCZW.js";
|
|
6
6
|
import "./chunk-L7BKTZ5U.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HASADR3E.js";
|
|
8
|
+
import "./chunk-5DBGQBQR.js";
|
|
9
9
|
import "./chunk-X67BDDZR.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-PIZDPY4G.js";
|
|
11
|
+
import "./chunk-UTKUO2KY.js";
|
|
12
|
+
import "./chunk-RQRO6PC7.js";
|
|
13
|
+
import "./chunk-23UJGVYP.js";
|
|
13
14
|
import "./chunk-UDZLPR34.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-VDZ4I4ZP.js";
|
|
16
|
+
import "./chunk-TAWRJ24T.js";
|
|
17
|
+
import "./chunk-7LT3YZUR.js";
|
|
18
|
+
import "./chunk-IQ7VNWH6.js";
|
|
18
19
|
import "./chunk-LNNI3MS4.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-AP2KQMMW.js";
|
|
20
21
|
import "./chunk-5Y54AE3L.js";
|
|
21
22
|
import "./chunk-TPX6E6PL.js";
|
|
22
23
|
import "./chunk-UFTDRTCP.js";
|
|
@@ -14,19 +14,19 @@ import {
|
|
|
14
14
|
parseCommandArgs,
|
|
15
15
|
setExtensionEnabled,
|
|
16
16
|
uninstallNpmExtension
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-HASADR3E.js";
|
|
18
|
+
import "./chunk-5DBGQBQR.js";
|
|
19
19
|
import "./chunk-X67BDDZR.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-PIZDPY4G.js";
|
|
21
|
+
import "./chunk-RQRO6PC7.js";
|
|
22
|
+
import "./chunk-23UJGVYP.js";
|
|
23
23
|
import "./chunk-UDZLPR34.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-VDZ4I4ZP.js";
|
|
25
|
+
import "./chunk-TAWRJ24T.js";
|
|
26
|
+
import "./chunk-7LT3YZUR.js";
|
|
27
|
+
import "./chunk-IQ7VNWH6.js";
|
|
28
28
|
import "./chunk-LNNI3MS4.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-AP2KQMMW.js";
|
|
30
30
|
import "./chunk-5Y54AE3L.js";
|
|
31
31
|
import "./chunk-TPX6E6PL.js";
|
|
32
32
|
import "./chunk-UFTDRTCP.js";
|
|
@@ -38,6 +38,7 @@ import "./chunk-M77B73VV.js";
|
|
|
38
38
|
import "./chunk-GLM7TVWP.js";
|
|
39
39
|
import "./chunk-EGV6R6UF.js";
|
|
40
40
|
import "./chunk-QUSMYGNQ.js";
|
|
41
|
+
import "./chunk-LGNUFVMR.js";
|
|
41
42
|
import "./chunk-H6X6CKDN.js";
|
|
42
43
|
import "./chunk-2RNMBXD2.js";
|
|
43
44
|
import "./chunk-K3NQKI34.js";
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-BTY4WNFE.js";
|
|
5
|
-
import {
|
|
6
|
-
daemonFetch
|
|
7
|
-
} from "./chunk-M74I3HHF.js";
|
|
8
5
|
import {
|
|
9
6
|
command
|
|
10
7
|
} from "./chunk-TXSA4Q3V.js";
|
|
11
8
|
import "./chunk-O7IGP7ZW.js";
|
|
9
|
+
import {
|
|
10
|
+
daemonFetch
|
|
11
|
+
} from "./chunk-M74I3HHF.js";
|
|
12
12
|
import "./chunk-FNJCBRD3.js";
|
|
13
13
|
import {
|
|
14
14
|
formatFileSize
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-F6D766VQ.js";
|
|
16
|
+
import "./chunk-QUSMYGNQ.js";
|
|
16
17
|
import "./chunk-H6X6CKDN.js";
|
|
17
18
|
import "./chunk-2RNMBXD2.js";
|
|
18
19
|
import "./chunk-K3NQKI34.js";
|
|
@@ -14,7 +14,11 @@ var cmd = command({
|
|
|
14
14
|
summary: { type: "string", description: "Summary of changes" },
|
|
15
15
|
justification: { type: "string", description: "Justification for merge" },
|
|
16
16
|
memory: { type: "string", description: "Memory to add" },
|
|
17
|
-
"skip-verify": { type: "boolean", description: "Skip verification step" }
|
|
17
|
+
"skip-verify": { type: "boolean", description: "Skip verification step" },
|
|
18
|
+
"discard-unresolved": {
|
|
19
|
+
type: "boolean",
|
|
20
|
+
description: "Join even if the variant has untracked home/ files git would otherwise refuse to discard"
|
|
21
|
+
}
|
|
18
22
|
},
|
|
19
23
|
run: async ({ args, flags }) => {
|
|
20
24
|
const variantName = args.variant;
|
|
@@ -49,7 +53,8 @@ var cmd = command({
|
|
|
49
53
|
...flags.summary && { summary: flags.summary },
|
|
50
54
|
...flags.justification && { justification: flags.justification },
|
|
51
55
|
...flags.memory && { memory: flags.memory },
|
|
52
|
-
...flags["skip-verify"] && { skipVerify: true }
|
|
56
|
+
...flags["skip-verify"] && { skipVerify: true },
|
|
57
|
+
...flags["discard-unresolved"] && { discardUnresolved: true }
|
|
53
58
|
})
|
|
54
59
|
}
|
|
55
60
|
);
|
|
@@ -60,6 +65,9 @@ var cmd = command({
|
|
|
60
65
|
console.error("\nConflicting files:");
|
|
61
66
|
for (const file of data.conflicts) console.error(` ${file}`);
|
|
62
67
|
}
|
|
68
|
+
if (data.unresolvedFiles?.length) {
|
|
69
|
+
console.error("\nRetry with --discard-unresolved to join anyway and discard them.");
|
|
70
|
+
}
|
|
63
71
|
process.exit(1);
|
|
64
72
|
}
|
|
65
73
|
console.log(`Variant ${variantName} joined and cleaned up.`);
|
|
@@ -5,20 +5,21 @@ import {
|
|
|
5
5
|
linkToolResultToTurn,
|
|
6
6
|
recordInbound,
|
|
7
7
|
recordOutbound,
|
|
8
|
-
resolveSleepAction
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
resolveSleepAction,
|
|
9
|
+
willGateMessage
|
|
10
|
+
} from "./chunk-HASADR3E.js";
|
|
11
|
+
import "./chunk-5DBGQBQR.js";
|
|
11
12
|
import "./chunk-X67BDDZR.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-PIZDPY4G.js";
|
|
14
|
+
import "./chunk-RQRO6PC7.js";
|
|
15
|
+
import "./chunk-23UJGVYP.js";
|
|
15
16
|
import "./chunk-UDZLPR34.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-VDZ4I4ZP.js";
|
|
18
|
+
import "./chunk-TAWRJ24T.js";
|
|
19
|
+
import "./chunk-7LT3YZUR.js";
|
|
20
|
+
import "./chunk-IQ7VNWH6.js";
|
|
20
21
|
import "./chunk-LNNI3MS4.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-AP2KQMMW.js";
|
|
22
23
|
import "./chunk-5Y54AE3L.js";
|
|
23
24
|
import "./chunk-TPX6E6PL.js";
|
|
24
25
|
import "./chunk-UFTDRTCP.js";
|
|
@@ -30,6 +31,7 @@ import "./chunk-M77B73VV.js";
|
|
|
30
31
|
import "./chunk-GLM7TVWP.js";
|
|
31
32
|
import "./chunk-EGV6R6UF.js";
|
|
32
33
|
import "./chunk-QUSMYGNQ.js";
|
|
34
|
+
import "./chunk-LGNUFVMR.js";
|
|
33
35
|
import "./chunk-H6X6CKDN.js";
|
|
34
36
|
import "./chunk-2RNMBXD2.js";
|
|
35
37
|
import "./chunk-K3NQKI34.js";
|
|
@@ -39,5 +41,6 @@ export {
|
|
|
39
41
|
linkToolResultToTurn,
|
|
40
42
|
recordInbound,
|
|
41
43
|
recordOutbound,
|
|
42
|
-
resolveSleepAction
|
|
44
|
+
resolveSleepAction,
|
|
45
|
+
willGateMessage
|
|
43
46
|
};
|
|
@@ -22,35 +22,35 @@ var cmd = subcommands({
|
|
|
22
22
|
},
|
|
23
23
|
start: {
|
|
24
24
|
description: "Start a mind",
|
|
25
|
-
run: (args) => import("./start-
|
|
25
|
+
run: (args) => import("./start-XDOUAWN3.js").then((m) => m.run(args))
|
|
26
26
|
},
|
|
27
27
|
stop: {
|
|
28
28
|
description: "Stop a mind",
|
|
29
|
-
run: (args) => import("./stop-
|
|
29
|
+
run: (args) => import("./stop-O62RTEMD.js").then((m) => m.run(args))
|
|
30
30
|
},
|
|
31
31
|
restart: {
|
|
32
32
|
description: "Restart a mind",
|
|
33
|
-
run: (args) => import("./restart-
|
|
33
|
+
run: (args) => import("./restart-R2WFNF5K.js").then((m) => m.run(args))
|
|
34
34
|
},
|
|
35
35
|
delete: {
|
|
36
36
|
description: "Delete a mind",
|
|
37
|
-
run: (args) => import("./delete-
|
|
37
|
+
run: (args) => import("./delete-CYVZUAV2.js").then((m) => m.run(args))
|
|
38
38
|
},
|
|
39
39
|
list: {
|
|
40
40
|
description: "List all minds",
|
|
41
|
-
run: (args) => import("./mind-list-
|
|
41
|
+
run: (args) => import("./mind-list-KNU34SUD.js").then((m) => m.run(args))
|
|
42
42
|
},
|
|
43
43
|
status: {
|
|
44
44
|
description: "Check mind status",
|
|
45
|
-
run: (args) => import("./mind-status-
|
|
45
|
+
run: (args) => import("./mind-status-BPTLQ5Z6.js").then((m) => m.run(args))
|
|
46
46
|
},
|
|
47
47
|
history: {
|
|
48
48
|
description: "View mind activity history",
|
|
49
|
-
run: (args) => import("./mind-history-
|
|
49
|
+
run: (args) => import("./mind-history-RVF6KJ7K.js").then((m) => m.run(transformMindFlag(args)))
|
|
50
50
|
},
|
|
51
51
|
contacts: {
|
|
52
52
|
description: "Who a mind has recently been in contact with",
|
|
53
|
-
run: (args) => import("./mind-contacts-
|
|
53
|
+
run: (args) => import("./mind-contacts-BKUOUJPV.js").then((m) => m.run(transformMindFlag(args)))
|
|
54
54
|
},
|
|
55
55
|
profile: {
|
|
56
56
|
description: "Update mind profile",
|
|
@@ -74,23 +74,23 @@ var cmd = subcommands({
|
|
|
74
74
|
},
|
|
75
75
|
join: {
|
|
76
76
|
description: "Join a variant back into its parent",
|
|
77
|
-
run: (args) => import("./join-
|
|
77
|
+
run: (args) => import("./join-KLRU72JJ.js").then((m) => m.run(args))
|
|
78
78
|
},
|
|
79
79
|
sleep: {
|
|
80
80
|
description: "(legacy) Use 'volute clock sleep' instead",
|
|
81
|
-
run: (args) => import("./mind-sleep-
|
|
81
|
+
run: (args) => import("./mind-sleep-D3DEYAWG.js").then((m) => m.run(args))
|
|
82
82
|
},
|
|
83
83
|
wake: {
|
|
84
84
|
description: "(legacy) Use 'volute clock wake' instead",
|
|
85
|
-
run: (args) => import("./mind-wake-
|
|
85
|
+
run: (args) => import("./mind-wake-DCDFFQKX.js").then((m) => m.run(args))
|
|
86
86
|
},
|
|
87
87
|
seed: {
|
|
88
88
|
description: "(legacy) Use 'volute seed create' instead",
|
|
89
|
-
run: (args) => import("./seed-
|
|
89
|
+
run: (args) => import("./seed-LHZ33UB4.js").then((m) => m.run(args))
|
|
90
90
|
},
|
|
91
91
|
sprout: {
|
|
92
92
|
description: "(legacy) Use 'volute seed sprout' instead",
|
|
93
|
-
run: (args) => import("./sprout-
|
|
93
|
+
run: (args) => import("./sprout-A2PMEF7Z.js").then((m) => m.run(args))
|
|
94
94
|
}
|
|
95
95
|
},
|
|
96
96
|
footer: "Mind name can be omitted (where applicable) if VOLUTE_MIND is set."
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
relativeAge
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HTB7KDRU.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveMindName
|
|
7
7
|
} from "./chunk-BTY4WNFE.js";
|
|
8
|
+
import {
|
|
9
|
+
command
|
|
10
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
11
|
+
import "./chunk-O7IGP7ZW.js";
|
|
8
12
|
import {
|
|
9
13
|
daemonFetch
|
|
10
14
|
} from "./chunk-M74I3HHF.js";
|
|
@@ -12,10 +16,6 @@ import {
|
|
|
12
16
|
getClient,
|
|
13
17
|
urlOf
|
|
14
18
|
} from "./chunk-LOPXTW6H.js";
|
|
15
|
-
import {
|
|
16
|
-
command
|
|
17
|
-
} from "./chunk-TXSA4Q3V.js";
|
|
18
|
-
import "./chunk-O7IGP7ZW.js";
|
|
19
19
|
import "./chunk-FNJCBRD3.js";
|
|
20
20
|
import "./chunk-K3NQKI34.js";
|
|
21
21
|
|
|
@@ -7,6 +7,13 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
resolveMindName
|
|
9
9
|
} from "./chunk-BTY4WNFE.js";
|
|
10
|
+
import {
|
|
11
|
+
readStdin
|
|
12
|
+
} from "./chunk-33ODGMFZ.js";
|
|
13
|
+
import {
|
|
14
|
+
command
|
|
15
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
16
|
+
import "./chunk-O7IGP7ZW.js";
|
|
10
17
|
import {
|
|
11
18
|
daemonFetch
|
|
12
19
|
} from "./chunk-M74I3HHF.js";
|
|
@@ -14,10 +21,6 @@ import {
|
|
|
14
21
|
getClient,
|
|
15
22
|
urlOf
|
|
16
23
|
} from "./chunk-LOPXTW6H.js";
|
|
17
|
-
import {
|
|
18
|
-
command
|
|
19
|
-
} from "./chunk-TXSA4Q3V.js";
|
|
20
|
-
import "./chunk-O7IGP7ZW.js";
|
|
21
24
|
import "./chunk-FNJCBRD3.js";
|
|
22
25
|
import "./chunk-K3NQKI34.js";
|
|
23
26
|
|
|
@@ -35,7 +38,7 @@ function eventLabel(row) {
|
|
|
35
38
|
}
|
|
36
39
|
return row.channel?.split(":")[1] || "event";
|
|
37
40
|
}
|
|
38
|
-
function formatRow(row) {
|
|
41
|
+
function formatRow(row, showTurn = false) {
|
|
39
42
|
const time = new Date(normalizeTimestamp(row.created_at)).toLocaleString();
|
|
40
43
|
const channel = row.channel ?? "";
|
|
41
44
|
switch (row.type) {
|
|
@@ -104,7 +107,8 @@ function formatRow(row) {
|
|
|
104
107
|
} catch {
|
|
105
108
|
}
|
|
106
109
|
}
|
|
107
|
-
|
|
110
|
+
const turn = showTurn && row.turn_id ? ` (turn ${row.turn_id})` : "";
|
|
111
|
+
return `[${time}] [summary${range}]${turn} ${row.content ?? ""}`;
|
|
108
112
|
}
|
|
109
113
|
case "session_start":
|
|
110
114
|
return `[${time}] [session_start] ${row.thread ?? ""}`;
|
|
@@ -112,7 +116,7 @@ function formatRow(row) {
|
|
|
112
116
|
return `[${time}] [${row.type}] ${row.content ?? ""}`;
|
|
113
117
|
}
|
|
114
118
|
}
|
|
115
|
-
function formatRowCompact(row) {
|
|
119
|
+
function formatRowCompact(row, showTurn = false) {
|
|
116
120
|
const time = compactTime(row.created_at);
|
|
117
121
|
const channel = row.channel ?? "";
|
|
118
122
|
switch (row.type) {
|
|
@@ -164,7 +168,8 @@ function formatRowCompact(row) {
|
|
|
164
168
|
} catch {
|
|
165
169
|
}
|
|
166
170
|
}
|
|
167
|
-
|
|
171
|
+
const turn = showTurn && row.turn_id ? ` (turn ${row.turn_id})` : "";
|
|
172
|
+
return `[${time}] [summary${range}]${turn} ${row.content ?? ""}`;
|
|
168
173
|
}
|
|
169
174
|
case "session_start":
|
|
170
175
|
return `[${time}] [session_start] ${row.thread ?? ""}`;
|
|
@@ -251,16 +256,81 @@ var cmd = command({
|
|
|
251
256
|
preset: { type: "string", description: "Use a preset view" },
|
|
252
257
|
limit: { type: "string", description: "Number of entries to show" },
|
|
253
258
|
full: { type: "boolean", description: "Show full details" },
|
|
259
|
+
provisional: {
|
|
260
|
+
type: "boolean",
|
|
261
|
+
description: "Only turn summaries you haven't rewritten yet (shows turn ids)"
|
|
262
|
+
},
|
|
254
263
|
period: { type: "string", description: "Time period (hour, day, week, month)" },
|
|
255
264
|
from: { type: "string", description: "Start date" },
|
|
256
|
-
to: { type: "string", description: "End date" }
|
|
265
|
+
to: { type: "string", description: "End date" },
|
|
266
|
+
write: {
|
|
267
|
+
type: "boolean",
|
|
268
|
+
description: "Replace a turn's provisional summary with your own account (needs --turn)"
|
|
269
|
+
},
|
|
270
|
+
turn: { type: "string", description: "Turn id to write a summary for (with --write)" },
|
|
271
|
+
text: { type: "string", description: "Summary text for --write (or pipe it via stdin)" }
|
|
257
272
|
},
|
|
258
273
|
examples: [
|
|
259
274
|
"volute mind history --mind myname",
|
|
260
275
|
"volute mind history --mind myname --full",
|
|
261
|
-
"volute mind history --mind myname --period day"
|
|
276
|
+
"volute mind history --mind myname --period day",
|
|
277
|
+
"volute mind history --mind myname --provisional",
|
|
278
|
+
'volute mind history --mind myname --write --turn <id> --text "I traced the bug and fixed it."'
|
|
262
279
|
],
|
|
263
280
|
run: async ({ flags }) => {
|
|
281
|
+
if (flags.write) {
|
|
282
|
+
const readFlags = [
|
|
283
|
+
["--channel", flags.channel],
|
|
284
|
+
["--thread", flags.thread],
|
|
285
|
+
["--preset", flags.preset],
|
|
286
|
+
["--limit", flags.limit],
|
|
287
|
+
["--from", flags.from],
|
|
288
|
+
["--to", flags.to],
|
|
289
|
+
["--period", flags.period],
|
|
290
|
+
["--full", flags.full],
|
|
291
|
+
["--provisional", flags.provisional]
|
|
292
|
+
].filter(([, v]) => v);
|
|
293
|
+
if (readFlags.length > 0) {
|
|
294
|
+
console.error(
|
|
295
|
+
`--write can't be combined with read flags (${readFlags.map(([n]) => n).join(", ")}); it takes only --turn and --text.`
|
|
296
|
+
);
|
|
297
|
+
process.exit(1);
|
|
298
|
+
}
|
|
299
|
+
const name2 = resolveMindName(flags);
|
|
300
|
+
const turnId = flags.turn;
|
|
301
|
+
if (!turnId) {
|
|
302
|
+
console.error("--write requires --turn <id> (see 'volute mind history --provisional')");
|
|
303
|
+
process.exit(1);
|
|
304
|
+
}
|
|
305
|
+
const text = flags.text ?? await readStdin();
|
|
306
|
+
if (!text) {
|
|
307
|
+
console.error("Provide --text or pipe the summary via stdin");
|
|
308
|
+
process.exit(1);
|
|
309
|
+
}
|
|
310
|
+
const client2 = getClient();
|
|
311
|
+
const url2 = client2.api.minds[":name"]["turn-summaries"].$url({ param: { name: name2 } });
|
|
312
|
+
const res2 = await daemonFetch(urlOf(url2), {
|
|
313
|
+
method: "PUT",
|
|
314
|
+
headers: { "Content-Type": "application/json" },
|
|
315
|
+
body: JSON.stringify({ summaries: [{ turnId, content: text }] })
|
|
316
|
+
});
|
|
317
|
+
if (!res2.ok) {
|
|
318
|
+
let msg = `Failed to save summary: ${res2.status}`;
|
|
319
|
+
try {
|
|
320
|
+
const data = await res2.json();
|
|
321
|
+
if (data.error) msg = data.error;
|
|
322
|
+
} catch {
|
|
323
|
+
}
|
|
324
|
+
console.error(msg);
|
|
325
|
+
process.exit(1);
|
|
326
|
+
}
|
|
327
|
+
console.log(`Saved your summary for turn ${turnId.slice(0, 8)}.`);
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
if (flags.turn || flags.text) {
|
|
331
|
+
console.error("--turn and --text only apply with --write");
|
|
332
|
+
process.exit(1);
|
|
333
|
+
}
|
|
264
334
|
if (flags.period) {
|
|
265
335
|
const validPeriods = ["hour", "day", "week", "month"];
|
|
266
336
|
if (!validPeriods.includes(flags.period)) {
|
|
@@ -340,6 +410,7 @@ var cmd = command({
|
|
|
340
410
|
if (flags.preset) url.searchParams.set("preset", flags.preset);
|
|
341
411
|
if (flags.limit) url.searchParams.set("limit", flags.limit);
|
|
342
412
|
if (flags.full) url.searchParams.set("full", "true");
|
|
413
|
+
if (flags.provisional) url.searchParams.set("provisional", "true");
|
|
343
414
|
const res = await daemonFetch(urlOf(url));
|
|
344
415
|
if (!res.ok) {
|
|
345
416
|
let errorMsg = `Failed to get history: ${res.status}`;
|
|
@@ -353,9 +424,10 @@ var cmd = command({
|
|
|
353
424
|
}
|
|
354
425
|
const rows = await res.json();
|
|
355
426
|
const compact = isCompact();
|
|
427
|
+
const showTurn = !!flags.provisional;
|
|
356
428
|
for (const row of rows.reverse()) {
|
|
357
429
|
if (compact && (row.type === "done" || row.type === "usage")) continue;
|
|
358
|
-
console.log(compact ? formatRowCompact(row) : formatRow(row));
|
|
430
|
+
console.log(compact ? formatRowCompact(row, showTurn) : formatRow(row, showTurn));
|
|
359
431
|
}
|
|
360
432
|
}
|
|
361
433
|
});
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
relativeAge,
|
|
4
4
|
run
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-M74I3HHF.js";
|
|
5
|
+
} from "./chunk-HTB7KDRU.js";
|
|
7
6
|
import "./chunk-TXSA4Q3V.js";
|
|
8
7
|
import "./chunk-O7IGP7ZW.js";
|
|
8
|
+
import "./chunk-M74I3HHF.js";
|
|
9
9
|
import "./chunk-FNJCBRD3.js";
|
|
10
10
|
import "./chunk-K3NQKI34.js";
|
|
11
11
|
export {
|
|
@@ -8,19 +8,19 @@ import {
|
|
|
8
8
|
stopMindFull,
|
|
9
9
|
stopSpiritFull,
|
|
10
10
|
wakeMind
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-HASADR3E.js";
|
|
12
|
+
import "./chunk-5DBGQBQR.js";
|
|
13
13
|
import "./chunk-X67BDDZR.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-PIZDPY4G.js";
|
|
15
|
+
import "./chunk-RQRO6PC7.js";
|
|
16
|
+
import "./chunk-23UJGVYP.js";
|
|
17
17
|
import "./chunk-UDZLPR34.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-VDZ4I4ZP.js";
|
|
19
|
+
import "./chunk-TAWRJ24T.js";
|
|
20
|
+
import "./chunk-7LT3YZUR.js";
|
|
21
|
+
import "./chunk-IQ7VNWH6.js";
|
|
22
22
|
import "./chunk-LNNI3MS4.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-AP2KQMMW.js";
|
|
24
24
|
import "./chunk-5Y54AE3L.js";
|
|
25
25
|
import "./chunk-TPX6E6PL.js";
|
|
26
26
|
import "./chunk-UFTDRTCP.js";
|
|
@@ -32,6 +32,7 @@ import "./chunk-M77B73VV.js";
|
|
|
32
32
|
import "./chunk-GLM7TVWP.js";
|
|
33
33
|
import "./chunk-EGV6R6UF.js";
|
|
34
34
|
import "./chunk-QUSMYGNQ.js";
|
|
35
|
+
import "./chunk-LGNUFVMR.js";
|
|
35
36
|
import "./chunk-H6X6CKDN.js";
|
|
36
37
|
import "./chunk-2RNMBXD2.js";
|
|
37
38
|
import "./chunk-K3NQKI34.js";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
parseDuration
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LN7XJ56R.js";
|
|
5
5
|
import "./chunk-7YJY3F2R.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveMindName
|
|
8
8
|
} from "./chunk-BTY4WNFE.js";
|
|
9
|
-
import {
|
|
10
|
-
daemonFetch
|
|
11
|
-
} from "./chunk-M74I3HHF.js";
|
|
12
|
-
import "./chunk-LOPXTW6H.js";
|
|
13
9
|
import {
|
|
14
10
|
command
|
|
15
11
|
} from "./chunk-TXSA4Q3V.js";
|
|
16
12
|
import "./chunk-O7IGP7ZW.js";
|
|
13
|
+
import {
|
|
14
|
+
daemonFetch
|
|
15
|
+
} from "./chunk-M74I3HHF.js";
|
|
16
|
+
import "./chunk-LOPXTW6H.js";
|
|
17
17
|
import "./chunk-FNJCBRD3.js";
|
|
18
18
|
import "./chunk-K3NQKI34.js";
|
|
19
19
|
|
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-BTY4WNFE.js";
|
|
5
|
-
import {
|
|
6
|
-
daemonFetch
|
|
7
|
-
} from "./chunk-M74I3HHF.js";
|
|
8
5
|
import {
|
|
9
6
|
command
|
|
10
7
|
} from "./chunk-TXSA4Q3V.js";
|
|
11
8
|
import "./chunk-O7IGP7ZW.js";
|
|
9
|
+
import {
|
|
10
|
+
daemonFetch
|
|
11
|
+
} from "./chunk-M74I3HHF.js";
|
|
12
12
|
import "./chunk-FNJCBRD3.js";
|
|
13
|
+
import {
|
|
14
|
+
formatTokens
|
|
15
|
+
} from "./chunk-5RBEEAKW.js";
|
|
13
16
|
import "./chunk-K3NQKI34.js";
|
|
14
17
|
|
|
15
18
|
// packages/cli/src/commands/mind-status.ts
|
|
@@ -42,6 +45,15 @@ var cmd = command({
|
|
|
42
45
|
if (mind.stage) console.log(`Stage: ${mind.stage}`);
|
|
43
46
|
if (mind.parent) console.log(`Parent: ${mind.parent}`);
|
|
44
47
|
if (mind.model) console.log(`Model: ${mind.model}`);
|
|
48
|
+
if (mind.memory) {
|
|
49
|
+
let line = `Memory: ${formatTokens(mind.memory.estTokens)} (${Math.round(mind.memory.bytes / 1024)}KB), always loaded`;
|
|
50
|
+
if (mind.memory.overHardCap) {
|
|
51
|
+
line += ` \u2014 exceeds the load cap (${formatTokens(mind.memory.hardCapTokens)}); only the head is loaded`;
|
|
52
|
+
} else if (mind.memory.overBudget) {
|
|
53
|
+
line += ` \u2014 over the recommended budget (${formatTokens(mind.memory.softBudgetTokens)}); consider consolidating`;
|
|
54
|
+
}
|
|
55
|
+
console.log(line);
|
|
56
|
+
}
|
|
45
57
|
if (mind.templateStale) {
|
|
46
58
|
console.log(`Template: outdated \u2014 run 'volute mind upgrade ${mind.name}'`);
|
|
47
59
|
}
|
|
@@ -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.53.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",
|
|
@@ -71,7 +71,7 @@ var package_default = {
|
|
|
71
71
|
},
|
|
72
72
|
dependencies: {
|
|
73
73
|
"@anthropic-ai/sandbox-runtime": "^0.0.65",
|
|
74
|
-
"@earendil-works/pi-ai": "
|
|
74
|
+
"@earendil-works/pi-ai": "0.80.6",
|
|
75
75
|
"@hono/node-server": "^2.0.8",
|
|
76
76
|
"@hono/zod-validator": "^0.8.0",
|
|
77
77
|
"@libsql/client": "^0.17.4",
|