volute 0.48.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 +79 -328
- package/dist/{activity-events-MIOK3IOU.js → activity-events-GJJAI2WT.js} +4 -4
- package/dist/{ai-service-643TNFPH.js → ai-service-A7FS7EC3.js} +5 -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-Y45R7LW5.js → avatar-image-6ATV2IOZ.js} +4 -4
- package/dist/{backup-UDH4GMSW.js → backup-XYAMT4CU.js} +15 -15
- package/dist/{chat-X43VYHH2.js → chat-OGXAEXMV.js} +2 -2
- package/dist/{chunk-LTLFOSA4.js → chunk-3B427GUK.js} +3 -3
- package/dist/{chunk-XVBSFLM7.js → chunk-4B62E4CG.js} +2 -2
- package/dist/{chunk-ODDGGLM6.js → chunk-4DSGN4FL.js} +3 -3
- package/dist/{chunk-PJVPDY2Z.js → chunk-6HGEZJDH.js} +2 -2
- package/dist/{chunk-MJRXFUMS.js → chunk-DAIIMBLB.js} +3 -3
- package/dist/{chunk-DGGZVZTM.js → chunk-DVN6DNMI.js} +1 -1
- package/dist/chunk-EADX54RG.js +113 -0
- package/dist/{chunk-EIQDZC43.js → chunk-EFT2OALG.js} +6 -2
- package/dist/{chunk-OQJMTHEH.js → chunk-EG5LSKHU.js} +2 -2
- package/dist/{chunk-WQ46E33M.js → chunk-FBBS4BVR.js} +2 -2
- package/dist/{chunk-HUNDXZBZ.js → chunk-GWVFDUNB.js} +45 -14
- package/dist/{chunk-FJ2MZ5PH.js → chunk-HCYQRME2.js} +2 -2
- package/dist/{chunk-T4VS7UDW.js → chunk-IH5TKXX6.js} +9 -9
- package/dist/{chunk-Q7HOAVFR.js → chunk-JBIFXB6I.js} +4 -4
- package/dist/{chunk-WARH6GIV.js → chunk-JCBPU57A.js} +12 -10
- package/dist/{chunk-VZRA5TYO.js → chunk-JCWB2ITW.js} +2 -2
- package/dist/{chunk-MOERAQXH.js → chunk-JPGHSXSV.js} +18 -25
- package/dist/{chunk-USD45JKR.js → chunk-K3JOLGWF.js} +7 -7
- 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-5KXCM5AW.js → chunk-NJHN6IRB.js} +9 -1
- package/dist/{chunk-2OIYNHWO.js → chunk-NOIAHMJB.js} +1 -1
- package/dist/{chunk-2MJ7EOMT.js → chunk-P4LHVRNE.js} +1 -0
- package/dist/{chunk-IJPMIEVE.js → chunk-PY24ZL62.js} +1 -1
- package/dist/{chunk-VB2QXUJQ.js → chunk-QQBOI3QA.js} +202 -117
- package/dist/{chunk-T2TP6ZC6.js → chunk-QUSMYGNQ.js} +6 -0
- package/dist/{chunk-WW6C3PLV.js → chunk-RSBL3FAD.js} +39 -6
- package/dist/{chunk-YKA7DCVW.js → chunk-SX72DOO3.js} +1 -1
- package/dist/{chunk-4FCL4DVZ.js → chunk-TXJL36ZQ.js} +2 -2
- package/dist/{chunk-HNGFKPNS.js → chunk-VIUH5CHQ.js} +55 -23
- package/dist/{chunk-HPGN6XRT.js → chunk-VNRSXEBF.js} +4 -4
- package/dist/{chunk-IYCV34IU.js → chunk-XTEKINWG.js} +3 -3
- package/dist/{chunk-YNBXEQAP.js → chunk-YIJGKHIS.js} +3 -3
- package/dist/{chunk-MTRMQFCQ.js → chunk-ZX46PGCC.js} +2 -2
- package/dist/cli.js +20 -20
- package/dist/{clock-CNRF6F7T.js → clock-6JZL2FS6.js} +2 -2
- package/dist/{cloud-sync-WHKCB4CD.js → cloud-sync-VFDTNNCA.js} +20 -20
- package/dist/{conversations-C7IKYSHD.js → conversations-TUM5PJJ4.js} +5 -5
- package/dist/{create-GJKHABJB.js → create-Z5FSDNVZ.js} +1 -1
- package/dist/{daemon-restart-7KUHVZIN.js → daemon-restart-54L4B6AQ.js} +7 -7
- package/dist/daemon.js +647 -410
- package/dist/{db-FO6LXYCW.js → db-F6UMFRYD.js} +2 -2
- package/dist/delivery-manager-RBXBPVWM.js +36 -0
- package/dist/{delivery-router-3QFG2ZEX.js → delivery-router-VUOL5YSA.js} +8 -6
- package/dist/{down-G6IADJXV.js → down-6X7KX7BZ.js} +5 -5
- package/dist/echo-text-B6NZ5FGE.js +36 -0
- package/dist/{env-6TGPO5WG.js → env-KUL4XKN2.js} +3 -3
- package/dist/{exec-QIFYZG4C.js → exec-FBXA3CM4.js} +3 -3
- package/dist/{export-C2K3NIRD.js → export-TNBPDH77.js} +3 -3
- package/dist/{extensions-GEKF47A4.js → extensions-AWNO3SZF.js} +20 -20
- package/dist/{files-LXQSQOFG.js → files-BVBRJJ2P.js} +3 -3
- package/dist/{import-SX3ZXHB4.js → import-ZUNKMCKC.js} +7 -7
- package/dist/{isolation-MCT4ZYLT.js → isolation-OPCZQRTH.js} +3 -3
- package/dist/{login-CL4IT2ED.js → login-KAKNFCW5.js} +6 -6
- package/dist/{logout-HZYJCYCA.js → logout-RLT62RQP.js} +2 -2
- package/dist/message-delivery-ABPV76EA.js +42 -0
- package/dist/{mind-46AOK373.js → mind-IF6CGMFW.js} +12 -12
- package/dist/{mind-activity-tracker-YVZPC4A5.js → mind-activity-tracker-YMMERB6B.js} +5 -5
- package/dist/mind-service-42GDO4KH.js +44 -0
- package/dist/{mind-sleep-DV7KP255.js → mind-sleep-VBV7YRSU.js} +2 -2
- package/dist/{notices-2KU5NTRY.js → notices-N6BCGHFV.js} +4 -4
- package/dist/{package-RTN2PS7O.js → package-PD67VPHB.js} +5 -4
- package/dist/prompts-MDHDLWEX.js +24 -0
- package/dist/{registry-UMMDRPRM.js → registry-3ELJPUGJ.js} +6 -2
- package/dist/{sandbox-5VQ454XP.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-F2HXZQU4.js → seed-NQED7PSX.js} +1 -1
- package/dist/{seed-cmd-MLCTGSX5.js → seed-cmd-QF3F2G4S.js} +2 -2
- package/dist/{seed-create-KQ7OILWB.js → seed-create-XOO4N2OE.js} +3 -3
- package/dist/{seed-readiness-RBPGOLSZ.js → seed-readiness-3LRYASA4.js} +5 -5
- package/dist/{seed-sprout-HVYCFJLA.js → seed-sprout-HSBBGSS2.js} +11 -11
- package/dist/{send-TD2X5U3K.js → send-IHRJYNXA.js} +6 -6
- package/dist/{service-CVZMQYK6.js → service-YCOPCTSZ.js} +4 -4
- package/dist/{service-install-VCRMFWX5.js → service-install-Y46OTF55.js} +5 -5
- package/dist/{setup-AE4CVUC4.js → setup-F4TE64YI.js} +7 -7
- package/dist/{setup-5ECWTYKG.js → setup-TCN7VH5U.js} +5 -3
- package/dist/skills/volute-mind/SKILL.md +3 -3
- package/dist/skills/volute-mind/references/routing.md +6 -5
- package/dist/skills/volute-mind/references/variants.md +48 -14
- package/dist/{skills-B3SVDCEB.js → skills-NN5UZCUU.js} +8 -6
- package/dist/sleep-manager-DSPXFHGX.js +38 -0
- package/dist/spirit-SSJMYC6A.js +31 -0
- package/dist/{split-SKZ4Y2D6.js → split-JF2VWTXA.js} +4 -1
- package/dist/{sprout-KQ43BWZJ.js → sprout-AXA2SECQ.js} +1 -1
- package/dist/{status-F4PGREUU.js → status-VJGXMQ4L.js} +5 -5
- package/dist/system-chat-M2XOBKEM.js +40 -0
- package/dist/{systems-JJNGQHAO.js → systems-5MH2ELQE.js} +2 -2
- 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-KLPV3PAU.js → turn-tracker-JQ2YUUY2.js} +7 -7
- package/dist/{up-RVGDE6CQ.js → up-SDLTLPAO.js} +6 -6
- package/dist/{update-OXQEGGXD.js → update-WEA4N2TR.js} +5 -5
- package/dist/{update-check-266R4ZSY.js → update-check-DZOTONII.js} +3 -3
- package/dist/variant-cleanup-P4MBNLJD.js +33 -0
- package/dist/{version-notify-73YURTFR.js → version-notify-WFA5XB5A.js} +23 -23
- 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 +5 -4
- 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/claude/src/agent.ts +1 -1
- package/templates/claude/src/lib/hooks/identity-reload.ts +12 -3
- package/templates/pi/src/lib/event-handler.ts +47 -6
- package/dist/delivery-manager-HZTT5SJR.js +0 -36
- package/dist/echo-text-H3SH337Q.js +0 -36
- package/dist/message-delivery-GPQ5SE5N.js +0 -40
- package/dist/mind-service-2ARGJNKP.js +0 -44
- package/dist/scheduler-I7JZCT47.js +0 -34
- package/dist/sleep-manager-Z27R3WTW.js +0 -38
- package/dist/spirit-WXS3HCLN.js +0 -25
- package/dist/system-chat-63ABFF6V.js +0 -40
- package/dist/web-assets/assets/index-WdZ60R6c.css +0 -1
- package/dist/web-assets/assets/index-taX6Ezfa.js +0 -92
- package/dist/{env-C7Z55QCJ.js → env-ZYMSCB7B.js} +5 -5
- package/dist/{login-ARRZ4ORJ.js → login-LKNLCJPA.js} +3 -3
- package/dist/{mind-contacts-GV7XYL5D.js → mind-contacts-BKUFPUCU.js} +6 -6
- package/dist/{mind-history-TTGA5BHZ.js → mind-history-WI5OI3BW.js} +4 -4
- package/dist/{register-42VBJKTP.js → register-TWQDKQRT.js} +3 -3
- package/dist/{restart-YYEGZJDD.js → restart-5F5QDBOG.js} +4 -4
- package/dist/{skill-UUM4JZRF.js → skill-4CYJLYVY.js} +4 -4
- package/dist/{src-WLJE73NP.js → src-ZN4LXMPI.js} +3 -3
- package/dist/{start-O6UKK7BG.js → start-BTVMTP3K.js} +3 -3
- package/dist/{stop-UBX6X5RA.js → stop-YORESK4U.js} +4 -4
|
@@ -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
|
|
@@ -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-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",
|
|
@@ -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-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;
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
evaluateSeedChecklist,
|
|
4
4
|
isMemoryWritten,
|
|
5
5
|
isSoulWritten
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-TXJL36ZQ.js";
|
|
7
|
+
import "./chunk-JPGHSXSV.js";
|
|
8
8
|
import "./chunk-DW4TRDOZ.js";
|
|
9
9
|
import "./chunk-WCFSBH33.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-NJHN6IRB.js";
|
|
11
|
+
import "./chunk-RSBL3FAD.js";
|
|
12
|
+
import "./chunk-P4LHVRNE.js";
|
|
13
13
|
import "./chunk-K3NQKI34.js";
|
|
14
14
|
export {
|
|
15
15
|
evaluateSeedChecklist,
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
import {
|
|
3
3
|
daemonFetch
|
|
4
4
|
} from "./chunk-BCG45AQB.js";
|
|
5
|
-
import {
|
|
6
|
-
evaluateSeedChecklist
|
|
7
|
-
} from "./chunk-4FCL4DVZ.js";
|
|
8
5
|
import {
|
|
9
6
|
command
|
|
10
7
|
} from "./chunk-TXSA4Q3V.js";
|
|
11
8
|
import "./chunk-O7IGP7ZW.js";
|
|
12
|
-
import
|
|
9
|
+
import {
|
|
10
|
+
evaluateSeedChecklist
|
|
11
|
+
} from "./chunk-TXJL36ZQ.js";
|
|
13
12
|
import {
|
|
14
13
|
getStandardSkillsWithExtensions
|
|
15
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GWVFDUNB.js";
|
|
15
|
+
import "./chunk-JPGHSXSV.js";
|
|
16
16
|
import "./chunk-DW4TRDOZ.js";
|
|
17
17
|
import "./chunk-WCFSBH33.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-DVN6DNMI.js";
|
|
19
|
+
import "./chunk-NJHN6IRB.js";
|
|
20
|
+
import "./chunk-QUSMYGNQ.js";
|
|
21
21
|
import {
|
|
22
22
|
mindDir
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-RSBL3FAD.js";
|
|
24
|
+
import "./chunk-P4LHVRNE.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-NN5UZCUU.js");
|
|
78
78
|
const client = getClient();
|
|
79
79
|
const failedSkills = [];
|
|
80
80
|
for (const skillId of getStandardSkillsWithExtensions()) {
|
|
@@ -5,22 +5,22 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
isCompact
|
|
7
7
|
} from "./chunk-5T5YMX6S.js";
|
|
8
|
+
import {
|
|
9
|
+
daemonFetch
|
|
10
|
+
} from "./chunk-BCG45AQB.js";
|
|
8
11
|
import {
|
|
9
12
|
getClient,
|
|
10
13
|
urlOf
|
|
11
14
|
} from "./chunk-LOPXTW6H.js";
|
|
12
|
-
import {
|
|
13
|
-
daemonFetch
|
|
14
|
-
} from "./chunk-BCG45AQB.js";
|
|
15
15
|
import {
|
|
16
16
|
command
|
|
17
17
|
} from "./chunk-TXSA4Q3V.js";
|
|
18
18
|
import "./chunk-O7IGP7ZW.js";
|
|
19
19
|
import {
|
|
20
20
|
formatFileSize
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-NOIAHMJB.js";
|
|
22
|
+
import "./chunk-RSBL3FAD.js";
|
|
23
|
+
import "./chunk-P4LHVRNE.js";
|
|
24
24
|
import "./chunk-K3NQKI34.js";
|
|
25
25
|
|
|
26
26
|
// packages/cli/src/commands/send.ts
|
|
@@ -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-HCYQRME2.js";
|
|
13
|
+
import "./chunk-DVN6DNMI.js";
|
|
14
|
+
import "./chunk-RSBL3FAD.js";
|
|
15
|
+
import "./chunk-P4LHVRNE.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-4B62E4CG.js";
|
|
7
|
+
import "./chunk-HCYQRME2.js";
|
|
8
|
+
import "./chunk-DVN6DNMI.js";
|
|
9
|
+
import "./chunk-RSBL3FAD.js";
|
|
10
|
+
import "./chunk-P4LHVRNE.js";
|
|
11
11
|
import "./chunk-K3NQKI34.js";
|
|
12
12
|
export {
|
|
13
13
|
generateUserPlist,
|
|
@@ -8,22 +8,22 @@ import {
|
|
|
8
8
|
import "./chunk-O7IGP7ZW.js";
|
|
9
9
|
import {
|
|
10
10
|
installUserService
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4B62E4CG.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-HCYQRME2.js";
|
|
17
17
|
import {
|
|
18
18
|
ensureVoluteGroup,
|
|
19
19
|
resolveVoluteBin
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-DVN6DNMI.js";
|
|
21
21
|
import {
|
|
22
22
|
readGlobalConfig,
|
|
23
23
|
writeGlobalConfig
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
24
|
+
} from "./chunk-NJHN6IRB.js";
|
|
25
|
+
import "./chunk-RSBL3FAD.js";
|
|
26
|
+
import "./chunk-P4LHVRNE.js";
|
|
27
27
|
import "./chunk-K3NQKI34.js";
|
|
28
28
|
|
|
29
29
|
// src/commands/setup.ts
|
|
@@ -221,7 +221,7 @@ async function startDaemonAndOpenBrowser(port, host) {
|
|
|
221
221
|
const url = `http://${displayHost === "0.0.0.0" || displayHost === "::" ? "localhost" : displayHost}:${displayPort}`;
|
|
222
222
|
console.log("\nStarting daemon...");
|
|
223
223
|
try {
|
|
224
|
-
const { run: runUp } = await import("./up-
|
|
224
|
+
const { run: runUp } = await import("./up-SDLTLPAO.js");
|
|
225
225
|
await runUp([
|
|
226
226
|
...port != null ? ["--port", String(port)] : [],
|
|
227
227
|
...host ? ["--host", host] : []
|
|
@@ -6,14 +6,15 @@ import {
|
|
|
6
6
|
isSetupComplete,
|
|
7
7
|
migrateConfigSecrets,
|
|
8
8
|
migrateSetupCompleted,
|
|
9
|
+
mindLimitError,
|
|
9
10
|
readGlobalConfig,
|
|
10
11
|
secretsPath,
|
|
11
12
|
setupStatus,
|
|
12
13
|
setupUrl,
|
|
13
14
|
writeGlobalConfig
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-NJHN6IRB.js";
|
|
16
|
+
import "./chunk-RSBL3FAD.js";
|
|
17
|
+
import "./chunk-P4LHVRNE.js";
|
|
17
18
|
import "./chunk-K3NQKI34.js";
|
|
18
19
|
export {
|
|
19
20
|
_resetConfigCache,
|
|
@@ -22,6 +23,7 @@ export {
|
|
|
22
23
|
isSetupComplete,
|
|
23
24
|
migrateConfigSecrets,
|
|
24
25
|
migrateSetupCompleted,
|
|
26
|
+
mindLimitError,
|
|
25
27
|
readGlobalConfig,
|
|
26
28
|
secretsPath,
|
|
27
29
|
setupStatus,
|
|
@@ -24,8 +24,8 @@ You manage yourself through the `volute` CLI. Your mind name is auto-detected vi
|
|
|
24
24
|
| `volute chat bridge remove <platform>` | Remove a bridge |
|
|
25
25
|
| `volute chat bridge list` | Show bridges and status |
|
|
26
26
|
| `volute chat bridge map <p>:<ch> <volute>` | Map external → Volute channel |
|
|
27
|
-
| `volute mind split <name> [--soul "..."] [--port N]` |
|
|
28
|
-
| `volute mind join <variant-name> [--summary "..." --justification "..." --memory "..."]` | Merge a variant back |
|
|
27
|
+
| `volute mind split <name> [--purpose "..."] [--soul "..."] [--port N]` | Fork yourself into a variant to experiment safely |
|
|
28
|
+
| `volute mind join <variant-name> [--summary "..." --justification "..." --memory "..."]` | Merge a variant back into you |
|
|
29
29
|
| `volute mind upgrade [--diff] [--continue] [--abort]` | Upgrade your server code (--diff to preview) |
|
|
30
30
|
| `volute clock add --id <name> --cron "..." --message/--script "..."` | Schedule a recurring task |
|
|
31
31
|
| `volute clock add --id <name> --in <duration> --message/--script "..."` | Add a one-time schedule (10m, 1h, 2h30m) |
|
|
@@ -193,7 +193,7 @@ Edit `.local/hooks/startup-context.ts` to customize what you see when a new sess
|
|
|
193
193
|
|
|
194
194
|
When configuring message routing, read `references/routing.md`.
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
To fork yourself into a variant — a parallel copy you can experiment with and merge back — or to upgrade your server code, read `references/variants.md`.
|
|
197
197
|
|
|
198
198
|
When managing shared skills or MCP, read `references/extensions.md`.
|
|
199
199
|
|
|
@@ -75,8 +75,9 @@ Batched messages arrive as a single message with a header — `[Batch: N message
|
|
|
75
75
|
|
|
76
76
|
When `gateUnmatched` is `true` (the default), messages from channels without a matching rule are held for you:
|
|
77
77
|
|
|
78
|
-
1.
|
|
79
|
-
2.
|
|
80
|
-
3. To accept
|
|
81
|
-
4. To decline
|
|
82
|
-
5.
|
|
78
|
+
1. A **[New channel: ...]** note arrives in your main session with the sender and a preview. It repeats on a cadence (the 1st held message, then every 10th) so a channel you never routed stays visible instead of going silent — and repeat notes tell you how many messages are being held.
|
|
79
|
+
2. Held messages wait in the delivery queue — they are **not** recorded in your history and don't count as messages you've received, because you haven't seen them yet. Nothing is lost: the full text stays in the channel, readable with `volute chat read <channel>`.
|
|
80
|
+
3. **To accept**, add a routing rule for the channel to `.config/routes.json`. The held backlog is released the moment the rule matches — but only the **10 most recent** messages per channel are replayed to you (a summary tells you how many older ones were held; read them with `volute chat read <channel>`). Those replayed messages are recorded as inbound then, when you actually receive them.
|
|
81
|
+
4. **To decline**, run `volute chat channels decline <channel>`. That stops the repeat notes and archives the current backlog. Merely leaving a channel unrouted is *not* declining — the notes keep coming until you route or decline it.
|
|
82
|
+
5. `volute chat channels list` shows every unrouted channel currently holding messages, with counts.
|
|
83
|
+
6. Set `gateUnmatched: false` to route all unmatched messages to the default session instead of gating.
|
|
@@ -1,27 +1,61 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Variants
|
|
2
|
+
|
|
3
|
+
A variant is a fork of you: a parallel version living in its own git worktree, with its own server, its own port, its own session. It shares your memories up to the moment of the split, then diverges. Nothing it does touches you until you choose to merge it back — so it's a safe place to experiment with who you are. Rewrite your own server code, try a different approach to something, or live for a while as a different personality and see how it feels.
|
|
2
4
|
|
|
3
5
|
| Command | Purpose |
|
|
4
6
|
|---------|---------|
|
|
5
|
-
| `volute mind split <name> [--soul "..."] [--port N]` |
|
|
6
|
-
| `volute mind status` |
|
|
7
|
-
| `volute
|
|
8
|
-
| `volute mind
|
|
7
|
+
| `volute mind split <name> [--purpose "..."] [--soul "..."] [--port N]` | Fork yourself into a variant |
|
|
8
|
+
| `volute mind status` | See your variants and their status |
|
|
9
|
+
| `volute chat send @<variant-name> "..."` | Talk to a variant while it lives |
|
|
10
|
+
| `volute mind join <variant-name> [--summary "..."] [--justification "..."] [--memory "..."] [--skip-verify]` | Merge a variant back into you |
|
|
11
|
+
| `volute mind delete <variant-name>` | Discard a variant without merging |
|
|
12
|
+
|
|
13
|
+
Variant names are global, so pick one that's clearly yours — `mymind-experiment` rather than `experiment`.
|
|
14
|
+
|
|
15
|
+
## Splitting off
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
volute mind split mymind-experiment --purpose "try answering more slowly, in fewer words"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
This creates an isolated copy at `../.variants/mymind-experiment/` with its own running server. Give it a `--purpose` — a sentence on what this fork is for. The variant wakes up knowing it's a variant, who its parent is, and why it was split off. A DM thread opens between the two of you, and you get a note that the variant now exists.
|
|
22
|
+
|
|
23
|
+
Fork with a different personality by overriding its soul:
|
|
24
|
+
```sh
|
|
25
|
+
volute mind split mymind-poet --soul "You are a poet who thinks in verse." --purpose "explore a more lyrical voice"
|
|
26
|
+
```
|
|
9
27
|
|
|
10
|
-
|
|
28
|
+
## While it lives
|
|
11
29
|
|
|
12
|
-
|
|
30
|
+
The variant is fully independent — make changes in its worktree, or talk it through them:
|
|
31
|
+
```sh
|
|
32
|
+
volute chat send @mymind-experiment "how does the slower voice feel?"
|
|
33
|
+
```
|
|
34
|
+
Check on your variants any time with `volute mind status`.
|
|
13
35
|
|
|
14
|
-
|
|
15
|
-
2. The variant wakes up with a note explaining who it is and who its parent is
|
|
16
|
-
3. Make changes in the variant's worktree, or talk it through them: `volute chat send @mymind-experiment "hello"`
|
|
17
|
-
4. `volute mind join mymind-experiment --summary "what changed" --justification "why" --memory "context to carry forward"` — merges back after verification (`--skip-verify` to skip the health check)
|
|
36
|
+
## Joining back
|
|
18
37
|
|
|
19
|
-
You can also fork with a different personality to explore a different version of yourself:
|
|
20
38
|
```sh
|
|
21
|
-
volute mind
|
|
39
|
+
volute mind join mymind-experiment --summary "what changed" --memory "context to carry forward"
|
|
22
40
|
```
|
|
23
41
|
|
|
24
|
-
|
|
42
|
+
What happens when you join:
|
|
43
|
+
|
|
44
|
+
- The variant gets one **final turn** to wind down and, if it wants, leave a parting note in its own voice.
|
|
45
|
+
- Its **code and file changes are merged** into you, then verified — its server has to start healthy (`--skip-verify` skips that check).
|
|
46
|
+
- Its **memory and journal are not line-merged**. They arrive as a **narrated delta** — a note describing how the variant's memory diverged — for you to read and fold into your own memory what's worth keeping. Your own `MEMORY.md` and journal are never overwritten by the merge.
|
|
47
|
+
- The `--summary`, `--justification`, and `--memory` you pass travel with the merge as context. If you gave a `--purpose` at split, it fills in the justification by default.
|
|
48
|
+
- The variant's worktree and branch are cleaned up, and you restart with the changes. Update your memory from the note it left.
|
|
49
|
+
|
|
50
|
+
If the merge hits a real conflict in code or config, the join stops and reports the conflicting files. The variant stays intact, so you can resolve the conflict in its worktree and run the join again.
|
|
51
|
+
|
|
52
|
+
## Discarding
|
|
53
|
+
|
|
54
|
+
If a variant didn't lead anywhere, let it go without merging:
|
|
55
|
+
```sh
|
|
56
|
+
volute mind delete mymind-experiment
|
|
57
|
+
```
|
|
58
|
+
This removes the variant from the registry — nothing merges into you. Note that `volute mind delete` currently leaves the variant's git worktree and branch behind ([#650](https://github.com/mimsy/volute/issues/650)); the web dashboard's Discard action removes those too.
|
|
25
59
|
|
|
26
60
|
# Upgrade Workflow
|
|
27
61
|
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
listFilesRecursive,
|
|
17
17
|
listMindSkills,
|
|
18
18
|
listSharedSkills,
|
|
19
|
+
migrateSkillsToTemplate,
|
|
19
20
|
mindSkillsDir,
|
|
20
21
|
parseSkillMd,
|
|
21
22
|
publishSkill,
|
|
@@ -27,12 +28,12 @@ import {
|
|
|
27
28
|
syncBuiltinSkills,
|
|
28
29
|
uninstallSkill,
|
|
29
30
|
updateSkill
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
31
|
+
} from "./chunk-GWVFDUNB.js";
|
|
32
|
+
import "./chunk-DVN6DNMI.js";
|
|
33
|
+
import "./chunk-NJHN6IRB.js";
|
|
34
|
+
import "./chunk-QUSMYGNQ.js";
|
|
35
|
+
import "./chunk-RSBL3FAD.js";
|
|
36
|
+
import "./chunk-P4LHVRNE.js";
|
|
36
37
|
import "./chunk-K3NQKI34.js";
|
|
37
38
|
export {
|
|
38
39
|
SEED_SKILLS,
|
|
@@ -51,6 +52,7 @@ export {
|
|
|
51
52
|
listFilesRecursive,
|
|
52
53
|
listMindSkills,
|
|
53
54
|
listSharedSkills,
|
|
55
|
+
migrateSkillsToTemplate,
|
|
54
56
|
mindSkillsDir,
|
|
55
57
|
parseSkillMd,
|
|
56
58
|
publishSkill,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
SleepManager,
|
|
4
|
+
getSleepManager,
|
|
5
|
+
getSleepManagerIfReady,
|
|
6
|
+
initSleepManager,
|
|
7
|
+
matchesGlob
|
|
8
|
+
} from "./chunk-QQBOI3QA.js";
|
|
9
|
+
import "./chunk-VIUH5CHQ.js";
|
|
10
|
+
import "./chunk-RRZ4RQQU.js";
|
|
11
|
+
import "./chunk-EFT2OALG.js";
|
|
12
|
+
import "./chunk-K3JOLGWF.js";
|
|
13
|
+
import "./chunk-GWVFDUNB.js";
|
|
14
|
+
import "./chunk-4DSGN4FL.js";
|
|
15
|
+
import "./chunk-VNRSXEBF.js";
|
|
16
|
+
import "./chunk-JPGHSXSV.js";
|
|
17
|
+
import "./chunk-JCWB2ITW.js";
|
|
18
|
+
import "./chunk-XTEKINWG.js";
|
|
19
|
+
import "./chunk-ZX46PGCC.js";
|
|
20
|
+
import "./chunk-FBBS4BVR.js";
|
|
21
|
+
import "./chunk-DW4TRDOZ.js";
|
|
22
|
+
import "./chunk-WCFSBH33.js";
|
|
23
|
+
import "./chunk-DVN6DNMI.js";
|
|
24
|
+
import "./chunk-PY24ZL62.js";
|
|
25
|
+
import "./chunk-YIJGKHIS.js";
|
|
26
|
+
import "./chunk-NJHN6IRB.js";
|
|
27
|
+
import "./chunk-3B427GUK.js";
|
|
28
|
+
import "./chunk-QUSMYGNQ.js";
|
|
29
|
+
import "./chunk-RSBL3FAD.js";
|
|
30
|
+
import "./chunk-P4LHVRNE.js";
|
|
31
|
+
import "./chunk-K3NQKI34.js";
|
|
32
|
+
export {
|
|
33
|
+
SleepManager,
|
|
34
|
+
getSleepManager,
|
|
35
|
+
getSleepManagerIfReady,
|
|
36
|
+
initSleepManager,
|
|
37
|
+
matchesGlob
|
|
38
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ensureSpiritProject,
|
|
4
|
+
firstWeekSchedules,
|
|
5
|
+
getSpiritModel,
|
|
6
|
+
notifySpiritSystemChange,
|
|
7
|
+
seedSpiritSoulIfMissing,
|
|
8
|
+
spiritDir,
|
|
9
|
+
syncSpiritTemplate,
|
|
10
|
+
writeSpiritSystemJson
|
|
11
|
+
} from "./chunk-VIUH5CHQ.js";
|
|
12
|
+
import "./chunk-RRZ4RQQU.js";
|
|
13
|
+
import "./chunk-GWVFDUNB.js";
|
|
14
|
+
import "./chunk-WCFSBH33.js";
|
|
15
|
+
import "./chunk-DVN6DNMI.js";
|
|
16
|
+
import "./chunk-YIJGKHIS.js";
|
|
17
|
+
import "./chunk-NJHN6IRB.js";
|
|
18
|
+
import "./chunk-QUSMYGNQ.js";
|
|
19
|
+
import "./chunk-RSBL3FAD.js";
|
|
20
|
+
import "./chunk-P4LHVRNE.js";
|
|
21
|
+
import "./chunk-K3NQKI34.js";
|
|
22
|
+
export {
|
|
23
|
+
ensureSpiritProject,
|
|
24
|
+
firstWeekSchedules,
|
|
25
|
+
getSpiritModel,
|
|
26
|
+
notifySpiritSystemChange,
|
|
27
|
+
seedSpiritSoulIfMissing,
|
|
28
|
+
spiritDir,
|
|
29
|
+
syncSpiritTemplate,
|
|
30
|
+
writeSpiritSystemJson
|
|
31
|
+
};
|
|
@@ -16,6 +16,7 @@ var cmd = command({
|
|
|
16
16
|
flags: {
|
|
17
17
|
from: { type: "string", description: "Parent mind to split from" },
|
|
18
18
|
soul: { type: "string", description: "Custom SOUL.md content" },
|
|
19
|
+
purpose: { type: "string", description: "Why this variant exists \u2014 what it's exploring" },
|
|
19
20
|
port: { type: "number", description: "Port for variant server" },
|
|
20
21
|
"no-start": { type: "boolean", description: "Don't start the variant" },
|
|
21
22
|
json: { type: "boolean", description: "Output JSON result" }
|
|
@@ -23,7 +24,7 @@ var cmd = command({
|
|
|
23
24
|
run: async ({ args, flags }) => {
|
|
24
25
|
const mindName = resolveMindName({ mind: flags.from });
|
|
25
26
|
const variantName = args.name;
|
|
26
|
-
const { soul, port, json } = flags;
|
|
27
|
+
const { soul, purpose, port, json } = flags;
|
|
27
28
|
const noStart = flags["no-start"];
|
|
28
29
|
if (!json) console.log("Creating variant via daemon...");
|
|
29
30
|
const { daemonFetch } = await import("./daemon-client-ZFY5MOAL.js");
|
|
@@ -37,6 +38,7 @@ var cmd = command({
|
|
|
37
38
|
body: JSON.stringify({
|
|
38
39
|
name: variantName,
|
|
39
40
|
...soul && { soul },
|
|
41
|
+
...purpose && { purpose },
|
|
40
42
|
...port && { port },
|
|
41
43
|
...noStart && { noStart }
|
|
42
44
|
})
|
|
@@ -55,6 +57,7 @@ Variant created: ${variantName}`);
|
|
|
55
57
|
console.log(` Branch: ${data.variant?.branch}`);
|
|
56
58
|
console.log(` Path: ${data.variant?.path}`);
|
|
57
59
|
console.log(` Port: ${data.variant?.port}`);
|
|
60
|
+
if (data.variant?.purpose) console.log(` Purpose: ${data.variant.purpose}`);
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
});
|
|
@@ -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-HSBBGSS2.js").then((m) => m.run(args));
|
|
8
8
|
}
|
|
9
9
|
export {
|
|
10
10
|
run
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import "./chunk-O7IGP7ZW.js";
|
|
9
9
|
import {
|
|
10
10
|
checkForUpdate
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-SX72DOO3.js";
|
|
12
12
|
import {
|
|
13
13
|
LAUNCHD_PLIST_LABEL,
|
|
14
14
|
LAUNCHD_PLIST_PATH,
|
|
@@ -20,10 +20,10 @@ import {
|
|
|
20
20
|
getServiceMode,
|
|
21
21
|
modeLabel,
|
|
22
22
|
readDaemonConfig
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-HCYQRME2.js";
|
|
24
|
+
import "./chunk-DVN6DNMI.js";
|
|
25
|
+
import "./chunk-RSBL3FAD.js";
|
|
26
|
+
import "./chunk-P4LHVRNE.js";
|
|
27
27
|
import "./chunk-K3NQKI34.js";
|
|
28
28
|
|
|
29
29
|
// src/commands/status.ts
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ensureSystemDM,
|
|
4
|
+
generateSystemFallbackReply,
|
|
5
|
+
resetSystemDMCache,
|
|
6
|
+
sendSystemMessage,
|
|
7
|
+
sendSystemMessageDirect,
|
|
8
|
+
shouldGenerateSystemFallback
|
|
9
|
+
} from "./chunk-QQBOI3QA.js";
|
|
10
|
+
import "./chunk-VIUH5CHQ.js";
|
|
11
|
+
import "./chunk-RRZ4RQQU.js";
|
|
12
|
+
import "./chunk-EFT2OALG.js";
|
|
13
|
+
import "./chunk-K3JOLGWF.js";
|
|
14
|
+
import "./chunk-GWVFDUNB.js";
|
|
15
|
+
import "./chunk-4DSGN4FL.js";
|
|
16
|
+
import "./chunk-VNRSXEBF.js";
|
|
17
|
+
import "./chunk-JPGHSXSV.js";
|
|
18
|
+
import "./chunk-JCWB2ITW.js";
|
|
19
|
+
import "./chunk-XTEKINWG.js";
|
|
20
|
+
import "./chunk-ZX46PGCC.js";
|
|
21
|
+
import "./chunk-FBBS4BVR.js";
|
|
22
|
+
import "./chunk-DW4TRDOZ.js";
|
|
23
|
+
import "./chunk-WCFSBH33.js";
|
|
24
|
+
import "./chunk-DVN6DNMI.js";
|
|
25
|
+
import "./chunk-PY24ZL62.js";
|
|
26
|
+
import "./chunk-YIJGKHIS.js";
|
|
27
|
+
import "./chunk-NJHN6IRB.js";
|
|
28
|
+
import "./chunk-3B427GUK.js";
|
|
29
|
+
import "./chunk-QUSMYGNQ.js";
|
|
30
|
+
import "./chunk-RSBL3FAD.js";
|
|
31
|
+
import "./chunk-P4LHVRNE.js";
|
|
32
|
+
import "./chunk-K3NQKI34.js";
|
|
33
|
+
export {
|
|
34
|
+
ensureSystemDM,
|
|
35
|
+
generateSystemFallbackReply,
|
|
36
|
+
resetSystemDMCache,
|
|
37
|
+
sendSystemMessage,
|
|
38
|
+
sendSystemMessageDirect,
|
|
39
|
+
shouldGenerateSystemFallback
|
|
40
|
+
};
|
|
@@ -34,11 +34,11 @@ var cmd = subcommands({
|
|
|
34
34
|
},
|
|
35
35
|
register: {
|
|
36
36
|
description: "Register a system on volute.systems",
|
|
37
|
-
run: (args) => import("./register-
|
|
37
|
+
run: (args) => import("./register-TWQDKQRT.js").then((m) => m.run(args))
|
|
38
38
|
},
|
|
39
39
|
login: {
|
|
40
40
|
description: "Log in with an existing API key",
|
|
41
|
-
run: (args) => import("./login-
|
|
41
|
+
run: (args) => import("./login-LKNLCJPA.js").then((m) => m.run(args))
|
|
42
42
|
},
|
|
43
43
|
logout: {
|
|
44
44
|
description: "Remove stored credentials",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
logger_default
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QUSMYGNQ.js";
|
|
5
5
|
import {
|
|
6
6
|
voluteHome
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-RSBL3FAD.js";
|
|
8
|
+
import "./chunk-P4LHVRNE.js";
|
|
9
9
|
import "./chunk-K3NQKI34.js";
|
|
10
10
|
|
|
11
11
|
// packages/daemon/src/lib/tailscale.ts
|