volute 0.25.0 → 0.27.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 +28 -33
- package/dist/{activity-events-4O37J7PD.js → activity-events-BBIEA2F4.js} +2 -3
- package/dist/api.d.ts +886 -220
- package/dist/{archive-4ZQYK5MN.js → archive-UA4BDFXQ.js} +2 -2
- package/dist/{auth-HM2RSPY7.js → auth-D3OT2ARB.js} +3 -3
- package/dist/bridge-FQHZL3MC.js +206 -0
- package/dist/chat-MHJ3L6JQ.js +58 -0
- package/dist/{chunk-PHU4DEAJ.js → chunk-2WPW7OT6.js} +3 -3
- package/dist/{chunk-BOTQ25QT.js → chunk-2YP2TVDT.js} +138 -56
- package/dist/{chunk-DG7TO7EE.js → chunk-4WXYUOAK.js} +5 -7
- package/dist/{chunk-JTDFJWI2.js → chunk-AW7PFDVN.js} +5 -5
- package/dist/{chunk-2767L2RZ.js → chunk-EHYDTZTF.js} +6 -6
- package/dist/{chunk-ZSH4G2P5.js → chunk-GIE6CSN5.js} +17 -17
- package/dist/chunk-H7OZRFJB.js +432 -0
- package/dist/{chunk-ON3FF5JA.js → chunk-HDN7MNGD.js} +3 -3
- package/dist/chunk-IAYBDWVG.js +477 -0
- package/dist/chunk-IKRVFPWU.js +83 -0
- package/dist/{chunk-TRQEV3CD.js → chunk-JGFVMROS.js} +32 -6
- package/dist/{chunk-PHHKNGA3.js → chunk-JKOWNZ4P.js} +3 -3
- package/dist/{chunk-E7GOKNOT.js → chunk-K5NAC55T.js} +1 -1
- package/dist/{chunk-HFCBO2GL.js → chunk-KDGS53OS.js} +4 -4
- package/dist/chunk-KTLFDYPT.js +61 -0
- package/dist/{chunk-3AIBT4TW.js → chunk-LAC664WU.js} +30 -4
- package/dist/{chunk-PMX4EIJK.js → chunk-OQZH4PBB.js} +467 -1054
- package/dist/{chunk-SHSWYG2J.js → chunk-PHSAT7YL.js} +71 -58
- package/dist/chunk-RKQEHRBB.js +177 -0
- package/dist/{chunk-RVKR2R7F.js → chunk-SSI47XP2.js} +10 -2
- package/dist/chunk-T6HKBWXZ.js +23 -0
- package/dist/chunk-USUXRNVD.js +113 -0
- package/dist/{chunk-BFK6SOEJ.js → chunk-VIVMW2H2.js} +4 -4
- package/dist/{chunk-KTJGZ7M7.js → chunk-XBLSAVJF.js} +1 -1
- package/dist/chunk-ZYGKG6VC.js +22 -0
- package/dist/cli.js +51 -32
- package/dist/{cloud-sync-PPBBJDY6.js → cloud-sync-T7M3ESC3.js} +15 -12
- package/dist/connectors/discord-bridge.js +158 -0
- package/dist/connectors/slack-bridge.js +119 -0
- package/dist/connectors/telegram-bridge.js +133 -0
- package/dist/conversations-M2K4253F.js +55 -0
- package/dist/create-D7J73A6H.js +45 -0
- package/dist/{create-VDQJER52.js → create-QWV73WXD.js} +1 -1
- package/dist/{daemon-client-JOVQZ52X.js → daemon-client-I42FK2BF.js} +2 -2
- package/dist/{daemon-restart-FDNOZEAD.js → daemon-restart-M2QTYMEG.js} +7 -6
- package/dist/daemon.js +2247 -1085
- package/dist/db-IC4J52XQ.js +8 -0
- package/dist/{delete-2MRR4JX5.js → delete-4JYGD4VN.js} +1 -1
- package/dist/down-LVBXEULC.js +14 -0
- package/dist/{env-2FPOZK37.js → env-YJMUMFIY.js} +5 -5
- package/dist/{export-IKFAPRAO.js → export-BOJQWBMA.js} +4 -4
- package/dist/{file-KT3UIQM3.js → file-CR36YUPD.js} +4 -4
- package/dist/{history-46WZN5CN.js → history-XKRTAFS2.js} +7 -7
- package/dist/{import-TH26J76F.js → import-SRTQXBGH.js} +4 -4
- package/dist/join-J4QU42DL.js +66 -0
- package/dist/list-R73GENNL.js +40 -0
- package/dist/{log-6SGSSR3D.js → log-ABYNVYJ3.js} +4 -4
- package/dist/login-3QZNR2DF.js +46 -0
- package/dist/{login-UO6AOVEA.js → login-XX37I52P.js} +3 -3
- package/dist/logout-T53VKCPU.js +39 -0
- package/dist/{logout-UKD5LA37.js → logout-W4KOOBIT.js} +2 -2
- package/dist/{logs-HRBONI5I.js → logs-U35JR2KE.js} +7 -7
- package/dist/{merge-KSFJKX6T.js → merge-LNSMSAOF.js} +4 -4
- package/dist/message-delivery-LDXLGERA.js +25 -0
- package/dist/migrate-registry-to-db-XC7T5B7P.js +110 -0
- package/dist/{mind-YVWAHL2A.js → mind-DI33C74K.js} +25 -25
- package/dist/{mind-activity-tracker-NMDDEV3K.js → mind-activity-tracker-EN6XNXPF.js} +3 -4
- package/dist/{mind-manager-4NDNAYAB.js → mind-manager-M6EMUW5I.js} +6 -5
- package/dist/{mind-sleep-GHPTSAYN.js → mind-sleep-BTSWQNAC.js} +4 -4
- package/dist/{mind-wake-BJDJFMDF.js → mind-wake-SBAKIDVP.js} +4 -4
- package/dist/notes-XCER3I7M.js +220 -0
- package/dist/{package-3HF5MXU2.js → package-7WY6VKU3.js} +2 -1
- package/dist/{pages-Y6DRWUOJ.js → pages-6EBS6CBR.js} +2 -2
- package/dist/{publish-EEKTZBHW.js → publish-66UB2ZFY.js} +5 -5
- package/dist/{pull-D32SPFVU.js → pull-XCHJTM5M.js} +4 -4
- package/dist/read-36UFXN3G.js +46 -0
- package/dist/{register-U2UO6TC4.js → register-6B2CXTYM.js} +3 -3
- package/dist/{registry-D2BSQ2X5.js → registry-NDNOOYG4.js} +15 -9
- package/dist/{restart-5BMNV7KU.js → restart-6ESL3NBO.js} +6 -6
- package/dist/sandbox-TGBX22DS.js +19 -0
- package/dist/{schedule-YEFDLVMJ.js → schedule-QTJMFATP.js} +7 -7
- package/dist/{seed-6FEKB3YC.js → seed-SSUCYYDF.js} +2 -2
- package/dist/{send-IISDYFCL.js → send-ZNCJDSRP.js} +28 -36
- package/dist/service-6LIN3F3K.js +122 -0
- package/dist/setup-JG4QAEBV.js +371 -0
- package/dist/setup-JHL5ZEST.js +17 -0
- package/dist/{shared-LWMNTTZN.js → shared-ML5I4Q2A.js} +4 -4
- package/dist/{skill-T3EMR6IR.js → skill-AUAQTSP5.js} +7 -7
- package/dist/skills/dreaming/SKILL.md +68 -0
- package/dist/skills/dreaming/references/INSTALL.md +56 -0
- package/dist/skills/dreaming/scripts/dream.ts +289 -0
- package/dist/skills/dreaming/scripts/wake-context-dreams.sh +30 -0
- package/dist/skills/notes/SKILL.md +34 -0
- package/dist/skills/orientation/SKILL.md +3 -3
- package/dist/skills/volute-mind/SKILL.md +32 -30
- package/dist/sleep-manager-MWYHM5HV.js +29 -0
- package/dist/split-TKJ5OT3P.js +63 -0
- package/dist/{sprout-QJVGJDSH.js → sprout-IJVVKSJ2.js} +6 -7
- package/dist/{start-C7XITZ5O.js → start-EUJSS5R4.js} +4 -4
- package/dist/{status-SIRPLEZC.js → status-77YEPHMW.js} +5 -5
- package/dist/{status-LYS4NUOZ.js → status-7GA4SM4Y.js} +4 -4
- package/dist/{status-LV34BG6G.js → status-THLOBLWG.js} +2 -2
- package/dist/{stop-CVKBSLXY.js → stop-3XAITBBF.js} +6 -6
- package/dist/{tailscale-AJ4VL5XK.js → tailscale-NY5MUMY3.js} +1 -1
- package/dist/up-NKSMXBWR.js +17 -0
- package/dist/{update-7XCZMYBT.js → update-PTSH22AZ.js} +11 -11
- package/dist/{update-check-F5Z3ALXX.js → update-check-64FWC4Y2.js} +2 -2
- package/dist/{upgrade-7RUIXGOO.js → upgrade-HA47CS4C.js} +12 -5
- package/dist/variant-7TGZHOU3.js +41 -0
- package/dist/{version-notify-AZQMC32A.js → version-notify-5Z4MNR6M.js} +26 -28
- package/dist/web-assets/assets/index-CI5wgghI.css +1 -0
- package/dist/web-assets/assets/index-is5CvJWH.js +75 -0
- package/dist/web-assets/favicon.png +0 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0015_notes.sql +23 -0
- package/drizzle/0016_note_reactions_and_replies.sql +15 -0
- package/drizzle/0017_minds.sql +16 -0
- package/drizzle/meta/_journal.json +21 -0
- package/package.json +2 -1
- package/templates/_base/.init/.config/hooks/wake-context.sh +7 -0
- package/templates/_base/.init/.config/prompts.json +2 -2
- package/templates/_base/home/VOLUTE.md +5 -5
- package/templates/_base/src/lib/startup.ts +10 -2
- package/templates/claude/src/agent.ts +51 -1
- package/templates/claude/src/server.ts +1 -0
- package/templates/pi/package.json.tmpl +1 -0
- package/templates/pi/src/agent.ts +48 -1
- package/templates/pi/src/lib/subagents.ts +150 -0
- package/templates/pi/src/server.ts +1 -0
- package/dist/channel-HZOSHGNF.js +0 -260
- package/dist/chunk-33XAVCS4.js +0 -203
- package/dist/chunk-B2CPS4QU.js +0 -283
- package/dist/chunk-NWPT4ASZ.js +0 -89
- package/dist/chunk-SIAG3QMM.js +0 -42
- package/dist/chunk-WSLPZF72.js +0 -173
- package/dist/connector-M6XFI6GM.js +0 -147
- package/dist/connectors/discord.js +0 -177
- package/dist/connectors/slack.js +0 -181
- package/dist/connectors/telegram.js +0 -187
- package/dist/down-674SX2IZ.js +0 -14
- package/dist/message-delivery-XMGV3FUM.js +0 -23
- package/dist/service-FASYWLTC.js +0 -247
- package/dist/setup-BMLM2UTK.js +0 -230
- package/dist/sleep-manager-RKTFZPD3.js +0 -27
- package/dist/up-CJ26KQLN.js +0 -15
- package/dist/variant-UGREB4G5.js +0 -207
- package/dist/web-assets/assets/index-CGPSVu19.js +0 -69
- package/dist/web-assets/assets/index-V_rNDsM8.css +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
resolveMindName
|
|
4
|
+
} from "./chunk-NAOW2CLO.js";
|
|
5
|
+
import {
|
|
6
|
+
parseArgs
|
|
7
|
+
} from "./chunk-D424ZQGI.js";
|
|
8
|
+
import "./chunk-K3NQKI34.js";
|
|
9
|
+
|
|
10
|
+
// src/commands/split.ts
|
|
11
|
+
async function run(args) {
|
|
12
|
+
const { positional, flags } = parseArgs(args, {
|
|
13
|
+
from: { type: "string" },
|
|
14
|
+
soul: { type: "string" },
|
|
15
|
+
port: { type: "number" },
|
|
16
|
+
"no-start": { type: "boolean" },
|
|
17
|
+
json: { type: "boolean" }
|
|
18
|
+
});
|
|
19
|
+
const mindName = resolveMindName({ mind: flags.from });
|
|
20
|
+
const variantName = positional[0];
|
|
21
|
+
const { soul, port, json } = flags;
|
|
22
|
+
const noStart = flags["no-start"];
|
|
23
|
+
if (!variantName) {
|
|
24
|
+
console.error(
|
|
25
|
+
'Usage: volute mind split <name> [--from <mind>] [--soul "..."] [--port N] [--no-start] [--json]'
|
|
26
|
+
);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
if (!json) console.log("Creating variant via daemon...");
|
|
30
|
+
const { daemonFetch } = await import("./daemon-client-I42FK2BF.js");
|
|
31
|
+
const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
|
|
32
|
+
const client = getClient();
|
|
33
|
+
const res = await daemonFetch(
|
|
34
|
+
urlOf(client.api.minds[":name"].variants.$url({ param: { name: mindName } })),
|
|
35
|
+
{
|
|
36
|
+
method: "POST",
|
|
37
|
+
headers: { "Content-Type": "application/json" },
|
|
38
|
+
body: JSON.stringify({
|
|
39
|
+
name: variantName,
|
|
40
|
+
...soul && { soul },
|
|
41
|
+
...port && { port },
|
|
42
|
+
...noStart && { noStart }
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
const data = await res.json();
|
|
47
|
+
if (!res.ok) {
|
|
48
|
+
console.error(data.error ?? "Failed to create variant");
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
if (json) {
|
|
52
|
+
console.log(JSON.stringify(data.variant, null, 2));
|
|
53
|
+
} else {
|
|
54
|
+
console.log(`
|
|
55
|
+
Variant created: ${variantName}`);
|
|
56
|
+
console.log(` Branch: ${data.variant?.branch}`);
|
|
57
|
+
console.log(` Path: ${data.variant?.path}`);
|
|
58
|
+
console.log(` Port: ${data.variant?.port}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
run
|
|
63
|
+
};
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
STANDARD_SKILLS
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-33XAVCS4.js";
|
|
4
|
+
} from "./chunk-4WXYUOAK.js";
|
|
6
5
|
import "./chunk-YUIHSKR6.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-AW7PFDVN.js";
|
|
7
|
+
import "./chunk-RKQEHRBB.js";
|
|
9
8
|
import {
|
|
10
9
|
findMind,
|
|
11
10
|
mindDir
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-H7OZRFJB.js";
|
|
13
12
|
import "./chunk-K3NQKI34.js";
|
|
14
13
|
|
|
15
14
|
// src/commands/sprout.ts
|
|
@@ -22,7 +21,7 @@ async function run(_args) {
|
|
|
22
21
|
console.error("volute mind sprout must be run by a mind (VOLUTE_MIND not set)");
|
|
23
22
|
process.exit(1);
|
|
24
23
|
}
|
|
25
|
-
const entry = findMind(mindName);
|
|
24
|
+
const entry = await findMind(mindName);
|
|
26
25
|
if (!entry) {
|
|
27
26
|
console.error(`Unknown mind: ${mindName}`);
|
|
28
27
|
process.exit(1);
|
|
@@ -49,7 +48,7 @@ async function run(_args) {
|
|
|
49
48
|
console.error("Write your MEMORY.md before sprouting.");
|
|
50
49
|
process.exit(1);
|
|
51
50
|
}
|
|
52
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
51
|
+
const { daemonFetch } = await import("./daemon-client-I42FK2BF.js");
|
|
53
52
|
const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
|
|
54
53
|
const client = getClient();
|
|
55
54
|
const failedSkills = [];
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
daemonFetch
|
|
4
|
+
} from "./chunk-JGFVMROS.js";
|
|
2
5
|
import {
|
|
3
6
|
getClient,
|
|
4
7
|
urlOf
|
|
5
8
|
} from "./chunk-4RQBJWQX.js";
|
|
6
|
-
import
|
|
7
|
-
daemonFetch
|
|
8
|
-
} from "./chunk-TRQEV3CD.js";
|
|
9
|
-
import "./chunk-B2CPS4QU.js";
|
|
9
|
+
import "./chunk-H7OZRFJB.js";
|
|
10
10
|
import "./chunk-K3NQKI34.js";
|
|
11
11
|
|
|
12
12
|
// src/commands/start.ts
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
getServiceMode,
|
|
5
5
|
modeLabel,
|
|
6
6
|
readDaemonConfig
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-JTDFJWI2.js";
|
|
9
|
-
import "./chunk-NWPT4ASZ.js";
|
|
7
|
+
} from "./chunk-LAC664WU.js";
|
|
10
8
|
import {
|
|
11
9
|
checkForUpdate
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-HDN7MNGD.js";
|
|
11
|
+
import "./chunk-AW7PFDVN.js";
|
|
12
|
+
import "./chunk-RKQEHRBB.js";
|
|
13
|
+
import "./chunk-H7OZRFJB.js";
|
|
14
14
|
import "./chunk-K3NQKI34.js";
|
|
15
15
|
|
|
16
16
|
// src/commands/status.ts
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveMindName
|
|
4
4
|
} from "./chunk-NAOW2CLO.js";
|
|
5
|
+
import {
|
|
6
|
+
daemonFetch
|
|
7
|
+
} from "./chunk-JGFVMROS.js";
|
|
5
8
|
import {
|
|
6
9
|
parseArgs
|
|
7
10
|
} from "./chunk-D424ZQGI.js";
|
|
8
|
-
import
|
|
9
|
-
daemonFetch
|
|
10
|
-
} from "./chunk-TRQEV3CD.js";
|
|
11
|
-
import "./chunk-B2CPS4QU.js";
|
|
11
|
+
import "./chunk-H7OZRFJB.js";
|
|
12
12
|
import "./chunk-K3NQKI34.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/shared/status.ts
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
} from "./chunk-NAOW2CLO.js";
|
|
8
8
|
import {
|
|
9
9
|
readSystemsConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KDGS53OS.js";
|
|
11
11
|
import {
|
|
12
12
|
parseArgs
|
|
13
13
|
} from "./chunk-D424ZQGI.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-H7OZRFJB.js";
|
|
15
15
|
import "./chunk-K3NQKI34.js";
|
|
16
16
|
|
|
17
17
|
// src/commands/pages/status.ts
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
getClient,
|
|
4
|
-
urlOf
|
|
5
|
-
} from "./chunk-4RQBJWQX.js";
|
|
6
2
|
import {
|
|
7
3
|
resolveMindName
|
|
8
4
|
} from "./chunk-NAOW2CLO.js";
|
|
9
5
|
import {
|
|
10
6
|
daemonFetch
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import
|
|
7
|
+
} from "./chunk-JGFVMROS.js";
|
|
8
|
+
import {
|
|
9
|
+
getClient,
|
|
10
|
+
urlOf
|
|
11
|
+
} from "./chunk-4RQBJWQX.js";
|
|
12
|
+
import "./chunk-H7OZRFJB.js";
|
|
13
13
|
import "./chunk-K3NQKI34.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/stop.ts
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
run
|
|
4
|
+
} from "./chunk-GIE6CSN5.js";
|
|
5
|
+
import "./chunk-LAC664WU.js";
|
|
6
|
+
import "./chunk-AW7PFDVN.js";
|
|
7
|
+
import "./chunk-RKQEHRBB.js";
|
|
8
|
+
import {
|
|
9
|
+
readGlobalConfig
|
|
10
|
+
} from "./chunk-IKRVFPWU.js";
|
|
11
|
+
import "./chunk-D424ZQGI.js";
|
|
12
|
+
import "./chunk-H7OZRFJB.js";
|
|
13
|
+
import "./chunk-K3NQKI34.js";
|
|
14
|
+
export {
|
|
15
|
+
readGlobalConfig,
|
|
16
|
+
run
|
|
17
|
+
};
|
|
@@ -5,19 +5,19 @@ import {
|
|
|
5
5
|
pollHealth,
|
|
6
6
|
readDaemonConfig,
|
|
7
7
|
restartService
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-LAC664WU.js";
|
|
9
|
+
import {
|
|
10
|
+
checkForUpdate
|
|
11
|
+
} from "./chunk-HDN7MNGD.js";
|
|
9
12
|
import {
|
|
10
13
|
exec,
|
|
11
14
|
execInherit,
|
|
12
15
|
resolveVoluteBin
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
checkForUpdate
|
|
17
|
-
} from "./chunk-ON3FF5JA.js";
|
|
16
|
+
} from "./chunk-AW7PFDVN.js";
|
|
17
|
+
import "./chunk-RKQEHRBB.js";
|
|
18
18
|
import {
|
|
19
|
-
|
|
20
|
-
} from "./chunk-
|
|
19
|
+
voluteSystemDir
|
|
20
|
+
} from "./chunk-H7OZRFJB.js";
|
|
21
21
|
import "./chunk-K3NQKI34.js";
|
|
22
22
|
|
|
23
23
|
// src/commands/update.ts
|
|
@@ -102,9 +102,9 @@ Updated to volute v${result.latest}`);
|
|
|
102
102
|
}
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
|
-
const
|
|
106
|
-
const pidPath = resolve(
|
|
107
|
-
const configPath = resolve(
|
|
105
|
+
const systemDir = voluteSystemDir();
|
|
106
|
+
const pidPath = resolve(systemDir, "daemon.pid");
|
|
107
|
+
const configPath = resolve(systemDir, "daemon.json");
|
|
108
108
|
let daemonWasRunning = false;
|
|
109
109
|
let daemonPort = 1618;
|
|
110
110
|
let daemonHost = "127.0.0.1";
|
|
@@ -12,10 +12,11 @@ async function run(args) {
|
|
|
12
12
|
const { positional, flags } = parseArgs(args, {
|
|
13
13
|
template: { type: "string" },
|
|
14
14
|
continue: { type: "boolean" },
|
|
15
|
-
abort: { type: "boolean" }
|
|
15
|
+
abort: { type: "boolean" },
|
|
16
|
+
accept: { type: "boolean" }
|
|
16
17
|
});
|
|
17
18
|
const mindName = resolveMindName({ mind: positional[0] });
|
|
18
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
19
|
+
const { daemonFetch } = await import("./daemon-client-I42FK2BF.js");
|
|
19
20
|
const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
|
|
20
21
|
const client = getClient();
|
|
21
22
|
const res = await daemonFetch(
|
|
@@ -26,7 +27,8 @@ async function run(args) {
|
|
|
26
27
|
body: JSON.stringify({
|
|
27
28
|
template: flags.template,
|
|
28
29
|
continue: flags.continue,
|
|
29
|
-
abort: flags.abort
|
|
30
|
+
abort: flags.abort,
|
|
31
|
+
accept: flags.accept
|
|
30
32
|
})
|
|
31
33
|
}
|
|
32
34
|
);
|
|
@@ -39,6 +41,10 @@ async function run(args) {
|
|
|
39
41
|
console.log(`Upgrade aborted for ${mindName}.`);
|
|
40
42
|
return;
|
|
41
43
|
}
|
|
44
|
+
if (flags.accept) {
|
|
45
|
+
console.log(`Upgrade accepted for ${mindName}.`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
42
48
|
if (data.conflicts) {
|
|
43
49
|
console.log("\nMerge conflicts detected. Resolve them in:");
|
|
44
50
|
console.log(` ${data.worktreeDir}`);
|
|
@@ -50,12 +56,13 @@ Or abort:`);
|
|
|
50
56
|
console.log(` volute mind upgrade ${mindName} --abort`);
|
|
51
57
|
return;
|
|
52
58
|
}
|
|
59
|
+
const variantMindName = `${mindName}-${data.variant}`;
|
|
53
60
|
console.log(`
|
|
54
61
|
Upgrade variant running on port ${data.port}`);
|
|
55
62
|
console.log(`
|
|
56
63
|
Next steps:`);
|
|
57
|
-
console.log(` volute send @${
|
|
58
|
-
console.log(` volute
|
|
64
|
+
console.log(` volute chat send @${variantMindName} "hello" # chat with upgraded variant`);
|
|
65
|
+
console.log(` volute mind upgrade ${mindName} --accept # accept the upgrade`);
|
|
59
66
|
}
|
|
60
67
|
export {
|
|
61
68
|
run
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "./chunk-K3NQKI34.js";
|
|
3
|
+
|
|
4
|
+
// src/commands/variant.ts
|
|
5
|
+
async function run(args) {
|
|
6
|
+
const subcommand = args[0];
|
|
7
|
+
switch (subcommand) {
|
|
8
|
+
case "create":
|
|
9
|
+
console.error(
|
|
10
|
+
"'volute variant create' has been replaced. Use 'volute mind split' to create variants."
|
|
11
|
+
);
|
|
12
|
+
console.error("Usage: volute mind split <name> [--from <mind>] [--soul '...'] [--no-start]");
|
|
13
|
+
process.exit(1);
|
|
14
|
+
break;
|
|
15
|
+
case "merge":
|
|
16
|
+
console.error(
|
|
17
|
+
"'volute variant merge' has been replaced. Use 'volute mind join' to merge variants."
|
|
18
|
+
);
|
|
19
|
+
console.error(
|
|
20
|
+
"Usage: volute mind join <name> [--summary '...' --memory '...' --justification '...']"
|
|
21
|
+
);
|
|
22
|
+
process.exit(1);
|
|
23
|
+
break;
|
|
24
|
+
case "list":
|
|
25
|
+
case "delete":
|
|
26
|
+
console.error(`'volute variant ${subcommand}' is no longer available.`);
|
|
27
|
+
console.error(
|
|
28
|
+
"Use 'volute mind list' to see variants, or 'volute mind delete <variant-name>' to delete."
|
|
29
|
+
);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
console.error(
|
|
34
|
+
"'volute variant' has been replaced. Use 'volute mind split' and 'volute mind join'."
|
|
35
|
+
);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
run
|
|
41
|
+
};
|
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
deliverMessage
|
|
4
|
+
} from "./chunk-OQZH4PBB.js";
|
|
5
|
+
import "./chunk-KDGS53OS.js";
|
|
6
|
+
import "./chunk-K5NAC55T.js";
|
|
7
|
+
import "./chunk-PHSAT7YL.js";
|
|
8
|
+
import "./chunk-USUXRNVD.js";
|
|
9
|
+
import "./chunk-IAYBDWVG.js";
|
|
10
|
+
import "./chunk-VIVMW2H2.js";
|
|
2
11
|
import {
|
|
3
12
|
computeTemplateHash
|
|
4
13
|
} from "./chunk-AKPFNL7L.js";
|
|
5
14
|
import {
|
|
6
|
-
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-E7GOKNOT.js";
|
|
10
|
-
import "./chunk-BFK6SOEJ.js";
|
|
11
|
-
import "./chunk-SHSWYG2J.js";
|
|
12
|
-
import "./chunk-SIAG3QMM.js";
|
|
13
|
-
import "./chunk-PHU4DEAJ.js";
|
|
14
|
-
import "./chunk-33XAVCS4.js";
|
|
15
|
+
getCurrentVersion
|
|
16
|
+
} from "./chunk-HDN7MNGD.js";
|
|
17
|
+
import "./chunk-2WPW7OT6.js";
|
|
15
18
|
import {
|
|
16
19
|
logger_default
|
|
17
20
|
} from "./chunk-YUIHSKR6.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
} from "./chunk-ON3FF5JA.js";
|
|
21
|
+
import "./chunk-AW7PFDVN.js";
|
|
22
|
+
import "./chunk-RKQEHRBB.js";
|
|
23
|
+
import "./chunk-IKRVFPWU.js";
|
|
24
|
+
import "./chunk-T6HKBWXZ.js";
|
|
23
25
|
import {
|
|
24
26
|
readRegistry,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
setMindTemplateHash,
|
|
28
|
+
voluteSystemDir
|
|
29
|
+
} from "./chunk-H7OZRFJB.js";
|
|
28
30
|
import "./chunk-K3NQKI34.js";
|
|
29
31
|
|
|
30
32
|
// src/lib/version-notify.ts
|
|
@@ -81,7 +83,7 @@ function findChangelog() {
|
|
|
81
83
|
|
|
82
84
|
// src/lib/version-notify.ts
|
|
83
85
|
function statePath() {
|
|
84
|
-
return resolve2(
|
|
86
|
+
return resolve2(voluteSystemDir(), "version-notify.json");
|
|
85
87
|
}
|
|
86
88
|
function readState() {
|
|
87
89
|
try {
|
|
@@ -95,23 +97,19 @@ function writeState(state) {
|
|
|
95
97
|
writeFileSync(statePath(), `${JSON.stringify(state, null, 2)}
|
|
96
98
|
`);
|
|
97
99
|
}
|
|
98
|
-
function backfillTemplateHashes() {
|
|
99
|
-
const entries = readRegistry();
|
|
100
|
-
let changed = false;
|
|
100
|
+
async function backfillTemplateHashes() {
|
|
101
|
+
const entries = await readRegistry();
|
|
101
102
|
for (const entry of entries) {
|
|
102
103
|
if (entry.templateHash != null) continue;
|
|
103
104
|
if (entry.stage === "seed") continue;
|
|
104
105
|
const tmpl = entry.template ?? "claude";
|
|
105
106
|
try {
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
const hash = computeTemplateHash(tmpl);
|
|
108
|
+
await setMindTemplateHash(entry.name, hash);
|
|
108
109
|
} catch (err) {
|
|
109
110
|
logger_default.warn(`failed to compute template hash for ${entry.name}`, logger_default.errorData(err));
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
|
-
if (changed) {
|
|
113
|
-
writeRegistry(entries);
|
|
114
|
-
}
|
|
115
113
|
}
|
|
116
114
|
async function notifyVersionUpdate() {
|
|
117
115
|
const currentVersion = getCurrentVersion();
|
|
@@ -121,7 +119,7 @@ async function notifyVersionUpdate() {
|
|
|
121
119
|
return;
|
|
122
120
|
}
|
|
123
121
|
if (state.lastNotifiedVersion === currentVersion) return;
|
|
124
|
-
const entries = readRegistry();
|
|
122
|
+
const entries = await readRegistry();
|
|
125
123
|
const runningMinds = entries.filter((e) => e.running && e.stage !== "seed");
|
|
126
124
|
if (runningMinds.length === 0) {
|
|
127
125
|
writeState({ lastNotifiedVersion: currentVersion });
|
|
@@ -170,7 +168,7 @@ ${releaseNotes}`;
|
|
|
170
168
|
|
|
171
169
|
---
|
|
172
170
|
|
|
173
|
-
A template update is available for you. To upgrade,
|
|
171
|
+
A template update is available for you. To upgrade, run:
|
|
174
172
|
volute mind upgrade ${mindName}`;
|
|
175
173
|
}
|
|
176
174
|
return message;
|