volute 0.32.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist/{accept-74M7I4RZ.js → accept-TW6V4WI4.js} +4 -4
- package/dist/{activity-events-HETAODOK.js → activity-events-BN7V6KCC.js} +4 -4
- package/dist/{ai-service-ZIPCV3MX.js → ai-service-PSILB5WD.js} +5 -5
- package/dist/{api-client-YPKOZP2O.js → api-client-XUXOB7LI.js} +1 -1
- package/dist/api.d.ts +1198 -957
- package/dist/{archive-INXYFVCW.js → archive-C2VEMQOR.js} +4 -4
- package/dist/{auth-6DMGES3I.js → auth-ZFZXJZDQ.js} +5 -5
- package/dist/{bridge-BVCBTGPF.js → bridge-O753D5F4.js} +4 -4
- package/dist/{chat-XT4OBJBU.js → chat-BHYX7DJ4.js} +9 -9
- package/dist/{chunk-M7UL5S3Q.js → chunk-2IOP6PHB.js} +1 -1
- package/dist/{chunk-JJ7W6WSB.js → chunk-47XDEWWV.js} +5 -5
- package/dist/{chunk-RSX4OPZY.js → chunk-47ZPNLF4.js} +7 -7
- package/dist/{chunk-RPZZSXV3.js → chunk-4JSR7YO7.js} +20 -1
- package/dist/chunk-6LXAAQ43.js +22 -0
- package/dist/{chunk-TSXLLQZW.js → chunk-6OWJXUAR.js} +10 -1
- package/dist/{chunk-I5KY25PQ.js → chunk-6WAWMWR5.js} +1 -1
- package/dist/{chunk-LSGWR54X.js → chunk-7F2SW2KD.js} +2 -2
- package/dist/chunk-7KJOFUNN.js +22 -0
- package/dist/{spirit-N4W4UQRH.js → chunk-B2BVAIZ4.js} +21 -12
- package/dist/{chunk-LGB6JBHI.js → chunk-BDK73LK6.js} +5 -55
- package/dist/{chunk-IYDIE3HG.js → chunk-BFWHBQK4.js} +1 -1
- package/dist/{chunk-TDRYEPH4.js → chunk-BM474GX6.js} +4 -4
- package/dist/{chunk-R7E6CRVQ.js → chunk-BTWAGDV5.js} +1 -1
- package/dist/{chunk-WKF5FEFK.js → chunk-CVL5IGIR.js} +629 -174
- package/dist/{chunk-S6NFERDC.js → chunk-E5C7OWZ2.js} +20 -22
- package/dist/chunk-FYCALD4Q.js +23 -0
- package/dist/{chunk-SKLSMHXO.js → chunk-IS7WJ56Q.js} +1 -1
- package/dist/{chunk-2NGTS5UU.js → chunk-M3K5AARV.js} +1 -1
- package/dist/{chunk-ALEF47VT.js → chunk-MLOQKQNB.js} +1 -1
- package/dist/{chunk-D5G5YOPL.js → chunk-N3DNFPVA.js} +41 -5
- package/dist/{chunk-LRCG2JLP.js → chunk-N7BLAHNE.js} +5 -1
- package/dist/chunk-OYAKCAVY.js +29 -0
- package/dist/{chunk-UKVWJRKN.js → chunk-PLDWHR4D.js} +1 -1
- package/dist/{chunk-QBQ424EM.js → chunk-TAHX36HZ.js} +545 -246
- package/dist/chunk-U5BTYSAL.js +59 -0
- package/dist/{chunk-SX5TKJBZ.js → chunk-V45JXOWY.js} +2 -2
- package/dist/{chunk-2FLJ63GU.js → chunk-V6ZCNULL.js} +2 -2
- package/dist/{chunk-QZANELPX.js → chunk-XWXBJQBE.js} +3 -2
- package/dist/cli.js +32 -24
- package/dist/{clock-2UOZ6JPU.js → clock-3X4DSC2N.js} +38 -23
- package/dist/{cloud-sync-JN3NWKEM.js → cloud-sync-TG3TIX5H.js} +21 -17
- package/dist/{config-H2H4UIF7.js → config-OROA5DUA.js} +4 -4
- package/dist/connectors/discord-bridge.js +1 -1
- package/dist/connectors/slack-bridge.js +1 -1
- package/dist/connectors/telegram-bridge.js +1 -1
- package/dist/{conversations-3O5O6AS3.js → conversations-HL2JP5GI.js} +5 -5
- package/dist/{create-RNLNCORE.js → create-3SEKKI6P.js} +5 -5
- package/dist/{create-WBBYI6V7.js → create-UOSOQ2HN.js} +4 -4
- package/dist/daemon-client-WOAQXXBM.js +12 -0
- package/dist/{daemon-restart-NGFHFAUF.js → daemon-restart-5ABHNXJZ.js} +9 -8
- package/dist/daemon.js +2730 -1520
- package/dist/{db-RA45JBFG.js → db-PLEDCBHZ.js} +1 -1
- package/dist/db-RYX3SS2W.js +9 -0
- package/dist/{delete-QTGWEDBI.js → delete-KYOVWR23.js} +3 -3
- package/dist/delivery-manager-2BR5NZKF.js +32 -0
- package/dist/{delivery-router-FL45JL7N.js → delivery-router-D5ELDMS2.js} +4 -4
- package/dist/down-QVFN4UPK.js +15 -0
- package/dist/{env-RLYQBOOP.js → env-R34DT7XL.js} +10 -6
- package/dist/exec-DVLXKRIO.js +17 -0
- package/dist/{export-SUYRLI5Q.js → export-6ZXAXATG.js} +6 -6
- package/dist/extension-PM42QCID.js +97 -0
- package/dist/extensions-BBGVL5JC.js +38 -0
- package/dist/{files-EAMPO2SJ.js → files-VQV2VZQO.js} +5 -5
- package/dist/{import-DDUFE7AY.js → import-MK2I2T6F.js} +5 -5
- package/dist/isolation-62MKDZN3.js +22 -0
- package/dist/{join-I5QEE3LG.js → join-DGYHTJUH.js} +3 -3
- package/dist/lib-DYEZMGW7.js +6588 -0
- package/dist/{list-DW2VRTOZ.js → list-C644WTHV.js} +16 -8
- package/dist/{login-7CHPW2PN.js → login-IIGEQPHL.js} +4 -4
- package/dist/{login-RIJF2F4G.js → login-KZQLMAWE.js} +4 -4
- package/dist/{logout-5MLHZALK.js → logout-AGTZVRGP.js} +4 -4
- package/dist/{logout-UZJRGY4Z.js → logout-KD6GXIJJ.js} +4 -4
- package/dist/message-delivery-V3R6NXJP.js +42 -0
- package/dist/{mind-2B6M7Y25.js → mind-BI4EPBVZ.js} +25 -19
- package/dist/{mind-activity-tracker-NZZT2NTT.js → mind-activity-tracker-2ACNHA7B.js} +5 -5
- package/dist/mind-history-WOYFLQAI.js +264 -0
- package/dist/{mind-list-WUPMQDYQ.js → mind-list-6VPM7GUQ.js} +4 -4
- package/dist/mind-manager-MWW3BTS4.js +32 -0
- package/dist/mind-profile-WPG42U5Y.js +47 -0
- package/dist/mind-service-VIKZJK2M.js +38 -0
- package/dist/{mind-sleep-B7BHJLH7.js → mind-sleep-XDISJY74.js} +4 -4
- package/dist/{mind-status-L3EFFRPR.js → mind-status-7FTZWPZF.js} +4 -4
- package/dist/{mind-wake-GY3RFX7Y.js → mind-wake-KIIKEI3A.js} +4 -4
- package/dist/{package-PK6JUFL3.js → package-V2WHWVG6.js} +9 -5
- package/dist/{read-5AMJRO3D.js → read-H5C26YO7.js} +18 -8
- package/dist/read-stdin-PIRM6A2Y.js +8 -0
- package/dist/{register-V2JZZKFK.js → register-J27WP33N.js} +4 -4
- package/dist/{registry-PJ4S5PHQ.js → registry-UYV5S6QT.js} +3 -3
- package/dist/{reject-33HEZMZ4.js → reject-OEANJYIA.js} +4 -4
- package/dist/{restart-3UCMRUVC.js → restart-V5EGYBJG.js} +4 -4
- package/dist/{sandbox-JANNTX6U.js → sandbox-SI5HMBP3.js} +5 -5
- package/dist/scheduler-AGG3L2FO.js +32 -0
- package/dist/{schema-PA3M5ZKH.js → schema-ETMABTW4.js} +4 -2
- package/dist/seed-WNGI6PNW.js +11 -0
- package/dist/seed-check-PXTH7YXS.js +32 -0
- package/dist/seed-cmd-VENFTGS3.js +36 -0
- package/dist/{seed-ALUQ55FF.js → seed-create-663ALOKH.js} +8 -8
- package/dist/{sprout-L2GFOVF7.js → seed-sprout-EH3AGKAI.js} +24 -11
- package/dist/{send-3MI36LEF.js → send-7FUUUZZH.js} +66 -51
- package/dist/{setup-SZIARWI6.js → setup-GGMKENLN.js} +6 -4
- package/dist/{setup-WENLVPVP.js → setup-Z3DEVWV7.js} +13 -11
- package/dist/{skill-TUVOTW4Z.js → skill-DKNYJS4P.js} +12 -8
- package/dist/skills/imagegen/SKILL.md +11 -7
- package/dist/skills/imagegen/scripts/imagegen.ts +146 -25
- package/dist/skills/orientation/SKILL.md +9 -2
- package/dist/skills/plan-coordinator/SKILL.md +60 -0
- package/dist/skills/seed-nurture/SKILL.md +42 -0
- package/dist/skills/volute-mind/SKILL.md +11 -221
- package/dist/skills/volute-mind/references/extensions.md +37 -0
- package/dist/skills/volute-mind/references/integrations.md +48 -0
- package/dist/skills/volute-mind/references/routing.md +86 -0
- package/dist/skills/volute-mind/references/sleep.md +33 -0
- package/dist/skills/volute-mind/references/variants.md +31 -0
- package/dist/{skills-XNZK6P4K.js → skills-Q6VZ2UGD.js} +11 -6
- package/dist/sleep-manager-BJK2ROPX.js +36 -0
- package/dist/spirit-4JP4TY4C.js +23 -0
- package/dist/{split-STOROBYJ.js → split-3YPMS2CL.js} +3 -3
- package/dist/sprout-E3HJIV2Z.js +11 -0
- package/dist/{start-K2NCUUCG.js → start-W3TPKX4D.js} +4 -4
- package/dist/{status-TCUMUO6M.js → status-4OVFXFEJ.js} +7 -6
- package/dist/{stop-H26JZDXF.js → stop-GTT6YWYO.js} +4 -4
- package/dist/system-channel-DXD2JBOU.js +36 -0
- package/dist/system-chat-TYLOL7SX.js +36 -0
- package/dist/{systems-DHBKVYEY.js → systems-AYLO727G.js} +7 -7
- package/dist/{tailscale-XHQBZROW.js → tailscale-ZEUK7GKZ.js} +3 -3
- package/dist/{template-hash-A6VVKOXJ.js → template-hash-EJRTKE36.js} +1 -1
- package/dist/up-PA7F2CXE.js +18 -0
- package/dist/{update-QVPRF6GR.js → update-HG4LCUSG.js} +7 -6
- package/dist/{update-check-ZD6OOIYQ.js → update-check-X3YG4WVP.js} +4 -4
- package/dist/{upgrade-O4Q7WJM3.js → upgrade-YGNIDICG.js} +3 -3
- package/dist/{variant-7TGZHOU3.js → variant-MZUMRTQO.js} +1 -1
- package/dist/{version-notify-TCKWBZZG.js → version-notify-YCH4UVQ2.js} +23 -20
- package/dist/volute-config-WBKYJGYQ.js +10 -0
- package/dist/web-assets/assets/index-DiiwC-CZ.css +1 -0
- package/dist/web-assets/assets/index-d6y5b9Ij.js +75 -0
- package/dist/web-assets/ext-theme.css +48 -9
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0005_meta_summaries.sql +15 -0
- package/drizzle/meta/0005_snapshot.json +7 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +8 -4
- package/packages/extensions/plan/dist/ui/assets/index-CJj2gZnZ.css +1 -0
- package/packages/extensions/plan/dist/ui/assets/index-FMEJmvQz.js +61 -0
- package/packages/extensions/plan/dist/ui/index.html +14 -0
- package/packages/extensions/plan/skills/plan/SKILL.md +43 -0
- package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +37 -0
- package/templates/_base/home/VOLUTE.md +12 -19
- package/templates/_base/src/lib/context-breakdown.ts +450 -0
- package/templates/_base/src/lib/format-prefix.ts +17 -0
- package/templates/_base/src/lib/hook-loader.ts +8 -2
- package/templates/_base/src/lib/router.ts +75 -33
- package/templates/_base/src/lib/routing.ts +4 -1
- package/templates/_base/src/lib/startup.ts +16 -8
- package/templates/_base/src/lib/types.ts +2 -1
- package/templates/_base/src/lib/volute-server.ts +69 -8
- package/templates/claude/.init/CLAUDE.md +4 -10
- package/templates/claude/package.json.tmpl +1 -0
- package/templates/claude/src/agent.ts +100 -32
- package/templates/claude/src/lib/hooks/reply-instructions.ts +27 -7
- package/templates/claude/src/lib/stream-consumer.ts +40 -2
- package/templates/claude/src/server.ts +1 -0
- package/templates/codex/package.json.tmpl +1 -0
- package/templates/codex/src/agent.ts +81 -8
- package/templates/codex/src/server.ts +1 -4
- package/templates/pi/package.json.tmpl +1 -0
- package/templates/pi/src/agent.ts +115 -36
- package/templates/pi/src/lib/event-handler.ts +22 -7
- package/templates/pi/src/lib/reply-instructions-extension.ts +23 -4
- package/templates/pi/src/lib/subagents.ts +20 -17
- package/templates/pi/src/server.ts +2 -5
- package/dist/chunk-K3NQKI34.js +0 -10
- package/dist/daemon-client-6QXHZ7US.js +0 -12
- package/dist/db-F34YLV7D.js +0 -9
- package/dist/delivery-manager-SDVXFD4W.js +0 -28
- package/dist/down-TB3ESMNP.js +0 -14
- package/dist/extension-FQ5D3NCC.js +0 -174
- package/dist/extensions-GDYWQXC4.js +0 -29
- package/dist/history-FO5PHBQ5.js +0 -128
- package/dist/message-delivery-2FIM7QKO.js +0 -32
- package/dist/mind-manager-BNCMGYXW.js +0 -28
- package/dist/mind-service-AV273WT4.js +0 -34
- package/dist/sleep-manager-53DZOWW7.js +0 -32
- package/dist/system-chat-NPYFYZVI.js +0 -32
- package/dist/up-6I6BHRTO.js +0 -17
- package/dist/web-assets/assets/index-Bui7U9Uu.css +0 -1
- package/dist/web-assets/assets/index-e36DIo1b.js +0 -73
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
isCompact
|
|
4
|
+
} from "./chunk-FYCALD4Q.js";
|
|
2
5
|
import {
|
|
3
6
|
resolveMindName
|
|
4
7
|
} from "./chunk-NAOW2CLO.js";
|
|
@@ -7,10 +10,10 @@ import {
|
|
|
7
10
|
} from "./chunk-D424ZQGI.js";
|
|
8
11
|
import {
|
|
9
12
|
daemonFetch
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-PLDWHR4D.js";
|
|
14
|
+
import "./chunk-N7BLAHNE.js";
|
|
15
|
+
import "./chunk-4JSR7YO7.js";
|
|
16
|
+
import "./chunk-7KJOFUNN.js";
|
|
14
17
|
|
|
15
18
|
// src/commands/chat/list.ts
|
|
16
19
|
async function run(args) {
|
|
@@ -28,12 +31,17 @@ async function run(args) {
|
|
|
28
31
|
console.log("No conversations.");
|
|
29
32
|
return;
|
|
30
33
|
}
|
|
34
|
+
const compact = isCompact();
|
|
31
35
|
for (const conv of convs) {
|
|
32
36
|
const label = conv.type === "channel" ? `#${conv.name}` : conv.title ?? conv.id.slice(0, 8);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
if (compact) {
|
|
38
|
+
console.log(`${label} (${conv.type})`);
|
|
39
|
+
} else {
|
|
40
|
+
const time = new Date(
|
|
41
|
+
conv.updated_at.endsWith("Z") ? conv.updated_at : `${conv.updated_at}Z`
|
|
42
|
+
).toLocaleString();
|
|
43
|
+
console.log(` ${label} (${conv.type}) ${time}`);
|
|
44
|
+
}
|
|
37
45
|
}
|
|
38
46
|
}
|
|
39
47
|
export {
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
} from "./chunk-D424ZQGI.js";
|
|
8
8
|
import {
|
|
9
9
|
daemonFetch
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-PLDWHR4D.js";
|
|
11
|
+
import "./chunk-N7BLAHNE.js";
|
|
12
|
+
import "./chunk-4JSR7YO7.js";
|
|
13
|
+
import "./chunk-7KJOFUNN.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/systems/login.ts
|
|
16
16
|
async function run(args) {
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
} from "./chunk-SSI47XP2.js";
|
|
6
6
|
import {
|
|
7
7
|
daemonFetch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-PLDWHR4D.js";
|
|
9
9
|
import {
|
|
10
10
|
voluteUserHome
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-N7BLAHNE.js";
|
|
12
|
+
import "./chunk-4JSR7YO7.js";
|
|
13
|
+
import "./chunk-7KJOFUNN.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/login.ts
|
|
16
16
|
import { writeFileSync } from "fs";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
daemonFetch
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PLDWHR4D.js";
|
|
5
5
|
import {
|
|
6
6
|
voluteUserHome
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-N7BLAHNE.js";
|
|
8
|
+
import "./chunk-4JSR7YO7.js";
|
|
9
|
+
import "./chunk-7KJOFUNN.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/logout.ts
|
|
12
12
|
import { existsSync, readFileSync, unlinkSync } from "fs";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
daemonFetch
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PLDWHR4D.js";
|
|
5
|
+
import "./chunk-N7BLAHNE.js";
|
|
6
|
+
import "./chunk-4JSR7YO7.js";
|
|
7
|
+
import "./chunk-7KJOFUNN.js";
|
|
8
8
|
|
|
9
9
|
// src/commands/systems/logout.ts
|
|
10
10
|
async function run() {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
deliverMessage,
|
|
4
|
+
linkToolResultToTurn,
|
|
5
|
+
recordInbound,
|
|
6
|
+
recordOutbound,
|
|
7
|
+
resolveSleepAction,
|
|
8
|
+
tagRecentInbound,
|
|
9
|
+
tagUntaggedInbound,
|
|
10
|
+
tagUntaggedOutbound
|
|
11
|
+
} from "./chunk-TAHX36HZ.js";
|
|
12
|
+
import "./chunk-CVL5IGIR.js";
|
|
13
|
+
import "./chunk-B2BVAIZ4.js";
|
|
14
|
+
import "./chunk-G53F3JA4.js";
|
|
15
|
+
import "./chunk-N3DNFPVA.js";
|
|
16
|
+
import "./chunk-OYAKCAVY.js";
|
|
17
|
+
import "./chunk-V45JXOWY.js";
|
|
18
|
+
import "./chunk-IS7WJ56Q.js";
|
|
19
|
+
import "./chunk-BTWAGDV5.js";
|
|
20
|
+
import "./chunk-M3K5AARV.js";
|
|
21
|
+
import "./chunk-PB65JZK2.js";
|
|
22
|
+
import "./chunk-BM474GX6.js";
|
|
23
|
+
import "./chunk-E5C7OWZ2.js";
|
|
24
|
+
import "./chunk-XWXBJQBE.js";
|
|
25
|
+
import "./chunk-BFWHBQK4.js";
|
|
26
|
+
import "./chunk-YUIHSKR6.js";
|
|
27
|
+
import "./chunk-U5BTYSAL.js";
|
|
28
|
+
import "./chunk-BDK73LK6.js";
|
|
29
|
+
import "./chunk-6OWJXUAR.js";
|
|
30
|
+
import "./chunk-N7BLAHNE.js";
|
|
31
|
+
import "./chunk-4JSR7YO7.js";
|
|
32
|
+
import "./chunk-7KJOFUNN.js";
|
|
33
|
+
export {
|
|
34
|
+
deliverMessage,
|
|
35
|
+
linkToolResultToTurn,
|
|
36
|
+
recordInbound,
|
|
37
|
+
recordOutbound,
|
|
38
|
+
resolveSleepAction,
|
|
39
|
+
tagRecentInbound,
|
|
40
|
+
tagUntaggedInbound,
|
|
41
|
+
tagUntaggedOutbound
|
|
42
|
+
};
|
|
@@ -1,63 +1,66 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-7KJOFUNN.js";
|
|
3
3
|
|
|
4
4
|
// src/commands/mind.ts
|
|
5
5
|
async function run(args) {
|
|
6
6
|
const subcommand = args[0];
|
|
7
7
|
switch (subcommand) {
|
|
8
8
|
case "create":
|
|
9
|
-
await import("./create-
|
|
9
|
+
await import("./create-UOSOQ2HN.js").then((m) => m.run(args.slice(1)));
|
|
10
10
|
break;
|
|
11
11
|
case "start":
|
|
12
|
-
await import("./start-
|
|
12
|
+
await import("./start-W3TPKX4D.js").then((m) => m.run(args.slice(1)));
|
|
13
13
|
break;
|
|
14
14
|
case "stop":
|
|
15
|
-
await import("./stop-
|
|
15
|
+
await import("./stop-GTT6YWYO.js").then((m) => m.run(args.slice(1)));
|
|
16
16
|
break;
|
|
17
17
|
case "restart":
|
|
18
|
-
await import("./restart-
|
|
18
|
+
await import("./restart-V5EGYBJG.js").then((m) => m.run(args.slice(1)));
|
|
19
19
|
break;
|
|
20
20
|
case "delete":
|
|
21
|
-
await import("./delete-
|
|
21
|
+
await import("./delete-KYOVWR23.js").then((m) => m.run(args.slice(1)));
|
|
22
22
|
break;
|
|
23
23
|
case "list":
|
|
24
|
-
await import("./mind-list-
|
|
24
|
+
await import("./mind-list-6VPM7GUQ.js").then((m) => m.run(args.slice(1)));
|
|
25
25
|
break;
|
|
26
26
|
case "status":
|
|
27
|
-
await import("./mind-status-
|
|
27
|
+
await import("./mind-status-7FTZWPZF.js").then((m) => m.run(args.slice(1)));
|
|
28
28
|
break;
|
|
29
29
|
case "history": {
|
|
30
30
|
const rest = args.slice(1);
|
|
31
31
|
const historyArgs = transformMindFlag(rest);
|
|
32
|
-
await import("./history-
|
|
32
|
+
await import("./mind-history-WOYFLQAI.js").then((m) => m.run(historyArgs));
|
|
33
33
|
break;
|
|
34
34
|
}
|
|
35
35
|
case "upgrade":
|
|
36
|
-
await import("./upgrade-
|
|
36
|
+
await import("./upgrade-YGNIDICG.js").then((m) => m.run(args.slice(1)));
|
|
37
37
|
break;
|
|
38
38
|
case "import":
|
|
39
|
-
await import("./import-
|
|
39
|
+
await import("./import-MK2I2T6F.js").then((m) => m.run(args.slice(1)));
|
|
40
40
|
break;
|
|
41
41
|
case "export":
|
|
42
|
-
await import("./export-
|
|
42
|
+
await import("./export-6ZXAXATG.js").then((m) => m.run(args.slice(1)));
|
|
43
43
|
break;
|
|
44
44
|
case "seed":
|
|
45
|
-
await import("./seed-
|
|
45
|
+
await import("./seed-WNGI6PNW.js").then((m) => m.run(args.slice(1)));
|
|
46
46
|
break;
|
|
47
47
|
case "sprout":
|
|
48
|
-
await import("./sprout-
|
|
48
|
+
await import("./sprout-E3HJIV2Z.js").then((m) => m.run(args.slice(1)));
|
|
49
|
+
break;
|
|
50
|
+
case "profile":
|
|
51
|
+
await import("./mind-profile-WPG42U5Y.js").then((m) => m.run(args.slice(1)));
|
|
49
52
|
break;
|
|
50
53
|
case "sleep":
|
|
51
|
-
await import("./mind-sleep-
|
|
54
|
+
await import("./mind-sleep-XDISJY74.js").then((m) => m.run(args.slice(1)));
|
|
52
55
|
break;
|
|
53
56
|
case "wake":
|
|
54
|
-
await import("./mind-wake-
|
|
57
|
+
await import("./mind-wake-KIIKEI3A.js").then((m) => m.run(args.slice(1)));
|
|
55
58
|
break;
|
|
56
59
|
case "split":
|
|
57
|
-
await import("./split-
|
|
60
|
+
await import("./split-3YPMS2CL.js").then((m) => m.run(args.slice(1)));
|
|
58
61
|
break;
|
|
59
62
|
case "join":
|
|
60
|
-
await import("./join-
|
|
63
|
+
await import("./join-DGYHTJUH.js").then((m) => m.run(args.slice(1)));
|
|
61
64
|
break;
|
|
62
65
|
case "--help":
|
|
63
66
|
case "-h":
|
|
@@ -86,6 +89,7 @@ function printUsage() {
|
|
|
86
89
|
volute mind list
|
|
87
90
|
volute mind status [name]
|
|
88
91
|
volute mind history [name] [--channel <ch>] [--limit N] [--full]
|
|
92
|
+
volute mind profile [--mind <name>] [--display-name <name>] [--description <text>] [--avatar <path>]
|
|
89
93
|
volute mind sprout
|
|
90
94
|
volute mind sleep [name] [--wake-at <time>]
|
|
91
95
|
volute mind wake [name]
|
|
@@ -95,7 +99,9 @@ function printUsage() {
|
|
|
95
99
|
volute mind import <path> [--name <name>] [--session <path>] [--template <name>]
|
|
96
100
|
volute mind export <name> [--include-env] [--include-identity] [--include-history] [--include-sessions] [--all] [--output <path>]
|
|
97
101
|
|
|
98
|
-
Mind name can be omitted (where shown as [name]) if VOLUTE_MIND is set
|
|
102
|
+
Mind name can be omitted (where shown as [name]) if VOLUTE_MIND is set.
|
|
103
|
+
|
|
104
|
+
Note: 'volute mind seed' and 'volute mind sprout' are now 'volute seed create' and 'volute seed sprout'.`);
|
|
99
105
|
}
|
|
100
106
|
export {
|
|
101
107
|
run
|
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
markIdle,
|
|
5
5
|
onMindEvent,
|
|
6
6
|
stopAll
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-BTWAGDV5.js";
|
|
8
|
+
import "./chunk-XWXBJQBE.js";
|
|
9
9
|
import "./chunk-YUIHSKR6.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-N7BLAHNE.js";
|
|
11
|
+
import "./chunk-4JSR7YO7.js";
|
|
12
|
+
import "./chunk-7KJOFUNN.js";
|
|
13
13
|
export {
|
|
14
14
|
getActiveMinds,
|
|
15
15
|
markIdle,
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
compactTime,
|
|
4
|
+
isCompact
|
|
5
|
+
} from "./chunk-FYCALD4Q.js";
|
|
6
|
+
import {
|
|
7
|
+
resolveMindName
|
|
8
|
+
} from "./chunk-NAOW2CLO.js";
|
|
9
|
+
import {
|
|
10
|
+
getClient,
|
|
11
|
+
urlOf
|
|
12
|
+
} from "./chunk-4RQBJWQX.js";
|
|
13
|
+
import {
|
|
14
|
+
parseArgs
|
|
15
|
+
} from "./chunk-D424ZQGI.js";
|
|
16
|
+
import {
|
|
17
|
+
daemonFetch
|
|
18
|
+
} from "./chunk-PLDWHR4D.js";
|
|
19
|
+
import "./chunk-N7BLAHNE.js";
|
|
20
|
+
import "./chunk-4JSR7YO7.js";
|
|
21
|
+
import "./chunk-7KJOFUNN.js";
|
|
22
|
+
|
|
23
|
+
// src/commands/mind-history.ts
|
|
24
|
+
function normalizeTimestamp(dateStr) {
|
|
25
|
+
return dateStr.endsWith("Z") ? dateStr : `${dateStr}Z`;
|
|
26
|
+
}
|
|
27
|
+
function formatRow(row) {
|
|
28
|
+
const time = new Date(normalizeTimestamp(row.created_at)).toLocaleString();
|
|
29
|
+
const channel = row.channel ?? "";
|
|
30
|
+
switch (row.type) {
|
|
31
|
+
case "inbound":
|
|
32
|
+
case "outbound": {
|
|
33
|
+
const sender = row.sender ?? (row.type === "outbound" ? "mind" : "unknown");
|
|
34
|
+
return `[${time}] [${channel}] ${sender}: ${row.content ?? ""}`;
|
|
35
|
+
}
|
|
36
|
+
case "text":
|
|
37
|
+
return `[${time}] [text] ${row.content ?? ""}`;
|
|
38
|
+
case "thinking":
|
|
39
|
+
return `[${time}] [thinking] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
|
|
40
|
+
case "tool_use": {
|
|
41
|
+
let toolName = "unknown";
|
|
42
|
+
if (row.metadata) {
|
|
43
|
+
try {
|
|
44
|
+
const meta = JSON.parse(row.metadata);
|
|
45
|
+
toolName = meta.name ?? toolName;
|
|
46
|
+
} catch {
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return `[${time}] [tool] ${toolName}${row.content ? `: ${row.content.slice(0, 100)}` : ""}`;
|
|
50
|
+
}
|
|
51
|
+
case "tool_result":
|
|
52
|
+
return `[${time}] [result] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
|
|
53
|
+
case "usage": {
|
|
54
|
+
if (row.metadata) {
|
|
55
|
+
try {
|
|
56
|
+
const meta = JSON.parse(row.metadata);
|
|
57
|
+
return `[${time}] [usage] in=${meta.input_tokens ?? 0} out=${meta.output_tokens ?? 0}`;
|
|
58
|
+
} catch {
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return `[${time}] [usage]`;
|
|
62
|
+
}
|
|
63
|
+
case "done":
|
|
64
|
+
return `[${time}] [done]`;
|
|
65
|
+
case "log": {
|
|
66
|
+
let category = "";
|
|
67
|
+
if (row.metadata) {
|
|
68
|
+
try {
|
|
69
|
+
const meta = JSON.parse(row.metadata);
|
|
70
|
+
category = meta.category ? `${meta.category}: ` : "";
|
|
71
|
+
} catch {
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return `[${time}] [log] ${category}${row.content ?? ""}`;
|
|
75
|
+
}
|
|
76
|
+
case "summary": {
|
|
77
|
+
let range = "";
|
|
78
|
+
if (row.metadata) {
|
|
79
|
+
try {
|
|
80
|
+
const meta = JSON.parse(row.metadata);
|
|
81
|
+
if (meta.from_time && meta.to_time) {
|
|
82
|
+
const from = new Date(normalizeTimestamp(meta.from_time)).toLocaleTimeString();
|
|
83
|
+
const to = new Date(normalizeTimestamp(meta.to_time)).toLocaleTimeString();
|
|
84
|
+
range = ` (${from}\u2013${to})`;
|
|
85
|
+
}
|
|
86
|
+
} catch {
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return `[${time}] [summary${range}] ${row.content ?? ""}`;
|
|
90
|
+
}
|
|
91
|
+
case "session_start":
|
|
92
|
+
return `[${time}] [session_start] ${row.session ?? ""}`;
|
|
93
|
+
default:
|
|
94
|
+
return `[${time}] [${row.type}] ${row.content ?? ""}`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function formatRowCompact(row) {
|
|
98
|
+
const time = compactTime(row.created_at);
|
|
99
|
+
const channel = row.channel ?? "";
|
|
100
|
+
switch (row.type) {
|
|
101
|
+
case "inbound":
|
|
102
|
+
case "outbound": {
|
|
103
|
+
const sender = row.sender ?? (row.type === "outbound" ? "mind" : "unknown");
|
|
104
|
+
return `[${time}] [${channel}] ${sender}: ${row.content ?? ""}`;
|
|
105
|
+
}
|
|
106
|
+
case "text":
|
|
107
|
+
return `[${time}] [text] ${row.content ?? ""}`;
|
|
108
|
+
case "thinking":
|
|
109
|
+
return `[${time}] [thinking] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
|
|
110
|
+
case "tool_use": {
|
|
111
|
+
let toolName = "unknown";
|
|
112
|
+
if (row.metadata) {
|
|
113
|
+
try {
|
|
114
|
+
const meta = JSON.parse(row.metadata);
|
|
115
|
+
toolName = meta.name ?? toolName;
|
|
116
|
+
} catch {
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return `[${time}] [tool] ${toolName}${row.content ? `: ${row.content.slice(0, 100)}` : ""}`;
|
|
120
|
+
}
|
|
121
|
+
case "tool_result":
|
|
122
|
+
return `[${time}] [result] ${(row.content ?? "").slice(0, 200)}${(row.content?.length ?? 0) > 200 ? "..." : ""}`;
|
|
123
|
+
case "log": {
|
|
124
|
+
let category = "";
|
|
125
|
+
if (row.metadata) {
|
|
126
|
+
try {
|
|
127
|
+
const meta = JSON.parse(row.metadata);
|
|
128
|
+
category = meta.category ? `${meta.category}: ` : "";
|
|
129
|
+
} catch {
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return `[${time}] [log] ${category}${row.content ?? ""}`;
|
|
133
|
+
}
|
|
134
|
+
case "summary": {
|
|
135
|
+
let range = "";
|
|
136
|
+
if (row.metadata) {
|
|
137
|
+
try {
|
|
138
|
+
const meta = JSON.parse(row.metadata);
|
|
139
|
+
if (meta.from_time && meta.to_time) {
|
|
140
|
+
range = ` (${compactTime(meta.from_time)}\u2013${compactTime(meta.to_time)})`;
|
|
141
|
+
}
|
|
142
|
+
} catch {
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return `[${time}] [summary${range}] ${row.content ?? ""}`;
|
|
146
|
+
}
|
|
147
|
+
case "session_start":
|
|
148
|
+
return `[${time}] [session_start] ${row.session ?? ""}`;
|
|
149
|
+
default:
|
|
150
|
+
return `[${time}] [${row.type}] ${row.content ?? ""}`;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
var PERIOD_LABELS = {
|
|
154
|
+
hour: "Hourly",
|
|
155
|
+
day: "Daily",
|
|
156
|
+
week: "Weekly",
|
|
157
|
+
month: "Monthly"
|
|
158
|
+
};
|
|
159
|
+
function formatMetaSummary(row) {
|
|
160
|
+
const label = PERIOD_LABELS[row.period] ?? row.period;
|
|
161
|
+
return `
|
|
162
|
+
=== ${row.period_key} (${label}) ===
|
|
163
|
+
${row.content ?? ""}
|
|
164
|
+
`;
|
|
165
|
+
}
|
|
166
|
+
function getDefaultRange(period) {
|
|
167
|
+
const now = /* @__PURE__ */ new Date();
|
|
168
|
+
switch (period) {
|
|
169
|
+
case "hour": {
|
|
170
|
+
const d = new Date(now);
|
|
171
|
+
d.setUTCDate(d.getUTCDate() - 1);
|
|
172
|
+
return d.toISOString().slice(0, 10);
|
|
173
|
+
}
|
|
174
|
+
case "day": {
|
|
175
|
+
const d = new Date(now);
|
|
176
|
+
d.setUTCDate(d.getUTCDate() - 7);
|
|
177
|
+
return d.toISOString().slice(0, 10);
|
|
178
|
+
}
|
|
179
|
+
case "week": {
|
|
180
|
+
const d = new Date(now);
|
|
181
|
+
d.setUTCDate(d.getUTCDate() - 28);
|
|
182
|
+
return d.toISOString().slice(0, 10);
|
|
183
|
+
}
|
|
184
|
+
case "month": {
|
|
185
|
+
const d = new Date(now);
|
|
186
|
+
d.setUTCMonth(d.getUTCMonth() - 6);
|
|
187
|
+
return d.toISOString().slice(0, 7);
|
|
188
|
+
}
|
|
189
|
+
default:
|
|
190
|
+
return "";
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
async function run(args) {
|
|
194
|
+
const { flags } = parseArgs(args, {
|
|
195
|
+
mind: { type: "string" },
|
|
196
|
+
channel: { type: "string" },
|
|
197
|
+
session: { type: "string" },
|
|
198
|
+
preset: { type: "string" },
|
|
199
|
+
limit: { type: "string" },
|
|
200
|
+
full: { type: "boolean" },
|
|
201
|
+
period: { type: "string" },
|
|
202
|
+
from: { type: "string" },
|
|
203
|
+
to: { type: "string" }
|
|
204
|
+
});
|
|
205
|
+
if (flags.period) {
|
|
206
|
+
const validPeriods = ["hour", "day", "week", "month"];
|
|
207
|
+
if (!validPeriods.includes(flags.period)) {
|
|
208
|
+
console.error(`Invalid period: ${flags.period}. Must be one of: ${validPeriods.join(", ")}`);
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
const name2 = resolveMindName(flags);
|
|
212
|
+
const params = new URLSearchParams();
|
|
213
|
+
params.set("mind", name2);
|
|
214
|
+
params.set("period", flags.period);
|
|
215
|
+
if (flags.from) params.set("from", flags.from);
|
|
216
|
+
else params.set("from", getDefaultRange(flags.period));
|
|
217
|
+
if (flags.to) params.set("to", flags.to);
|
|
218
|
+
if (flags.limit) params.set("limit", flags.limit);
|
|
219
|
+
const res2 = await daemonFetch(`/api/v1/history/summaries?${params}`);
|
|
220
|
+
if (!res2.ok) {
|
|
221
|
+
let errorMsg = `Failed to get summaries: ${res2.status}`;
|
|
222
|
+
try {
|
|
223
|
+
const data = await res2.json();
|
|
224
|
+
if (data.error) errorMsg = data.error;
|
|
225
|
+
} catch {
|
|
226
|
+
}
|
|
227
|
+
console.error(errorMsg);
|
|
228
|
+
process.exit(1);
|
|
229
|
+
}
|
|
230
|
+
const rows2 = await res2.json();
|
|
231
|
+
for (const row of rows2.reverse()) {
|
|
232
|
+
console.log(formatMetaSummary(row));
|
|
233
|
+
}
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const name = resolveMindName(flags);
|
|
237
|
+
const client = getClient();
|
|
238
|
+
const url = client.api.minds[":name"].history.$url({ param: { name } });
|
|
239
|
+
if (flags.channel) url.searchParams.set("channel", flags.channel);
|
|
240
|
+
if (flags.session) url.searchParams.set("session", flags.session);
|
|
241
|
+
if (flags.preset) url.searchParams.set("preset", flags.preset);
|
|
242
|
+
if (flags.limit) url.searchParams.set("limit", flags.limit);
|
|
243
|
+
if (flags.full) url.searchParams.set("full", "true");
|
|
244
|
+
const res = await daemonFetch(urlOf(url));
|
|
245
|
+
if (!res.ok) {
|
|
246
|
+
let errorMsg = `Failed to get history: ${res.status}`;
|
|
247
|
+
try {
|
|
248
|
+
const data = await res.json();
|
|
249
|
+
if (data.error) errorMsg = data.error;
|
|
250
|
+
} catch {
|
|
251
|
+
}
|
|
252
|
+
console.error(errorMsg);
|
|
253
|
+
process.exit(1);
|
|
254
|
+
}
|
|
255
|
+
const rows = await res.json();
|
|
256
|
+
const compact = isCompact();
|
|
257
|
+
for (const row of rows.reverse()) {
|
|
258
|
+
if (compact && (row.type === "done" || row.type === "usage")) continue;
|
|
259
|
+
console.log(compact ? formatRowCompact(row) : formatRow(row));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
export {
|
|
263
|
+
run
|
|
264
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
daemonFetch
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PLDWHR4D.js";
|
|
5
|
+
import "./chunk-N7BLAHNE.js";
|
|
6
|
+
import "./chunk-4JSR7YO7.js";
|
|
7
|
+
import "./chunk-7KJOFUNN.js";
|
|
8
8
|
|
|
9
9
|
// src/commands/mind-list.ts
|
|
10
10
|
async function run(_args) {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
MindManager,
|
|
4
|
+
getMindManager,
|
|
5
|
+
initMindManager
|
|
6
|
+
} from "./chunk-TAHX36HZ.js";
|
|
7
|
+
import "./chunk-CVL5IGIR.js";
|
|
8
|
+
import "./chunk-B2BVAIZ4.js";
|
|
9
|
+
import "./chunk-G53F3JA4.js";
|
|
10
|
+
import "./chunk-N3DNFPVA.js";
|
|
11
|
+
import "./chunk-OYAKCAVY.js";
|
|
12
|
+
import "./chunk-V45JXOWY.js";
|
|
13
|
+
import "./chunk-IS7WJ56Q.js";
|
|
14
|
+
import "./chunk-BTWAGDV5.js";
|
|
15
|
+
import "./chunk-M3K5AARV.js";
|
|
16
|
+
import "./chunk-PB65JZK2.js";
|
|
17
|
+
import "./chunk-BM474GX6.js";
|
|
18
|
+
import "./chunk-E5C7OWZ2.js";
|
|
19
|
+
import "./chunk-XWXBJQBE.js";
|
|
20
|
+
import "./chunk-BFWHBQK4.js";
|
|
21
|
+
import "./chunk-YUIHSKR6.js";
|
|
22
|
+
import "./chunk-U5BTYSAL.js";
|
|
23
|
+
import "./chunk-BDK73LK6.js";
|
|
24
|
+
import "./chunk-6OWJXUAR.js";
|
|
25
|
+
import "./chunk-N7BLAHNE.js";
|
|
26
|
+
import "./chunk-4JSR7YO7.js";
|
|
27
|
+
import "./chunk-7KJOFUNN.js";
|
|
28
|
+
export {
|
|
29
|
+
MindManager,
|
|
30
|
+
getMindManager,
|
|
31
|
+
initMindManager
|
|
32
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
resolveMindName
|
|
4
|
+
} from "./chunk-NAOW2CLO.js";
|
|
5
|
+
import {
|
|
6
|
+
parseArgs
|
|
7
|
+
} from "./chunk-D424ZQGI.js";
|
|
8
|
+
import "./chunk-7KJOFUNN.js";
|
|
9
|
+
|
|
10
|
+
// src/commands/mind-profile.ts
|
|
11
|
+
async function run(args) {
|
|
12
|
+
const { flags } = parseArgs(args, {
|
|
13
|
+
mind: { type: "string" },
|
|
14
|
+
"display-name": { type: "string" },
|
|
15
|
+
description: { type: "string" },
|
|
16
|
+
avatar: { type: "string" }
|
|
17
|
+
});
|
|
18
|
+
const name = resolveMindName(flags);
|
|
19
|
+
const displayName = flags["display-name"];
|
|
20
|
+
const description = flags.description;
|
|
21
|
+
const avatar = flags.avatar;
|
|
22
|
+
if (!displayName && !description && !avatar) {
|
|
23
|
+
console.error(
|
|
24
|
+
"Usage: volute mind profile [--mind <name>] [--display-name <name>] [--description <text>] [--avatar <path>]"
|
|
25
|
+
);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const { daemonFetch } = await import("./daemon-client-WOAQXXBM.js");
|
|
29
|
+
const body = {};
|
|
30
|
+
if (displayName) body.displayName = displayName;
|
|
31
|
+
if (description) body.description = description;
|
|
32
|
+
if (avatar) body.avatar = avatar;
|
|
33
|
+
const res = await daemonFetch(`/api/minds/${encodeURIComponent(name)}/profile`, {
|
|
34
|
+
method: "PATCH",
|
|
35
|
+
headers: { "Content-Type": "application/json" },
|
|
36
|
+
body: JSON.stringify(body)
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) {
|
|
39
|
+
const data = await res.json().catch(() => ({}));
|
|
40
|
+
console.error(data.error ?? `Failed to update profile (HTTP ${res.status})`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
console.log(`Profile updated for ${name}`);
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
run
|
|
47
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
sleepMind,
|
|
4
|
+
startMindFull,
|
|
5
|
+
startSpiritFull,
|
|
6
|
+
stopMindFull,
|
|
7
|
+
stopSpiritFull,
|
|
8
|
+
wakeMind
|
|
9
|
+
} from "./chunk-TAHX36HZ.js";
|
|
10
|
+
import "./chunk-CVL5IGIR.js";
|
|
11
|
+
import "./chunk-B2BVAIZ4.js";
|
|
12
|
+
import "./chunk-G53F3JA4.js";
|
|
13
|
+
import "./chunk-N3DNFPVA.js";
|
|
14
|
+
import "./chunk-OYAKCAVY.js";
|
|
15
|
+
import "./chunk-V45JXOWY.js";
|
|
16
|
+
import "./chunk-IS7WJ56Q.js";
|
|
17
|
+
import "./chunk-BTWAGDV5.js";
|
|
18
|
+
import "./chunk-M3K5AARV.js";
|
|
19
|
+
import "./chunk-PB65JZK2.js";
|
|
20
|
+
import "./chunk-BM474GX6.js";
|
|
21
|
+
import "./chunk-E5C7OWZ2.js";
|
|
22
|
+
import "./chunk-XWXBJQBE.js";
|
|
23
|
+
import "./chunk-BFWHBQK4.js";
|
|
24
|
+
import "./chunk-YUIHSKR6.js";
|
|
25
|
+
import "./chunk-U5BTYSAL.js";
|
|
26
|
+
import "./chunk-BDK73LK6.js";
|
|
27
|
+
import "./chunk-6OWJXUAR.js";
|
|
28
|
+
import "./chunk-N7BLAHNE.js";
|
|
29
|
+
import "./chunk-4JSR7YO7.js";
|
|
30
|
+
import "./chunk-7KJOFUNN.js";
|
|
31
|
+
export {
|
|
32
|
+
sleepMind,
|
|
33
|
+
startMindFull,
|
|
34
|
+
startSpiritFull,
|
|
35
|
+
stopMindFull,
|
|
36
|
+
stopSpiritFull,
|
|
37
|
+
wakeMind
|
|
38
|
+
};
|