volute 0.50.0 → 0.52.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/{activity-events-H7YI3BTF.js → activity-events-LQII6PZS.js} +3 -3
- package/dist/{ai-service-V4CTNGI3.js → ai-service-YW5SWCSB.js} +7 -3
- package/dist/{archive-ORM3ENHI.js → archive-FOHGXHPT.js} +3 -3
- package/dist/{auth-DT7GY7EZ.js → auth-KRDSM55Q.js} +6 -4
- package/dist/{avatar-image-QEPAP3A5.js → avatar-image-52WGXLHV.js} +3 -3
- package/dist/{backup-IE6PMXJO.js → backup-YVGV2ZNM.js} +7 -7
- package/dist/{chat-W5K6HCBE.js → chat-VAZ25KVT.js} +4 -4
- package/dist/{chunk-5IIVOWSP.js → chunk-2RNMBXD2.js} +16 -0
- package/dist/{chunk-U3EJJ7JN.js → chunk-5N32EN4O.js} +2 -2
- package/dist/{chunk-ZUG76D3P.js → chunk-5Y54AE3L.js} +1 -1
- package/dist/{chunk-5FVANDON.js → chunk-6NLW72HP.js} +2 -2
- package/dist/{chunk-ALIVXDM4.js → chunk-724DVYHU.js} +95 -51
- package/dist/{chunk-UC6BNMGT.js → chunk-7LT3YZUR.js} +15 -3
- package/dist/{chunk-PW65BXY5.js → chunk-7YJY3F2R.js} +11 -1
- package/dist/{chunk-7OZWKHA3.js → chunk-AXFLY5GU.js} +28 -5
- package/dist/{chunk-SSNZ6ZNN.js → chunk-CV6BNGFK.js} +3 -3
- package/dist/{chunk-MLZBBLMT.js → chunk-CW7BQKF6.js} +4 -4
- package/dist/{chunk-QFVGPKJI.js → chunk-DMK5ASKV.js} +1 -1
- package/dist/{chunk-WBBKYUGF.js → chunk-EDR47UE2.js} +2 -2
- package/dist/{chunk-632FJ23O.js → chunk-EGV6R6UF.js} +26 -7
- package/dist/{chunk-KAEZOVP6.js → chunk-FLIEXG2T.js} +1 -1
- package/dist/{chunk-5TPC4KCV.js → chunk-FXWBFDQR.js} +2 -2
- package/dist/{chunk-74T3CEXK.js → chunk-G7A5LEVI.js} +2 -2
- package/dist/{chunk-7UWXAJMK.js → chunk-GLM7TVWP.js} +1 -1
- package/dist/{chunk-CAIYV33P.js → chunk-H6X6CKDN.js} +2 -1
- package/dist/{chunk-C3KLHJDB.js → chunk-HTRSSOHY.js} +1 -1
- package/dist/{chunk-77IZUVBB.js → chunk-I7U5EEZC.js} +2 -2
- package/dist/{chunk-X67VT4QO.js → chunk-ICXY54ZC.js} +1 -1
- package/dist/{chunk-HW6Q7AMB.js → chunk-ITK6HV47.js} +6 -7
- package/dist/{chunk-5PKFJHCR.js → chunk-JHKBALS2.js} +2 -2
- package/dist/{chunk-SFRYRW37.js → chunk-K2F237KS.js} +9 -9
- package/dist/{chunk-7XDOTN4R.js → chunk-L7BKTZ5U.js} +1 -1
- package/dist/{chunk-AFSLNUTT.js → chunk-LAUCO2HC.js} +1 -1
- package/dist/{chunk-AJWFDIEY.js → chunk-M77B73VV.js} +1 -1
- package/dist/{chunk-4CN7OCJE.js → chunk-OXWUEU5V.js} +2 -2
- package/dist/{chunk-TGJHGVBZ.js → chunk-RPPTGPYF.js} +4 -4
- package/dist/{chunk-JI67D7O2.js → chunk-RU74YG46.js} +120 -25
- package/dist/{chunk-7FDWPQCU.js → chunk-SW2U6HRB.js} +6 -6
- package/dist/{chunk-574M6I7F.js → chunk-TPX6E6PL.js} +3 -3
- package/dist/{chunk-3BAFMGCJ.js → chunk-U54PJPTB.js} +2 -2
- package/dist/{chunk-6BM2I736.js → chunk-UDZLPR34.js} +1 -1
- package/dist/{chunk-E5S3ILVA.js → chunk-UFTDRTCP.js} +1 -1
- package/dist/{chunk-YQOYZ6G7.js → chunk-VPOMJMV6.js} +2 -2
- package/dist/{chunk-RRZ4RQQU.js → chunk-X67BDDZR.js} +5 -7
- package/dist/{chunk-636GFQNE.js → chunk-XRWUQPCA.js} +8 -7
- package/dist/{chunk-7DXLIYPY.js → chunk-YVR6EHWL.js} +6 -6
- package/dist/{chunk-EQKSRVDE.js → chunk-ZEZQNP2G.js} +113 -49
- package/dist/cli.js +19 -19
- package/dist/{clock-LH7UFNLJ.js → clock-ZT5YT6HA.js} +2 -2
- package/dist/{cloud-sync-IDJFVDEP.js → cloud-sync-H7EWZASD.js} +22 -22
- package/dist/{conversations-S2232Y5I.js → conversations-ZL6PHROD.js} +4 -4
- package/dist/{create-2M7DAHQX.js → create-G2RIKQYK.js} +1 -1
- package/dist/{daemon-restart-2AAGYFHE.js → daemon-restart-4FWUA5JF.js} +6 -6
- package/dist/daemon.js +622 -340
- package/dist/{db-QAY45Z56.js → db-BONH4SUG.js} +2 -2
- package/dist/{delete-O7PEFQDF.js → delete-CYVZUAV2.js} +4 -0
- package/dist/delivery-manager-VYXVKUMP.js +35 -0
- package/dist/{delivery-router-JE7SHYNU.js → delivery-router-RHANNTAC.js} +3 -3
- package/dist/{down-D4IRNEMJ.js → down-QSNEMTTX.js} +5 -5
- package/dist/echo-text-PEEV7FQU.js +39 -0
- package/dist/{env-ABM5IMA7.js → env-IBW2QI6K.js} +1 -1
- package/dist/{env-AZK5X4W7.js → env-SQFCWW52.js} +3 -3
- package/dist/{exec-2H65LMTA.js → exec-ABD3DYA2.js} +3 -3
- package/dist/{export-3E3EL6W3.js → export-VBNWM7I4.js} +3 -3
- package/dist/{extensions-7KP3X6G7.js → extensions-N6L5NYTK.js} +22 -22
- package/dist/{files-6BMKVG5G.js → files-BRY5RRIM.js} +3 -3
- package/dist/{import-UPNTEBBT.js → import-DB2KULRO.js} +6 -6
- package/dist/{isolation-OKDFM6WA.js → isolation-GVV2IBAU.js} +3 -3
- package/dist/{join-PYA36HEC.js → join-KLRU72JJ.js} +10 -2
- package/dist/{list-4BVGH7AN.js → list-UQGIW7OF.js} +1 -1
- package/dist/{login-MOXVLULE.js → login-SB5OENMV.js} +2 -2
- package/dist/{logout-DWD3OQVT.js → logout-YFZAJRPY.js} +2 -2
- package/dist/message-delivery-7URC52ME.js +43 -0
- package/dist/{migrate-thread-config-4A5LW36Z.js → migrate-thread-config-EQSEP2XG.js} +2 -2
- package/dist/{mind-NYRALSV2.js → mind-NEXGT3KE.js} +9 -9
- package/dist/{mind-activity-tracker-L7GCYXQR.js → mind-activity-tracker-QF6DCX2X.js} +4 -4
- package/dist/{mind-history-NXXOOTX6.js → mind-history-OGNR4L7W.js} +1 -1
- package/dist/mind-service-E26ZQXDS.js +47 -0
- package/dist/{mind-sleep-TH6BRQ5X.js → mind-sleep-LZAFBDZD.js} +2 -2
- package/dist/{package-XYSV7NUT.js → package-2W2XKSIP.js} +2 -2
- package/dist/{prompts-QKFPX6DQ.js → prompts-NBO3HRK3.js} +3 -3
- package/dist/{read-ZXGUT4QC.js → read-RJ5NAW5J.js} +3 -14
- package/dist/{registry-4UF6OCOE.js → registry-TRC2HJXR.js} +2 -2
- package/dist/{sandbox-EGEU5GGE.js → sandbox-NNWCTHRI.js} +3 -3
- package/dist/scheduler-JTTWZDYU.js +25 -0
- package/dist/{schema-C2GIPD4V.js → schema-ZZQVM4GR.js} +3 -1
- package/dist/{seed-3IMBOAGK.js → seed-64XEHRUP.js} +1 -1
- package/dist/{seed-cmd-U73XVQMI.js → seed-cmd-UEL2QB3Q.js} +2 -2
- package/dist/{seed-create-FBLNVSUP.js → seed-create-4JRQDPGA.js} +3 -3
- package/dist/{seed-readiness-QRA46ZJQ.js → seed-readiness-DYOVCYHN.js} +4 -4
- package/dist/{seed-sprout-3B4SZX7J.js → seed-sprout-NIDIOJXT.js} +7 -7
- package/dist/{send-NBRZJXKX.js → send-2YKOZJJ5.js} +81 -49
- package/dist/{service-XMXAXGJD.js → service-XQPMZAGI.js} +4 -4
- package/dist/{service-install-MOKTEG7B.js → service-install-2EWD7KXD.js} +5 -5
- package/dist/{setup-JGYAXXW7.js → setup-4IX6PCD3.js} +6 -6
- package/dist/{setup-CAJFOR2N.js → setup-WZSXHHRJ.js} +2 -2
- package/dist/{skill-NXIHDQCG.js → skill-B5OJEQUA.js} +1 -1
- package/dist/skills/volute-mind/references/variants.md +1 -1
- package/dist/{skills-5MSMT7PT.js → skills-MPUALV3S.js} +4 -4
- package/dist/sleep-manager-OFP2GFXF.js +41 -0
- package/dist/{spirit-IL5EMWYZ.js → spirit-4ECYIVGE.js} +7 -7
- package/dist/spirit-availability-Y54Y3675.js +42 -0
- package/dist/{sprout-UPXGJ5HX.js → sprout-GJMZFRGZ.js} +1 -1
- package/dist/{status-IL67CYM4.js → status-MWLE3RVC.js} +5 -5
- package/dist/{system-events-A6IGCEC3.js → system-events-V43HDA3T.js} +5 -3
- package/dist/{tailscale-SJUW2ETR.js → tailscale-KHNZFC7L.js} +2 -2
- package/dist/{template-hash-GSOUARW4.js → template-hash-YKWMVYMM.js} +2 -2
- package/dist/{template-staleness-T27VCGYA.js → template-staleness-PY2CULH6.js} +5 -5
- package/dist/{turn-tracker-6EI2EL7G.js → turn-tracker-C5PVIC3B.js} +5 -5
- package/dist/{up-CLL4665A.js → up-H6LJZDRK.js} +5 -5
- package/dist/{update-HVAUCQPN.js → update-CIWI2JYA.js} +5 -5
- package/dist/{update-check-2MGBBAFF.js → update-check-SZ7B5IFI.js} +3 -3
- package/dist/variant-cleanup-STC6B5HR.js +22 -0
- package/dist/{version-notify-7BUHWZNT.js → version-notify-LBVHH5YV.js} +8 -8
- package/dist/web-assets/assets/index-B_eYTa3R.js +97 -0
- package/dist/web-assets/assets/index-DhZrzddW.css +1 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0018_api_tokens.sql +20 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +2 -2
- package/templates/_base/{biome.json.tmpl → biome.json} +2 -1
- package/templates/_base/gitignore +44 -0
- package/templates/_base/home/public/.gitkeep +0 -0
- package/templates/_base/src/lib/auto-commit.ts +49 -11
- package/templates/_base/src/lib/format-prefix.ts +15 -8
- package/templates/_base/src/lib/router.ts +13 -8
- package/templates/claude/volute-template.json +1 -3
- package/templates/codex/volute-template.json +1 -3
- package/templates/pi/{package.json.tmpl → package.json} +2 -2
- package/templates/pi/volute-template.json +1 -3
- package/dist/delivery-manager-B4OKWD2P.js +0 -33
- package/dist/echo-text-WYAAODBV.js +0 -39
- package/dist/message-delivery-3456PXB7.js +0 -43
- package/dist/mind-service-5TA7UJAT.js +0 -47
- package/dist/scheduler-UV6RUJ7P.js +0 -25
- package/dist/sleep-manager-LIEPO6WG.js +0 -41
- package/dist/spirit-availability-YFEGJNJ2.js +0 -42
- package/dist/variant-cleanup-HJ7Z75R6.js +0 -22
- package/dist/web-assets/assets/index-ClsUcXiW.js +0 -95
- package/dist/web-assets/assets/index-Dz3wTbtR.css +0 -1
- /package/templates/_base/home/.config/{config.json.tmpl → config.json} +0 -0
- /package/templates/claude/{package.json.tmpl → package.json} +0 -0
- /package/templates/codex/home/.config/{config.json.tmpl → config.json} +0 -0
- /package/templates/codex/{package.json.tmpl → package.json} +0 -0
- /package/templates/pi/home/.config/{config.json.tmpl → config.json} +0 -0
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
shellTempWritePaths,
|
|
10
10
|
voluteCliPaths,
|
|
11
11
|
wrapForSandbox
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-5Y54AE3L.js";
|
|
13
13
|
import "./chunk-QUSMYGNQ.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-H6X6CKDN.js";
|
|
15
|
+
import "./chunk-2RNMBXD2.js";
|
|
16
16
|
import "./chunk-K3NQKI34.js";
|
|
17
17
|
export {
|
|
18
18
|
SandboxUnavailableError,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
Scheduler,
|
|
4
|
+
getScheduler,
|
|
5
|
+
initScheduler
|
|
6
|
+
} from "./chunk-SW2U6HRB.js";
|
|
7
|
+
import "./chunk-724DVYHU.js";
|
|
8
|
+
import "./chunk-YVR6EHWL.js";
|
|
9
|
+
import "./chunk-AXFLY5GU.js";
|
|
10
|
+
import "./chunk-LNNI3MS4.js";
|
|
11
|
+
import "./chunk-FXWBFDQR.js";
|
|
12
|
+
import "./chunk-5Y54AE3L.js";
|
|
13
|
+
import "./chunk-WCFSBH33.js";
|
|
14
|
+
import "./chunk-M77B73VV.js";
|
|
15
|
+
import "./chunk-GLM7TVWP.js";
|
|
16
|
+
import "./chunk-EGV6R6UF.js";
|
|
17
|
+
import "./chunk-QUSMYGNQ.js";
|
|
18
|
+
import "./chunk-H6X6CKDN.js";
|
|
19
|
+
import "./chunk-2RNMBXD2.js";
|
|
20
|
+
import "./chunk-K3NQKI34.js";
|
|
21
|
+
export {
|
|
22
|
+
Scheduler,
|
|
23
|
+
getScheduler,
|
|
24
|
+
initScheduler
|
|
25
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
activity,
|
|
4
|
+
apiTokens,
|
|
4
5
|
channelGates,
|
|
5
6
|
channels,
|
|
6
7
|
conversationParticipants,
|
|
@@ -17,10 +18,11 @@ import {
|
|
|
17
18
|
systemPrompts,
|
|
18
19
|
turns,
|
|
19
20
|
users
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-2RNMBXD2.js";
|
|
21
22
|
import "./chunk-K3NQKI34.js";
|
|
22
23
|
export {
|
|
23
24
|
activity,
|
|
25
|
+
apiTokens,
|
|
24
26
|
channelGates,
|
|
25
27
|
channels,
|
|
26
28
|
conversationParticipants,
|
|
@@ -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-4JRQDPGA.js").then((m) => m.run(args));
|
|
8
8
|
}
|
|
9
9
|
export {
|
|
10
10
|
run
|
|
@@ -12,11 +12,11 @@ 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-4JRQDPGA.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-NIDIOJXT.js").then((m) => m.run(args))
|
|
20
20
|
},
|
|
21
21
|
check: {
|
|
22
22
|
description: "Check seed readiness",
|
|
@@ -53,13 +53,13 @@ var cmd = command({
|
|
|
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-YW5SWCSB.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-4ECYIVGE.js");
|
|
62
|
+
const { qualifyModelId } = await import("./ai-service-YW5SWCSB.js");
|
|
63
63
|
const spiritModel = getSpiritModel();
|
|
64
64
|
if (spiritModel) {
|
|
65
65
|
model = template === "pi" ? qualifyModelId(spiritModel) : spiritModel;
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
evaluateSeedChecklist,
|
|
4
4
|
isMemoryWritten,
|
|
5
5
|
isSoulWritten
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-JHKBALS2.js";
|
|
7
|
+
import "./chunk-FXWBFDQR.js";
|
|
8
8
|
import "./chunk-DW4TRDOZ.js";
|
|
9
9
|
import "./chunk-WCFSBH33.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-H6X6CKDN.js";
|
|
11
|
+
import "./chunk-2RNMBXD2.js";
|
|
12
12
|
import "./chunk-K3NQKI34.js";
|
|
13
13
|
export {
|
|
14
14
|
evaluateSeedChecklist,
|
|
@@ -9,19 +9,19 @@ import "./chunk-O7IGP7ZW.js";
|
|
|
9
9
|
import "./chunk-FNJCBRD3.js";
|
|
10
10
|
import {
|
|
11
11
|
evaluateSeedChecklist
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JHKBALS2.js";
|
|
13
13
|
import {
|
|
14
14
|
getStandardSkillsWithExtensions
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-RPPTGPYF.js";
|
|
16
|
+
import "./chunk-FXWBFDQR.js";
|
|
17
17
|
import "./chunk-DW4TRDOZ.js";
|
|
18
18
|
import "./chunk-WCFSBH33.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-M77B73VV.js";
|
|
20
20
|
import "./chunk-QUSMYGNQ.js";
|
|
21
21
|
import {
|
|
22
22
|
mindDir
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-H6X6CKDN.js";
|
|
24
|
+
import "./chunk-2RNMBXD2.js";
|
|
25
25
|
import "./chunk-K3NQKI34.js";
|
|
26
26
|
|
|
27
27
|
// packages/cli/src/commands/seed-sprout.ts
|
|
@@ -74,7 +74,7 @@ var cmd = command({
|
|
|
74
74
|
process.exit(1);
|
|
75
75
|
}
|
|
76
76
|
const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
|
|
77
|
-
const { mindSkillsDir } = await import("./skills-
|
|
77
|
+
const { mindSkillsDir } = await import("./skills-MPUALV3S.js");
|
|
78
78
|
const client = getClient();
|
|
79
79
|
const failedSkills = [];
|
|
80
80
|
for (const skillId of getStandardSkillsWithExtensions()) {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-33ODGMFZ.js";
|
|
5
5
|
import {
|
|
6
6
|
isCompact
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-7YJY3F2R.js";
|
|
8
8
|
import {
|
|
9
9
|
daemonFetch
|
|
10
10
|
} from "./chunk-M74I3HHF.js";
|
|
@@ -19,9 +19,9 @@ import "./chunk-O7IGP7ZW.js";
|
|
|
19
19
|
import "./chunk-FNJCBRD3.js";
|
|
20
20
|
import {
|
|
21
21
|
formatFileSize
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-DMK5ASKV.js";
|
|
23
|
+
import "./chunk-H6X6CKDN.js";
|
|
24
|
+
import "./chunk-2RNMBXD2.js";
|
|
25
25
|
import "./chunk-K3NQKI34.js";
|
|
26
26
|
|
|
27
27
|
// packages/cli/src/commands/send.ts
|
|
@@ -231,67 +231,90 @@ To reach a person, use their username from the message prefix (e.g. volute chat
|
|
|
231
231
|
);
|
|
232
232
|
process.exit(1);
|
|
233
233
|
}
|
|
234
|
+
let parsed = parseTarget(target);
|
|
235
|
+
if (!parsed.isDM && parsed.platform === "volute" && await isMind(parsed.identifier)) {
|
|
236
|
+
parsed = {
|
|
237
|
+
platform: "volute",
|
|
238
|
+
identifier: `@${parsed.identifier}`,
|
|
239
|
+
uri: `@${parsed.identifier}`,
|
|
240
|
+
isDM: true
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
const dmTargetName = parsed.isDM && parsed.platform === "volute" ? parsed.identifier.slice(1) : void 0;
|
|
234
244
|
if (flags.file) {
|
|
245
|
+
if (!dmTargetName || !await isMind(dmTargetName)) {
|
|
246
|
+
console.error(
|
|
247
|
+
`--file can only attach to a direct message to a mind \u2014 e.g.
|
|
248
|
+
volute chat send @mind "here you go" --file <path>
|
|
249
|
+
Channels and non-mind recipients can't receive a file share.`
|
|
250
|
+
);
|
|
251
|
+
process.exit(1);
|
|
252
|
+
}
|
|
253
|
+
if (!message && images) {
|
|
254
|
+
console.error(
|
|
255
|
+
"Can't attach an image and a file without a message. Send the image with a message, or send the file on its own."
|
|
256
|
+
);
|
|
257
|
+
process.exit(1);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const stageAttachedFile = async (afterSend) => {
|
|
235
261
|
const filePath = flags.file;
|
|
236
|
-
const
|
|
237
|
-
const
|
|
262
|
+
const targetName = dmTargetName;
|
|
263
|
+
const failStaging = (reason) => {
|
|
264
|
+
console.error(
|
|
265
|
+
afterSend ? `Your message was delivered. Only the file failed: ${reason}
|
|
266
|
+
Retry the attachment with: volute chat send ${target} --file ${filePath} (no message) \u2014 sending the whole command again would duplicate the message.` : reason
|
|
267
|
+
);
|
|
268
|
+
process.exit(1);
|
|
269
|
+
};
|
|
270
|
+
const postStaging = async (path, body) => {
|
|
271
|
+
let res;
|
|
272
|
+
try {
|
|
273
|
+
res = await daemonFetch(path, {
|
|
274
|
+
method: "POST",
|
|
275
|
+
headers: { "Content-Type": "application/json" },
|
|
276
|
+
body: JSON.stringify(body)
|
|
277
|
+
});
|
|
278
|
+
} catch (err) {
|
|
279
|
+
return failStaging(`couldn't reach the daemon (${err.message})`);
|
|
280
|
+
}
|
|
281
|
+
if (!res.ok) {
|
|
282
|
+
const data2 = await res.json().catch(() => ({}));
|
|
283
|
+
return failStaging(data2.error ?? `daemon returned ${res.status}`);
|
|
284
|
+
}
|
|
285
|
+
const data = await res.json().catch(() => ({}));
|
|
286
|
+
return data.id ?? "?";
|
|
287
|
+
};
|
|
238
288
|
const mindSelf = process.env.VOLUTE_MIND;
|
|
239
289
|
if (mindSelf) {
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
body: JSON.stringify({ targetMind: targetName, filePath })
|
|
290
|
+
const id = await postStaging(`/api/minds/${encodeURIComponent(mindSelf)}/files/send`, {
|
|
291
|
+
targetMind: targetName,
|
|
292
|
+
filePath
|
|
244
293
|
});
|
|
245
|
-
|
|
246
|
-
const data2 = await res.json();
|
|
247
|
-
console.error(data2.error ?? `Failed to send file: ${res.status}`);
|
|
248
|
-
process.exit(1);
|
|
249
|
-
}
|
|
250
|
-
const data = await res.json();
|
|
251
|
-
console.log(`File staged for ${targetName} (id: ${data.id})`);
|
|
294
|
+
console.log(`File staged for ${targetName} (id: ${id})`);
|
|
252
295
|
} else {
|
|
253
296
|
if (!existsSync(filePath)) {
|
|
254
|
-
|
|
255
|
-
process.exit(1);
|
|
297
|
+
failStaging(`File not found: ${filePath}`);
|
|
256
298
|
}
|
|
257
299
|
const stat = statSync(filePath);
|
|
258
300
|
const MAX_FILE_SIZE = 50 * 1024 * 1024;
|
|
259
301
|
if (stat.size > MAX_FILE_SIZE) {
|
|
260
|
-
|
|
302
|
+
failStaging(
|
|
261
303
|
`File too large (${formatFileSize(stat.size)}, max ${formatFileSize(MAX_FILE_SIZE)})`
|
|
262
304
|
);
|
|
263
|
-
process.exit(1);
|
|
264
305
|
}
|
|
265
306
|
const content = readFileSync(filePath);
|
|
266
|
-
const
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
headers: { "Content-Type": "application/json" },
|
|
271
|
-
body: JSON.stringify({
|
|
272
|
-
sender: senderName,
|
|
273
|
-
filename,
|
|
274
|
-
data: content.toString("base64")
|
|
275
|
-
})
|
|
307
|
+
const id = await postStaging(`/api/minds/${encodeURIComponent(targetName)}/files/stage`, {
|
|
308
|
+
sender: flags.sender || userInfo().username,
|
|
309
|
+
filename: basename(filePath),
|
|
310
|
+
data: content.toString("base64")
|
|
276
311
|
});
|
|
277
|
-
|
|
278
|
-
const data2 = await res.json();
|
|
279
|
-
console.error(data2.error ?? `Failed to stage file: ${res.status}`);
|
|
280
|
-
process.exit(1);
|
|
281
|
-
}
|
|
282
|
-
const data = await res.json();
|
|
283
|
-
console.log(`File staged for ${targetName} (id: ${data.id})`);
|
|
312
|
+
console.log(`File staged for ${targetName} (id: ${id})`);
|
|
284
313
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
parsed = {
|
|
290
|
-
platform: "volute",
|
|
291
|
-
identifier: `@${parsed.identifier}`,
|
|
292
|
-
uri: `@${parsed.identifier}`,
|
|
293
|
-
isDM: true
|
|
294
|
-
};
|
|
314
|
+
};
|
|
315
|
+
if (flags.file && !message) {
|
|
316
|
+
await stageAttachedFile(false);
|
|
317
|
+
return;
|
|
295
318
|
}
|
|
296
319
|
const client = getClient();
|
|
297
320
|
let waitMindName;
|
|
@@ -350,7 +373,7 @@ To reach a person, use their username from the message prefix (e.g. volute chat
|
|
|
350
373
|
console.error(`Warning: could not read send response: ${err.message}`);
|
|
351
374
|
}
|
|
352
375
|
if (data.held) heldResponse = true;
|
|
353
|
-
if (data.held || !flags.wait) {
|
|
376
|
+
if (data.held || !flags.wait || flags.file) {
|
|
354
377
|
printSendResult(data);
|
|
355
378
|
} else {
|
|
356
379
|
const ack = spiritAck(data.spirit);
|
|
@@ -413,6 +436,15 @@ See: volute chat bridge --help`
|
|
|
413
436
|
);
|
|
414
437
|
process.exit(1);
|
|
415
438
|
}
|
|
439
|
+
if (flags.file) {
|
|
440
|
+
if (heldResponse) {
|
|
441
|
+
console.log(
|
|
442
|
+
"Your attached file was not staged \u2014 include --file <path> again when you re-send."
|
|
443
|
+
);
|
|
444
|
+
} else {
|
|
445
|
+
await stageAttachedFile(true);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
416
448
|
if (heldResponse || spiritUnavailable) {
|
|
417
449
|
} else if (flags.wait && waitMindName) {
|
|
418
450
|
if (!waitConversationId) {
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
SYSTEM_LAUNCHD_PLIST_PATH,
|
|
10
10
|
SYSTEM_SERVICE_PATH,
|
|
11
11
|
USER_SYSTEMD_UNIT
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-6NLW72HP.js";
|
|
13
|
+
import "./chunk-M77B73VV.js";
|
|
14
|
+
import "./chunk-H6X6CKDN.js";
|
|
15
|
+
import "./chunk-2RNMBXD2.js";
|
|
16
16
|
import "./chunk-K3NQKI34.js";
|
|
17
17
|
|
|
18
18
|
// packages/cli/src/commands/service.ts
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
generateUserPlist,
|
|
4
4
|
generateUserUnit,
|
|
5
5
|
installUserService
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-OXWUEU5V.js";
|
|
7
|
+
import "./chunk-6NLW72HP.js";
|
|
8
|
+
import "./chunk-M77B73VV.js";
|
|
9
|
+
import "./chunk-H6X6CKDN.js";
|
|
10
|
+
import "./chunk-2RNMBXD2.js";
|
|
11
11
|
import "./chunk-K3NQKI34.js";
|
|
12
12
|
export {
|
|
13
13
|
generateUserPlist,
|
|
@@ -8,21 +8,21 @@ import {
|
|
|
8
8
|
import "./chunk-O7IGP7ZW.js";
|
|
9
9
|
import {
|
|
10
10
|
installUserService
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-OXWUEU5V.js";
|
|
12
12
|
import {
|
|
13
13
|
LAUNCHD_PLIST_LABEL,
|
|
14
14
|
SYSTEM_LAUNCHD_PLIST_PATH,
|
|
15
15
|
SYSTEM_SERVICE_PATH
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-6NLW72HP.js";
|
|
17
17
|
import {
|
|
18
18
|
ensureVoluteGroup,
|
|
19
19
|
resolveVoluteBin
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-M77B73VV.js";
|
|
21
21
|
import {
|
|
22
22
|
readGlobalConfig,
|
|
23
23
|
writeGlobalConfig
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
} from "./chunk-H6X6CKDN.js";
|
|
25
|
+
import "./chunk-2RNMBXD2.js";
|
|
26
26
|
import "./chunk-K3NQKI34.js";
|
|
27
27
|
|
|
28
28
|
// src/commands/setup.ts
|
|
@@ -220,7 +220,7 @@ async function startDaemonAndOpenBrowser(port, host) {
|
|
|
220
220
|
const url = `http://${displayHost === "0.0.0.0" || displayHost === "::" ? "localhost" : displayHost}:${displayPort}`;
|
|
221
221
|
console.log("\nStarting daemon...");
|
|
222
222
|
try {
|
|
223
|
-
const { run: runUp } = await import("./up-
|
|
223
|
+
const { run: runUp } = await import("./up-H6LJZDRK.js");
|
|
224
224
|
await runUp([
|
|
225
225
|
...port != null ? ["--port", String(port)] : [],
|
|
226
226
|
...host ? ["--host", host] : []
|
|
@@ -16,8 +16,8 @@ import {
|
|
|
16
16
|
setupStatus,
|
|
17
17
|
setupUrl,
|
|
18
18
|
writeGlobalConfig
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-H6X6CKDN.js";
|
|
20
|
+
import "./chunk-2RNMBXD2.js";
|
|
21
21
|
import "./chunk-K3NQKI34.js";
|
|
22
22
|
export {
|
|
23
23
|
_resetConfigCache,
|
|
@@ -55,7 +55,7 @@ If a variant didn't lead anywhere, let it go without merging:
|
|
|
55
55
|
```sh
|
|
56
56
|
volute mind delete mymind-experiment
|
|
57
57
|
```
|
|
58
|
-
This removes the variant from the registry
|
|
58
|
+
This removes the variant from the registry along with its git worktree and branch — nothing merges into you. Same cleanup as the web dashboard's Discard action.
|
|
59
59
|
|
|
60
60
|
# Upgrade Workflow
|
|
61
61
|
|
|
@@ -28,11 +28,11 @@ import {
|
|
|
28
28
|
syncBuiltinSkills,
|
|
29
29
|
uninstallSkill,
|
|
30
30
|
updateSkill
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
} from "./chunk-RPPTGPYF.js";
|
|
32
|
+
import "./chunk-M77B73VV.js";
|
|
33
33
|
import "./chunk-QUSMYGNQ.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-H6X6CKDN.js";
|
|
35
|
+
import "./chunk-2RNMBXD2.js";
|
|
36
36
|
import "./chunk-K3NQKI34.js";
|
|
37
37
|
export {
|
|
38
38
|
SEED_SKILLS,
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
SleepManager,
|
|
4
|
+
getSleepManager,
|
|
5
|
+
getSleepManagerIfReady,
|
|
6
|
+
initSleepManager,
|
|
7
|
+
matchesGlob
|
|
8
|
+
} from "./chunk-ZEZQNP2G.js";
|
|
9
|
+
import "./chunk-K2F237KS.js";
|
|
10
|
+
import "./chunk-X67BDDZR.js";
|
|
11
|
+
import "./chunk-SW2U6HRB.js";
|
|
12
|
+
import "./chunk-RU74YG46.js";
|
|
13
|
+
import "./chunk-724DVYHU.js";
|
|
14
|
+
import "./chunk-UDZLPR34.js";
|
|
15
|
+
import "./chunk-YVR6EHWL.js";
|
|
16
|
+
import "./chunk-RPPTGPYF.js";
|
|
17
|
+
import "./chunk-7LT3YZUR.js";
|
|
18
|
+
import "./chunk-AXFLY5GU.js";
|
|
19
|
+
import "./chunk-LNNI3MS4.js";
|
|
20
|
+
import "./chunk-FXWBFDQR.js";
|
|
21
|
+
import "./chunk-5Y54AE3L.js";
|
|
22
|
+
import "./chunk-TPX6E6PL.js";
|
|
23
|
+
import "./chunk-UFTDRTCP.js";
|
|
24
|
+
import "./chunk-U54PJPTB.js";
|
|
25
|
+
import "./chunk-ICXY54ZC.js";
|
|
26
|
+
import "./chunk-DW4TRDOZ.js";
|
|
27
|
+
import "./chunk-WCFSBH33.js";
|
|
28
|
+
import "./chunk-M77B73VV.js";
|
|
29
|
+
import "./chunk-GLM7TVWP.js";
|
|
30
|
+
import "./chunk-EGV6R6UF.js";
|
|
31
|
+
import "./chunk-QUSMYGNQ.js";
|
|
32
|
+
import "./chunk-H6X6CKDN.js";
|
|
33
|
+
import "./chunk-2RNMBXD2.js";
|
|
34
|
+
import "./chunk-K3NQKI34.js";
|
|
35
|
+
export {
|
|
36
|
+
SleepManager,
|
|
37
|
+
getSleepManager,
|
|
38
|
+
getSleepManagerIfReady,
|
|
39
|
+
initSleepManager,
|
|
40
|
+
matchesGlob
|
|
41
|
+
};
|
|
@@ -10,15 +10,15 @@ import {
|
|
|
10
10
|
spiritDir,
|
|
11
11
|
syncSpiritTemplate,
|
|
12
12
|
writeSpiritSystemJson
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-K2F237KS.js";
|
|
14
|
+
import "./chunk-X67BDDZR.js";
|
|
15
|
+
import "./chunk-RPPTGPYF.js";
|
|
16
16
|
import "./chunk-WCFSBH33.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-M77B73VV.js";
|
|
18
|
+
import "./chunk-EGV6R6UF.js";
|
|
19
19
|
import "./chunk-QUSMYGNQ.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-H6X6CKDN.js";
|
|
21
|
+
import "./chunk-2RNMBXD2.js";
|
|
22
22
|
import "./chunk-K3NQKI34.js";
|
|
23
23
|
export {
|
|
24
24
|
_setSpiritCreationInProgressForTest,
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
SPIRIT_NOTICE_PREFIX,
|
|
4
|
+
_resetSpiritAvailabilityState,
|
|
5
|
+
classifySpiritState,
|
|
6
|
+
ensureSpiritAvailable,
|
|
7
|
+
spiritUnavailableNotice
|
|
8
|
+
} from "./chunk-CW7BQKF6.js";
|
|
9
|
+
import "./chunk-ZEZQNP2G.js";
|
|
10
|
+
import "./chunk-K2F237KS.js";
|
|
11
|
+
import "./chunk-X67BDDZR.js";
|
|
12
|
+
import "./chunk-SW2U6HRB.js";
|
|
13
|
+
import "./chunk-RU74YG46.js";
|
|
14
|
+
import "./chunk-724DVYHU.js";
|
|
15
|
+
import "./chunk-UDZLPR34.js";
|
|
16
|
+
import "./chunk-YVR6EHWL.js";
|
|
17
|
+
import "./chunk-RPPTGPYF.js";
|
|
18
|
+
import "./chunk-7LT3YZUR.js";
|
|
19
|
+
import "./chunk-AXFLY5GU.js";
|
|
20
|
+
import "./chunk-LNNI3MS4.js";
|
|
21
|
+
import "./chunk-FXWBFDQR.js";
|
|
22
|
+
import "./chunk-5Y54AE3L.js";
|
|
23
|
+
import "./chunk-TPX6E6PL.js";
|
|
24
|
+
import "./chunk-UFTDRTCP.js";
|
|
25
|
+
import "./chunk-U54PJPTB.js";
|
|
26
|
+
import "./chunk-ICXY54ZC.js";
|
|
27
|
+
import "./chunk-DW4TRDOZ.js";
|
|
28
|
+
import "./chunk-WCFSBH33.js";
|
|
29
|
+
import "./chunk-M77B73VV.js";
|
|
30
|
+
import "./chunk-GLM7TVWP.js";
|
|
31
|
+
import "./chunk-EGV6R6UF.js";
|
|
32
|
+
import "./chunk-QUSMYGNQ.js";
|
|
33
|
+
import "./chunk-H6X6CKDN.js";
|
|
34
|
+
import "./chunk-2RNMBXD2.js";
|
|
35
|
+
import "./chunk-K3NQKI34.js";
|
|
36
|
+
export {
|
|
37
|
+
SPIRIT_NOTICE_PREFIX,
|
|
38
|
+
_resetSpiritAvailabilityState,
|
|
39
|
+
classifySpiritState,
|
|
40
|
+
ensureSpiritAvailable,
|
|
41
|
+
spiritUnavailableNotice
|
|
42
|
+
};
|
|
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
|
|
|
4
4
|
// packages/cli/src/commands/sprout.ts
|
|
5
5
|
async function run(args) {
|
|
6
6
|
console.error("Note: `volute mind sprout` is now `volute seed sprout`");
|
|
7
|
-
await import("./seed-sprout-
|
|
7
|
+
await import("./seed-sprout-NIDIOJXT.js").then((m) => m.run(args));
|
|
8
8
|
}
|
|
9
9
|
export {
|
|
10
10
|
run
|
|
@@ -9,7 +9,7 @@ import "./chunk-O7IGP7ZW.js";
|
|
|
9
9
|
import "./chunk-FNJCBRD3.js";
|
|
10
10
|
import {
|
|
11
11
|
checkForUpdate
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-LAUCO2HC.js";
|
|
13
13
|
import {
|
|
14
14
|
LAUNCHD_PLIST_LABEL,
|
|
15
15
|
LAUNCHD_PLIST_PATH,
|
|
@@ -21,10 +21,10 @@ import {
|
|
|
21
21
|
getServiceMode,
|
|
22
22
|
modeLabel,
|
|
23
23
|
readDaemonConfig
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
24
|
+
} from "./chunk-6NLW72HP.js";
|
|
25
|
+
import "./chunk-M77B73VV.js";
|
|
26
|
+
import "./chunk-H6X6CKDN.js";
|
|
27
|
+
import "./chunk-2RNMBXD2.js";
|
|
28
28
|
import "./chunk-K3NQKI34.js";
|
|
29
29
|
|
|
30
30
|
// src/commands/status.ts
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
MIND_LEVEL_THREAD,
|
|
4
4
|
captureReflection,
|
|
5
|
+
cleanExpiredEvents,
|
|
5
6
|
clearDeliveredEvents,
|
|
6
7
|
deliverEvent,
|
|
7
8
|
drainEvents,
|
|
@@ -18,15 +19,16 @@ import {
|
|
|
18
19
|
pendingEventsLine,
|
|
19
20
|
recordNotice,
|
|
20
21
|
recordReflection
|
|
21
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-AXFLY5GU.js";
|
|
22
23
|
import "./chunk-LNNI3MS4.js";
|
|
23
24
|
import "./chunk-QUSMYGNQ.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-H6X6CKDN.js";
|
|
26
|
+
import "./chunk-2RNMBXD2.js";
|
|
26
27
|
import "./chunk-K3NQKI34.js";
|
|
27
28
|
export {
|
|
28
29
|
MIND_LEVEL_THREAD,
|
|
29
30
|
captureReflection,
|
|
31
|
+
cleanExpiredEvents,
|
|
30
32
|
clearDeliveredEvents,
|
|
31
33
|
deliverEvent,
|
|
32
34
|
drainEvents,
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
} from "./chunk-QUSMYGNQ.js";
|
|
5
5
|
import {
|
|
6
6
|
voluteHome
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-H6X6CKDN.js";
|
|
8
|
+
import "./chunk-2RNMBXD2.js";
|
|
9
9
|
import "./chunk-K3NQKI34.js";
|
|
10
10
|
|
|
11
11
|
// packages/daemon/src/lib/tailscale.ts
|