volute 0.54.0 → 0.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{activity-events-LQII6PZS.js → activity-events-YASF46HS.js} +3 -3
- package/dist/{ai-service-YW5SWCSB.js → ai-service-3UFNG6GI.js} +3 -5
- package/dist/{archive-FOHGXHPT.js → archive-L2OFBGDQ.js} +2 -2
- package/dist/{auth-KRDSM55Q.js → auth-N2F5ASAB.js} +4 -4
- package/dist/auto-upgrade-O4MQPYQF.js +46 -0
- package/dist/{avatar-image-52WGXLHV.js → avatar-image-QEKKUFDF.js} +3 -3
- package/dist/{backup-QRNX6RK7.js → backup-TPM7QQBQ.js} +13 -13
- package/dist/{channels-CKCY64TD.js → channels-JP3GYTPX.js} +18 -18
- package/dist/{chat-ZUGNL5GS.js → chat-7YCF4ZU5.js} +3 -3
- package/dist/{chunk-QUSMYGNQ.js → chunk-2674KIGI.js} +1 -0
- package/dist/{chunk-444RR3YF.js → chunk-2B4E6SL7.js} +14 -14
- package/dist/chunk-2GATCSZK.js +520 -0
- package/dist/{chunk-I7U5EEZC.js → chunk-2LFTJNVH.js} +2 -2
- package/dist/{chunk-L7BKTZ5U.js → chunk-2QLWAYIU.js} +2 -2
- package/dist/{chunk-F6D766VQ.js → chunk-45MCH4G4.js} +2 -2
- package/dist/{chunk-OGPVJ53N.js → chunk-4RZS7XCV.js} +5 -5
- package/dist/{chunk-HKGYZVWN.js → chunk-6LICEQGP.js} +38 -4
- package/dist/{chunk-LAUCO2HC.js → chunk-APDEUAIE.js} +1 -1
- package/dist/{chunk-5Y54AE3L.js → chunk-CLH357FI.js} +2 -2
- package/dist/{chunk-OAYY3WF3.js → chunk-CVPCRWWC.js} +1 -12
- package/dist/{chunk-EGV6R6UF.js → chunk-E2SN3ZOJ.js} +5 -40
- package/dist/{chunk-LGXVGIWN.js → chunk-ELQU2GBT.js} +193 -69
- package/dist/{chunk-OT5SXF7L.js → chunk-EPRLTYJR.js} +28 -14
- package/dist/{chunk-ATZF2RNJ.js → chunk-EYFBT2KP.js} +15 -15
- package/dist/{chunk-U54PJPTB.js → chunk-FYMIGUJ5.js} +2 -2
- package/dist/{chunk-7XKPG66D.js → chunk-G7A5LEVI.js} +5 -5
- package/dist/{chunk-RGHF3OK5.js → chunk-GAAATVTM.js} +17 -17
- package/dist/{chunk-7LT3YZUR.js → chunk-I3OJ342S.js} +2 -2
- package/dist/{chunk-3LHUXY3E.js → chunk-IABDYN4N.js} +4 -4
- package/dist/{chunk-VDUCLVZI.js → chunk-IOMBP2T5.js} +28 -26
- package/dist/{chunk-YSRYCS3N.js → chunk-IQROTVBG.js} +2 -2
- package/dist/{chunk-PPSN2MLC.js → chunk-IRNM4LSF.js} +9 -6
- package/dist/{chunk-ZNHL5KQJ.js → chunk-KN3UHV7O.js} +8 -3
- package/dist/{chunk-CV6BNGFK.js → chunk-KXM4K46T.js} +4 -4
- package/dist/{chunk-Z4Q6TQWL.js → chunk-LRRPKZBD.js} +2 -2
- package/dist/{chunk-LNNI3MS4.js → chunk-MNKPAAQF.js} +9 -2
- package/dist/{chunk-OIOW3FPT.js → chunk-NA2NJXY4.js} +1 -1
- package/dist/{chunk-GLM7TVWP.js → chunk-OHHS5PSI.js} +1 -1
- package/dist/{chunk-CKPAVQNK.js → chunk-OPTA3BJ4.js} +36 -24
- package/dist/{chunk-X67BDDZR.js → chunk-P3GXOT2X.js} +48 -2
- package/dist/{chunk-WHL6PKYP.js → chunk-PAO7JZNW.js} +52 -48
- package/dist/{chunk-TPX6E6PL.js → chunk-Q5M5QFKY.js} +3 -3
- package/dist/{chunk-OYF25B62.js → chunk-T7UMSTH2.js} +3 -3
- package/dist/{chunk-H6X6CKDN.js → chunk-TAVIVN2I.js} +2 -32
- package/dist/{chunk-56IT2ZXF.js → chunk-TGYKFUCF.js} +9 -15
- package/dist/{chunk-5U5GLZSD.js → chunk-TZ7OHGNL.js} +2 -2
- package/dist/{chunk-UFTDRTCP.js → chunk-UMQP5TC5.js} +2 -2
- package/dist/{chunk-LKUGUQUW.js → chunk-UNTDRIV2.js} +5 -5
- package/dist/{chunk-CLCHOXLR.js → chunk-V2M6PNLE.js} +5 -5
- package/dist/{chunk-ICXY54ZC.js → chunk-WTZD6LFW.js} +2 -2
- package/dist/{chunk-FLIEXG2T.js → chunk-XZP3FJ7Q.js} +1 -1
- package/dist/{chunk-HTRSSOHY.js → chunk-YU5EYQAE.js} +1 -1
- package/dist/cli.js +26 -23
- package/dist/{clock-X7V3C7NL.js → clock-ZT5YT6HA.js} +2 -2
- package/dist/{cloud-sync-52YNJRMR.js → cloud-sync-RTUXMYU2.js} +23 -23
- package/dist/{conversations-ZL6PHROD.js → conversations-ERMMPMOS.js} +4 -4
- package/dist/{create-G2RIKQYK.js → create-IUCFJXCE.js} +1 -1
- package/dist/{daemon-restart-QWHN5VMU.js → daemon-restart-N2YOISNJ.js} +11 -6
- package/dist/daemon.js +230 -279
- package/dist/{db-BONH4SUG.js → db-BQFYIONA.js} +1 -1
- package/dist/{db-I4EH5SLF.js → db-JH3NTERX.js} +17 -3
- package/dist/delivery-manager-5EGCFN4K.js +41 -0
- package/dist/{delivery-notices-RZQ6GONP.js → delivery-notices-LZKZXWTX.js} +6 -6
- package/dist/{delivery-router-QS4NLJR6.js → delivery-router-U6Q22ZYU.js} +3 -3
- package/dist/doctor-225FYBAQ.js +454 -0
- package/dist/{down-UN2EDX2Y.js → down-3BQSPUAZ.js} +4 -4
- package/dist/echo-text-Y2DFTD7L.js +40 -0
- package/dist/{env-SQFCWW52.js → env-4YX5YNWZ.js} +2 -2
- package/dist/{exec-Z34TTUO3.js → exec-Y5VMDAVA.js} +2 -2
- package/dist/{export-VBNWM7I4.js → export-ASRHBMRG.js} +2 -2
- package/dist/{extensions-QT65JGV6.js → extensions-YEPEWURN.js} +27 -23
- package/dist/{files-PCKBQHAY.js → files-FASUDSZQ.js} +3 -3
- package/dist/{import-DB2KULRO.js → import-O35Y7DSF.js} +6 -6
- package/dist/{isolation-UQPDO34R.js → isolation-ZOAUXYXA.js} +2 -2
- package/dist/{login-57MMYILL.js → login-54TZQQP4.js} +5 -5
- package/dist/{logout-YFZAJRPY.js → logout-4G46Z4RU.js} +1 -1
- package/dist/message-delivery-HBTMGWFU.js +46 -0
- package/dist/{mind-CT6ANXK4.js → mind-IKMX7K7G.js} +8 -24
- package/dist/{mind-activity-tracker-QF6DCX2X.js → mind-activity-tracker-ABAEIMA3.js} +4 -4
- package/dist/mind-service-LRVOQG2T.js +48 -0
- package/dist/{mind-sleep-24HV4RCA.js → mind-sleep-LZAFBDZD.js} +2 -2
- package/dist/{package-F6S5NHY2.js → package-X5O7OD2E.js} +12 -13
- package/dist/{prompts-JECJIFPQ.js → prompts-ZNOE3KN3.js} +2 -2
- package/dist/{registry-TRC2HJXR.js → registry-BTQXLDW6.js} +1 -1
- package/dist/{sandbox-NNWCTHRI.js → sandbox-OUFAGN45.js} +3 -3
- package/dist/scheduler-G6BCIVGP.js +27 -0
- package/dist/{seed-cmd-6IMTO3LG.js → seed-cmd-BGAW3WDY.js} +2 -2
- package/dist/{seed-create-VNLDYRFK.js → seed-create-SMCPEUFQ.js} +3 -3
- package/dist/{seed-readiness-H5TTPAQH.js → seed-readiness-RBANMSWW.js} +3 -3
- package/dist/{seed-sprout-PPGYGK4G.js → seed-sprout-CSHV36N3.js} +9 -9
- package/dist/{send-UXUQKO4N.js → send-D3ADUBR5.js} +6 -6
- package/dist/{service-T4P5W6RS.js → service-SWEEBOOY.js} +3 -24
- package/dist/{service-install-R4SNYUVO.js → service-install-RCC26KDV.js} +4 -4
- package/dist/{setup-YUAQMDVZ.js → setup-L5NZG2U3.js} +5 -5
- package/dist/{setup-WZSXHHRJ.js → setup-R7Q4HFJP.js} +1 -5
- package/dist/skills/volute-mind/SKILL.md +8 -0
- package/dist/{skills-GMQ5UIIW.js → skills-BCCU4OJW.js} +4 -4
- package/dist/sleep-manager-25P44HAO.js +42 -0
- package/dist/{spirit-Q5VGFWUI.js → spirit-YPG2MU6W.js} +7 -7
- package/dist/spirit-availability-ZQM5IH4C.js +43 -0
- package/dist/{src-H3UCOP6B.js → src-246GSX7A.js} +5 -2
- package/dist/src-LOUB3WPR.js +4189 -0
- package/dist/{status-LCKTTIWS.js → status-BYPCJU6H.js} +4 -4
- package/dist/{system-events-Q7IVZ5T4.js → system-events-CWC7CBKP.js} +6 -4
- package/dist/{systems-HL7SGSW7.js → systems-VDRUZXNF.js} +2 -2
- package/dist/{tailscale-KHNZFC7L.js → tailscale-4XY7B5A2.js} +2 -2
- package/dist/{template-hash-YKWMVYMM.js → template-hash-RJRMF6DT.js} +2 -2
- package/dist/{template-staleness-PY2CULH6.js → template-staleness-CL4V7BT7.js} +5 -5
- package/dist/{turn-tracker-HZDPMSCC.js → turn-tracker-LZP5X6GZ.js} +8 -8
- package/dist/{up-XZDSJVMU.js → up-3AAN4GYY.js} +4 -4
- package/dist/{update-ILCPVNDD.js → update-2MWXRE2S.js} +4 -4
- package/dist/{update-check-SZ7B5IFI.js → update-check-PJOZXZYJ.js} +2 -2
- package/dist/variant-cleanup-K7RFMSH7.js +24 -0
- package/dist/{version-notify-VNVFX6UP.js → version-notify-QIDHR6WO.js} +12 -12
- package/dist/web-assets/assets/{index-CwtxGwe_.js → index-Bfvls20e.js} +17 -17
- package/dist/web-assets/assets/index-hPn_fkz3.css +1 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0000_crazy_epoch.sql +232 -0
- package/drizzle/README.md +42 -0
- package/drizzle/meta/0000_snapshot.json +1420 -3
- package/drizzle/meta/_journal.json +2 -128
- package/package.json +12 -13
- package/packages/extensions/intentions/dist/ui/assets/index-Bl5KEcli.js +67 -0
- package/packages/extensions/intentions/dist/ui/index.html +1 -1
- package/packages/extensions/pages/dist/ui/assets/index-BKxVQkA9.css +1 -0
- package/packages/extensions/pages/dist/ui/assets/index-BMt6sStP.js +68 -0
- package/packages/extensions/pages/dist/ui/index.html +2 -2
- package/packages/extensions/pages/skills/pages/SKILL.md +123 -4
- package/templates/_base/.init/.config/prompts.json +0 -1
- package/templates/_base/.init/.local/hooks/pre-prompt/turn-context.ts +30 -0
- package/templates/_base/src/lib/codex-session-seed.ts +6 -55
- package/templates/_base/src/lib/pi-session-seed.ts +8 -57
- package/templates/_base/src/lib/seed-note.ts +4 -4
- package/templates/_base/src/lib/session-seed.ts +8 -53
- package/templates/_base/src/lib/startup.ts +0 -20
- package/templates/claude/package.json +2 -2
- package/templates/claude/src/agent.ts +34 -102
- package/templates/claude/src/lib/hooks/pre-compact.ts +6 -6
- package/templates/claude/src/server.ts +0 -1
- package/templates/codex/package.json +2 -2
- package/templates/codex/src/agent.ts +23 -89
- package/templates/pi/package.json +1 -1
- package/templates/pi/src/agent.ts +26 -93
- package/templates/pi/src/server.ts +0 -1
- package/dist/auto-upgrade-HEVZKPTF.js +0 -46
- package/dist/chunk-AAPNU7GA.js +0 -168
- package/dist/delivery-manager-7R2YIQ2W.js +0 -41
- package/dist/echo-text-73CYQRL7.js +0 -40
- package/dist/message-delivery-TRKT4T2P.js +0 -46
- package/dist/migrate-name-placeholder-C7NCNLWF.js +0 -37
- package/dist/migrate-thread-config-EQSEP2XG.js +0 -90
- package/dist/mind-service-7EFIJ3ZA.js +0 -48
- package/dist/scheduler-73Q4MQ7Y.js +0 -27
- package/dist/seed-DRKAP3XV.js +0 -11
- package/dist/sleep-manager-KHI65FEX.js +0 -42
- package/dist/spirit-availability-G5FMWKRH.js +0 -43
- package/dist/sprout-PMTRL7QN.js +0 -11
- package/dist/src-3FIW7DLH.js +0 -2376
- package/dist/src-LTTQVN2Z.js +0 -832
- package/dist/variant-HHDTW74J.js +0 -62
- package/dist/variant-cleanup-QHGGY7ND.js +0 -24
- package/dist/web-assets/assets/index-DhM1yYRN.css +0 -1
- package/drizzle/0000_baseline.sql +0 -152
- package/drizzle/0001_add_conversation_private.sql +0 -1
- package/drizzle/0002_turns.sql +0 -21
- package/drizzle/0003_turn_feed_links.sql +0 -11
- package/drizzle/0004_spirits.sql +0 -5
- package/drizzle/0005_meta_summaries.sql +0 -15
- package/drizzle/0006_channels.sql +0 -17
- package/drizzle/0007_drop_conversation_name_title.sql +0 -11
- package/drizzle/0008_performance_indexes.sql +0 -6
- package/drizzle/0009_mind_notices.sql +0 -14
- package/drizzle/0010_delivery_queue_redrive.sql +0 -10
- package/drizzle/0011_drop_turn_summary_event_id.sql +0 -3
- package/drizzle/0012_channel_gates.sql +0 -17
- package/drizzle/0013_variant_purpose.sql +0 -3
- package/drizzle/0014_system_events.sql +0 -26
- package/drizzle/0015_rename_session_to_thread.sql +0 -12
- package/drizzle/0016_brain_to_human.sql +0 -4
- package/drizzle/0017_event_history_rows.sql +0 -9
- package/drizzle/0018_api_tokens.sql +0 -20
- package/drizzle/meta/0001_snapshot.json +0 -7
- package/drizzle/meta/0002_snapshot.json +0 -7
- package/drizzle/meta/0003_snapshot.json +0 -7
- package/drizzle/meta/0004_snapshot.json +0 -7
- package/drizzle/meta/0005_snapshot.json +0 -7
- package/drizzle/meta/0006_snapshot.json +0 -7
- package/drizzle/meta/0007_snapshot.json +0 -7
- package/packages/extensions/intentions/dist/ui/assets/index-CQz4aceM.js +0 -67
- package/packages/extensions/notes/dist/ui/assets/index-BBs8pyel.js +0 -67
- package/packages/extensions/notes/dist/ui/assets/index-D3cdui42.css +0 -1
- package/packages/extensions/notes/dist/ui/index.html +0 -14
- package/packages/extensions/notes/skills/notes/SKILL.md +0 -90
- package/packages/extensions/pages/dist/ui/assets/index-B589e8Xe.js +0 -2
- package/packages/extensions/pages/dist/ui/assets/index-BuXnE-rb.css +0 -1
- package/dist/{env-7AZFBPWX.js → env-IBW2QI6K.js} +5 -5
- package/dist/{login-4NUS72Z5.js → login-RJJTCVR3.js} +3 -3
- package/dist/{mind-contacts-PEXCDRXA.js → mind-contacts-KV64UDJS.js} +6 -6
- package/dist/{mind-history-RZMMCHMX.js → mind-history-H45GM2M2.js} +6 -6
- package/dist/{register-WNCSOTAU.js → register-OX4HRSGC.js} +3 -3
- package/dist/{restart-B4GNMVF2.js → restart-AGEGNSYQ.js} +4 -4
- package/dist/{skill-QYTBUDNQ.js → skill-B5OJEQUA.js} +4 -4
- package/dist/{start-BDHJVOVX.js → start-MUMNFR52.js} +3 -3
- package/dist/{stop-45QYSGYS.js → stop-EKERNYTX.js} +4 -4
package/dist/daemon.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
readBackupState,
|
|
7
7
|
resticVersion,
|
|
8
8
|
runBackup
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-T7UMSTH2.js";
|
|
10
10
|
import {
|
|
11
11
|
acceptPending,
|
|
12
12
|
formatFileSize,
|
|
@@ -14,25 +14,20 @@ import {
|
|
|
14
14
|
rejectPending,
|
|
15
15
|
stageFile,
|
|
16
16
|
validateFilePath
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import {
|
|
19
|
-
getMemoryStatus
|
|
20
|
-
} from "./chunk-5RBEEAKW.js";
|
|
17
|
+
} from "./chunk-45MCH4G4.js";
|
|
21
18
|
import {
|
|
22
19
|
findOpenClawSession,
|
|
23
20
|
importOpenClawConnectors,
|
|
24
21
|
importPiSession,
|
|
25
22
|
parseNameFromIdentity
|
|
26
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-2LFTJNVH.js";
|
|
27
24
|
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
getCurrentVersion
|
|
31
|
-
} from "./chunk-LAUCO2HC.js";
|
|
25
|
+
getMemoryStatus
|
|
26
|
+
} from "./chunk-5RBEEAKW.js";
|
|
32
27
|
import {
|
|
33
28
|
SPIRIT_NOTICE_PREFIX,
|
|
34
29
|
ensureSpiritAvailable
|
|
35
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-UNTDRIV2.js";
|
|
36
31
|
import {
|
|
37
32
|
TEMPLATE_BRANCH,
|
|
38
33
|
UpgradeInProgressError,
|
|
@@ -50,29 +45,29 @@ import {
|
|
|
50
45
|
upgradeDiff,
|
|
51
46
|
upgradeInProgress,
|
|
52
47
|
validateBranchName
|
|
53
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-EPRLTYJR.js";
|
|
54
49
|
import {
|
|
55
50
|
isTemplateStale
|
|
56
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-KXM4K46T.js";
|
|
57
52
|
import {
|
|
58
53
|
computeTemplateHash
|
|
59
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-YU5EYQAE.js";
|
|
60
55
|
import {
|
|
61
56
|
cleanupVariant
|
|
62
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-4RZS7XCV.js";
|
|
63
58
|
import {
|
|
64
59
|
isHomeOnlyArchive
|
|
65
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-XZP3FJ7Q.js";
|
|
66
61
|
import {
|
|
67
62
|
evaluateSeedChecklist
|
|
68
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-V2M6PNLE.js";
|
|
69
64
|
import {
|
|
70
65
|
PLATFORMS,
|
|
71
66
|
echoTextToChannel,
|
|
72
67
|
fixModelEscapes,
|
|
73
68
|
getPlatformDriver,
|
|
74
69
|
routeOutboundBridge
|
|
75
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-EYFBT2KP.js";
|
|
76
71
|
import {
|
|
77
72
|
getBridgeConfig,
|
|
78
73
|
readBridgesConfig,
|
|
@@ -81,7 +76,12 @@ import {
|
|
|
81
76
|
resolveChannelMapping,
|
|
82
77
|
setBridgeConfig,
|
|
83
78
|
setChannelMapping
|
|
84
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-2QLWAYIU.js";
|
|
80
|
+
import {
|
|
81
|
+
checkForUpdate,
|
|
82
|
+
checkForUpdateCached,
|
|
83
|
+
getCurrentVersion
|
|
84
|
+
} from "./chunk-APDEUAIE.js";
|
|
85
85
|
import {
|
|
86
86
|
SESSION_MAX_AGE,
|
|
87
87
|
announceSprout,
|
|
@@ -89,6 +89,7 @@ import {
|
|
|
89
89
|
authMiddleware,
|
|
90
90
|
backfillSystemChannelMembers,
|
|
91
91
|
cleanExpiredSessions,
|
|
92
|
+
collectTurnContext,
|
|
92
93
|
createSession,
|
|
93
94
|
deleteSession,
|
|
94
95
|
deleteSystemsConfig,
|
|
@@ -113,6 +114,7 @@ import {
|
|
|
113
114
|
linkToolResultToTurn,
|
|
114
115
|
listApiTokens,
|
|
115
116
|
loadAllExtensions,
|
|
117
|
+
normalizeTrailingSlash,
|
|
116
118
|
notifyExtensionsDaemonStart,
|
|
117
119
|
notifyExtensionsDaemonStop,
|
|
118
120
|
notifyExtensionsSpiritReady,
|
|
@@ -128,8 +130,8 @@ import {
|
|
|
128
130
|
uninstallNpmExtension,
|
|
129
131
|
willGateMessage,
|
|
130
132
|
writeSystemsConfig
|
|
131
|
-
} from "./chunk-
|
|
132
|
-
import "./chunk-
|
|
133
|
+
} from "./chunk-ELQU2GBT.js";
|
|
134
|
+
import "./chunk-GAAATVTM.js";
|
|
133
135
|
import {
|
|
134
136
|
applyInitFiles,
|
|
135
137
|
composeTemplate,
|
|
@@ -137,14 +139,14 @@ import {
|
|
|
137
139
|
findTemplatesRoot,
|
|
138
140
|
isKnownTemplate,
|
|
139
141
|
listFiles
|
|
140
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-P3GXOT2X.js";
|
|
141
143
|
import {
|
|
142
144
|
getScheduler,
|
|
143
145
|
initScheduler
|
|
144
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-2B4E6SL7.js";
|
|
145
147
|
import {
|
|
146
148
|
recordDeliveryFailure
|
|
147
|
-
} from "./chunk-
|
|
149
|
+
} from "./chunk-IABDYN4N.js";
|
|
148
150
|
import {
|
|
149
151
|
UnknownChannelError,
|
|
150
152
|
checkStaleSend,
|
|
@@ -154,7 +156,7 @@ import {
|
|
|
154
156
|
initDeliveryManager,
|
|
155
157
|
isConversationId,
|
|
156
158
|
publishTypingForChannels
|
|
157
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-IOMBP2T5.js";
|
|
158
160
|
import {
|
|
159
161
|
MindStartupError,
|
|
160
162
|
RestartTracker,
|
|
@@ -164,10 +166,7 @@ import {
|
|
|
164
166
|
initMindManager,
|
|
165
167
|
syncProviderToMinds,
|
|
166
168
|
tryGetMindManager
|
|
167
|
-
} from "./chunk-
|
|
168
|
-
import {
|
|
169
|
-
extractTextContent
|
|
170
|
-
} from "./chunk-YSRYCS3N.js";
|
|
169
|
+
} from "./chunk-PAO7JZNW.js";
|
|
171
170
|
import {
|
|
172
171
|
SYSTEM_MIND,
|
|
173
172
|
assignSession,
|
|
@@ -181,7 +180,6 @@ import {
|
|
|
181
180
|
initSummarizer,
|
|
182
181
|
isoWeekKeyForDateStr,
|
|
183
182
|
markErrored,
|
|
184
|
-
parseDbTimestamp,
|
|
185
183
|
parseUtcDateTime,
|
|
186
184
|
summarizeOrphanedTurns,
|
|
187
185
|
summarizeTurn,
|
|
@@ -189,82 +187,11 @@ import {
|
|
|
189
187
|
takeErrored,
|
|
190
188
|
trackToolUse,
|
|
191
189
|
utcDateTimeStr
|
|
192
|
-
} from "./chunk-
|
|
193
|
-
import {
|
|
194
|
-
SEED_SKILLS,
|
|
195
|
-
STANDARD_SKILLS,
|
|
196
|
-
autoUpdateMindSkills,
|
|
197
|
-
getSharedSkill,
|
|
198
|
-
getStandardSkillsWithExtensions,
|
|
199
|
-
importSkillFromDir,
|
|
200
|
-
initDefaultSkills,
|
|
201
|
-
installSkill,
|
|
202
|
-
isAutoUpdateSkillsEnabled,
|
|
203
|
-
listFilesRecursive,
|
|
204
|
-
listMindSkills,
|
|
205
|
-
listSharedSkills,
|
|
206
|
-
mindSkillsDir,
|
|
207
|
-
publishSkill,
|
|
208
|
-
removeSharedSkill,
|
|
209
|
-
sharedSkillsDir,
|
|
210
|
-
syncBuiltinSkills,
|
|
211
|
-
uninstallSkill,
|
|
212
|
-
updateSkill
|
|
213
|
-
} from "./chunk-PPSN2MLC.js";
|
|
214
|
-
import {
|
|
215
|
-
approveUser,
|
|
216
|
-
changePassword,
|
|
217
|
-
countAdmins,
|
|
218
|
-
createUser,
|
|
219
|
-
deleteExternalMindUser,
|
|
220
|
-
deleteMindUser as deleteMindUser2,
|
|
221
|
-
deleteUser,
|
|
222
|
-
getDisplayNames,
|
|
223
|
-
getOrCreateMindUser,
|
|
224
|
-
getOrCreateSystemUser,
|
|
225
|
-
getUser,
|
|
226
|
-
getUserByUsername,
|
|
227
|
-
listPendingUsers,
|
|
228
|
-
listUsers,
|
|
229
|
-
listUsersByType,
|
|
230
|
-
setUserRole,
|
|
231
|
-
syncMindProfile,
|
|
232
|
-
updateUserProfile,
|
|
233
|
-
verifyUser,
|
|
234
|
-
withSenderDisplayNames
|
|
235
|
-
} from "./chunk-7LT3YZUR.js";
|
|
236
|
-
import {
|
|
237
|
-
MIND_LEVEL_THREAD,
|
|
238
|
-
captureReflection,
|
|
239
|
-
cleanExpiredEvents,
|
|
240
|
-
clearDeliveredEvents,
|
|
241
|
-
deliverEvent,
|
|
242
|
-
drainEvents,
|
|
243
|
-
eventLabel,
|
|
244
|
-
formatEvents,
|
|
245
|
-
latestEvent,
|
|
246
|
-
latestFailureEvent,
|
|
247
|
-
listEvents,
|
|
248
|
-
parseMeta,
|
|
249
|
-
recordNotice
|
|
250
|
-
} from "./chunk-HKGYZVWN.js";
|
|
251
|
-
import {
|
|
252
|
-
publish as publish2,
|
|
253
|
-
subscribe as subscribe2,
|
|
254
|
-
subscribeAll
|
|
255
|
-
} from "./chunk-LNNI3MS4.js";
|
|
256
|
-
import {
|
|
257
|
-
PROMPT_DEFAULTS,
|
|
258
|
-
PROMPT_KEYS,
|
|
259
|
-
getMindPromptDefaults,
|
|
260
|
-
getPrompt,
|
|
261
|
-
getPromptIfCustom,
|
|
262
|
-
substitute
|
|
263
|
-
} from "./chunk-OAYY3WF3.js";
|
|
190
|
+
} from "./chunk-TGYKFUCF.js";
|
|
264
191
|
import {
|
|
265
192
|
isSandboxEnabled,
|
|
266
193
|
wrapForSandbox
|
|
267
|
-
} from "./chunk-
|
|
194
|
+
} from "./chunk-CLH357FI.js";
|
|
268
195
|
import {
|
|
269
196
|
addMessage,
|
|
270
197
|
createChannel,
|
|
@@ -300,22 +227,15 @@ import {
|
|
|
300
227
|
subscribe as subscribe3,
|
|
301
228
|
subscribeParticipantAdded,
|
|
302
229
|
updateChannelSettings
|
|
303
|
-
} from "./chunk-
|
|
230
|
+
} from "./chunk-Q5M5QFKY.js";
|
|
304
231
|
import {
|
|
305
232
|
getActiveMinds,
|
|
306
233
|
onMindEvent,
|
|
307
234
|
stopAll
|
|
308
|
-
} from "./chunk-
|
|
309
|
-
import {
|
|
310
|
-
broadcast,
|
|
311
|
-
getEventsSince,
|
|
312
|
-
nextEventId,
|
|
313
|
-
publish,
|
|
314
|
-
subscribe
|
|
315
|
-
} from "./chunk-U54PJPTB.js";
|
|
235
|
+
} from "./chunk-UMQP5TC5.js";
|
|
316
236
|
import {
|
|
317
237
|
normalizeAvatar
|
|
318
|
-
} from "./chunk-
|
|
238
|
+
} from "./chunk-WTZD6LFW.js";
|
|
319
239
|
import {
|
|
320
240
|
safeResolveWithinBase
|
|
321
241
|
} from "./chunk-DW4TRDOZ.js";
|
|
@@ -323,7 +243,90 @@ import {
|
|
|
323
243
|
readVoluteConfig,
|
|
324
244
|
writeVoluteConfig
|
|
325
245
|
} from "./chunk-WCFSBH33.js";
|
|
326
|
-
import
|
|
246
|
+
import {
|
|
247
|
+
extractTextContent
|
|
248
|
+
} from "./chunk-IQROTVBG.js";
|
|
249
|
+
import {
|
|
250
|
+
approveUser,
|
|
251
|
+
changePassword,
|
|
252
|
+
countAdmins,
|
|
253
|
+
createUser,
|
|
254
|
+
deleteExternalMindUser,
|
|
255
|
+
deleteMindUser as deleteMindUser2,
|
|
256
|
+
deleteUser,
|
|
257
|
+
getDisplayNames,
|
|
258
|
+
getOrCreateMindUser,
|
|
259
|
+
getOrCreateSystemUser,
|
|
260
|
+
getUser,
|
|
261
|
+
getUserByUsername,
|
|
262
|
+
listPendingUsers,
|
|
263
|
+
listUsers,
|
|
264
|
+
listUsersByType,
|
|
265
|
+
setUserRole,
|
|
266
|
+
syncMindProfile,
|
|
267
|
+
updateUserProfile,
|
|
268
|
+
verifyUser,
|
|
269
|
+
withSenderDisplayNames
|
|
270
|
+
} from "./chunk-I3OJ342S.js";
|
|
271
|
+
import {
|
|
272
|
+
broadcast,
|
|
273
|
+
getEventsSince,
|
|
274
|
+
nextEventId,
|
|
275
|
+
publish,
|
|
276
|
+
subscribe
|
|
277
|
+
} from "./chunk-FYMIGUJ5.js";
|
|
278
|
+
import {
|
|
279
|
+
MIND_LEVEL_THREAD,
|
|
280
|
+
captureReflection,
|
|
281
|
+
cleanExpiredEvents,
|
|
282
|
+
clearDeliveredEvents,
|
|
283
|
+
deliverEvent,
|
|
284
|
+
drainEvents,
|
|
285
|
+
eventLabel,
|
|
286
|
+
findStrandedEventMinds,
|
|
287
|
+
formatEvents,
|
|
288
|
+
latestEvent,
|
|
289
|
+
latestFailureEvent,
|
|
290
|
+
listEvents,
|
|
291
|
+
parseMeta,
|
|
292
|
+
recordNotice
|
|
293
|
+
} from "./chunk-6LICEQGP.js";
|
|
294
|
+
import {
|
|
295
|
+
parseDbTimestamp,
|
|
296
|
+
publish as publish2,
|
|
297
|
+
subscribe as subscribe2,
|
|
298
|
+
subscribeAll
|
|
299
|
+
} from "./chunk-MNKPAAQF.js";
|
|
300
|
+
import {
|
|
301
|
+
PROMPT_DEFAULTS,
|
|
302
|
+
PROMPT_KEYS,
|
|
303
|
+
getMindPromptDefaults,
|
|
304
|
+
getPrompt,
|
|
305
|
+
getPromptIfCustom,
|
|
306
|
+
substitute
|
|
307
|
+
} from "./chunk-CVPCRWWC.js";
|
|
308
|
+
import {
|
|
309
|
+
SEED_SKILLS,
|
|
310
|
+
STANDARD_SKILLS,
|
|
311
|
+
autoUpdateMindSkills,
|
|
312
|
+
getSharedSkill,
|
|
313
|
+
getStandardSkillsWithExtensions,
|
|
314
|
+
importSkillFromDir,
|
|
315
|
+
initDefaultSkills,
|
|
316
|
+
installSkill,
|
|
317
|
+
isAutoUpdateSkillsEnabled,
|
|
318
|
+
listFilesRecursive,
|
|
319
|
+
listMindSkills,
|
|
320
|
+
listSharedSkills,
|
|
321
|
+
mindSkillsDir,
|
|
322
|
+
publishSkill,
|
|
323
|
+
removeSharedSkill,
|
|
324
|
+
sharedSkillsDir,
|
|
325
|
+
syncBuiltinSkills,
|
|
326
|
+
uninstallSkill,
|
|
327
|
+
updateSkill
|
|
328
|
+
} from "./chunk-IRNM4LSF.js";
|
|
329
|
+
import "./chunk-OPTA3BJ4.js";
|
|
327
330
|
import {
|
|
328
331
|
chownMindDir,
|
|
329
332
|
chownMindFile,
|
|
@@ -335,14 +338,14 @@ import {
|
|
|
335
338
|
isIsolationEnabled,
|
|
336
339
|
resolveVoluteBin,
|
|
337
340
|
wrapForIsolation
|
|
338
|
-
} from "./chunk-
|
|
341
|
+
} from "./chunk-NA2NJXY4.js";
|
|
339
342
|
import {
|
|
340
343
|
loadMergedEnv,
|
|
341
344
|
mindEnvPath,
|
|
342
345
|
readEnv,
|
|
343
346
|
sharedEnvPath,
|
|
344
347
|
writeEnv
|
|
345
|
-
} from "./chunk-
|
|
348
|
+
} from "./chunk-OHHS5PSI.js";
|
|
346
349
|
import {
|
|
347
350
|
OAuthRefreshError,
|
|
348
351
|
addCustomModel,
|
|
@@ -368,11 +371,11 @@ import {
|
|
|
368
371
|
setProviderRefreshHook,
|
|
369
372
|
setUtilityModel,
|
|
370
373
|
unqualifyModelId
|
|
371
|
-
} from "./chunk-
|
|
374
|
+
} from "./chunk-E2SN3ZOJ.js";
|
|
372
375
|
import {
|
|
373
376
|
logBuffer,
|
|
374
377
|
logger_default
|
|
375
|
-
} from "./chunk-
|
|
378
|
+
} from "./chunk-2674KIGI.js";
|
|
376
379
|
import {
|
|
377
380
|
buildVoluteSlug
|
|
378
381
|
} from "./chunk-LGNUFVMR.js";
|
|
@@ -407,7 +410,7 @@ import {
|
|
|
407
410
|
voluteHome,
|
|
408
411
|
voluteSystemDir,
|
|
409
412
|
writeGlobalConfig
|
|
410
|
-
} from "./chunk-
|
|
413
|
+
} from "./chunk-TAVIVN2I.js";
|
|
411
414
|
import {
|
|
412
415
|
activity,
|
|
413
416
|
channels,
|
|
@@ -537,7 +540,7 @@ var BackupManager = class {
|
|
|
537
540
|
} catch (pubErr) {
|
|
538
541
|
blog.error("failed to publish backup-failure activity", logger_default.errorData(pubErr));
|
|
539
542
|
}
|
|
540
|
-
const { deliverEvent: deliverEvent2 } = await import("./system-events-
|
|
543
|
+
const { deliverEvent: deliverEvent2 } = await import("./system-events-CWC7CBKP.js");
|
|
541
544
|
await deliverEvent2(getSpiritName(), {
|
|
542
545
|
type: "notice",
|
|
543
546
|
meta: { subtype: "backup" },
|
|
@@ -899,6 +902,19 @@ async function runMaintenance() {
|
|
|
899
902
|
} catch (err) {
|
|
900
903
|
logger_default.warn("maintenance: failed to clean expired events", logger_default.errorData(err));
|
|
901
904
|
}
|
|
905
|
+
try {
|
|
906
|
+
await warnStrandedEvents();
|
|
907
|
+
} catch (err) {
|
|
908
|
+
logger_default.warn("maintenance: failed to check for stranded events", logger_default.errorData(err));
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
async function warnStrandedEvents() {
|
|
912
|
+
for (const s of await findStrandedEventMinds()) {
|
|
913
|
+
logger_default.warn(
|
|
914
|
+
`${s.mind} has ${s.pending} undelivered next-turn system event${s.pending === 1 ? "" : "s"} and has completed ${s.turnsSince} turns without draining them (oldest is ${s.ageHours}h old). Its pre-prompt drain hook is missing or failing \u2014 check home/.local/hooks/pre-prompt/notices.ts and run \`volute mind upgrade ${s.mind}\`.`,
|
|
915
|
+
{ mind: s.mind, pending: s.pending, turnsSince: s.turnsSince, ageHours: s.ageHours }
|
|
916
|
+
);
|
|
917
|
+
}
|
|
902
918
|
}
|
|
903
919
|
function startMaintenanceInterval(intervalMs = MAINTENANCE_INTERVAL_MS, task = runMaintenance) {
|
|
904
920
|
const handle = setInterval(() => void task(), intervalMs);
|
|
@@ -1489,7 +1505,7 @@ var app = new Hono().post("/restart", requireAdmin, (c) => {
|
|
|
1489
1505
|
config2.name = name.trim() || void 0;
|
|
1490
1506
|
writeGlobalConfig(config2);
|
|
1491
1507
|
if (config2.name !== previousName) {
|
|
1492
|
-
const { notifySpiritSystemChange } = await import("./spirit-
|
|
1508
|
+
const { notifySpiritSystemChange } = await import("./spirit-YPG2MU6W.js");
|
|
1493
1509
|
await notifySpiritSystemChange();
|
|
1494
1510
|
}
|
|
1495
1511
|
return c.json({ name: config2.name ?? null });
|
|
@@ -2731,7 +2747,7 @@ async function fanOutToMinds(opts) {
|
|
|
2731
2747
|
);
|
|
2732
2748
|
}
|
|
2733
2749
|
if (ap.userType === "system") {
|
|
2734
|
-
import("./spirit-availability-
|
|
2750
|
+
import("./spirit-availability-ZQM5IH4C.js").then(({ ensureSpiritAvailable: ensureSpiritAvailable2 }) => ensureSpiritAvailable2()).catch((err) => logger_default.warn("fan-out: on-demand spirit start failed", logger_default.errorData(err)));
|
|
2735
2751
|
}
|
|
2736
2752
|
}
|
|
2737
2753
|
return null;
|
|
@@ -2864,7 +2880,7 @@ var app4 = new Hono5().post("/:platform/inbound", zValidator4("json", inboundSch
|
|
|
2864
2880
|
}
|
|
2865
2881
|
const participants = await getParticipants(channel.id);
|
|
2866
2882
|
if (!participants.some((p) => p.userId === puppet.id)) {
|
|
2867
|
-
const { addParticipant } = await import("./conversations-
|
|
2883
|
+
const { addParticipant } = await import("./conversations-ERMMPMOS.js");
|
|
2868
2884
|
await addParticipant(channel.id, puppet.id);
|
|
2869
2885
|
}
|
|
2870
2886
|
const contentBlocks = body.content;
|
|
@@ -3148,12 +3164,12 @@ async function notifyMind(mindName, message) {
|
|
|
3148
3164
|
const entry = await findMind(mindName);
|
|
3149
3165
|
if (!entry) return false;
|
|
3150
3166
|
try {
|
|
3151
|
-
const { deliverEvent: deliverEvent2 } = await import("./system-events-
|
|
3167
|
+
const { deliverEvent: deliverEvent2 } = await import("./system-events-CWC7CBKP.js");
|
|
3152
3168
|
const result = await deliverEvent2(mindName, { type: "file-share", body: message });
|
|
3153
3169
|
if (result.delivered) return true;
|
|
3154
3170
|
if (result.id == null) return false;
|
|
3155
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
3156
|
-
const { getBaseName: getBaseName2 } = await import("./registry-
|
|
3171
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
3172
|
+
const { getBaseName: getBaseName2 } = await import("./registry-BTQXLDW6.js");
|
|
3157
3173
|
return getSleepManagerIfReady2()?.isSleeping(await getBaseName2(mindName)) ?? false;
|
|
3158
3174
|
} catch (err) {
|
|
3159
3175
|
logger_default.warn(`[file-sharing] notify mind ${mindName} failed`, logger_default.errorData(err));
|
|
@@ -5031,7 +5047,7 @@ async function getMindStatus(name, port, registryRunning, seed) {
|
|
|
5031
5047
|
let status = "stopped";
|
|
5032
5048
|
let wakeAt = null;
|
|
5033
5049
|
try {
|
|
5034
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
5050
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
5035
5051
|
const sleepManager = getSleepManagerIfReady2();
|
|
5036
5052
|
if (sleepManager?.isSleeping(name)) {
|
|
5037
5053
|
status = "sleeping";
|
|
@@ -5399,7 +5415,7 @@ var app13 = new Hono16().post("/", requireAdminOrSystem, zValidator6("json", cre
|
|
|
5399
5415
|
);
|
|
5400
5416
|
}
|
|
5401
5417
|
{
|
|
5402
|
-
const { mindLimitError, readGlobalConfig: readGlobalConfig2 } = await import("./setup-
|
|
5418
|
+
const { mindLimitError, readGlobalConfig: readGlobalConfig2 } = await import("./setup-R7Q4HFJP.js");
|
|
5403
5419
|
const limitError = mindLimitError(await countCappedMinds(), readGlobalConfig2().maxMinds);
|
|
5404
5420
|
if (limitError) return c.json({ error: limitError }, 409);
|
|
5405
5421
|
}
|
|
@@ -5414,7 +5430,7 @@ var app13 = new Hono16().post("/", requireAdminOrSystem, zValidator6("json", cre
|
|
|
5414
5430
|
const { publicKeyPem } = generateIdentity(dest);
|
|
5415
5431
|
let effectiveModel = body.model;
|
|
5416
5432
|
{
|
|
5417
|
-
const { readGlobalConfig: readGlobal } = await import("./setup-
|
|
5433
|
+
const { readGlobalConfig: readGlobal } = await import("./setup-R7Q4HFJP.js");
|
|
5418
5434
|
const mindDefaults = readGlobal().mindDefaults;
|
|
5419
5435
|
const config2 = readVoluteConfig(dest);
|
|
5420
5436
|
if (!config2) throw new Error("Failed to read volute.json after identity generation");
|
|
@@ -5495,7 +5511,7 @@ Your creator described you as: "${body.description}"
|
|
|
5495
5511
|
}
|
|
5496
5512
|
let skillSet = body.skills ?? (body.stage === "seed" ? SEED_SKILLS : getStandardSkillsWithExtensions());
|
|
5497
5513
|
if (body.stage === "seed" && !body.skills) {
|
|
5498
|
-
const { isImagegenEnabled } = await import("./setup-
|
|
5514
|
+
const { isImagegenEnabled } = await import("./setup-R7Q4HFJP.js");
|
|
5499
5515
|
if (isImagegenEnabled()) {
|
|
5500
5516
|
skillSet = [...skillSet, "imagegen"];
|
|
5501
5517
|
}
|
|
@@ -5517,7 +5533,7 @@ Your creator described you as: "${body.description}"
|
|
|
5517
5533
|
const spiritName = getSpiritName();
|
|
5518
5534
|
const spiritEntry = await findMind(spiritName);
|
|
5519
5535
|
if (spiritEntry) {
|
|
5520
|
-
const { spiritDir } = await import("./spirit-
|
|
5536
|
+
const { spiritDir } = await import("./spirit-YPG2MU6W.js");
|
|
5521
5537
|
const sDir = spiritEntry.dir ?? spiritDir();
|
|
5522
5538
|
const spiritConfig = readVoluteConfig(sDir) ?? {};
|
|
5523
5539
|
const schedules = spiritConfig.schedules ?? [];
|
|
@@ -5532,7 +5548,7 @@ Your creator described you as: "${body.description}"
|
|
|
5532
5548
|
});
|
|
5533
5549
|
spiritConfig.schedules = schedules;
|
|
5534
5550
|
writeVoluteConfig(sDir, spiritConfig);
|
|
5535
|
-
const { getScheduler: getScheduler2 } = await import("./scheduler-
|
|
5551
|
+
const { getScheduler: getScheduler2 } = await import("./scheduler-G6BCIVGP.js");
|
|
5536
5552
|
getScheduler2().loadSchedules(spiritName, sDir);
|
|
5537
5553
|
}
|
|
5538
5554
|
}
|
|
@@ -5840,7 +5856,7 @@ ${user.trimEnd()}
|
|
|
5840
5856
|
const manager = getMindManager();
|
|
5841
5857
|
try {
|
|
5842
5858
|
if (context?.type === "reload") {
|
|
5843
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
5859
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
5844
5860
|
const sleepState = getSleepManagerIfReady2()?.getState(name);
|
|
5845
5861
|
if (sleepState?.sleeping) {
|
|
5846
5862
|
logger_default.info(`skipping reload for ${name} during sleep \u2014 will apply on next wake`);
|
|
@@ -5989,7 +6005,7 @@ ${user.trimEnd()}
|
|
|
5989
6005
|
const name = c.req.param("name");
|
|
5990
6006
|
const entry = await findMind(name);
|
|
5991
6007
|
if (!entry) return c.json({ error: "Mind not found" }, 404);
|
|
5992
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
6008
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
5993
6009
|
const sm = getSleepManagerIfReady2();
|
|
5994
6010
|
if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
|
|
5995
6011
|
return c.json(sm.getState(name));
|
|
@@ -5997,7 +6013,7 @@ ${user.trimEnd()}
|
|
|
5997
6013
|
const name = c.req.param("name");
|
|
5998
6014
|
const entry = await findMind(name);
|
|
5999
6015
|
if (!entry) return c.json({ error: "Mind not found" }, 404);
|
|
6000
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
6016
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
6001
6017
|
const sm = getSleepManagerIfReady2();
|
|
6002
6018
|
if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
|
|
6003
6019
|
if (sm.isSleeping(name)) return c.json({ error: "Mind is already sleeping" }, 409);
|
|
@@ -6017,7 +6033,7 @@ ${user.trimEnd()}
|
|
|
6017
6033
|
const name = c.req.param("name");
|
|
6018
6034
|
const entry = await findMind(name);
|
|
6019
6035
|
if (!entry) return c.json({ error: "Mind not found" }, 404);
|
|
6020
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
6036
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
6021
6037
|
const sm = getSleepManagerIfReady2();
|
|
6022
6038
|
if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
|
|
6023
6039
|
const sleepState = sm.getState(name);
|
|
@@ -6032,7 +6048,7 @@ ${user.trimEnd()}
|
|
|
6032
6048
|
const name = c.req.param("name");
|
|
6033
6049
|
const entry = await findMind(name);
|
|
6034
6050
|
if (!entry) return c.json({ error: "Mind not found" }, 404);
|
|
6035
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
6051
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
6036
6052
|
const sm = getSleepManagerIfReady2();
|
|
6037
6053
|
if (!sm) return c.json({ error: "Sleep manager not initialized" }, 503);
|
|
6038
6054
|
const flushed = await sm.flushQueuedMessages(name);
|
|
@@ -6060,7 +6076,7 @@ ${user.trimEnd()}
|
|
|
6060
6076
|
}
|
|
6061
6077
|
config2.profile = profile;
|
|
6062
6078
|
writeVoluteConfig(dir, config2);
|
|
6063
|
-
const { syncMindProfile: syncMindProfile2 } = await import("./auth-
|
|
6079
|
+
const { syncMindProfile: syncMindProfile2 } = await import("./auth-N2F5ASAB.js");
|
|
6064
6080
|
await syncMindProfile2(name, profile);
|
|
6065
6081
|
broadcast({ type: "profile_updated", mind: name, summary: `${name} profile updated` });
|
|
6066
6082
|
return c.json({ ok: true });
|
|
@@ -6104,7 +6120,7 @@ ${user.trimEnd()}
|
|
|
6104
6120
|
});
|
|
6105
6121
|
}
|
|
6106
6122
|
if (!force) {
|
|
6107
|
-
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-
|
|
6123
|
+
const { getSleepManagerIfReady: getSleepManagerIfReady2 } = await import("./sleep-manager-25P44HAO.js");
|
|
6108
6124
|
if (getSleepManagerIfReady2()?.isSleeping(name)) {
|
|
6109
6125
|
return c.json({ output: "" });
|
|
6110
6126
|
}
|
|
@@ -6159,7 +6175,7 @@ ${user.trimEnd()}
|
|
|
6159
6175
|
}
|
|
6160
6176
|
}
|
|
6161
6177
|
const dir = entry.dir ?? mindDir(name);
|
|
6162
|
-
const { evaluateSeedChecklist: evaluateSeedChecklist2 } = await import("./seed-readiness-
|
|
6178
|
+
const { evaluateSeedChecklist: evaluateSeedChecklist2 } = await import("./seed-readiness-RBANMSWW.js");
|
|
6163
6179
|
const checklist = evaluateSeedChecklist2(dir);
|
|
6164
6180
|
const done = [];
|
|
6165
6181
|
const remaining = [];
|
|
@@ -6201,7 +6217,7 @@ ${user.trimEnd()}
|
|
|
6201
6217
|
try {
|
|
6202
6218
|
const sproutedDir = entry.dir ?? mindDir(name);
|
|
6203
6219
|
if (setupDefaultDreaming(sproutedDir).schedulesChanged) {
|
|
6204
|
-
const { getScheduler: getScheduler2 } = await import("./scheduler-
|
|
6220
|
+
const { getScheduler: getScheduler2 } = await import("./scheduler-G6BCIVGP.js");
|
|
6205
6221
|
getScheduler2().loadSchedules(name, sproutedDir);
|
|
6206
6222
|
}
|
|
6207
6223
|
} catch (err) {
|
|
@@ -6211,7 +6227,7 @@ ${user.trimEnd()}
|
|
|
6211
6227
|
const spiritName = getSpiritName();
|
|
6212
6228
|
const spiritEntry = await findMind(spiritName);
|
|
6213
6229
|
if (spiritEntry) {
|
|
6214
|
-
const { firstWeekSchedules, spiritDir } = await import("./spirit-
|
|
6230
|
+
const { firstWeekSchedules, spiritDir } = await import("./spirit-YPG2MU6W.js");
|
|
6215
6231
|
const sDir = spiritEntry.dir ?? spiritDir();
|
|
6216
6232
|
const spiritConfig = readVoluteConfig(sDir);
|
|
6217
6233
|
if (spiritConfig) {
|
|
@@ -6225,7 +6241,7 @@ ${user.trimEnd()}
|
|
|
6225
6241
|
spiritConfig.schedules = schedules;
|
|
6226
6242
|
writeVoluteConfig(sDir, spiritConfig);
|
|
6227
6243
|
try {
|
|
6228
|
-
const { getScheduler: getScheduler2 } = await import("./scheduler-
|
|
6244
|
+
const { getScheduler: getScheduler2 } = await import("./scheduler-G6BCIVGP.js");
|
|
6229
6245
|
getScheduler2().loadSchedules(spiritName, sDir);
|
|
6230
6246
|
} catch (err) {
|
|
6231
6247
|
logger_default.warn(
|
|
@@ -6346,16 +6362,6 @@ ${user.trimEnd()}
|
|
|
6346
6362
|
return c.json({ error: msg }, 500);
|
|
6347
6363
|
}
|
|
6348
6364
|
}
|
|
6349
|
-
if (body.accept) {
|
|
6350
|
-
if (upgradeInProgress(mindName)) {
|
|
6351
|
-
try {
|
|
6352
|
-
await abortUpgrade(mindName);
|
|
6353
|
-
} catch (err) {
|
|
6354
|
-
logger_default.warn(`failed to clean up legacy upgrade variant for ${mindName}`, logger_default.errorData(err));
|
|
6355
|
-
}
|
|
6356
|
-
}
|
|
6357
|
-
return c.json({ error: "Upgrades now auto-merge. Run 'volute mind upgrade' again." }, 400);
|
|
6358
|
-
}
|
|
6359
6365
|
if (body.diff) {
|
|
6360
6366
|
if (!existsSync7(resolve11(dir, ".git"))) {
|
|
6361
6367
|
return c.json({ error: "Mind has no git history \u2014 nothing to diff against" }, 400);
|
|
@@ -6533,7 +6539,7 @@ ${user.trimEnd()}
|
|
|
6533
6539
|
}
|
|
6534
6540
|
writeVoluteConfig(dir, existing);
|
|
6535
6541
|
if (body.unescapeNewlines !== void 0) {
|
|
6536
|
-
const { clearEchoTextCache } = await import("./echo-text-
|
|
6542
|
+
const { clearEchoTextCache } = await import("./echo-text-Y2DFTD7L.js");
|
|
6537
6543
|
clearEchoTextCache(name);
|
|
6538
6544
|
}
|
|
6539
6545
|
const needsConfigJson = body.model !== void 0 || body.thinkingLevel !== void 0 || body.compaction !== void 0;
|
|
@@ -6570,7 +6576,7 @@ ${user.trimEnd()}
|
|
|
6570
6576
|
}
|
|
6571
6577
|
if (entry.mindType === "spirit" && body.model !== void 0) {
|
|
6572
6578
|
try {
|
|
6573
|
-
const { readGlobalConfig: readGlobalConfig2, writeGlobalConfig: writeGlobalConfig2 } = await import("./setup-
|
|
6579
|
+
const { readGlobalConfig: readGlobalConfig2, writeGlobalConfig: writeGlobalConfig2 } = await import("./setup-R7Q4HFJP.js");
|
|
6574
6580
|
const globalConfig = readGlobalConfig2();
|
|
6575
6581
|
globalConfig.spiritModel = body.model;
|
|
6576
6582
|
writeGlobalConfig2(globalConfig);
|
|
@@ -6647,7 +6653,7 @@ ${user.trimEnd()}
|
|
|
6647
6653
|
if (!body.systemPrompt || !body.message) {
|
|
6648
6654
|
return c.json({ error: "systemPrompt and message required" }, 400);
|
|
6649
6655
|
}
|
|
6650
|
-
const { aiComplete: aiCompleteFn, isAiConfigured: isAiConfigured2 } = await import("./ai-service-
|
|
6656
|
+
const { aiComplete: aiCompleteFn, isAiConfigured: isAiConfigured2 } = await import("./ai-service-3UFNG6GI.js");
|
|
6651
6657
|
if (!isAiConfigured2()) {
|
|
6652
6658
|
return c.json({ error: "AI service not configured" }, 503);
|
|
6653
6659
|
}
|
|
@@ -6815,26 +6821,10 @@ ${user.trimEnd()}
|
|
|
6815
6821
|
const detail = c.req.query("detail") === "1";
|
|
6816
6822
|
const db = await getDb();
|
|
6817
6823
|
const typeFilter = detail ? void 0 : sql3`${mindHistory.type} IN ('inbound','event','outbound','tool_use','tool_result','text','thinking','activity')`;
|
|
6818
|
-
|
|
6819
|
-
|
|
6820
|
-
rows = await db.select().from(mindHistory).where(and5(eq5(mindHistory.mind, name), eq5(mindHistory.turn_id, turnId), typeFilter)).orderBy(mindHistory.id);
|
|
6821
|
-
} else {
|
|
6822
|
-
const session = c.req.query("session");
|
|
6823
|
-
const fromId = parseInt(c.req.query("from_id") ?? "", 10);
|
|
6824
|
-
const toId = parseInt(c.req.query("to_id") ?? "", 10);
|
|
6825
|
-
if (!session || Number.isNaN(fromId) || Number.isNaN(toId)) {
|
|
6826
|
-
return c.json({ error: "turn_id, or session with from_id and to_id, required" }, 400);
|
|
6827
|
-
}
|
|
6828
|
-
rows = await db.select().from(mindHistory).where(
|
|
6829
|
-
and5(
|
|
6830
|
-
eq5(mindHistory.mind, name),
|
|
6831
|
-
eq5(mindHistory.thread, session),
|
|
6832
|
-
sql3`${mindHistory.id} >= ${fromId}`,
|
|
6833
|
-
sql3`${mindHistory.id} <= ${toId}`,
|
|
6834
|
-
typeFilter
|
|
6835
|
-
)
|
|
6836
|
-
).orderBy(mindHistory.id);
|
|
6824
|
+
if (!turnId) {
|
|
6825
|
+
return c.json({ error: "turn_id required" }, 400);
|
|
6837
6826
|
}
|
|
6827
|
+
const rows = await db.select().from(mindHistory).where(and5(eq5(mindHistory.mind, name), eq5(mindHistory.turn_id, turnId), typeFilter)).orderBy(mindHistory.id);
|
|
6838
6828
|
return c.json(rows);
|
|
6839
6829
|
}).get("/:name/history/cross-session", requireSelf(), async (c) => {
|
|
6840
6830
|
const name = c.req.param("name");
|
|
@@ -6892,6 +6882,11 @@ ${lines.join("\n")}` });
|
|
|
6892
6882
|
const maxId = notices.reduce((m, n) => Math.max(m, n.id), 0);
|
|
6893
6883
|
setNoticeDrainWatermark(baseName, session, maxId);
|
|
6894
6884
|
return c.json({ context: formatEvents(notices), notices });
|
|
6885
|
+
}).get("/:name/turn-context", requireSelf(), async (c) => {
|
|
6886
|
+
const name = c.req.param("name");
|
|
6887
|
+
const baseName = await getBaseName(name);
|
|
6888
|
+
const reason = c.req.query("reason") === "wake" ? "wake" : "turn";
|
|
6889
|
+
return c.json({ context: await collectTurnContext(baseName, reason) });
|
|
6895
6890
|
}).post("/:name/notices", requireSelf(), async (c) => {
|
|
6896
6891
|
const MIND_POSTABLE_KINDS = ["context_lost", "delivery_failed"];
|
|
6897
6892
|
const name = c.req.param("name");
|
|
@@ -7316,7 +7311,6 @@ var app15 = new Hono18().get("/:name/clock/status", requireSelf(), async (c) =>
|
|
|
7316
7311
|
if (body.message) schedule.message = body.message;
|
|
7317
7312
|
if (body.messages?.length) schedule.messages = body.messages;
|
|
7318
7313
|
if (body.script) schedule.script = body.script;
|
|
7319
|
-
if (body.channel) schedule.channel = body.channel;
|
|
7320
7314
|
if (body.thread) schedule.thread = body.thread;
|
|
7321
7315
|
if (body.whileSleeping) schedule.whileSleeping = body.whileSleeping;
|
|
7322
7316
|
schedules.push(schedule);
|
|
@@ -7381,7 +7375,6 @@ var app15 = new Hono18().get("/:name/clock/status", requireSelf(), async (c) =>
|
|
|
7381
7375
|
);
|
|
7382
7376
|
}
|
|
7383
7377
|
if (body.enabled !== void 0) schedules[idx].enabled = body.enabled;
|
|
7384
|
-
if (body.channel !== void 0) schedules[idx].channel = body.channel || void 0;
|
|
7385
7378
|
if (body.thread !== void 0) schedules[idx].thread = body.thread || void 0;
|
|
7386
7379
|
if (body.whileSleeping !== void 0)
|
|
7387
7380
|
schedules[idx].whileSleeping = body.whileSleeping || void 0;
|
|
@@ -7411,7 +7404,7 @@ var app15 = new Hono18().get("/:name/clock/status", requireSelf(), async (c) =>
|
|
|
7411
7404
|
const entry = await findMind(name);
|
|
7412
7405
|
if (!entry) return c.json({ error: "Mind not found" }, 404);
|
|
7413
7406
|
const body = await c.req.text();
|
|
7414
|
-
const { deliverEvent: deliverEvent2 } = await import("./system-events-
|
|
7407
|
+
const { deliverEvent: deliverEvent2 } = await import("./system-events-CWC7CBKP.js");
|
|
7415
7408
|
const { id, delivered } = await deliverEvent2(name, {
|
|
7416
7409
|
type: "webhook",
|
|
7417
7410
|
body,
|
|
@@ -7470,7 +7463,7 @@ setup.get("/status", async (c) => {
|
|
|
7470
7463
|
let hasAccount = false;
|
|
7471
7464
|
if (hasSystem) {
|
|
7472
7465
|
try {
|
|
7473
|
-
const { listUsersByType: listUsersByType2 } = await import("./auth-
|
|
7466
|
+
const { listUsersByType: listUsersByType2 } = await import("./auth-N2F5ASAB.js");
|
|
7474
7467
|
const brains = await listUsersByType2("human");
|
|
7475
7468
|
hasAccount = brains.length > 0;
|
|
7476
7469
|
} catch (err) {
|
|
@@ -7485,32 +7478,6 @@ setup.get("/status", async (c) => {
|
|
|
7485
7478
|
spiritName: config2.setup?.spiritName ?? null
|
|
7486
7479
|
});
|
|
7487
7480
|
});
|
|
7488
|
-
setup.post("/configure", async (c) => {
|
|
7489
|
-
if (isSetupComplete()) {
|
|
7490
|
-
return c.json({ error: "Setup already complete" }, 400);
|
|
7491
|
-
}
|
|
7492
|
-
let body;
|
|
7493
|
-
try {
|
|
7494
|
-
body = await c.req.json();
|
|
7495
|
-
} catch {
|
|
7496
|
-
return c.json({ error: "Invalid JSON in request body" }, 400);
|
|
7497
|
-
}
|
|
7498
|
-
if (!body.name?.trim()) {
|
|
7499
|
-
return c.json({ error: "System name is required" }, 400);
|
|
7500
|
-
}
|
|
7501
|
-
const setupType = body.type ?? "local";
|
|
7502
|
-
if (setupType !== "local") {
|
|
7503
|
-
return c.json({ error: "Web setup only supports local install type" }, 400);
|
|
7504
|
-
}
|
|
7505
|
-
try {
|
|
7506
|
-
const config2 = writeSetupConfig(body.name.trim());
|
|
7507
|
-
config2.setupCompleted = true;
|
|
7508
|
-
writeGlobalConfig(config2);
|
|
7509
|
-
return c.json({ ok: true, config: { name: config2.name, setup: config2.setup } });
|
|
7510
|
-
} catch (err) {
|
|
7511
|
-
return c.json({ error: `Failed to write configuration: ${err.message}` }, 500);
|
|
7512
|
-
}
|
|
7513
|
-
});
|
|
7514
7481
|
setup.post("/system", async (c) => {
|
|
7515
7482
|
if (isSetupComplete()) {
|
|
7516
7483
|
return c.json({ error: "Setup already complete" }, 400);
|
|
@@ -7682,7 +7649,7 @@ setup.post("/account", async (c) => {
|
|
|
7682
7649
|
}
|
|
7683
7650
|
}
|
|
7684
7651
|
try {
|
|
7685
|
-
const { createUser: createUser2, updateUserProfile: updateUserProfile2 } = await import("./auth-
|
|
7652
|
+
const { createUser: createUser2, updateUserProfile: updateUserProfile2 } = await import("./auth-N2F5ASAB.js");
|
|
7686
7653
|
const user = await createUser2(body.username.trim(), body.password);
|
|
7687
7654
|
if (body.displayName?.trim()) {
|
|
7688
7655
|
await updateUserProfile2(user.id, { display_name: body.displayName.trim() });
|
|
@@ -7728,7 +7695,7 @@ setup.post("/models", async (c) => {
|
|
|
7728
7695
|
return c.json({ error: "Spirit model is required" }, 400);
|
|
7729
7696
|
}
|
|
7730
7697
|
try {
|
|
7731
|
-
const { setEnabledModels: setEnabledModels3, setUtilityModel: setUtilityModel2 } = await import("./ai-service-
|
|
7698
|
+
const { setEnabledModels: setEnabledModels3, setUtilityModel: setUtilityModel2 } = await import("./ai-service-3UFNG6GI.js");
|
|
7732
7699
|
setEnabledModels3(body.models);
|
|
7733
7700
|
const config2 = readGlobalConfig();
|
|
7734
7701
|
config2.spiritModel = body.spiritModel.trim();
|
|
@@ -7808,8 +7775,8 @@ setup.post("/complete", async (c) => {
|
|
|
7808
7775
|
return c.json({ error: "Setup already complete" }, 400);
|
|
7809
7776
|
}
|
|
7810
7777
|
try {
|
|
7811
|
-
const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-
|
|
7812
|
-
const { startSpiritFull } = await import("./mind-service-
|
|
7778
|
+
const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-YPG2MU6W.js");
|
|
7779
|
+
const { startSpiritFull } = await import("./mind-service-LRVOQG2T.js");
|
|
7813
7780
|
await ensureSpiritProject();
|
|
7814
7781
|
await syncSpiritTemplate();
|
|
7815
7782
|
await notifyExtensionsSpiritReady();
|
|
@@ -7817,7 +7784,7 @@ setup.post("/complete", async (c) => {
|
|
|
7817
7784
|
const config2 = readGlobalConfig();
|
|
7818
7785
|
if (config2.setup?.service && config2.setup?.type === "local") {
|
|
7819
7786
|
try {
|
|
7820
|
-
const { installUserService } = await import("./service-install-
|
|
7787
|
+
const { installUserService } = await import("./service-install-RCC26KDV.js");
|
|
7821
7788
|
const installed = await installUserService(config2.port, config2.hostname);
|
|
7822
7789
|
if (!installed) {
|
|
7823
7790
|
warnings.push("Service installation is not supported on this platform.");
|
|
@@ -7847,8 +7814,8 @@ setup.post("/complete", async (c) => {
|
|
|
7847
7814
|
}
|
|
7848
7815
|
let spiritConversationId;
|
|
7849
7816
|
try {
|
|
7850
|
-
const { getOrCreateMindUser: getOrCreateMindUser2, listUsersByType: listUsersByType2 } = await import("./auth-
|
|
7851
|
-
const { createConversation: createConversation2, findDMConversation: findDMConversation2 } = await import("./conversations-
|
|
7817
|
+
const { getOrCreateMindUser: getOrCreateMindUser2, listUsersByType: listUsersByType2 } = await import("./auth-N2F5ASAB.js");
|
|
7818
|
+
const { createConversation: createConversation2, findDMConversation: findDMConversation2 } = await import("./conversations-ERMMPMOS.js");
|
|
7852
7819
|
const spiritUser = await getOrCreateMindUser2(spiritName);
|
|
7853
7820
|
const brains = await listUsersByType2("human");
|
|
7854
7821
|
const admin2 = brains.find((u) => u.role === "admin");
|
|
@@ -7870,8 +7837,8 @@ setup.post("/complete", async (c) => {
|
|
|
7870
7837
|
logger_default.info("setup complete state", { spiritConversationId, spiritStarted });
|
|
7871
7838
|
if (spiritConversationId && spiritStarted) {
|
|
7872
7839
|
try {
|
|
7873
|
-
const { deliverMessage: deliverMessage2 } = await import("./message-delivery-
|
|
7874
|
-
const { listUsersByType: listUsers2 } = await import("./auth-
|
|
7840
|
+
const { deliverMessage: deliverMessage2 } = await import("./message-delivery-HBTMGWFU.js");
|
|
7841
|
+
const { listUsersByType: listUsers2 } = await import("./auth-N2F5ASAB.js");
|
|
7875
7842
|
const admins = await listUsers2("human");
|
|
7876
7843
|
const admin2 = admins.find((u) => u.role === "admin");
|
|
7877
7844
|
if (admin2) {
|
|
@@ -9120,8 +9087,8 @@ var app22 = new Hono26().get("/:name/variants", async (c) => {
|
|
|
9120
9087
|
await chownMindDir(projectRoot, mindName);
|
|
9121
9088
|
if (variantName.endsWith("-upgrade") || variantName === "upgrade") {
|
|
9122
9089
|
try {
|
|
9123
|
-
const { computeTemplateHash: computeTemplateHash2 } = await import("./template-hash-
|
|
9124
|
-
const { setMindTemplateHash: setMindTemplateHash2 } = await import("./registry-
|
|
9090
|
+
const { computeTemplateHash: computeTemplateHash2 } = await import("./template-hash-RJRMF6DT.js");
|
|
9091
|
+
const { setMindTemplateHash: setMindTemplateHash2 } = await import("./registry-BTQXLDW6.js");
|
|
9125
9092
|
const tmpl = parentEntry.template ?? "claude";
|
|
9126
9093
|
await setMindTemplateHash2(mindName, computeTemplateHash2(tmpl));
|
|
9127
9094
|
} catch (err) {
|
|
@@ -9817,6 +9784,7 @@ app26.get("/api/health", (c) => {
|
|
|
9817
9784
|
...cached?.updateAvailable ? { updateAvailable: true, latest: cached.latest } : {}
|
|
9818
9785
|
});
|
|
9819
9786
|
});
|
|
9787
|
+
app26.use("/api/ext/*", normalizeTrailingSlash(app26));
|
|
9820
9788
|
app26.use("/api/activity/*", authMiddleware);
|
|
9821
9789
|
app26.use("/api/minds/*", authMiddleware);
|
|
9822
9790
|
app26.use("/api/conversations/*", authMiddleware);
|
|
@@ -9989,85 +9957,36 @@ async function startDaemon(opts) {
|
|
|
9989
9957
|
const DAEMON_TOKEN_PATH = resolve18(systemDir, "daemon-token");
|
|
9990
9958
|
mkdirSync10(home, { recursive: true });
|
|
9991
9959
|
ensureSystemDir();
|
|
9992
|
-
|
|
9993
|
-
migrateConfigSecrets();
|
|
9994
|
-
migrateSetupCompleted();
|
|
9995
|
-
const { migrateAiModelQualification } = await import("./ai-service-YW5SWCSB.js");
|
|
9996
|
-
migrateAiModelQualification();
|
|
9997
|
-
await (await import("./db-BONH4SUG.js")).getDb();
|
|
9960
|
+
await (await import("./db-BQFYIONA.js")).getDb();
|
|
9998
9961
|
try {
|
|
9999
9962
|
const { eq: eq9, and: and7 } = await import("drizzle-orm");
|
|
10000
9963
|
const { users: users2 } = await import("./schema-ZZQVM4GR.js");
|
|
10001
|
-
const db = await (await import("./db-
|
|
9964
|
+
const db = await (await import("./db-BQFYIONA.js")).getDb();
|
|
10002
9965
|
await db.update(users2).set({ role: "system" }).where(and7(eq9(users2.user_type, "system"), eq9(users2.role, "user")));
|
|
10003
9966
|
} catch (err) {
|
|
10004
9967
|
logger_default.warn("failed to migrate system user role", logger_default.errorData(err));
|
|
10005
9968
|
}
|
|
10006
9969
|
try {
|
|
10007
|
-
const { migrateAvatarSizes } = await import("./avatar-image-
|
|
9970
|
+
const { migrateAvatarSizes } = await import("./avatar-image-QEKKUFDF.js");
|
|
10008
9971
|
await migrateAvatarSizes();
|
|
10009
9972
|
} catch (err) {
|
|
10010
9973
|
logger_default.warn("avatar size migration failed", logger_default.errorData(err));
|
|
10011
9974
|
}
|
|
10012
|
-
|
|
10013
|
-
const { migrateThreadConfigs } = await import("./migrate-thread-config-EQSEP2XG.js");
|
|
10014
|
-
await migrateThreadConfigs();
|
|
10015
|
-
} catch (err) {
|
|
10016
|
-
logger_default.warn("session\u2192thread config migration failed", logger_default.errorData(err));
|
|
10017
|
-
}
|
|
10018
|
-
try {
|
|
10019
|
-
const { migrateNamePlaceholders } = await import("./migrate-name-placeholder-C7NCNLWF.js");
|
|
10020
|
-
await migrateNamePlaceholders();
|
|
10021
|
-
} catch (err) {
|
|
10022
|
-
logger_default.warn("{{name}} placeholder migration failed", logger_default.errorData(err));
|
|
10023
|
-
}
|
|
10024
|
-
const { initSandbox } = await import("./sandbox-NNWCTHRI.js");
|
|
9975
|
+
const { initSandbox } = await import("./sandbox-OUFAGN45.js");
|
|
10025
9976
|
await initSandbox();
|
|
10026
|
-
try {
|
|
10027
|
-
await syncBuiltinSkills();
|
|
10028
|
-
} catch (err) {
|
|
10029
|
-
logger_default.error("failed to sync built-in skills", logger_default.errorData(err));
|
|
10030
|
-
}
|
|
10031
9977
|
try {
|
|
10032
9978
|
await loadAllExtensions(app_default, authMiddleware);
|
|
10033
9979
|
notifyExtensionsDaemonStart();
|
|
10034
9980
|
} catch (err) {
|
|
10035
9981
|
logger_default.error("failed to load extensions", logger_default.errorData(err));
|
|
10036
9982
|
}
|
|
10037
|
-
await initDefaultSkills();
|
|
10038
|
-
if (isAutoUpdateSkillsEnabled()) {
|
|
10039
|
-
try {
|
|
10040
|
-
await autoUpdateMindSkills();
|
|
10041
|
-
} catch (err) {
|
|
10042
|
-
logger_default.error("failed to auto-update mind skills", logger_default.errorData(err));
|
|
10043
|
-
}
|
|
10044
|
-
}
|
|
10045
|
-
try {
|
|
10046
|
-
await ensureSystemChannel();
|
|
10047
|
-
} catch (err) {
|
|
10048
|
-
logger_default.warn("failed to ensure #system channel", logger_default.errorData(err));
|
|
10049
|
-
}
|
|
10050
|
-
try {
|
|
10051
|
-
await backfillSystemChannelMembers();
|
|
10052
|
-
} catch (err) {
|
|
10053
|
-
logger_default.warn("failed to backfill minds into #system", logger_default.errorData(err));
|
|
10054
|
-
}
|
|
10055
|
-
try {
|
|
10056
|
-
const { getOrCreateSystemUser: getOrCreateSystemUser2 } = await import("./auth-KRDSM55Q.js");
|
|
10057
|
-
await getOrCreateSystemUser2();
|
|
10058
|
-
} catch (err) {
|
|
10059
|
-
logger_default.warn(
|
|
10060
|
-
"failed to ensure system user \u2014 system chat features will be unavailable",
|
|
10061
|
-
logger_default.errorData(err)
|
|
10062
|
-
);
|
|
10063
|
-
}
|
|
10064
9983
|
const token = process.env.VOLUTE_DAEMON_TOKEN || randomBytes3(32).toString("hex");
|
|
10065
|
-
const { readGlobalConfig: readGlobalConfig2 } = await import("./setup-
|
|
9984
|
+
const { readGlobalConfig: readGlobalConfig2 } = await import("./setup-R7Q4HFJP.js");
|
|
10066
9985
|
const globalCfg = readGlobalConfig2();
|
|
10067
9986
|
let tls;
|
|
10068
9987
|
if (opts.tailscale || globalCfg.tailscale) {
|
|
10069
9988
|
try {
|
|
10070
|
-
const { getTailscaleTls } = await import("./tailscale-
|
|
9989
|
+
const { getTailscaleTls } = await import("./tailscale-4XY7B5A2.js");
|
|
10071
9990
|
const tlsConfig = await getTailscaleTls();
|
|
10072
9991
|
tls = { key: tlsConfig.key, cert: tlsConfig.cert };
|
|
10073
9992
|
logger_default.info("Tailscale HTTPS enabled", { hostname: tlsConfig.hostname });
|
|
@@ -10099,6 +10018,38 @@ async function startDaemon(opts) {
|
|
|
10099
10018
|
if (internalPort) daemonConfig.internalPort = internalPort;
|
|
10100
10019
|
if (tls) daemonConfig.tls = true;
|
|
10101
10020
|
writeDaemonConfig(systemDir, daemonConfig, token);
|
|
10021
|
+
try {
|
|
10022
|
+
await syncBuiltinSkills();
|
|
10023
|
+
} catch (err) {
|
|
10024
|
+
logger_default.error("failed to sync built-in skills", logger_default.errorData(err));
|
|
10025
|
+
}
|
|
10026
|
+
await initDefaultSkills();
|
|
10027
|
+
if (isAutoUpdateSkillsEnabled()) {
|
|
10028
|
+
try {
|
|
10029
|
+
await autoUpdateMindSkills();
|
|
10030
|
+
} catch (err) {
|
|
10031
|
+
logger_default.error("failed to auto-update mind skills", logger_default.errorData(err));
|
|
10032
|
+
}
|
|
10033
|
+
}
|
|
10034
|
+
try {
|
|
10035
|
+
await ensureSystemChannel();
|
|
10036
|
+
} catch (err) {
|
|
10037
|
+
logger_default.warn("failed to ensure #system channel", logger_default.errorData(err));
|
|
10038
|
+
}
|
|
10039
|
+
try {
|
|
10040
|
+
await backfillSystemChannelMembers();
|
|
10041
|
+
} catch (err) {
|
|
10042
|
+
logger_default.warn("failed to backfill minds into #system", logger_default.errorData(err));
|
|
10043
|
+
}
|
|
10044
|
+
try {
|
|
10045
|
+
const { getOrCreateSystemUser: getOrCreateSystemUser2 } = await import("./auth-N2F5ASAB.js");
|
|
10046
|
+
await getOrCreateSystemUser2();
|
|
10047
|
+
} catch (err) {
|
|
10048
|
+
logger_default.warn(
|
|
10049
|
+
"failed to ensure system user \u2014 system chat features will be unavailable",
|
|
10050
|
+
logger_default.errorData(err)
|
|
10051
|
+
);
|
|
10052
|
+
}
|
|
10102
10053
|
const delivery = initDeliveryManager();
|
|
10103
10054
|
const manager = initMindManager();
|
|
10104
10055
|
manager.loadCrashAttempts();
|
|
@@ -10121,7 +10072,7 @@ async function startDaemon(opts) {
|
|
|
10121
10072
|
const orphanedTurns = await completeOrphanedTurns();
|
|
10122
10073
|
summarizeOrphanedTurns(orphanedTurns);
|
|
10123
10074
|
try {
|
|
10124
|
-
const { reconcileVariants } = await import("./variant-cleanup-
|
|
10075
|
+
const { reconcileVariants } = await import("./variant-cleanup-K7RFMSH7.js");
|
|
10125
10076
|
await reconcileVariants();
|
|
10126
10077
|
} catch (err) {
|
|
10127
10078
|
logger_default.error("failed to reconcile variants", logger_default.errorData(err));
|
|
@@ -10155,15 +10106,15 @@ async function startDaemon(opts) {
|
|
|
10155
10106
|
await Promise.all(workers);
|
|
10156
10107
|
}
|
|
10157
10108
|
try {
|
|
10158
|
-
const { isSetupComplete: isSetupComplete2, getSpiritName: getSpiritName2 } = await import("./setup-
|
|
10109
|
+
const { isSetupComplete: isSetupComplete2, getSpiritName: getSpiritName2 } = await import("./setup-R7Q4HFJP.js");
|
|
10159
10110
|
if (isSetupComplete2()) {
|
|
10160
|
-
const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-
|
|
10161
|
-
const { startSpiritFull } = await import("./mind-service-
|
|
10111
|
+
const { ensureSpiritProject, syncSpiritTemplate } = await import("./spirit-YPG2MU6W.js");
|
|
10112
|
+
const { startSpiritFull } = await import("./mind-service-LRVOQG2T.js");
|
|
10162
10113
|
await ensureSpiritProject();
|
|
10163
10114
|
const spiritName = getSpiritName2();
|
|
10164
10115
|
const spiritEntry = await findMind(spiritName);
|
|
10165
10116
|
if (spiritEntry?.dir) {
|
|
10166
|
-
const { registerMindDir } = await import("./delivery-router-
|
|
10117
|
+
const { registerMindDir } = await import("./delivery-router-U6Q22ZYU.js");
|
|
10167
10118
|
registerMindDir(spiritName, spiritEntry.dir);
|
|
10168
10119
|
}
|
|
10169
10120
|
await syncSpiritTemplate();
|
|
@@ -10178,7 +10129,7 @@ async function startDaemon(opts) {
|
|
|
10178
10129
|
bridgeManager.startBridges(daemonPort).catch((err) => {
|
|
10179
10130
|
logger_default.warn("failed to start bridges", logger_default.errorData(err));
|
|
10180
10131
|
});
|
|
10181
|
-
import("./cloud-sync-
|
|
10132
|
+
import("./cloud-sync-RTUXMYU2.js").then(
|
|
10182
10133
|
({ consumeQueuedMessages }) => consumeQueuedMessages().catch((err) => {
|
|
10183
10134
|
logger_default.warn("failed to consume queued cloud messages", logger_default.errorData(err));
|
|
10184
10135
|
})
|
|
@@ -10186,11 +10137,11 @@ async function startDaemon(opts) {
|
|
|
10186
10137
|
logger_default.warn("failed to load cloud-sync module", logger_default.errorData(err));
|
|
10187
10138
|
});
|
|
10188
10139
|
try {
|
|
10189
|
-
const { backfillTemplateHashes, notifyVersionUpdate, warnStaleTemplates } = await import("./version-notify-
|
|
10140
|
+
const { backfillTemplateHashes, notifyVersionUpdate, warnStaleTemplates } = await import("./version-notify-QIDHR6WO.js");
|
|
10190
10141
|
notifyVersionUpdate().catch((err) => {
|
|
10191
10142
|
logger_default.warn("failed to send version update notifications", logger_default.errorData(err));
|
|
10192
10143
|
}).then(() => backfillTemplateHashes()).then(() => warnStaleTemplates()).then(async () => {
|
|
10193
|
-
const { runAutoUpgrades } = await import("./auto-upgrade-
|
|
10144
|
+
const { runAutoUpgrades } = await import("./auto-upgrade-O4MQPYQF.js");
|
|
10194
10145
|
await runAutoUpgrades();
|
|
10195
10146
|
}).catch((err) => {
|
|
10196
10147
|
logger_default.warn("template staleness/auto-upgrade pass failed", logger_default.errorData(err));
|