volute 0.40.2 → 0.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept-IVHOHXQS.js → accept-7YVHZKRD.js} +2 -2
- package/dist/{activity-events-DS4QRWBY.js → activity-events-KFKVRZE3.js} +4 -4
- package/dist/{ai-service-EVLKMAJD.js → ai-service-XCLE3MQP.js} +5 -5
- package/dist/{api-client-NFM6GX2N.js → api-client-LC5YRA32.js} +1 -1
- package/dist/{archive-UDHFZN4G.js → archive-4PPYF7LL.js} +4 -4
- package/dist/{auth-X6ZITZ7D.js → auth-EAASQPTN.js} +5 -5
- package/dist/{bridge-MSZC4HUT.js → bridge-WPYSOQKR.js} +2 -2
- package/dist/{chat-F2EEN76G.js → chat-7DOENBY2.js} +9 -9
- package/dist/{chunk-E25SO3QW.js → chunk-5QG36RV7.js} +3 -3
- package/dist/{chunk-NERYUSER.js → chunk-62ICA2FF.js} +1 -1
- package/dist/{chunk-KMHC36CA.js → chunk-763WUVJQ.js} +43 -10
- package/dist/{chunk-ITH5ZLZJ.js → chunk-BLOAJLGI.js} +1 -1
- package/dist/{chunk-4UMXOMZ6.js → chunk-CGPESELY.js} +2 -2
- package/dist/{chunk-MNUXL4XN.js → chunk-E7XWFDZL.js} +1 -1
- package/dist/{chunk-PEKG3GNZ.js → chunk-EKLRS2SX.js} +3 -3
- package/dist/{chunk-ZOI6D2YH.js → chunk-F44AEQAW.js} +292 -73
- package/dist/{chunk-JYQQDI3M.js → chunk-G777ME4L.js} +2 -2
- package/dist/{chunk-YMMYN2V3.js → chunk-GCS64EAD.js} +5 -5
- package/dist/{chunk-AEAZRTEV.js → chunk-GN52E2DP.js} +1 -1
- package/dist/{chunk-ZX7EAV5J.js → chunk-IFNSAOA4.js} +9 -2
- package/dist/{chunk-ZXPWTH4I.js → chunk-IJCZAYGT.js} +1 -1
- package/dist/{chunk-B4WPXYPI.js → chunk-IUZ3EV2D.js} +10 -1
- package/dist/chunk-K3NQKI34.js +10 -0
- package/dist/{chunk-QYI65HCL.js → chunk-K547QOCM.js} +2 -2
- package/dist/{chunk-SVXOBKQY.js → chunk-KUJVCDWT.js} +2 -2
- package/dist/{chunk-YHWGN4FX.js → chunk-M2YMNTHK.js} +1 -1
- package/dist/{chunk-DNU6XLE2.js → chunk-MA7MYEOK.js} +4 -3
- package/dist/{chunk-2HZRJ35V.js → chunk-MHFAWJCC.js} +1 -1
- package/dist/{chunk-UX7FPDDO.js → chunk-MJIJFCAH.js} +44 -15
- package/dist/{chunk-NRJ3ZYFP.js → chunk-MYJSKXGH.js} +15 -14
- package/dist/{chunk-I57LLNAQ.js → chunk-OEJFZHZZ.js} +1 -1
- package/dist/{chunk-TOANT6FD.js → chunk-OSUF75I7.js} +2 -2
- package/dist/{chunk-46DYYHN6.js → chunk-QLWG3C2Z.js} +44 -0
- package/dist/{chunk-KAB6UGOL.js → chunk-QMJCNZ6C.js} +1 -1
- package/dist/{chunk-PKGA23XM.js → chunk-QPTQKGGF.js} +1 -1
- package/dist/{chunk-6SYHHEQ7.js → chunk-TFBQESH7.js} +1 -1
- package/dist/{chunk-WOWRLBL2.js → chunk-ULNQ6OC4.js} +8 -8
- package/dist/{chunk-42UMLIQR.js → chunk-VBKRZCR7.js} +1 -1
- package/dist/{chunk-3Y7UDHO7.js → chunk-YLTIEEVL.js} +3 -3
- package/dist/cli.js +24 -24
- package/dist/{clock-YLDJUKBW.js → clock-HP2TGMG5.js} +4 -4
- package/dist/{cloud-sync-GOSJZIHH.js → cloud-sync-2XVXEOSU.js} +19 -19
- package/dist/{config-PO4EZLIK.js → config-W7MS3PWY.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-AYLXPOGC.js → conversations-FSZCUUYO.js} +5 -5
- package/dist/{create-ZMTGINV3.js → create-CJ2SR4EU.js} +2 -2
- package/dist/{create-Y3RGU2GI.js → create-OTM46ZUM.js} +4 -4
- package/dist/{daemon-client-H6MEKK2W.js → daemon-client-EWDPOOHC.js} +4 -2
- package/dist/{daemon-restart-FSWVXPUE.js → daemon-restart-HDVGTYH7.js} +9 -9
- package/dist/daemon.js +260 -309
- package/dist/{db-FSYOTHSN.js → db-IJL6B26S.js} +1 -1
- package/dist/db-ZJJJYJBU.js +9 -0
- package/dist/{delete-TXVOH2OC.js → delete-4ND5PLE7.js} +3 -3
- package/dist/delivery-manager-CPADWRV2.js +33 -0
- package/dist/{delivery-router-T6CYTS3M.js → delivery-router-FDBZJQOY.js} +4 -4
- package/dist/down-DS6WCT34.js +17 -0
- package/dist/echo-text-GEDEEY7M.js +32 -0
- package/dist/{env-77IOWG4U.js → env-XX2MBZCZ.js} +2 -2
- package/dist/exec-ZDD7NEB4.js +17 -0
- package/dist/{export-TZKOCSCE.js → export-5DOQV2WM.js} +6 -6
- package/dist/{extension-35NB6GHW.js → extension-BCFYXI7A.js} +5 -2
- package/dist/{extensions-MD757RFY.js → extensions-SU3N4COT.js} +19 -19
- package/dist/{files-WNNVJWJB.js → files-K2MEMV3W.js} +5 -5
- package/dist/{import-BNNFCQ7U.js → import-V6QEHMPQ.js} +11 -11
- package/dist/{isolation-4Q4P7HRV.js → isolation-F7ABZMDA.js} +4 -4
- package/dist/{join-E2EJEXZO.js → join-4S3KT7NE.js} +3 -3
- package/dist/{list-BYCEDASJ.js → list-XJB5WII6.js} +2 -2
- package/dist/{login-Y6UAYQVO.js → login-PHMTLNUF.js} +4 -4
- package/dist/{login-JNSIYFVH.js → login-YWD6PUOT.js} +2 -2
- package/dist/{logout-VHGWVH63.js → logout-BP3R3CAA.js} +4 -4
- package/dist/{logout-M6FI62BL.js → logout-Q2WICH4V.js} +2 -2
- package/dist/message-delivery-HPMELC4Q.js +41 -0
- package/dist/{mind-OOB2LEVC.js → mind-APS4URT7.js} +19 -19
- package/dist/{mind-activity-tracker-GJ5RJS32.js → mind-activity-tracker-HWVFE533.js} +5 -5
- package/dist/{mind-history-W4JPTPTV.js → mind-history-TDUQFYAG.js} +2 -2
- package/dist/{mind-list-QROHCLGT.js → mind-list-2T353Q5G.js} +2 -2
- package/dist/mind-manager-74XQZEGX.js +33 -0
- package/dist/{mind-profile-3LNKXNPA.js → mind-profile-2HHR7LZ7.js} +2 -2
- package/dist/mind-service-XGXSMQP6.js +37 -0
- package/dist/{mind-sleep-PVCMLTAH.js → mind-sleep-4NXV4J4U.js} +2 -2
- package/dist/{mind-status-RAJFLRCN.js → mind-status-CG66OXDK.js} +2 -2
- package/dist/{mind-wake-HZUOVE7J.js → mind-wake-TNB54DBR.js} +2 -2
- package/dist/{package-PPA3VWS2.js → package-MVFX22K5.js} +4 -2
- package/dist/{read-OOINVR2H.js → read-JLR4NQXU.js} +2 -2
- package/dist/{read-stdin-P6HCZUAA.js → read-stdin-4B5UYPPM.js} +1 -1
- package/dist/{register-ISOH34RF.js → register-IQ2M4UO6.js} +2 -2
- package/dist/{registry-GV35XFT7.js → registry-MDLNPTTI.js} +7 -3
- package/dist/{reject-ZBWP62X5.js → reject-N2D4CZND.js} +2 -2
- package/dist/{restart-QBJV5455.js → restart-43A5MBGV.js} +2 -2
- package/dist/{sandbox-5R32QKWQ.js → sandbox-ND53WZVU.js} +9 -5
- package/dist/scheduler-MEBQF5MW.js +31 -0
- package/dist/{schema-LYQUDL7G.js → schema-HHYJDG7B.js} +2 -2
- package/dist/{seed-BTAHXCO5.js → seed-L4XFZ3VX.js} +2 -2
- package/dist/{seed-check-3WXXRHTC.js → seed-check-N5ALJBT6.js} +2 -2
- package/dist/{seed-cmd-VEJNJBAQ.js → seed-cmd-NSTPYJFC.js} +4 -4
- package/dist/{seed-create-LOU5RALI.js → seed-create-ZYCZC46W.js} +6 -6
- package/dist/{seed-sprout-BXF5TBXD.js → seed-sprout-YXHU73XA.js} +12 -12
- package/dist/{send-WO3CVG73.js → send-KQECN2EL.js} +5 -5
- package/dist/{service-WMV6R6VJ.js → service-Q5OVY5AK.js} +6 -6
- package/dist/service-install-GTDUHP6R.js +17 -0
- package/dist/{setup-OTEC3ZPM.js → setup-FPFWDMXD.js} +4 -4
- package/dist/{setup-W3545462.js → setup-RMR3TKCR.js} +9 -9
- package/dist/{skill-QHACP7EU.js → skill-E43BI34Y.js} +2 -2
- package/dist/skills/imagegen/scripts/imagegen.ts +1 -1
- package/dist/{skills-3P7VQA4U.js → skills-AOZF6U2B.js} +7 -7
- package/dist/sleep-manager-OHM3TO62.js +35 -0
- package/dist/spirit-ONLRFATY.js +24 -0
- package/dist/{split-7AO4IO42.js → split-5IBUODEE.js} +3 -3
- package/dist/{sprout-AQICF7WZ.js → sprout-2KJOQZCL.js} +2 -2
- package/dist/{src-2IMB3V27.js → src-L2Z7X5UT.js} +6 -9
- package/dist/{src-XNUXP2FP.js → src-O4PRLMKM.js} +1 -1
- package/dist/src-TJ7RBU5H.js +2191 -0
- package/dist/{start-2U57BBK7.js → start-5AYFGNS7.js} +2 -2
- package/dist/{status-BRYYYO7C.js → status-ECZHHSY5.js} +7 -7
- package/dist/{stop-QILBDUAR.js → stop-WJ6IG6OK.js} +2 -2
- package/dist/system-chat-HZUKBIKJ.js +35 -0
- package/dist/{systems-3XTAHA35.js → systems-5MA57Q7G.js} +5 -5
- package/dist/{tailscale-X4HRKRTW.js → tailscale-TIRTGM6E.js} +3 -3
- package/dist/template-hash-446HHH5V.js +9 -0
- package/dist/{turn-tracker-AI6WWEBA.js → turn-tracker-TIX4DY2W.js} +6 -6
- package/dist/up-7KVNER6V.js +19 -0
- package/dist/{update-OY2JYXYK.js → update-OPR4KU4M.js} +7 -7
- package/dist/{update-check-IUB7QHAF.js → update-check-OG27AL4Z.js} +4 -4
- package/dist/{upgrade-25J6AE47.js → upgrade-QB7AHIKX.js} +3 -3
- package/dist/{variant-5LQOPCQA.js → variant-HHDTW74J.js} +1 -1
- package/dist/{version-notify-DK6AHWX7.js → version-notify-UFFDUPCX.js} +21 -21
- package/dist/{volute-config-7FO6QKWU.js → volute-config-TS62GS6A.js} +1 -1
- package/package.json +3 -1
- package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +2 -2
- package/templates/_base/.init/.config/hooks/pre-prompt/session-activity.ts +3 -3
- package/templates/_base/.init/.local/hooks/pre-prompt/notices.ts +3 -3
- package/templates/_base/.init/.local/hooks/pre-prompt/session-activity.ts +3 -3
- package/templates/_base/src/lib/daemon-client.ts +1 -1
- package/templates/_base/src/lib/volute-server.ts +1 -1
- package/dist/chunk-LMMQX4CK.js +0 -49
- package/dist/db-ZEPKEJJD.js +0 -9
- package/dist/delivery-manager-3NTCDKHR.js +0 -33
- package/dist/down-6DYO2QV7.js +0 -17
- package/dist/echo-text-JUNRP4ER.js +0 -32
- package/dist/exec-5DGKQ5V3.js +0 -17
- package/dist/message-delivery-Q7TU24IA.js +0 -41
- package/dist/mind-manager-4NFK4GEU.js +0 -31
- package/dist/mind-service-X7FH3NA4.js +0 -37
- package/dist/scheduler-PDARH4CE.js +0 -31
- package/dist/service-install-W3FQXJKB.js +0 -17
- package/dist/sleep-manager-TTNOLIX5.js +0 -35
- package/dist/spirit-T6GK5GEP.js +0 -24
- package/dist/src-OS75U2O7.js +0 -241910
- package/dist/system-chat-7CA2PP6A.js +0 -35
- package/dist/template-hash-DMHSLRDX.js +0 -9
- package/dist/up-PKNNDN6M.js +0 -19
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
} from "./chunk-BTY4WNFE.js";
|
|
5
5
|
import {
|
|
6
6
|
daemonFetch
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IFNSAOA4.js";
|
|
8
8
|
import {
|
|
9
9
|
command
|
|
10
10
|
} from "./chunk-TXSA4Q3V.js";
|
|
11
11
|
import "./chunk-O7IGP7ZW.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-K3NQKI34.js";
|
|
13
13
|
|
|
14
14
|
// packages/cli/src/commands/chat/accept.ts
|
|
15
15
|
var cmd = command({
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
broadcast,
|
|
4
4
|
publish,
|
|
5
5
|
subscribe
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-K547QOCM.js";
|
|
7
7
|
import "./chunk-T2TP6ZC6.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-IUZ3EV2D.js";
|
|
9
|
+
import "./chunk-MHFAWJCC.js";
|
|
10
|
+
import "./chunk-K3NQKI34.js";
|
|
11
11
|
export {
|
|
12
12
|
broadcast,
|
|
13
13
|
publish,
|
|
@@ -19,12 +19,12 @@ import {
|
|
|
19
19
|
setProviderRefreshHook,
|
|
20
20
|
setUtilityModel,
|
|
21
21
|
unqualifyModelId
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-IJCZAYGT.js";
|
|
23
|
+
import "./chunk-MA7MYEOK.js";
|
|
24
24
|
import "./chunk-T2TP6ZC6.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-IUZ3EV2D.js";
|
|
26
|
+
import "./chunk-MHFAWJCC.js";
|
|
27
|
+
import "./chunk-K3NQKI34.js";
|
|
28
28
|
export {
|
|
29
29
|
aiComplete,
|
|
30
30
|
aiCompleteUtility,
|
|
@@ -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-OEJFZHZZ.js";
|
|
9
|
+
import "./chunk-IUZ3EV2D.js";
|
|
10
|
+
import "./chunk-MHFAWJCC.js";
|
|
11
|
+
import "./chunk-K3NQKI34.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-5QG36RV7.js";
|
|
21
|
+
import "./chunk-K547QOCM.js";
|
|
22
22
|
import "./chunk-T2TP6ZC6.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-IUZ3EV2D.js";
|
|
24
|
+
import "./chunk-MHFAWJCC.js";
|
|
25
|
+
import "./chunk-K3NQKI34.js";
|
|
26
26
|
export {
|
|
27
27
|
approveUser,
|
|
28
28
|
changePassword,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
daemonFetch
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IFNSAOA4.js";
|
|
5
5
|
import {
|
|
6
6
|
command,
|
|
7
7
|
subcommands
|
|
8
8
|
} from "./chunk-TXSA4Q3V.js";
|
|
9
9
|
import "./chunk-O7IGP7ZW.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-K3NQKI34.js";
|
|
11
11
|
|
|
12
12
|
// packages/cli/src/commands/chat/bridge.ts
|
|
13
13
|
var bridgeAddCmd = command({
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
subcommands
|
|
4
4
|
} from "./chunk-TXSA4Q3V.js";
|
|
5
5
|
import "./chunk-O7IGP7ZW.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-K3NQKI34.js";
|
|
7
7
|
|
|
8
8
|
// packages/cli/src/commands/chat.ts
|
|
9
9
|
var cmd = subcommands({
|
|
@@ -12,35 +12,35 @@ var cmd = subcommands({
|
|
|
12
12
|
commands: {
|
|
13
13
|
send: {
|
|
14
14
|
description: "Send a message",
|
|
15
|
-
run: (args) => import("./send-
|
|
15
|
+
run: (args) => import("./send-KQECN2EL.js").then((m) => m.run(args))
|
|
16
16
|
},
|
|
17
17
|
list: {
|
|
18
18
|
description: "List conversations",
|
|
19
|
-
run: (args) => import("./list-
|
|
19
|
+
run: (args) => import("./list-XJB5WII6.js").then((m) => m.run(args))
|
|
20
20
|
},
|
|
21
21
|
read: {
|
|
22
22
|
description: "Read conversation messages",
|
|
23
|
-
run: (args) => import("./read-
|
|
23
|
+
run: (args) => import("./read-JLR4NQXU.js").then((m) => m.run(args))
|
|
24
24
|
},
|
|
25
25
|
create: {
|
|
26
26
|
description: "Create a conversation",
|
|
27
|
-
run: (args) => import("./create-
|
|
27
|
+
run: (args) => import("./create-CJ2SR4EU.js").then((m) => m.run(args))
|
|
28
28
|
},
|
|
29
29
|
bridge: {
|
|
30
30
|
description: "Manage platform bridges",
|
|
31
|
-
run: (args) => import("./bridge-
|
|
31
|
+
run: (args) => import("./bridge-WPYSOQKR.js").then((m) => m.run(args))
|
|
32
32
|
},
|
|
33
33
|
files: {
|
|
34
34
|
description: "List pending incoming files",
|
|
35
|
-
run: (args) => import("./files-
|
|
35
|
+
run: (args) => import("./files-K2MEMV3W.js").then((m) => m.run(args))
|
|
36
36
|
},
|
|
37
37
|
accept: {
|
|
38
38
|
description: "Accept a pending file",
|
|
39
|
-
run: (args) => import("./accept-
|
|
39
|
+
run: (args) => import("./accept-7YVHZKRD.js").then((m) => m.run(args))
|
|
40
40
|
},
|
|
41
41
|
reject: {
|
|
42
42
|
description: "Reject a pending file",
|
|
43
|
-
run: (args) => import("./reject-
|
|
43
|
+
run: (args) => import("./reject-N2D4CZND.js").then((m) => m.run(args))
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
footer: "Use --mind <name> or VOLUTE_MIND to identify the mind."
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
broadcast
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-K547QOCM.js";
|
|
5
5
|
import {
|
|
6
6
|
getDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IUZ3EV2D.js";
|
|
8
8
|
import {
|
|
9
9
|
users
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MHFAWJCC.js";
|
|
11
11
|
|
|
12
12
|
// packages/daemon/src/lib/auth.ts
|
|
13
13
|
import { compareSync, hashSync } from "bcryptjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readGlobalConfig
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MA7MYEOK.js";
|
|
5
5
|
import {
|
|
6
6
|
logger_default
|
|
7
7
|
} from "./chunk-T2TP6ZC6.js";
|
|
@@ -10,10 +10,22 @@ import {
|
|
|
10
10
|
import { execFileSync } from "child_process";
|
|
11
11
|
var slog = logger_default.child("sandbox");
|
|
12
12
|
var sandboxManager = null;
|
|
13
|
+
var SandboxUnavailableError = class extends Error {
|
|
14
|
+
constructor(reason, cause) {
|
|
15
|
+
super(
|
|
16
|
+
`${reason} \u2014 refusing to run unsandboxed. Fix the sandbox runtime, or set VOLUTE_SANDBOX_OPTIONAL=1 to allow running without isolation.`,
|
|
17
|
+
cause ? { cause } : void 0
|
|
18
|
+
);
|
|
19
|
+
this.name = "SandboxUnavailableError";
|
|
20
|
+
}
|
|
21
|
+
};
|
|
13
22
|
function isSandboxEnabled() {
|
|
14
23
|
if (process.env.VOLUTE_SANDBOX === "0") return false;
|
|
15
24
|
return readGlobalConfig().setup?.isolation === "sandbox";
|
|
16
25
|
}
|
|
26
|
+
function isSandboxOptional() {
|
|
27
|
+
return process.env.VOLUTE_SANDBOX_OPTIONAL === "1";
|
|
28
|
+
}
|
|
17
29
|
function findRipgrep() {
|
|
18
30
|
if (process.env.VOLUTE_RIPGREP_PATH) {
|
|
19
31
|
try {
|
|
@@ -48,10 +60,7 @@ async function initSandbox() {
|
|
|
48
60
|
if (process.platform === "darwin") {
|
|
49
61
|
slog.warn(`sandbox dependency issues (non-fatal on macOS): ${errors.join(", ")}`);
|
|
50
62
|
} else {
|
|
51
|
-
|
|
52
|
-
`sandbox dependencies missing \u2014 minds will run without sandbox isolation: ${errors.join(", ")}`
|
|
53
|
-
);
|
|
54
|
-
return;
|
|
63
|
+
throw new SandboxUnavailableError(`sandbox dependencies missing: ${errors.join(", ")}`);
|
|
55
64
|
}
|
|
56
65
|
}
|
|
57
66
|
const config = {
|
|
@@ -65,10 +74,24 @@ async function initSandbox() {
|
|
|
65
74
|
await SandboxManager.initialize(config);
|
|
66
75
|
sandboxManager = SandboxManager;
|
|
67
76
|
} catch (err) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
77
|
+
if (err instanceof SandboxUnavailableError) {
|
|
78
|
+
if (isSandboxOptional()) {
|
|
79
|
+
slog.error(
|
|
80
|
+
"sandbox unavailable but VOLUTE_SANDBOX_OPTIONAL=1 \u2014 minds will run WITHOUT isolation",
|
|
81
|
+
logger_default.errorData(err)
|
|
82
|
+
);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
throw err;
|
|
86
|
+
}
|
|
87
|
+
if (isSandboxOptional()) {
|
|
88
|
+
slog.error(
|
|
89
|
+
"sandbox runtime not available but VOLUTE_SANDBOX_OPTIONAL=1 \u2014 minds will run WITHOUT isolation",
|
|
90
|
+
logger_default.errorData(err)
|
|
91
|
+
);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
throw new SandboxUnavailableError("sandbox runtime not available", err);
|
|
72
95
|
}
|
|
73
96
|
}
|
|
74
97
|
async function buildSandboxReadConfig(_mindName, mindDir) {
|
|
@@ -92,7 +115,12 @@ function shellEscape(s) {
|
|
|
92
115
|
return `'${s.replace(/'/g, "'\\''")}'`;
|
|
93
116
|
}
|
|
94
117
|
async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
|
|
95
|
-
if (!sandboxManager)
|
|
118
|
+
if (!sandboxManager) {
|
|
119
|
+
if (isSandboxEnabled() && !isSandboxOptional()) {
|
|
120
|
+
throw new SandboxUnavailableError(`cannot sandbox mind ${mindName}`);
|
|
121
|
+
}
|
|
122
|
+
return [cmd, args];
|
|
123
|
+
}
|
|
96
124
|
const { denyRead, allowRead } = await buildSandboxReadConfig(mindName, mindDir);
|
|
97
125
|
const customConfig = {
|
|
98
126
|
filesystem: {
|
|
@@ -107,6 +135,9 @@ async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
|
|
|
107
135
|
const wrapped = await sandboxManager.wrapWithSandbox(shellCmd, void 0, customConfig);
|
|
108
136
|
return ["bash", ["-c", wrapped]];
|
|
109
137
|
} catch (err) {
|
|
138
|
+
if (isSandboxEnabled() && !isSandboxOptional()) {
|
|
139
|
+
throw new SandboxUnavailableError(`failed to sandbox mind ${mindName}`, err);
|
|
140
|
+
}
|
|
110
141
|
slog.error(
|
|
111
142
|
`failed to sandbox mind ${mindName} \u2014 running without isolation`,
|
|
112
143
|
logger_default.errorData(err)
|
|
@@ -116,7 +147,9 @@ async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
|
|
|
116
147
|
}
|
|
117
148
|
|
|
118
149
|
export {
|
|
150
|
+
SandboxUnavailableError,
|
|
119
151
|
isSandboxEnabled,
|
|
152
|
+
isSandboxOptional,
|
|
120
153
|
initSandbox,
|
|
121
154
|
buildSandboxReadConfig,
|
|
122
155
|
shellEscape,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
exec,
|
|
4
4
|
execInherit
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GN52E2DP.js";
|
|
6
6
|
import {
|
|
7
7
|
voluteSystemDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IUZ3EV2D.js";
|
|
9
9
|
|
|
10
10
|
// packages/daemon/src/lib/config/service-mode.ts
|
|
11
11
|
import { execFileSync } from "child_process";
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
modeLabel,
|
|
8
8
|
pollHealth,
|
|
9
9
|
startService
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-CGPESELY.js";
|
|
11
11
|
import {
|
|
12
12
|
readGlobalConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MA7MYEOK.js";
|
|
14
14
|
import {
|
|
15
15
|
voluteHome,
|
|
16
16
|
voluteSystemDir
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IUZ3EV2D.js";
|
|
18
18
|
|
|
19
19
|
// src/commands/up.ts
|
|
20
20
|
import { spawn } from "child_process";
|