volute 0.53.0 → 0.54.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/auto-upgrade-HEVZKPTF.js +46 -0
- package/dist/{backup-WWXVIMYQ.js → backup-QRNX6RK7.js} +11 -11
- package/dist/channels-CKCY64TD.js +203 -0
- package/dist/{chat-WK2BLM7B.js → chat-ZUGNL5GS.js} +9 -9
- package/dist/{chunk-UTKUO2KY.js → chunk-3LHUXY3E.js} +2 -2
- package/dist/{chunk-PIZDPY4G.js → chunk-444RR3YF.js} +4 -4
- package/dist/{chunk-VDZ4I4ZP.js → chunk-56IT2ZXF.js} +3 -3
- package/dist/{chunk-OXWUEU5V.js → chunk-5U5GLZSD.js} +2 -2
- package/dist/{chunk-LN7XJ56R.js → chunk-7XKPG66D.js} +9 -9
- package/dist/{chunk-R772ET2M.js → chunk-AAPNU7GA.js} +4 -0
- package/dist/{chunk-7ARONCZW.js → chunk-ATZF2RNJ.js} +3 -3
- package/dist/{chunk-6NLW72HP.js → chunk-CKPAVQNK.js} +1 -1
- package/dist/{chunk-RMADJFA7.js → chunk-CLCHOXLR.js} +1 -1
- package/dist/{chunk-IQ7VNWH6.js → chunk-HKGYZVWN.js} +1 -1
- package/dist/{chunk-HASADR3E.js → chunk-LGXVGIWN.js} +66 -25
- package/dist/{chunk-P2TBUKLW.js → chunk-LKUGUQUW.js} +3 -3
- package/dist/{chunk-AP2KQMMW.js → chunk-OAYY3WF3.js} +11 -3
- package/dist/{chunk-UO4MZQNO.js → chunk-OGPVJ53N.js} +14 -6
- package/dist/{chunk-M77B73VV.js → chunk-OIOW3FPT.js} +7 -2
- package/dist/chunk-OT5SXF7L.js +904 -0
- package/dist/{chunk-EDR47UE2.js → chunk-OYF25B62.js} +1 -1
- package/dist/{chunk-TAWRJ24T.js → chunk-PPSN2MLC.js} +2 -2
- package/dist/{chunk-5DBGQBQR.js → chunk-RGHF3OK5.js} +21 -10
- package/dist/{chunk-RQRO6PC7.js → chunk-VDUCLVZI.js} +305 -31
- package/dist/{chunk-23UJGVYP.js → chunk-WHL6PKYP.js} +10 -10
- package/dist/{chunk-HTB7KDRU.js → chunk-WZZCA23D.js} +5 -4
- package/dist/{chunk-UDZLPR34.js → chunk-YSRYCS3N.js} +13 -8
- package/dist/{chunk-5N32EN4O.js → chunk-Z4Q6TQWL.js} +1 -1
- package/dist/{chunk-BDHKCLWK.js → chunk-ZNHL5KQJ.js} +1 -1
- package/dist/cli.js +19 -19
- package/dist/{clock-SH4NQC2F.js → clock-X7V3C7NL.js} +3 -3
- package/dist/{cloud-sync-MJVJ33LD.js → cloud-sync-52YNJRMR.js} +11 -11
- package/dist/{daemon-restart-BIGU4OKS.js → daemon-restart-QWHN5VMU.js} +4 -4
- package/dist/daemon.js +330 -746
- package/dist/{db-IPXRJUI7.js → db-I4EH5SLF.js} +3 -1
- package/dist/{delivery-manager-FDHCZ7PU.js → delivery-manager-7R2YIQ2W.js} +11 -7
- package/dist/{delivery-notices-65TB3CBX.js → delivery-notices-RZQ6GONP.js} +3 -3
- package/dist/{delivery-router-RHANNTAC.js → delivery-router-QS4NLJR6.js} +3 -1
- package/dist/{down-QSNEMTTX.js → down-UN2EDX2Y.js} +3 -3
- package/dist/{echo-text-KU6G4Z7V.js → echo-text-73CYQRL7.js} +14 -14
- package/dist/{exec-ABD3DYA2.js → exec-Z34TTUO3.js} +1 -1
- package/dist/{extensions-VACUKFA5.js → extensions-QT65JGV6.js} +21 -11
- package/dist/{isolation-GVV2IBAU.js → isolation-UQPDO34R.js} +1 -1
- package/dist/{message-delivery-TUXM3AAE.js → message-delivery-TRKT4T2P.js} +11 -11
- package/dist/migrate-name-placeholder-C7NCNLWF.js +37 -0
- package/dist/{mind-IX5AWUST.js → mind-CT6ANXK4.js} +12 -12
- package/dist/{mind-contacts-BKUOUJPV.js → mind-contacts-PEXCDRXA.js} +8 -8
- package/dist/{mind-list-KNU34SUD.js → mind-list-7KBLPLES.js} +2 -2
- package/dist/{mind-service-WHFBUKZE.js → mind-service-7EFIJ3ZA.js} +11 -11
- package/dist/{mind-sleep-D3DEYAWG.js → mind-sleep-24HV4RCA.js} +5 -5
- package/dist/{mind-status-BPTLQ5Z6.js → mind-status-4YW4PHMO.js} +6 -3
- package/dist/{package-BN5KMU54.js → package-F6S5NHY2.js} +4 -4
- package/dist/{prompts-HNKGCAEY.js → prompts-JECJIFPQ.js} +1 -1
- package/dist/{scheduler-5X5UIQOQ.js → scheduler-73Q4MQ7Y.js} +6 -6
- package/dist/{seed-LHZ33UB4.js → seed-DRKAP3XV.js} +1 -1
- package/dist/{seed-cmd-U4RVJ3UA.js → seed-cmd-6IMTO3LG.js} +2 -2
- package/dist/{seed-create-OQU4KNCB.js → seed-create-VNLDYRFK.js} +1 -1
- package/dist/{seed-readiness-WJYYRRCK.js → seed-readiness-H5TTPAQH.js} +2 -2
- package/dist/{seed-sprout-SFUYH2RG.js → seed-sprout-PPGYGK4G.js} +8 -8
- package/dist/{send-FWZAMDBN.js → send-UXUQKO4N.js} +9 -9
- package/dist/{service-XQPMZAGI.js → service-T4P5W6RS.js} +2 -2
- package/dist/{service-install-2EWD7KXD.js → service-install-R4SNYUVO.js} +3 -3
- package/dist/{setup-RVSGCIF3.js → setup-YUAQMDVZ.js} +4 -4
- package/dist/skills/dreaming/SKILL.md +2 -2
- package/dist/skills/dreaming/references/INSTALL.md +1 -1
- package/dist/skills/tending/SKILL.md +2 -0
- package/dist/skills/volute-mind/references/integrations.md +3 -2
- package/dist/skills/volute-mind/references/routing.md +18 -5
- package/dist/{skills-QRPU6BWY.js → skills-GMQ5UIIW.js} +2 -2
- package/dist/{sleep-manager-NWUCRBZB.js → sleep-manager-KHI65FEX.js} +11 -11
- package/dist/{spirit-I5ECLGRI.js → spirit-Q5VGFWUI.js} +5 -3
- package/dist/{spirit-availability-NIUUYKU2.js → spirit-availability-G5FMWKRH.js} +12 -12
- package/dist/{sprout-A2PMEF7Z.js → sprout-PMTRL7QN.js} +1 -1
- package/dist/{src-LCSOQY6Z.js → src-3FIW7DLH.js} +241 -87
- package/dist/src-H3UCOP6B.js +516 -0
- package/dist/{src-HGNE2XG4.js → src-LTTQVN2Z.js} +1 -1
- package/dist/{status-EYG4A3OK.js → status-LCKTTIWS.js} +5 -5
- package/dist/{system-events-YTOU66QI.js → system-events-Q7IVZ5T4.js} +1 -1
- package/dist/{systems-2DIJY4RF.js → systems-HL7SGSW7.js} +6 -6
- package/dist/{turn-tracker-NNHS6MAR.js → turn-tracker-HZDPMSCC.js} +2 -2
- package/dist/{up-UGBHH743.js → up-XZDSJVMU.js} +3 -3
- package/dist/{update-CIWI2JYA.js → update-ILCPVNDD.js} +2 -2
- package/dist/{upgrade-LIE46UBB.js → upgrade-XY2J7NWZ.js} +9 -1
- package/dist/{variant-cleanup-CZDLIY3F.js → variant-cleanup-QHGGY7ND.js} +6 -6
- package/dist/{version-notify-SJVAQLZI.js → version-notify-VNVFX6UP.js} +19 -4
- package/dist/web-assets/assets/{index-b7G7ZsVk.js → index-CwtxGwe_.js} +16 -16
- package/dist/web-assets/assets/index-DhM1yYRN.css +1 -0
- package/dist/web-assets/index.html +2 -2
- package/package.json +4 -4
- package/packages/extensions/intentions/dist/ui/assets/index-3FneLCKR.css +1 -0
- package/packages/extensions/intentions/dist/ui/assets/index-CQz4aceM.js +67 -0
- package/packages/extensions/{plan → intentions}/dist/ui/index.html +3 -3
- package/packages/extensions/intentions/skills/intention-review/SKILL.md +38 -0
- package/packages/extensions/intentions/skills/intentions/SKILL.md +49 -0
- package/packages/extensions/intentions/skills/intentions/scripts/intentions-hook.sh +45 -0
- package/packages/extensions/pages/skills/commons-gardening/SKILL.md +50 -0
- package/packages/extensions/pages/skills/pages/SKILL.md +18 -13
- package/templates/_base/.init/.config/prompts.json +2 -2
- package/templates/{pi → _base}/.init/.config/routes.json +1 -0
- package/templates/_base/.init/memory/dreams/.gitkeep +0 -0
- package/templates/_base/home/.config/routes.json +1 -1
- package/templates/_base/home/VOLUTE.md +1 -1
- package/templates/_base/src/lib/context-breakdown.ts +11 -3
- package/templates/_base/src/lib/routing.ts +2 -2
- package/templates/_base/src/lib/startup.ts +4 -2
- package/templates/claude/.init/CLAUDE.md +4 -0
- package/templates/claude/src/agent.ts +28 -12
- package/templates/claude/src/lib/message-channel.ts +43 -15
- package/templates/claude/src/lib/recover.ts +69 -0
- package/templates/claude/src/lib/stream-consumer.ts +23 -5
- package/templates/claude/volute-template.json +1 -1
- package/templates/codex/.init/AGENTS.md +4 -0
- package/templates/codex/volute-template.json +1 -1
- package/templates/pi/.init/MINDS.md +4 -0
- package/templates/pi/src/lib/mechanics-doc.ts +30 -0
- package/templates/pi/src/server.ts +3 -1
- package/templates/pi/volute-template.json +1 -1
- package/dist/channels-LW5ZLMSQ.js +0 -90
- package/dist/skills/plan-coordinator/SKILL.md +0 -60
- package/dist/src-UDMJZ6MH.js +0 -426
- package/dist/web-assets/assets/index-BHSU9r-4.css +0 -1
- package/packages/extensions/plan/dist/ui/assets/index-B8s8wxyt.js +0 -67
- package/packages/extensions/plan/dist/ui/assets/index-jIkrt-vI.css +0 -1
- package/packages/extensions/plan/skills/plan/SKILL.md +0 -43
- package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +0 -37
- package/templates/claude/.init/.config/routes.json +0 -11
- package/templates/codex/.init/.config/routes.json +0 -11
- package/dist/{accept-I4GVGWA3.js → accept-RSDIVJL6.js} +3 -3
- package/dist/{bridge-KU2IKSH3.js → bridge-YK7NTRU5.js} +3 -3
- package/dist/{create-C3XZACTV.js → create-M727VUDF.js} +3 -3
- package/dist/{env-BJGM6FBA.js → env-7AZFBPWX.js} +7 -7
- package/dist/{extension-B2W52WZY.js → extension-MRYJWSMV.js} +3 -3
- package/dist/{files-CHPNEQXN.js → files-PCKBQHAY.js} +3 -3
- package/dist/{list-R2GDWOEE.js → list-UQGIW7OF.js} +3 -3
- package/dist/{login-EZ4RRDQX.js → login-4NUS72Z5.js} +3 -3
- package/dist/{login-JDOAK465.js → login-57MMYILL.js} +4 -4
- package/dist/{logout-MWSIUOQU.js → logout-BYV433X6.js} +3 -3
- package/dist/{logout-K6ZGAJY5.js → logout-YFZAJRPY.js} +3 -3
- package/dist/{mind-history-RVF6KJ7K.js → mind-history-RZMMCHMX.js} +9 -9
- package/dist/{mind-wake-DCDFFQKX.js → mind-wake-LDGPRA42.js} +3 -3
- package/dist/{read-J5RM674N.js → read-RJ5NAW5J.js} +3 -3
- package/dist/{register-53LBGSDC.js → register-WNCSOTAU.js} +3 -3
- package/dist/{reject-K2A4UK2Y.js → reject-4NFLXKRN.js} +3 -3
- package/dist/{restart-R2WFNF5K.js → restart-B4GNMVF2.js} +7 -7
- package/dist/{skill-DXLLSUHB.js → skill-QYTBUDNQ.js} +7 -7
- package/dist/{start-XDOUAWN3.js → start-BDHJVOVX.js} +6 -6
- package/dist/{stop-O62RTEMD.js → stop-45QYSGYS.js} +7 -7
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
autoUpgradeOne,
|
|
4
|
+
getUpgradeBlocked,
|
|
5
|
+
pruneBlocked,
|
|
6
|
+
runAutoUpgrades,
|
|
7
|
+
selectEligible
|
|
8
|
+
} from "./chunk-OT5SXF7L.js";
|
|
9
|
+
import "./chunk-CV6BNGFK.js";
|
|
10
|
+
import "./chunk-HTRSSOHY.js";
|
|
11
|
+
import "./chunk-OGPVJ53N.js";
|
|
12
|
+
import "./chunk-LGXVGIWN.js";
|
|
13
|
+
import "./chunk-RGHF3OK5.js";
|
|
14
|
+
import "./chunk-X67BDDZR.js";
|
|
15
|
+
import "./chunk-444RR3YF.js";
|
|
16
|
+
import "./chunk-VDUCLVZI.js";
|
|
17
|
+
import "./chunk-WHL6PKYP.js";
|
|
18
|
+
import "./chunk-YSRYCS3N.js";
|
|
19
|
+
import "./chunk-56IT2ZXF.js";
|
|
20
|
+
import "./chunk-PPSN2MLC.js";
|
|
21
|
+
import "./chunk-7LT3YZUR.js";
|
|
22
|
+
import "./chunk-HKGYZVWN.js";
|
|
23
|
+
import "./chunk-LNNI3MS4.js";
|
|
24
|
+
import "./chunk-OAYY3WF3.js";
|
|
25
|
+
import "./chunk-5Y54AE3L.js";
|
|
26
|
+
import "./chunk-TPX6E6PL.js";
|
|
27
|
+
import "./chunk-UFTDRTCP.js";
|
|
28
|
+
import "./chunk-U54PJPTB.js";
|
|
29
|
+
import "./chunk-ICXY54ZC.js";
|
|
30
|
+
import "./chunk-DW4TRDOZ.js";
|
|
31
|
+
import "./chunk-WCFSBH33.js";
|
|
32
|
+
import "./chunk-OIOW3FPT.js";
|
|
33
|
+
import "./chunk-GLM7TVWP.js";
|
|
34
|
+
import "./chunk-EGV6R6UF.js";
|
|
35
|
+
import "./chunk-QUSMYGNQ.js";
|
|
36
|
+
import "./chunk-LGNUFVMR.js";
|
|
37
|
+
import "./chunk-H6X6CKDN.js";
|
|
38
|
+
import "./chunk-2RNMBXD2.js";
|
|
39
|
+
import "./chunk-K3NQKI34.js";
|
|
40
|
+
export {
|
|
41
|
+
autoUpgradeOne,
|
|
42
|
+
getUpgradeBlocked,
|
|
43
|
+
pruneBlocked,
|
|
44
|
+
runAutoUpgrades,
|
|
45
|
+
selectEligible
|
|
46
|
+
};
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
stopDaemon
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Z4Q6TQWL.js";
|
|
5
|
+
import {
|
|
6
|
+
getClient,
|
|
7
|
+
urlOf
|
|
8
|
+
} from "./chunk-LOPXTW6H.js";
|
|
9
|
+
import {
|
|
10
|
+
daemonFetch
|
|
11
|
+
} from "./chunk-M74I3HHF.js";
|
|
5
12
|
import {
|
|
6
13
|
promptLine,
|
|
7
14
|
promptPassword
|
|
@@ -11,30 +18,23 @@ import {
|
|
|
11
18
|
subcommands
|
|
12
19
|
} from "./chunk-TXSA4Q3V.js";
|
|
13
20
|
import "./chunk-O7IGP7ZW.js";
|
|
14
|
-
import {
|
|
15
|
-
daemonFetch
|
|
16
|
-
} from "./chunk-M74I3HHF.js";
|
|
17
|
-
import {
|
|
18
|
-
getClient,
|
|
19
|
-
urlOf
|
|
20
|
-
} from "./chunk-LOPXTW6H.js";
|
|
21
21
|
import "./chunk-FNJCBRD3.js";
|
|
22
22
|
import {
|
|
23
23
|
RESTIC_INSTALL_HINT,
|
|
24
24
|
resticVersion,
|
|
25
25
|
restoreStagedDb
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-OYF25B62.js";
|
|
27
27
|
import {
|
|
28
28
|
getServiceMode,
|
|
29
29
|
modeLabel,
|
|
30
30
|
stopService
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-CKPAVQNK.js";
|
|
32
32
|
import {
|
|
33
33
|
chownMindDir,
|
|
34
34
|
exec,
|
|
35
35
|
execInherit,
|
|
36
36
|
wrapForIsolation
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-OIOW3FPT.js";
|
|
38
38
|
import "./chunk-QUSMYGNQ.js";
|
|
39
39
|
import {
|
|
40
40
|
_resetConfigCache,
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
resolveMindName
|
|
4
|
+
} from "./chunk-BTY4WNFE.js";
|
|
5
|
+
import {
|
|
6
|
+
daemonFetch
|
|
7
|
+
} from "./chunk-M74I3HHF.js";
|
|
8
|
+
import {
|
|
9
|
+
command,
|
|
10
|
+
subcommands
|
|
11
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
12
|
+
import "./chunk-O7IGP7ZW.js";
|
|
13
|
+
import "./chunk-FNJCBRD3.js";
|
|
14
|
+
import {
|
|
15
|
+
formatSuggestions
|
|
16
|
+
} from "./chunk-VDUCLVZI.js";
|
|
17
|
+
import "./chunk-WHL6PKYP.js";
|
|
18
|
+
import "./chunk-YSRYCS3N.js";
|
|
19
|
+
import "./chunk-56IT2ZXF.js";
|
|
20
|
+
import "./chunk-7LT3YZUR.js";
|
|
21
|
+
import "./chunk-HKGYZVWN.js";
|
|
22
|
+
import "./chunk-LNNI3MS4.js";
|
|
23
|
+
import "./chunk-OAYY3WF3.js";
|
|
24
|
+
import "./chunk-5Y54AE3L.js";
|
|
25
|
+
import "./chunk-TPX6E6PL.js";
|
|
26
|
+
import "./chunk-UFTDRTCP.js";
|
|
27
|
+
import "./chunk-U54PJPTB.js";
|
|
28
|
+
import "./chunk-ICXY54ZC.js";
|
|
29
|
+
import "./chunk-DW4TRDOZ.js";
|
|
30
|
+
import "./chunk-WCFSBH33.js";
|
|
31
|
+
import "./chunk-OIOW3FPT.js";
|
|
32
|
+
import "./chunk-GLM7TVWP.js";
|
|
33
|
+
import "./chunk-EGV6R6UF.js";
|
|
34
|
+
import "./chunk-QUSMYGNQ.js";
|
|
35
|
+
import "./chunk-LGNUFVMR.js";
|
|
36
|
+
import "./chunk-H6X6CKDN.js";
|
|
37
|
+
import "./chunk-2RNMBXD2.js";
|
|
38
|
+
import "./chunk-K3NQKI34.js";
|
|
39
|
+
|
|
40
|
+
// packages/cli/src/commands/chat/channels.ts
|
|
41
|
+
var channelsListCmd = command({
|
|
42
|
+
name: "volute chat channels",
|
|
43
|
+
description: "List unrouted (gated) channels holding messages",
|
|
44
|
+
args: [],
|
|
45
|
+
flags: {
|
|
46
|
+
mind: { type: "string", description: "Mind name" }
|
|
47
|
+
},
|
|
48
|
+
run: async ({ flags }) => {
|
|
49
|
+
const mind = resolveMindName(flags);
|
|
50
|
+
const res = await daemonFetch(`/api/minds/${encodeURIComponent(mind)}/delivery/pending`);
|
|
51
|
+
if (!res.ok) {
|
|
52
|
+
const data = await res.json().catch(() => ({}));
|
|
53
|
+
console.error(data.error ?? `Failed to list gated channels: ${res.status}`);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
const pending = await res.json();
|
|
57
|
+
if (pending.length === 0) {
|
|
58
|
+
console.log("No unrouted channels holding messages.");
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const chW = Math.max(7, ...pending.map((p) => (p.channel ?? "unknown").length));
|
|
62
|
+
console.log(`${"CHANNEL".padEnd(chW)} HELD SINCE`);
|
|
63
|
+
for (const p of pending) {
|
|
64
|
+
console.log(
|
|
65
|
+
`${(p.channel ?? "unknown").padEnd(chW)} ${String(p.count).padStart(4)} ${p.firstSeen}`
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
console.log(
|
|
69
|
+
`
|
|
70
|
+
Quote the channel \u2014 an unquoted #name is a comment to the shell.
|
|
71
|
+
volute chat channels peek "<channel>" read what's held
|
|
72
|
+
volute chat channels accept "<channel>" start hearing it
|
|
73
|
+
volute chat channels decline "<channel>" opt out`
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
var channelsDeclineCmd = command({
|
|
78
|
+
name: "volute chat channels decline",
|
|
79
|
+
description: "Decline an unrouted channel: stop invites and archive its held backlog",
|
|
80
|
+
args: [{ name: "channel", required: true, description: 'Channel to decline (e.g. "#bardo")' }],
|
|
81
|
+
flags: {
|
|
82
|
+
mind: { type: "string", description: "Mind name" }
|
|
83
|
+
},
|
|
84
|
+
run: async ({ args, flags }) => {
|
|
85
|
+
const mind = resolveMindName(flags);
|
|
86
|
+
const channel = args.channel;
|
|
87
|
+
const res = await daemonFetch(`/api/minds/${encodeURIComponent(mind)}/gates/decline`, {
|
|
88
|
+
method: "POST",
|
|
89
|
+
headers: { "Content-Type": "application/json" },
|
|
90
|
+
body: JSON.stringify({ channel })
|
|
91
|
+
});
|
|
92
|
+
if (!res.ok) {
|
|
93
|
+
const data2 = await res.json().catch(() => ({}));
|
|
94
|
+
console.error(data2.error ?? `Failed to decline channel: ${res.status}`);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
const data = await res.json();
|
|
98
|
+
console.log(`Declined ${channel}; archived ${data.archived} held message(s).`);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
var channelsAcceptCmd = command({
|
|
102
|
+
name: "volute chat channels accept",
|
|
103
|
+
description: "Accept an unrouted channel: add a routing rule and deliver its held backlog",
|
|
104
|
+
args: [{ name: "channel", required: true, description: 'Channel to accept (e.g. "#bardo")' }],
|
|
105
|
+
flags: {
|
|
106
|
+
mind: { type: "string", description: "Mind name" },
|
|
107
|
+
thread: { type: "string", description: "Thread to route it to (default: one per channel)" }
|
|
108
|
+
},
|
|
109
|
+
run: async ({ args, flags }) => {
|
|
110
|
+
const mind = resolveMindName(flags);
|
|
111
|
+
const channel = args.channel;
|
|
112
|
+
const res = await daemonFetch(`/api/minds/${encodeURIComponent(mind)}/gates/accept`, {
|
|
113
|
+
method: "POST",
|
|
114
|
+
headers: { "Content-Type": "application/json" },
|
|
115
|
+
body: JSON.stringify({ channel, thread: flags.thread })
|
|
116
|
+
});
|
|
117
|
+
if (!res.ok) {
|
|
118
|
+
const data2 = await res.json().catch(() => ({}));
|
|
119
|
+
console.error(data2.error ?? `Failed to accept channel: ${res.status}`);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
const data = await res.json();
|
|
123
|
+
const note = data.ruleAdded ? "" : " (rule already existed)";
|
|
124
|
+
console.log(
|
|
125
|
+
`Accepted ${channel} \u2192 thread ${data.thread}${note}; released ${data.released} held message(s).`
|
|
126
|
+
);
|
|
127
|
+
if (!data.known) {
|
|
128
|
+
console.log(
|
|
129
|
+
`Note: no channel named ${channel} is known here and nothing was held for it. The rule will route future messages if the name is right \u2014 check it against 'volute chat channels list'.`
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
if (data.archived > 0) {
|
|
133
|
+
console.log(
|
|
134
|
+
`${data.archived} older message(s) were not delivered \u2014 read them with 'volute chat channels peek "${channel}"'.`
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
var channelsPeekCmd = command({
|
|
140
|
+
name: "volute chat channels peek",
|
|
141
|
+
description: "Read the messages held on an unrouted channel without accepting it",
|
|
142
|
+
args: [{ name: "channel", required: true, description: 'Channel to peek at (e.g. "#bardo")' }],
|
|
143
|
+
flags: {
|
|
144
|
+
mind: { type: "string", description: "Mind name" }
|
|
145
|
+
},
|
|
146
|
+
run: async ({ args, flags }) => {
|
|
147
|
+
const mind = resolveMindName(flags);
|
|
148
|
+
const channel = args.channel;
|
|
149
|
+
const res = await daemonFetch(
|
|
150
|
+
`/api/minds/${encodeURIComponent(mind)}/gates/peek?channel=${encodeURIComponent(channel)}`
|
|
151
|
+
);
|
|
152
|
+
if (!res.ok) {
|
|
153
|
+
const data2 = await res.json().catch(() => ({}));
|
|
154
|
+
console.error(data2.error ?? `Failed to read held messages: ${res.status}`);
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
const data = await res.json();
|
|
158
|
+
if (data.count === 0) {
|
|
159
|
+
console.log(`No held messages on ${channel}.`);
|
|
160
|
+
if (data.suggestions?.length) {
|
|
161
|
+
console.log(
|
|
162
|
+
`No channel by that name exists \u2014 did you mean ${formatSuggestions(data.suggestions)}?`
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (data.shown < data.count) {
|
|
168
|
+
console.log(`Showing the ${data.shown} most recent of ${data.count} held message(s).
|
|
169
|
+
`);
|
|
170
|
+
}
|
|
171
|
+
for (const m of data.messages) {
|
|
172
|
+
const mark = m.status === "archived" ? " (archived)" : "";
|
|
173
|
+
console.log(`[${m.createdAt}] ${m.sender ?? "unknown"}${mark}: ${m.content}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
var cmd = subcommands({
|
|
178
|
+
name: "volute chat channels",
|
|
179
|
+
description: "Manage unrouted (gated) channels",
|
|
180
|
+
commands: {
|
|
181
|
+
list: {
|
|
182
|
+
description: "List unrouted channels holding messages",
|
|
183
|
+
run: channelsListCmd.execute
|
|
184
|
+
},
|
|
185
|
+
peek: {
|
|
186
|
+
description: "Read messages held on an unrouted channel",
|
|
187
|
+
run: channelsPeekCmd.execute
|
|
188
|
+
},
|
|
189
|
+
accept: {
|
|
190
|
+
description: "Accept an unrouted channel and deliver its held backlog",
|
|
191
|
+
run: channelsAcceptCmd.execute
|
|
192
|
+
},
|
|
193
|
+
decline: {
|
|
194
|
+
description: "Decline an unrouted channel",
|
|
195
|
+
run: channelsDeclineCmd.execute
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
footer: "Use --mind <name> or VOLUTE_MIND to identify the mind."
|
|
199
|
+
});
|
|
200
|
+
var run = cmd.execute;
|
|
201
|
+
export {
|
|
202
|
+
run
|
|
203
|
+
};
|
|
@@ -12,39 +12,39 @@ 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-UXUQKO4N.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-UQGIW7OF.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-RJ5NAW5J.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-M727VUDF.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-YK7NTRU5.js").then((m) => m.run(args))
|
|
32
32
|
},
|
|
33
33
|
channels: {
|
|
34
34
|
description: "Manage unrouted (gated) channels",
|
|
35
|
-
run: (args) => import("./channels-
|
|
35
|
+
run: (args) => import("./channels-CKCY64TD.js").then((m) => m.run(args))
|
|
36
36
|
},
|
|
37
37
|
files: {
|
|
38
38
|
description: "List pending incoming files",
|
|
39
|
-
run: (args) => import("./files-
|
|
39
|
+
run: (args) => import("./files-PCKBQHAY.js").then((m) => m.run(args))
|
|
40
40
|
},
|
|
41
41
|
accept: {
|
|
42
42
|
description: "Accept a pending file",
|
|
43
|
-
run: (args) => import("./accept-
|
|
43
|
+
run: (args) => import("./accept-RSDIVJL6.js").then((m) => m.run(args))
|
|
44
44
|
},
|
|
45
45
|
reject: {
|
|
46
46
|
description: "Reject a pending file",
|
|
47
|
-
run: (args) => import("./reject-
|
|
47
|
+
run: (args) => import("./reject-4NFLXKRN.js").then((m) => m.run(args))
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
footer: "Use --mind <name> or VOLUTE_MIND to identify the mind."
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
localHM,
|
|
5
5
|
parseMeta,
|
|
6
6
|
recordNotice
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HKGYZVWN.js";
|
|
8
8
|
import {
|
|
9
9
|
getPrompt
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-OAYY3WF3.js";
|
|
11
11
|
import {
|
|
12
12
|
logger_default
|
|
13
13
|
} from "./chunk-QUSMYGNQ.js";
|
|
@@ -6,15 +6,15 @@ import {
|
|
|
6
6
|
getMindToken,
|
|
7
7
|
loadJsonMap,
|
|
8
8
|
saveJsonMapAsync
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WHL6PKYP.js";
|
|
10
10
|
import {
|
|
11
11
|
MIND_LEVEL_THREAD,
|
|
12
12
|
deliverEvent,
|
|
13
13
|
recordNotice
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HKGYZVWN.js";
|
|
15
15
|
import {
|
|
16
16
|
getPrompt
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-OAYY3WF3.js";
|
|
18
18
|
import {
|
|
19
19
|
isSandboxEnabled,
|
|
20
20
|
wrapForSandbox
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
} from "./chunk-WCFSBH33.js";
|
|
26
26
|
import {
|
|
27
27
|
exec
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-OIOW3FPT.js";
|
|
29
29
|
import {
|
|
30
30
|
loadMergedEnv
|
|
31
31
|
} from "./chunk-GLM7TVWP.js";
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-LNNI3MS4.js";
|
|
8
8
|
import {
|
|
9
9
|
getPrompt
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-OAYY3WF3.js";
|
|
11
11
|
import {
|
|
12
12
|
aiCompleteUtility
|
|
13
13
|
} from "./chunk-EGV6R6UF.js";
|
|
@@ -1200,11 +1200,11 @@ var Summarizer = class {
|
|
|
1200
1200
|
}
|
|
1201
1201
|
};
|
|
1202
1202
|
async function reconcileWedgedTurns(idleMs) {
|
|
1203
|
-
const { sweepWedgedTurns: sweepWedgedTurns2, summarizeOrphanedTurns: summarizeOrphanedTurns2 } = await import("./turn-tracker-
|
|
1203
|
+
const { sweepWedgedTurns: sweepWedgedTurns2, summarizeOrphanedTurns: summarizeOrphanedTurns2 } = await import("./turn-tracker-HZDPMSCC.js");
|
|
1204
1204
|
const wedged = await sweepWedgedTurns2(idleMs);
|
|
1205
1205
|
if (wedged.length === 0) return;
|
|
1206
1206
|
summarizeOrphanedTurns2(wedged);
|
|
1207
|
-
const { tryGetDeliveryManager } = await import("./delivery-manager-
|
|
1207
|
+
const { tryGetDeliveryManager } = await import("./delivery-manager-7R2YIQ2W.js");
|
|
1208
1208
|
const dm = tryGetDeliveryManager();
|
|
1209
1209
|
if (!dm) return;
|
|
1210
1210
|
for (const t of wedged) {
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
LAUNCHD_PLIST_LABEL,
|
|
4
4
|
LAUNCHD_PLIST_PATH,
|
|
5
5
|
USER_SYSTEMD_UNIT
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CKPAVQNK.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveVoluteBin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OIOW3FPT.js";
|
|
10
10
|
|
|
11
11
|
// packages/daemon/src/lib/config/service-install.ts
|
|
12
12
|
import { execFile } from "child_process";
|
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
compactDateTime,
|
|
4
4
|
isCompact
|
|
5
5
|
} from "./chunk-7YJY3F2R.js";
|
|
6
|
+
import {
|
|
7
|
+
getClient,
|
|
8
|
+
urlOf
|
|
9
|
+
} from "./chunk-LOPXTW6H.js";
|
|
6
10
|
import {
|
|
7
11
|
resolveMindName
|
|
8
12
|
} from "./chunk-BTY4WNFE.js";
|
|
9
|
-
import {
|
|
10
|
-
command,
|
|
11
|
-
subcommands
|
|
12
|
-
} from "./chunk-TXSA4Q3V.js";
|
|
13
13
|
import {
|
|
14
14
|
daemonFetch
|
|
15
15
|
} from "./chunk-M74I3HHF.js";
|
|
16
16
|
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
} from "./chunk-
|
|
17
|
+
command,
|
|
18
|
+
subcommands
|
|
19
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
20
20
|
|
|
21
21
|
// packages/cli/src/commands/clock.ts
|
|
22
22
|
import { CronExpressionParser } from "cron-parser";
|
|
@@ -279,11 +279,11 @@ var cmd = subcommands({
|
|
|
279
279
|
},
|
|
280
280
|
sleep: {
|
|
281
281
|
description: "Put a mind to sleep",
|
|
282
|
-
run: (args) => import("./mind-sleep-
|
|
282
|
+
run: (args) => import("./mind-sleep-24HV4RCA.js").then((m) => m.run(args))
|
|
283
283
|
},
|
|
284
284
|
wake: {
|
|
285
285
|
description: "Wake a sleeping mind",
|
|
286
|
-
run: (args) => import("./mind-wake-
|
|
286
|
+
run: (args) => import("./mind-wake-LDGPRA42.js").then((m) => m.run(args))
|
|
287
287
|
}
|
|
288
288
|
},
|
|
289
289
|
footer: "Use --mind <name> or VOLUTE_MIND to identify the mind."
|
|
@@ -79,6 +79,9 @@ function getSystemPages(db) {
|
|
|
79
79
|
)
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
+
function getMindsWithSites(db) {
|
|
83
|
+
return db.prepare("SELECT DISTINCT mind FROM published_pages WHERE mind != '_system' ORDER BY mind").all().map((r) => r.mind);
|
|
84
|
+
}
|
|
82
85
|
function syncSystemPages(db, pages, author) {
|
|
83
86
|
const existing = new Map(
|
|
84
87
|
db.prepare("SELECT file, hash FROM published_pages WHERE mind = '_system'").all().map((r) => [r.file, r.hash])
|
|
@@ -159,6 +162,7 @@ export {
|
|
|
159
162
|
getRecentPages,
|
|
160
163
|
getAllSites,
|
|
161
164
|
getSystemPages,
|
|
165
|
+
getMindsWithSites,
|
|
162
166
|
syncSystemPages,
|
|
163
167
|
syncPublishedPages
|
|
164
168
|
};
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
} from "./chunk-L7BKTZ5U.js";
|
|
6
6
|
import {
|
|
7
7
|
recordOutbound
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-LGXVGIWN.js";
|
|
9
9
|
import {
|
|
10
10
|
recordSenderDeliveryFailure
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-3LHUXY3E.js";
|
|
12
12
|
import {
|
|
13
13
|
getOrCreateMindUser,
|
|
14
14
|
getUserByUsername
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
import {
|
|
31
31
|
daemonConfigPath,
|
|
32
32
|
readDaemonToken
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-CKPAVQNK.js";
|
|
34
34
|
import {
|
|
35
35
|
readEnv,
|
|
36
36
|
sharedEnvPath
|
|
@@ -257,7 +257,7 @@ async function deliverEvent(mind, input) {
|
|
|
257
257
|
return { id: eventId, delivered: false };
|
|
258
258
|
}
|
|
259
259
|
const baseName = await getBaseName(mind);
|
|
260
|
-
const { getSleepManagerIfReady } = await import("./sleep-manager-
|
|
260
|
+
const { getSleepManagerIfReady } = await import("./sleep-manager-KHI65FEX.js");
|
|
261
261
|
const sleepManager = getSleepManagerIfReady();
|
|
262
262
|
const sleeping = !input.force && sleepManager?.isSleeping(baseName);
|
|
263
263
|
const behavior = input.whileSleeping ?? "queue";
|