volute 0.32.0 → 0.34.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 +16 -0
- package/dist/{accept-74M7I4RZ.js → accept-TW6V4WI4.js} +4 -4
- package/dist/{activity-events-HETAODOK.js → activity-events-BN7V6KCC.js} +4 -4
- package/dist/{ai-service-ZIPCV3MX.js → ai-service-PSILB5WD.js} +5 -5
- package/dist/{api-client-YPKOZP2O.js → api-client-XUXOB7LI.js} +1 -1
- package/dist/api.d.ts +1198 -957
- package/dist/{archive-INXYFVCW.js → archive-C2VEMQOR.js} +4 -4
- package/dist/{auth-6DMGES3I.js → auth-ZFZXJZDQ.js} +5 -5
- package/dist/{bridge-BVCBTGPF.js → bridge-O753D5F4.js} +4 -4
- package/dist/{chat-XT4OBJBU.js → chat-BHYX7DJ4.js} +9 -9
- package/dist/{chunk-M7UL5S3Q.js → chunk-2IOP6PHB.js} +1 -1
- package/dist/{chunk-JJ7W6WSB.js → chunk-47XDEWWV.js} +5 -5
- package/dist/{chunk-RSX4OPZY.js → chunk-47ZPNLF4.js} +7 -7
- package/dist/{chunk-RPZZSXV3.js → chunk-4JSR7YO7.js} +20 -1
- package/dist/chunk-6LXAAQ43.js +22 -0
- package/dist/{chunk-TSXLLQZW.js → chunk-6OWJXUAR.js} +10 -1
- package/dist/{chunk-I5KY25PQ.js → chunk-6WAWMWR5.js} +1 -1
- package/dist/{chunk-LSGWR54X.js → chunk-7F2SW2KD.js} +2 -2
- package/dist/chunk-7KJOFUNN.js +22 -0
- package/dist/{spirit-N4W4UQRH.js → chunk-B2BVAIZ4.js} +21 -12
- package/dist/{chunk-LGB6JBHI.js → chunk-BDK73LK6.js} +5 -55
- package/dist/{chunk-IYDIE3HG.js → chunk-BFWHBQK4.js} +1 -1
- package/dist/{chunk-TDRYEPH4.js → chunk-BM474GX6.js} +4 -4
- package/dist/{chunk-R7E6CRVQ.js → chunk-BTWAGDV5.js} +1 -1
- package/dist/{chunk-WKF5FEFK.js → chunk-CVL5IGIR.js} +629 -174
- package/dist/{chunk-S6NFERDC.js → chunk-E5C7OWZ2.js} +20 -22
- package/dist/chunk-FYCALD4Q.js +23 -0
- package/dist/{chunk-SKLSMHXO.js → chunk-IS7WJ56Q.js} +1 -1
- package/dist/{chunk-2NGTS5UU.js → chunk-M3K5AARV.js} +1 -1
- package/dist/{chunk-ALEF47VT.js → chunk-MLOQKQNB.js} +1 -1
- package/dist/{chunk-D5G5YOPL.js → chunk-N3DNFPVA.js} +41 -5
- package/dist/{chunk-LRCG2JLP.js → chunk-N7BLAHNE.js} +5 -1
- package/dist/chunk-OYAKCAVY.js +29 -0
- package/dist/{chunk-UKVWJRKN.js → chunk-PLDWHR4D.js} +1 -1
- package/dist/{chunk-QBQ424EM.js → chunk-TAHX36HZ.js} +545 -246
- package/dist/chunk-U5BTYSAL.js +59 -0
- package/dist/{chunk-SX5TKJBZ.js → chunk-V45JXOWY.js} +2 -2
- package/dist/{chunk-2FLJ63GU.js → chunk-V6ZCNULL.js} +2 -2
- package/dist/{chunk-QZANELPX.js → chunk-XWXBJQBE.js} +3 -2
- package/dist/cli.js +32 -24
- package/dist/{clock-2UOZ6JPU.js → clock-3X4DSC2N.js} +38 -23
- package/dist/{cloud-sync-JN3NWKEM.js → cloud-sync-TG3TIX5H.js} +21 -17
- package/dist/{config-H2H4UIF7.js → config-OROA5DUA.js} +4 -4
- package/dist/connectors/discord-bridge.js +1 -1
- package/dist/connectors/slack-bridge.js +1 -1
- package/dist/connectors/telegram-bridge.js +1 -1
- package/dist/{conversations-3O5O6AS3.js → conversations-HL2JP5GI.js} +5 -5
- package/dist/{create-RNLNCORE.js → create-3SEKKI6P.js} +5 -5
- package/dist/{create-WBBYI6V7.js → create-UOSOQ2HN.js} +4 -4
- package/dist/daemon-client-WOAQXXBM.js +12 -0
- package/dist/{daemon-restart-NGFHFAUF.js → daemon-restart-5ABHNXJZ.js} +9 -8
- package/dist/daemon.js +2730 -1520
- package/dist/{db-RA45JBFG.js → db-PLEDCBHZ.js} +1 -1
- package/dist/db-RYX3SS2W.js +9 -0
- package/dist/{delete-QTGWEDBI.js → delete-KYOVWR23.js} +3 -3
- package/dist/delivery-manager-2BR5NZKF.js +32 -0
- package/dist/{delivery-router-FL45JL7N.js → delivery-router-D5ELDMS2.js} +4 -4
- package/dist/down-QVFN4UPK.js +15 -0
- package/dist/{env-RLYQBOOP.js → env-R34DT7XL.js} +10 -6
- package/dist/exec-DVLXKRIO.js +17 -0
- package/dist/{export-SUYRLI5Q.js → export-6ZXAXATG.js} +6 -6
- package/dist/extension-PM42QCID.js +97 -0
- package/dist/extensions-BBGVL5JC.js +38 -0
- package/dist/{files-EAMPO2SJ.js → files-VQV2VZQO.js} +5 -5
- package/dist/{import-DDUFE7AY.js → import-MK2I2T6F.js} +5 -5
- package/dist/isolation-62MKDZN3.js +22 -0
- package/dist/{join-I5QEE3LG.js → join-DGYHTJUH.js} +3 -3
- package/dist/lib-DYEZMGW7.js +6588 -0
- package/dist/{list-DW2VRTOZ.js → list-C644WTHV.js} +16 -8
- package/dist/{login-7CHPW2PN.js → login-IIGEQPHL.js} +4 -4
- package/dist/{login-RIJF2F4G.js → login-KZQLMAWE.js} +4 -4
- package/dist/{logout-5MLHZALK.js → logout-AGTZVRGP.js} +4 -4
- package/dist/{logout-UZJRGY4Z.js → logout-KD6GXIJJ.js} +4 -4
- package/dist/message-delivery-V3R6NXJP.js +42 -0
- package/dist/{mind-2B6M7Y25.js → mind-BI4EPBVZ.js} +25 -19
- package/dist/{mind-activity-tracker-NZZT2NTT.js → mind-activity-tracker-2ACNHA7B.js} +5 -5
- package/dist/mind-history-WOYFLQAI.js +264 -0
- package/dist/{mind-list-WUPMQDYQ.js → mind-list-6VPM7GUQ.js} +4 -4
- package/dist/mind-manager-MWW3BTS4.js +32 -0
- package/dist/mind-profile-WPG42U5Y.js +47 -0
- package/dist/mind-service-VIKZJK2M.js +38 -0
- package/dist/{mind-sleep-B7BHJLH7.js → mind-sleep-XDISJY74.js} +4 -4
- package/dist/{mind-status-L3EFFRPR.js → mind-status-7FTZWPZF.js} +4 -4
- package/dist/{mind-wake-GY3RFX7Y.js → mind-wake-KIIKEI3A.js} +4 -4
- package/dist/{package-PK6JUFL3.js → package-V2WHWVG6.js} +9 -5
- package/dist/{read-5AMJRO3D.js → read-H5C26YO7.js} +18 -8
- package/dist/read-stdin-PIRM6A2Y.js +8 -0
- package/dist/{register-V2JZZKFK.js → register-J27WP33N.js} +4 -4
- package/dist/{registry-PJ4S5PHQ.js → registry-UYV5S6QT.js} +3 -3
- package/dist/{reject-33HEZMZ4.js → reject-OEANJYIA.js} +4 -4
- package/dist/{restart-3UCMRUVC.js → restart-V5EGYBJG.js} +4 -4
- package/dist/{sandbox-JANNTX6U.js → sandbox-SI5HMBP3.js} +5 -5
- package/dist/scheduler-AGG3L2FO.js +32 -0
- package/dist/{schema-PA3M5ZKH.js → schema-ETMABTW4.js} +4 -2
- package/dist/seed-WNGI6PNW.js +11 -0
- package/dist/seed-check-PXTH7YXS.js +32 -0
- package/dist/seed-cmd-VENFTGS3.js +36 -0
- package/dist/{seed-ALUQ55FF.js → seed-create-663ALOKH.js} +8 -8
- package/dist/{sprout-L2GFOVF7.js → seed-sprout-EH3AGKAI.js} +24 -11
- package/dist/{send-3MI36LEF.js → send-7FUUUZZH.js} +66 -51
- package/dist/{setup-SZIARWI6.js → setup-GGMKENLN.js} +6 -4
- package/dist/{setup-WENLVPVP.js → setup-Z3DEVWV7.js} +13 -11
- package/dist/{skill-TUVOTW4Z.js → skill-DKNYJS4P.js} +12 -8
- package/dist/skills/imagegen/SKILL.md +11 -7
- package/dist/skills/imagegen/scripts/imagegen.ts +146 -25
- package/dist/skills/orientation/SKILL.md +9 -2
- package/dist/skills/plan-coordinator/SKILL.md +60 -0
- package/dist/skills/seed-nurture/SKILL.md +42 -0
- package/dist/skills/volute-mind/SKILL.md +11 -221
- package/dist/skills/volute-mind/references/extensions.md +37 -0
- package/dist/skills/volute-mind/references/integrations.md +48 -0
- package/dist/skills/volute-mind/references/routing.md +86 -0
- package/dist/skills/volute-mind/references/sleep.md +33 -0
- package/dist/skills/volute-mind/references/variants.md +31 -0
- package/dist/{skills-XNZK6P4K.js → skills-Q6VZ2UGD.js} +11 -6
- package/dist/sleep-manager-BJK2ROPX.js +36 -0
- package/dist/spirit-4JP4TY4C.js +23 -0
- package/dist/{split-STOROBYJ.js → split-3YPMS2CL.js} +3 -3
- package/dist/sprout-E3HJIV2Z.js +11 -0
- package/dist/{start-K2NCUUCG.js → start-W3TPKX4D.js} +4 -4
- package/dist/{status-TCUMUO6M.js → status-4OVFXFEJ.js} +7 -6
- package/dist/{stop-H26JZDXF.js → stop-GTT6YWYO.js} +4 -4
- package/dist/system-channel-DXD2JBOU.js +36 -0
- package/dist/system-chat-TYLOL7SX.js +36 -0
- package/dist/{systems-DHBKVYEY.js → systems-AYLO727G.js} +7 -7
- package/dist/{tailscale-XHQBZROW.js → tailscale-ZEUK7GKZ.js} +3 -3
- package/dist/{template-hash-A6VVKOXJ.js → template-hash-EJRTKE36.js} +1 -1
- package/dist/up-PA7F2CXE.js +18 -0
- package/dist/{update-QVPRF6GR.js → update-HG4LCUSG.js} +7 -6
- package/dist/{update-check-ZD6OOIYQ.js → update-check-X3YG4WVP.js} +4 -4
- package/dist/{upgrade-O4Q7WJM3.js → upgrade-YGNIDICG.js} +3 -3
- package/dist/{variant-7TGZHOU3.js → variant-MZUMRTQO.js} +1 -1
- package/dist/{version-notify-TCKWBZZG.js → version-notify-YCH4UVQ2.js} +23 -20
- package/dist/volute-config-WBKYJGYQ.js +10 -0
- package/dist/web-assets/assets/index-DiiwC-CZ.css +1 -0
- package/dist/web-assets/assets/index-d6y5b9Ij.js +75 -0
- package/dist/web-assets/ext-theme.css +48 -9
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0005_meta_summaries.sql +15 -0
- package/drizzle/meta/0005_snapshot.json +7 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +8 -4
- package/packages/extensions/plan/dist/ui/assets/index-CJj2gZnZ.css +1 -0
- package/packages/extensions/plan/dist/ui/assets/index-FMEJmvQz.js +61 -0
- package/packages/extensions/plan/dist/ui/index.html +14 -0
- package/packages/extensions/plan/skills/plan/SKILL.md +43 -0
- package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +37 -0
- package/templates/_base/home/VOLUTE.md +12 -19
- package/templates/_base/src/lib/context-breakdown.ts +450 -0
- package/templates/_base/src/lib/format-prefix.ts +17 -0
- package/templates/_base/src/lib/hook-loader.ts +8 -2
- package/templates/_base/src/lib/router.ts +75 -33
- package/templates/_base/src/lib/routing.ts +4 -1
- package/templates/_base/src/lib/startup.ts +16 -8
- package/templates/_base/src/lib/types.ts +2 -1
- package/templates/_base/src/lib/volute-server.ts +69 -8
- package/templates/claude/.init/CLAUDE.md +4 -10
- package/templates/claude/package.json.tmpl +1 -0
- package/templates/claude/src/agent.ts +100 -32
- package/templates/claude/src/lib/hooks/reply-instructions.ts +27 -7
- package/templates/claude/src/lib/stream-consumer.ts +40 -2
- package/templates/claude/src/server.ts +1 -0
- package/templates/codex/package.json.tmpl +1 -0
- package/templates/codex/src/agent.ts +81 -8
- package/templates/codex/src/server.ts +1 -4
- package/templates/pi/package.json.tmpl +1 -0
- package/templates/pi/src/agent.ts +115 -36
- package/templates/pi/src/lib/event-handler.ts +22 -7
- package/templates/pi/src/lib/reply-instructions-extension.ts +23 -4
- package/templates/pi/src/lib/subagents.ts +20 -17
- package/templates/pi/src/server.ts +2 -5
- package/dist/chunk-K3NQKI34.js +0 -10
- package/dist/daemon-client-6QXHZ7US.js +0 -12
- package/dist/db-F34YLV7D.js +0 -9
- package/dist/delivery-manager-SDVXFD4W.js +0 -28
- package/dist/down-TB3ESMNP.js +0 -14
- package/dist/extension-FQ5D3NCC.js +0 -174
- package/dist/extensions-GDYWQXC4.js +0 -29
- package/dist/history-FO5PHBQ5.js +0 -128
- package/dist/message-delivery-2FIM7QKO.js +0 -32
- package/dist/mind-manager-BNCMGYXW.js +0 -28
- package/dist/mind-service-AV273WT4.js +0 -34
- package/dist/sleep-manager-53DZOWW7.js +0 -32
- package/dist/system-chat-NPYFYZVI.js +0 -32
- package/dist/up-6I6BHRTO.js +0 -17
- package/dist/web-assets/assets/index-Bui7U9Uu.css +0 -1
- package/dist/web-assets/assets/index-e36DIo1b.js +0 -73
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
extractArchive,
|
|
6
6
|
isHomeOnlyArchive,
|
|
7
7
|
readManifest
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-6WAWMWR5.js";
|
|
9
|
+
import "./chunk-N7BLAHNE.js";
|
|
10
|
+
import "./chunk-4JSR7YO7.js";
|
|
11
|
+
import "./chunk-7KJOFUNN.js";
|
|
12
12
|
export {
|
|
13
13
|
addHistoryToArchive,
|
|
14
14
|
createExportArchive,
|
|
@@ -17,12 +17,12 @@ import {
|
|
|
17
17
|
syncMindProfile,
|
|
18
18
|
updateUserProfile,
|
|
19
19
|
verifyUser
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-BM474GX6.js";
|
|
21
|
+
import "./chunk-XWXBJQBE.js";
|
|
22
22
|
import "./chunk-YUIHSKR6.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-N7BLAHNE.js";
|
|
24
|
+
import "./chunk-4JSR7YO7.js";
|
|
25
|
+
import "./chunk-7KJOFUNN.js";
|
|
26
26
|
export {
|
|
27
27
|
approveUser,
|
|
28
28
|
changePassword,
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-D424ZQGI.js";
|
|
5
5
|
import {
|
|
6
6
|
daemonFetch
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-PLDWHR4D.js";
|
|
8
|
+
import "./chunk-N7BLAHNE.js";
|
|
9
|
+
import "./chunk-4JSR7YO7.js";
|
|
10
|
+
import "./chunk-7KJOFUNN.js";
|
|
11
11
|
|
|
12
12
|
// src/commands/chat/bridge.ts
|
|
13
13
|
async function run(args) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-7KJOFUNN.js";
|
|
3
3
|
|
|
4
4
|
// src/commands/chat.ts
|
|
5
5
|
async function run(args) {
|
|
@@ -7,28 +7,28 @@ async function run(args) {
|
|
|
7
7
|
const subArgs = args.slice(1);
|
|
8
8
|
switch (subcommand) {
|
|
9
9
|
case "send":
|
|
10
|
-
await import("./send-
|
|
10
|
+
await import("./send-7FUUUZZH.js").then((m) => m.run(subArgs));
|
|
11
11
|
break;
|
|
12
12
|
case "list":
|
|
13
|
-
await import("./list-
|
|
13
|
+
await import("./list-C644WTHV.js").then((m) => m.run(subArgs));
|
|
14
14
|
break;
|
|
15
15
|
case "read":
|
|
16
|
-
await import("./read-
|
|
16
|
+
await import("./read-H5C26YO7.js").then((m) => m.run(subArgs));
|
|
17
17
|
break;
|
|
18
18
|
case "create":
|
|
19
|
-
await import("./create-
|
|
19
|
+
await import("./create-3SEKKI6P.js").then((m) => m.run(subArgs));
|
|
20
20
|
break;
|
|
21
21
|
case "bridge":
|
|
22
|
-
await import("./bridge-
|
|
22
|
+
await import("./bridge-O753D5F4.js").then((m) => m.run(subArgs));
|
|
23
23
|
break;
|
|
24
24
|
case "files":
|
|
25
|
-
await import("./files-
|
|
25
|
+
await import("./files-VQV2VZQO.js").then((m) => m.run(subArgs));
|
|
26
26
|
break;
|
|
27
27
|
case "accept":
|
|
28
|
-
await import("./accept-
|
|
28
|
+
await import("./accept-TW6V4WI4.js").then((m) => m.run(subArgs));
|
|
29
29
|
break;
|
|
30
30
|
case "reject":
|
|
31
|
-
await import("./reject-
|
|
31
|
+
await import("./reject-OEANJYIA.js").then((m) => m.run(subArgs));
|
|
32
32
|
break;
|
|
33
33
|
case "--help":
|
|
34
34
|
case "-h":
|
|
@@ -4,17 +4,17 @@ import {
|
|
|
4
4
|
modeLabel,
|
|
5
5
|
pollHealth,
|
|
6
6
|
startService
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import {
|
|
9
|
-
readGlobalConfig
|
|
10
|
-
} from "./chunk-TSXLLQZW.js";
|
|
7
|
+
} from "./chunk-7F2SW2KD.js";
|
|
11
8
|
import {
|
|
12
9
|
parseArgs
|
|
13
10
|
} from "./chunk-D424ZQGI.js";
|
|
11
|
+
import {
|
|
12
|
+
readGlobalConfig
|
|
13
|
+
} from "./chunk-6OWJXUAR.js";
|
|
14
14
|
import {
|
|
15
15
|
voluteHome,
|
|
16
16
|
voluteSystemDir
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-N7BLAHNE.js";
|
|
18
18
|
|
|
19
19
|
// src/commands/up.ts
|
|
20
20
|
import { spawn } from "child_process";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
readEnv,
|
|
4
4
|
sharedEnvPath,
|
|
5
5
|
writeEnv
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-M3K5AARV.js";
|
|
7
7
|
import {
|
|
8
8
|
logger_default
|
|
9
9
|
} from "./chunk-YUIHSKR6.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-D424ZQGI.js";
|
|
13
13
|
import {
|
|
14
14
|
voluteSystemDir
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-N7BLAHNE.js";
|
|
16
16
|
|
|
17
17
|
// src/commands/import.ts
|
|
18
18
|
import {
|
|
@@ -112,8 +112,8 @@ async function run(args) {
|
|
|
112
112
|
return;
|
|
113
113
|
}
|
|
114
114
|
const wsDir = resolveWorkspace(inputPath);
|
|
115
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
116
|
-
const { getClient, urlOf } = await import("./api-client-
|
|
115
|
+
const { daemonFetch } = await import("./daemon-client-WOAQXXBM.js");
|
|
116
|
+
const { getClient, urlOf } = await import("./api-client-XUXOB7LI.js");
|
|
117
117
|
const client = getClient();
|
|
118
118
|
const res = await daemonFetch(urlOf(client.api.minds.import.$url()), {
|
|
119
119
|
method: "POST",
|
|
@@ -152,7 +152,7 @@ async function importArchive(archivePath, nameOverride) {
|
|
|
152
152
|
console.error(`File not found: ${archivePath}`);
|
|
153
153
|
process.exit(1);
|
|
154
154
|
}
|
|
155
|
-
const { extractArchive } = await import("./archive-
|
|
155
|
+
const { extractArchive } = await import("./archive-C2VEMQOR.js");
|
|
156
156
|
const tempDir = resolve2(tmpdir(), `volute-import-${Date.now()}`);
|
|
157
157
|
mkdirSync(tempDir, { recursive: true });
|
|
158
158
|
let extracted;
|
|
@@ -164,8 +164,8 @@ async function importArchive(archivePath, nameOverride) {
|
|
|
164
164
|
process.exit(1);
|
|
165
165
|
}
|
|
166
166
|
try {
|
|
167
|
-
const { daemonFetch } = await import("./daemon-client-
|
|
168
|
-
const { getClient, urlOf } = await import("./api-client-
|
|
167
|
+
const { daemonFetch } = await import("./daemon-client-WOAQXXBM.js");
|
|
168
|
+
const { getClient, urlOf } = await import("./api-client-XUXOB7LI.js");
|
|
169
169
|
const client = getClient();
|
|
170
170
|
const res = await daemonFetch(urlOf(client.api.minds.import.$url()), {
|
|
171
171
|
method: "POST",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
__export
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7KJOFUNN.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/schema.ts
|
|
7
7
|
var schema_exports = {};
|
|
@@ -16,6 +16,7 @@ __export(schema_exports, {
|
|
|
16
16
|
minds: () => minds,
|
|
17
17
|
sessions: () => sessions,
|
|
18
18
|
sharedSkills: () => sharedSkills,
|
|
19
|
+
summaries: () => summaries,
|
|
19
20
|
systemPrompts: () => systemPrompts,
|
|
20
21
|
turns: () => turns,
|
|
21
22
|
users: () => users
|
|
@@ -83,6 +84,7 @@ var turns = sqliteTable(
|
|
|
83
84
|
session: text("session"),
|
|
84
85
|
trigger_event_id: integer("trigger_event_id"),
|
|
85
86
|
summary_event_id: integer("summary_event_id"),
|
|
87
|
+
summary_id: integer("summary_id"),
|
|
86
88
|
status: text("status").notNull().default("active"),
|
|
87
89
|
created_at: text("created_at").notNull().default(sql`(datetime('now'))`)
|
|
88
90
|
},
|
|
@@ -180,6 +182,22 @@ var activity = sqliteTable(
|
|
|
180
182
|
index("idx_activity_turn_id").on(table.turn_id)
|
|
181
183
|
]
|
|
182
184
|
);
|
|
185
|
+
var summaries = sqliteTable(
|
|
186
|
+
"summaries",
|
|
187
|
+
{
|
|
188
|
+
id: integer("id").primaryKey({ autoIncrement: true }),
|
|
189
|
+
mind: text("mind").notNull(),
|
|
190
|
+
period: text("period").notNull(),
|
|
191
|
+
period_key: text("period_key").notNull(),
|
|
192
|
+
content: text("content").notNull(),
|
|
193
|
+
metadata: text("metadata"),
|
|
194
|
+
created_at: text("created_at").notNull().default(sql`(datetime('now'))`)
|
|
195
|
+
},
|
|
196
|
+
(table) => [
|
|
197
|
+
uniqueIndex("idx_summaries_unique").on(table.mind, table.period, table.period_key),
|
|
198
|
+
index("idx_summaries_mind_period").on(table.mind, table.period)
|
|
199
|
+
]
|
|
200
|
+
);
|
|
183
201
|
var conversationReads = sqliteTable(
|
|
184
202
|
"conversation_reads",
|
|
185
203
|
{
|
|
@@ -221,6 +239,7 @@ export {
|
|
|
221
239
|
sharedSkills,
|
|
222
240
|
deliveryQueue,
|
|
223
241
|
activity,
|
|
242
|
+
summaries,
|
|
224
243
|
conversationReads,
|
|
225
244
|
messages,
|
|
226
245
|
schema_exports
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/lib/read-stdin.ts
|
|
4
|
+
import { isatty } from "tty";
|
|
5
|
+
async function readStdin() {
|
|
6
|
+
if (isatty(0)) return void 0;
|
|
7
|
+
const chunks = [];
|
|
8
|
+
try {
|
|
9
|
+
for await (const chunk of process.stdin) {
|
|
10
|
+
chunks.push(chunk);
|
|
11
|
+
}
|
|
12
|
+
} catch (err) {
|
|
13
|
+
console.error(`Failed to read from stdin: ${err instanceof Error ? err.message : String(err)}`);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
const text = Buffer.concat(chunks).toString().replace(/\r?\n$/, "");
|
|
17
|
+
return text || void 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
readStdin
|
|
22
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
voluteSystemDir
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-N7BLAHNE.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/setup.ts
|
|
7
7
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
@@ -29,6 +29,14 @@ function isSetupComplete() {
|
|
|
29
29
|
const config = readGlobalConfig();
|
|
30
30
|
return config.setupCompleted === true;
|
|
31
31
|
}
|
|
32
|
+
function isImagegenEnabled() {
|
|
33
|
+
const config = readGlobalConfig();
|
|
34
|
+
const ig = config.imagegen;
|
|
35
|
+
if (!ig) return false;
|
|
36
|
+
if (ig.enabled === true) return true;
|
|
37
|
+
if (ig.providers && Object.keys(ig.providers).length > 0) return true;
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
32
40
|
function migrateSetupCompleted() {
|
|
33
41
|
const config = readGlobalConfig();
|
|
34
42
|
if (config.setup != null && config.setupCompleted == null) {
|
|
@@ -42,5 +50,6 @@ export {
|
|
|
42
50
|
readGlobalConfig,
|
|
43
51
|
writeGlobalConfig,
|
|
44
52
|
isSetupComplete,
|
|
53
|
+
isImagegenEnabled,
|
|
45
54
|
migrateSetupCompleted
|
|
46
55
|
};
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
exec,
|
|
4
4
|
execInherit
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-U5BTYSAL.js";
|
|
6
6
|
import {
|
|
7
7
|
voluteSystemDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N7BLAHNE.js";
|
|
9
9
|
|
|
10
10
|
// src/lib/service-mode.ts
|
|
11
11
|
import { execFileSync } from "child_process";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
5
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
6
|
+
}) : x)(function(x) {
|
|
7
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
8
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
9
|
+
});
|
|
10
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
11
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
12
|
+
};
|
|
13
|
+
var __export = (target, all) => {
|
|
14
|
+
for (var name in all)
|
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
__require,
|
|
20
|
+
__commonJS,
|
|
21
|
+
__export
|
|
22
|
+
};
|
|
@@ -8,28 +8,26 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
getSharedSkill,
|
|
10
10
|
installSkill
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-N3DNFPVA.js";
|
|
12
12
|
import {
|
|
13
13
|
qualifyModelId,
|
|
14
14
|
resolveTemplate
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-BFWHBQK4.js";
|
|
16
16
|
import {
|
|
17
17
|
logger_default
|
|
18
18
|
} from "./chunk-YUIHSKR6.js";
|
|
19
19
|
import {
|
|
20
20
|
exec
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-U5BTYSAL.js";
|
|
22
22
|
import {
|
|
23
23
|
readGlobalConfig
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-6OWJXUAR.js";
|
|
25
25
|
import {
|
|
26
26
|
addSpirit,
|
|
27
27
|
findMind,
|
|
28
28
|
nextPort,
|
|
29
29
|
voluteSystemDir
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-RPZZSXV3.js";
|
|
32
|
-
import "./chunk-K3NQKI34.js";
|
|
30
|
+
} from "./chunk-N7BLAHNE.js";
|
|
33
31
|
|
|
34
32
|
// src/lib/spirit.ts
|
|
35
33
|
import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
|
|
@@ -81,7 +79,13 @@ async function ensureSpiritProject() {
|
|
|
81
79
|
} catch (err) {
|
|
82
80
|
slog.warn("git init failed for spirit \u2014 not critical", logger_default.errorData(err));
|
|
83
81
|
}
|
|
84
|
-
const spiritSkills = [
|
|
82
|
+
const spiritSkills = [
|
|
83
|
+
"volute-admin",
|
|
84
|
+
"orientation",
|
|
85
|
+
"memory",
|
|
86
|
+
"seed-nurture",
|
|
87
|
+
"plan-coordinator"
|
|
88
|
+
];
|
|
85
89
|
for (const skillId of spiritSkills) {
|
|
86
90
|
try {
|
|
87
91
|
const shared = await getSharedSkill(skillId);
|
|
@@ -92,6 +96,10 @@ async function ensureSpiritProject() {
|
|
|
92
96
|
slog.warn(`failed to install skill ${skillId} for spirit`, logger_default.errorData(err));
|
|
93
97
|
}
|
|
94
98
|
}
|
|
99
|
+
const { createMindUser, chownMindDir, ensureVoluteGroup } = await import("./isolation-62MKDZN3.js");
|
|
100
|
+
ensureVoluteGroup();
|
|
101
|
+
createMindUser("volute", resolve(dir, "home"));
|
|
102
|
+
chownMindDir(dir, "volute");
|
|
95
103
|
const port = await nextPort();
|
|
96
104
|
await addSpirit("volute", port, template, dir);
|
|
97
105
|
slog.info("spirit project created");
|
|
@@ -122,8 +130,8 @@ async function syncSpiritTemplate() {
|
|
|
122
130
|
cpSync(newPkg, resolve(dir, "package.json"));
|
|
123
131
|
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir });
|
|
124
132
|
}
|
|
125
|
-
const db = await (await import("./db-
|
|
126
|
-
const { minds } = await import("./schema-
|
|
133
|
+
const db = await (await import("./db-RYX3SS2W.js")).getDb();
|
|
134
|
+
const { minds } = await import("./schema-ETMABTW4.js");
|
|
127
135
|
const { eq } = await import("drizzle-orm");
|
|
128
136
|
await db.update(minds).set({ template: expectedTemplate }).where(eq(minds.name, "volute"));
|
|
129
137
|
}
|
|
@@ -209,9 +217,10 @@ When helping humans create minds:
|
|
|
209
217
|
- You maintain separate context per conversation
|
|
210
218
|
`;
|
|
211
219
|
}
|
|
220
|
+
|
|
212
221
|
export {
|
|
213
|
-
ensureSpiritProject,
|
|
214
|
-
getSpiritModel,
|
|
215
222
|
spiritDir,
|
|
223
|
+
getSpiritModel,
|
|
224
|
+
ensureSpiritProject,
|
|
216
225
|
syncSpiritTemplate
|
|
217
226
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getBaseName,
|
|
4
4
|
validateMindName
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-N7BLAHNE.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/isolation.ts
|
|
8
8
|
import { execFileSync } from "child_process";
|
|
@@ -11,7 +11,9 @@ function isIsolationEnabled() {
|
|
|
11
11
|
}
|
|
12
12
|
function mindUserName(mindName) {
|
|
13
13
|
const err = validateMindName(mindName);
|
|
14
|
-
if (err
|
|
14
|
+
if (err && mindName !== "volute") {
|
|
15
|
+
throw new Error(`Invalid mind name for isolation: ${err}`);
|
|
16
|
+
}
|
|
15
17
|
const prefix = process.env.VOLUTE_USER_PREFIX ?? "mind-";
|
|
16
18
|
return `${prefix}${mindName}`;
|
|
17
19
|
}
|
|
@@ -166,54 +168,6 @@ function chownMindDir(dir, name) {
|
|
|
166
168
|
}
|
|
167
169
|
}
|
|
168
170
|
|
|
169
|
-
// src/lib/exec.ts
|
|
170
|
-
import { execFile as execFileCb, execFileSync as execFileSync2, spawn } from "child_process";
|
|
171
|
-
async function exec(cmd, args, options) {
|
|
172
|
-
const [wrappedCmd, wrappedArgs] = options?.mindName ? await wrapForIsolation(cmd, args, options.mindName) : [cmd, args];
|
|
173
|
-
return new Promise((resolve, reject) => {
|
|
174
|
-
execFileCb(
|
|
175
|
-
wrappedCmd,
|
|
176
|
-
wrappedArgs,
|
|
177
|
-
{ cwd: options?.cwd, env: options?.env },
|
|
178
|
-
(err, stdout, stderr) => {
|
|
179
|
-
if (err) {
|
|
180
|
-
err.stderr = stderr;
|
|
181
|
-
err.stdout = stdout;
|
|
182
|
-
reject(err);
|
|
183
|
-
} else {
|
|
184
|
-
resolve(stdout);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
);
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
function gitExec(args, options) {
|
|
191
|
-
const fullArgs = process.env.VOLUTE_ISOLATION === "user" ? ["-c", "safe.directory=*", ...args] : args;
|
|
192
|
-
return exec("git", fullArgs, options);
|
|
193
|
-
}
|
|
194
|
-
function resolveVoluteBin() {
|
|
195
|
-
try {
|
|
196
|
-
return execFileSync2("which", ["volute"], { encoding: "utf-8" }).trim();
|
|
197
|
-
} catch {
|
|
198
|
-
throw new Error("Could not find volute binary on PATH");
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
async function execInherit(cmd, args, options) {
|
|
202
|
-
const [wrappedCmd, wrappedArgs] = options?.mindName ? await wrapForIsolation(cmd, args, options.mindName) : [cmd, args];
|
|
203
|
-
return new Promise((resolve, reject) => {
|
|
204
|
-
const child = spawn(wrappedCmd, wrappedArgs, {
|
|
205
|
-
cwd: options?.cwd,
|
|
206
|
-
env: options?.env,
|
|
207
|
-
stdio: "inherit"
|
|
208
|
-
});
|
|
209
|
-
child.on("error", reject);
|
|
210
|
-
child.on("close", (code) => {
|
|
211
|
-
if (code === 0) resolve();
|
|
212
|
-
else reject(new Error(`${cmd} ${args.join(" ")} exited with code ${code}`));
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
|
|
217
171
|
export {
|
|
218
172
|
isIsolationEnabled,
|
|
219
173
|
mindUserName,
|
|
@@ -221,9 +175,5 @@ export {
|
|
|
221
175
|
createMindUser,
|
|
222
176
|
deleteMindUser,
|
|
223
177
|
wrapForIsolation,
|
|
224
|
-
chownMindDir
|
|
225
|
-
exec,
|
|
226
|
-
gitExec,
|
|
227
|
-
resolveVoluteBin,
|
|
228
|
-
execInherit
|
|
178
|
+
chownMindDir
|
|
229
179
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
broadcast
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XWXBJQBE.js";
|
|
5
5
|
import {
|
|
6
6
|
getDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-N7BLAHNE.js";
|
|
8
8
|
import {
|
|
9
9
|
users
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4JSR7YO7.js";
|
|
11
11
|
|
|
12
12
|
// src/lib/auth.ts
|
|
13
13
|
import { compareSync, hashSync } from "bcryptjs";
|
|
@@ -99,7 +99,7 @@ async function getOrCreateSystemUser() {
|
|
|
99
99
|
password_hash: "!system",
|
|
100
100
|
role: "system",
|
|
101
101
|
user_type: "system",
|
|
102
|
-
display_name: "
|
|
102
|
+
display_name: "volute"
|
|
103
103
|
}).returning(userSelectFields);
|
|
104
104
|
return result;
|
|
105
105
|
} catch (err) {
|