volute 0.34.0 → 0.35.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 +7 -6
- package/dist/accept-ZBDVVCEU.js +42 -0
- package/dist/{activity-events-BN7V6KCC.js → activity-events-ZW4SDL2C.js} +4 -4
- package/dist/{ai-service-PSILB5WD.js → ai-service-LURBEDDB.js} +5 -5
- package/dist/{api-client-XUXOB7LI.js → api-client-3A77HMH7.js} +1 -1
- package/dist/api.d.ts +1 -5618
- package/dist/{archive-C2VEMQOR.js → archive-ESU2FUN4.js} +3 -3
- package/dist/{auth-ZFZXJZDQ.js → auth-WX4TESEI.js} +5 -5
- package/dist/bridge-PXIO6PS2.js +206 -0
- package/dist/chat-QXAJF3FU.js +51 -0
- package/dist/{chunk-7F2SW2KD.js → chunk-2TGZJFAT.js} +3 -3
- package/dist/{chunk-6LXAAQ43.js → chunk-33ODGMFZ.js} +1 -1
- package/dist/{chunk-4JSR7YO7.js → chunk-5N7Y5WAM.js} +1 -1
- package/dist/{chunk-FYCALD4Q.js → chunk-5T5YMX6S.js} +1 -1
- package/dist/{chunk-B2BVAIZ4.js → chunk-5XJYUFZH.js} +21 -15
- package/dist/{chunk-M3K5AARV.js → chunk-A2ZLHBHG.js} +2 -2
- package/dist/{chunk-U5BTYSAL.js → chunk-AN2W47GW.js} +2 -2
- package/dist/{chunk-G53F3JA4.js → chunk-AOB6GVRM.js} +1 -1
- package/dist/{chunk-N7BLAHNE.js → chunk-BDYXIWA5.js} +5 -5
- package/dist/{chunk-YUIHSKR6.js → chunk-BKF4WQCY.js} +2 -2
- package/dist/{chunk-6OWJXUAR.js → chunk-BMZQYACC.js} +2 -2
- package/dist/{chunk-NAOW2CLO.js → chunk-BTY4WNFE.js} +1 -1
- package/dist/{chunk-MLOQKQNB.js → chunk-BV65KRHM.js} +2 -2
- package/dist/{chunk-XWXBJQBE.js → chunk-CORXD635.js} +4 -4
- package/dist/{chunk-PVY5W6QN.js → chunk-F7ZNLYKZ.js} +2 -2
- package/dist/{chunk-BFWHBQK4.js → chunk-FT5KETXZ.js} +3 -3
- package/dist/{chunk-N3DNFPVA.js → chunk-IJHIXLVN.js} +8 -8
- package/dist/{chunk-V6ZCNULL.js → chunk-J6CJQDWI.js} +37 -28
- package/dist/{chunk-4RQBJWQX.js → chunk-LOPXTW6H.js} +1 -1
- package/dist/{chunk-47ZPNLF4.js → chunk-MDJGMOSD.js} +8 -137
- package/dist/{chunk-BTWAGDV5.js → chunk-N446KRP7.js} +3 -3
- package/dist/{chunk-6WAWMWR5.js → chunk-N5LMGYXX.js} +2 -2
- package/dist/{chunk-G6BSYHPK.js → chunk-NJK5SDGR.js} +1 -1
- package/dist/{chunk-D424ZQGI.js → chunk-O7IGP7ZW.js} +11 -3
- package/dist/{chunk-2IOP6PHB.js → chunk-OTC67N2Z.js} +2 -2
- package/dist/{chunk-V45JXOWY.js → chunk-PWQ2ITYG.js} +4 -4
- package/dist/{chunk-KTLFDYPT.js → chunk-QCH6K235.js} +1 -1
- package/dist/chunk-QHG4OMZL.js +145 -0
- package/dist/{chunk-IS7WJ56Q.js → chunk-QWTR6AWZ.js} +3 -3
- package/dist/chunk-TXSA4Q3V.js +116 -0
- package/dist/{chunk-BDK73LK6.js → chunk-VHJRZM2S.js} +2 -2
- package/dist/{chunk-SSI47XP2.js → chunk-VHWGEJ4V.js} +1 -1
- package/dist/chunk-VY3RB2V7.js +164 -0
- package/dist/chunk-WJPROOU5.js +8314 -0
- package/dist/{chunk-E5C7OWZ2.js → chunk-WZRZFFCL.js} +8 -8
- package/dist/{chunk-BM474GX6.js → chunk-XRQSAMX2.js} +4 -4
- package/dist/{chunk-OYAKCAVY.js → chunk-ZSR72JB3.js} +1 -1
- package/dist/{chunk-PLDWHR4D.js → chunk-ZX7EAV5J.js} +17 -7
- package/dist/cli.js +90 -29
- package/dist/clock-HSEKS5AR.js +289 -0
- package/dist/{cloud-sync-TG3TIX5H.js → cloud-sync-6JL4C24T.js} +21 -22
- package/dist/config-UTS7QULS.js +76 -0
- package/dist/connectors/discord-bridge.js +3 -3
- package/dist/connectors/slack-bridge.js +3 -3
- package/dist/connectors/telegram-bridge.js +3 -3
- package/dist/{conversations-HL2JP5GI.js → conversations-2PW57WO2.js} +5 -5
- package/dist/create-5BPOOJAN.js +75 -0
- package/dist/create-UVCK2CS6.js +50 -0
- package/dist/daemon-client-RVIKXGFQ.js +12 -0
- package/dist/daemon-restart-HSZ3BCX5.js +65 -0
- package/dist/daemon.js +845 -1766
- package/dist/{db-PLEDCBHZ.js → db-BDMH4SZ2.js} +7 -3
- package/dist/{db-RYX3SS2W.js → db-BVBJ57TU.js} +2 -2
- package/dist/delete-L5PAVDGQ.js +42 -0
- package/dist/delivery-manager-H5ZVBMCQ.js +31 -0
- package/dist/{delivery-router-D5ELDMS2.js → delivery-router-HEJSJAHQ.js} +4 -4
- package/dist/down-74VXM45A.js +17 -0
- package/dist/env-E4XHO2BI.js +223 -0
- package/dist/{exec-DVLXKRIO.js → exec-PY7THYH4.js} +4 -4
- package/dist/export-OAS6QVBN.js +113 -0
- package/dist/{extension-PM42QCID.js → extension-D74CNM7G.js} +25 -33
- package/dist/{extensions-BBGVL5JC.js → extensions-XDDFY72A.js} +22 -11
- package/dist/files-CWTK6V3H.js +53 -0
- package/dist/import-5A3T7QV4.js +143 -0
- package/dist/{isolation-62MKDZN3.js → isolation-TK5RX2WM.js} +3 -3
- package/dist/join-DF5XSJAC.js +67 -0
- package/dist/list-PDMQM7ZV.js +53 -0
- package/dist/login-7TE6CIZF.js +60 -0
- package/dist/login-GOTAYLXP.js +51 -0
- package/dist/logout-6KIA74EV.js +29 -0
- package/dist/logout-T4XS6LRU.js +50 -0
- package/dist/message-delivery-GRC4W6P7.js +41 -0
- package/dist/mind-5IEYKV7I.js +97 -0
- package/dist/{mind-activity-tracker-2ACNHA7B.js → mind-activity-tracker-QBLIV7ZJ.js} +5 -5
- package/dist/{mind-history-WOYFLQAI.js → mind-history-IE2QH7U5.js} +82 -71
- package/dist/mind-list-GEWHWAL4.js +38 -0
- package/dist/mind-manager-HFLB5653.js +31 -0
- package/dist/mind-profile-DCBDVF5B.js +53 -0
- package/dist/mind-service-X2CAA6W6.js +37 -0
- package/dist/mind-sleep-ITCF6OQA.js +47 -0
- package/dist/mind-status-X4SX3YUG.js +65 -0
- package/dist/mind-wake-KXMKMGWX.js +42 -0
- package/dist/{package-V2WHWVG6.js → package-D2FSVFAX.js} +5 -5
- package/dist/read-67VRP2DO.js +91 -0
- package/dist/{read-stdin-PIRM6A2Y.js → read-stdin-3X5VYKNS.js} +1 -1
- package/dist/register-SB7NXCOE.js +51 -0
- package/dist/{registry-UYV5S6QT.js → registry-GBSNW3HG.js} +2 -2
- package/dist/reject-MUR2KWJ4.js +40 -0
- package/dist/restart-5EGG4JXU.js +42 -0
- package/dist/{sandbox-SI5HMBP3.js → sandbox-R37VIU36.js} +5 -5
- package/dist/scheduler-Y7O4CJXL.js +31 -0
- package/dist/{schema-ETMABTW4.js → schema-XVZ2CLKW.js} +1 -1
- package/dist/{seed-WNGI6PNW.js → seed-EQORWX77.js} +2 -2
- package/dist/seed-check-KJNTL72M.js +35 -0
- package/dist/seed-cmd-ZM2XGVU2.js +30 -0
- package/dist/seed-create-DRWGGHEI.js +113 -0
- package/dist/seed-sprout-JYXGXOP3.js +148 -0
- package/dist/send-JBJJQ7CA.js +409 -0
- package/dist/service-WNPCNHOX.js +121 -0
- package/dist/{setup-Z3DEVWV7.js → setup-BJ4YAY26.js} +153 -127
- package/dist/{setup-GGMKENLN.js → setup-RHJRFURI.js} +3 -3
- package/dist/skill-TAAKEYBV.js +389 -0
- package/dist/skills/volute-mind/SKILL.md +3 -7
- package/dist/skills/volute-mind/references/extensions.md +8 -11
- package/dist/{skills-Q6VZ2UGD.js → skills-EKMCQ46K.js} +7 -7
- package/dist/sleep-manager-7KFK3USC.js +35 -0
- package/dist/spirit-ZFRDXMG7.js +23 -0
- package/dist/split-AWVOYOPZ.js +64 -0
- package/dist/{sprout-E3HJIV2Z.js → sprout-HE4TITMK.js} +2 -2
- package/dist/start-3UXOPXQG.js +39 -0
- package/dist/status-ZK34WYIM.js +125 -0
- package/dist/stop-3XYIBGFM.js +41 -0
- package/dist/system-chat-IDPHYHY4.js +35 -0
- package/dist/systems-O43WGQY6.js +52 -0
- package/dist/{tailscale-ZEUK7GKZ.js → tailscale-ZIZ2HWJ5.js} +4 -4
- package/dist/{template-hash-EJRTKE36.js → template-hash-A7FNHTB7.js} +2 -2
- package/dist/up-77ICEDEW.js +19 -0
- package/dist/update-ANE5ZM7F.js +225 -0
- package/dist/{update-check-X3YG4WVP.js → update-check-UV55CBEP.js} +3 -3
- package/dist/upgrade-ZMDGC7M2.js +74 -0
- package/dist/variant-QWL2WSRI.js +62 -0
- package/dist/{version-notify-YCH4UVQ2.js → version-notify-FXSEMXWW.js} +28 -27
- package/dist/{volute-config-WBKYJGYQ.js → volute-config-D2XVS2YI.js} +1 -1
- package/dist/web-assets/assets/index-BhxWKvbB.css +1 -0
- package/dist/web-assets/assets/index-CHVKJ9II.js +75 -0
- package/dist/web-assets/index.html +2 -2
- package/dist/web-assets/sw.js +117 -0
- package/package.json +5 -5
- package/packages/extensions/pages/dist/ui/assets/index-DKZLNMED.js +2 -0
- package/packages/extensions/pages/dist/ui/index.html +1 -1
- package/packages/extensions/pages/skills/pages/SKILL.md +84 -9
- package/templates/_base/src/lib/auto-commit.ts +8 -8
- package/templates/_base/src/lib/volute-server.ts +6 -0
- package/templates/claude/src/agent.ts +8 -1
- package/dist/accept-TW6V4WI4.js +0 -42
- package/dist/bridge-O753D5F4.js +0 -207
- package/dist/chat-BHYX7DJ4.js +0 -68
- package/dist/chunk-47XDEWWV.js +0 -156
- package/dist/chunk-CVL5IGIR.js +0 -2084
- package/dist/chunk-PB65JZK2.js +0 -85
- package/dist/chunk-TAHX36HZ.js +0 -3679
- package/dist/clock-3X4DSC2N.js +0 -281
- package/dist/config-OROA5DUA.js +0 -72
- package/dist/create-3SEKKI6P.js +0 -71
- package/dist/create-UOSOQ2HN.js +0 -44
- package/dist/daemon-client-WOAQXXBM.js +0 -12
- package/dist/daemon-restart-5ABHNXJZ.js +0 -52
- package/dist/delete-KYOVWR23.js +0 -35
- package/dist/delivery-manager-2BR5NZKF.js +0 -32
- package/dist/down-QVFN4UPK.js +0 -15
- package/dist/env-R34DT7XL.js +0 -195
- package/dist/export-6ZXAXATG.js +0 -112
- package/dist/files-VQV2VZQO.js +0 -47
- package/dist/import-MK2I2T6F.js +0 -23
- package/dist/join-DGYHTJUH.js +0 -66
- package/dist/list-C644WTHV.js +0 -49
- package/dist/login-IIGEQPHL.js +0 -47
- package/dist/login-KZQLMAWE.js +0 -47
- package/dist/logout-AGTZVRGP.js +0 -40
- package/dist/logout-KD6GXIJJ.js +0 -21
- package/dist/message-delivery-V3R6NXJP.js +0 -42
- package/dist/mind-BI4EPBVZ.js +0 -108
- package/dist/mind-list-6VPM7GUQ.js +0 -30
- package/dist/mind-manager-MWW3BTS4.js +0 -32
- package/dist/mind-profile-WPG42U5Y.js +0 -47
- package/dist/mind-service-VIKZJK2M.js +0 -38
- package/dist/mind-sleep-XDISJY74.js +0 -42
- package/dist/mind-status-7FTZWPZF.js +0 -56
- package/dist/mind-wake-KIIKEI3A.js +0 -37
- package/dist/read-H5C26YO7.js +0 -85
- package/dist/register-J27WP33N.js +0 -47
- package/dist/reject-OEANJYIA.js +0 -40
- package/dist/restart-V5EGYBJG.js +0 -33
- package/dist/scheduler-AGG3L2FO.js +0 -32
- package/dist/seed-check-PXTH7YXS.js +0 -32
- package/dist/seed-cmd-VENFTGS3.js +0 -36
- package/dist/seed-create-663ALOKH.js +0 -112
- package/dist/seed-sprout-EH3AGKAI.js +0 -132
- package/dist/send-7FUUUZZH.js +0 -386
- package/dist/skill-DKNYJS4P.js +0 -362
- package/dist/skills/shared-files/SKILL.md +0 -44
- package/dist/skills/shared-files/scripts/merge.ts +0 -72
- package/dist/skills/shared-files/scripts/pull.ts +0 -52
- package/dist/sleep-manager-BJK2ROPX.js +0 -36
- package/dist/spirit-4JP4TY4C.js +0 -23
- package/dist/split-3YPMS2CL.js +0 -63
- package/dist/start-W3TPKX4D.js +0 -33
- package/dist/status-4OVFXFEJ.js +0 -115
- package/dist/stop-GTT6YWYO.js +0 -32
- package/dist/system-channel-DXD2JBOU.js +0 -36
- package/dist/system-chat-TYLOL7SX.js +0 -36
- package/dist/systems-AYLO727G.js +0 -61
- package/dist/up-PA7F2CXE.js +0 -18
- package/dist/update-HG4LCUSG.js +0 -215
- package/dist/upgrade-YGNIDICG.js +0 -67
- package/dist/variant-MZUMRTQO.js +0 -41
- package/dist/web-assets/assets/index-DiiwC-CZ.css +0 -1
- package/dist/web-assets/assets/index-d6y5b9Ij.js +0 -75
- package/packages/extensions/pages/dist/ui/assets/index-tLTROSk5.js +0 -2
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
extractArchive,
|
|
6
6
|
isHomeOnlyArchive,
|
|
7
7
|
readManifest
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-N5LMGYXX.js";
|
|
9
|
+
import "./chunk-BDYXIWA5.js";
|
|
10
|
+
import "./chunk-5N7Y5WAM.js";
|
|
11
11
|
import "./chunk-7KJOFUNN.js";
|
|
12
12
|
export {
|
|
13
13
|
addHistoryToArchive,
|
|
@@ -17,11 +17,11 @@ import {
|
|
|
17
17
|
syncMindProfile,
|
|
18
18
|
updateUserProfile,
|
|
19
19
|
verifyUser
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-XRQSAMX2.js";
|
|
21
|
+
import "./chunk-CORXD635.js";
|
|
22
|
+
import "./chunk-BKF4WQCY.js";
|
|
23
|
+
import "./chunk-BDYXIWA5.js";
|
|
24
|
+
import "./chunk-5N7Y5WAM.js";
|
|
25
25
|
import "./chunk-7KJOFUNN.js";
|
|
26
26
|
export {
|
|
27
27
|
approveUser,
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
command,
|
|
4
|
+
subcommands
|
|
5
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
6
|
+
import "./chunk-O7IGP7ZW.js";
|
|
7
|
+
import {
|
|
8
|
+
daemonFetch
|
|
9
|
+
} from "./chunk-ZX7EAV5J.js";
|
|
10
|
+
import "./chunk-7KJOFUNN.js";
|
|
11
|
+
|
|
12
|
+
// packages/cli/src/commands/chat/bridge.ts
|
|
13
|
+
var bridgeAddCmd = command({
|
|
14
|
+
name: "volute chat bridge add",
|
|
15
|
+
description: "Enable a bridge with a default mind",
|
|
16
|
+
args: [
|
|
17
|
+
{
|
|
18
|
+
name: "platform",
|
|
19
|
+
required: true,
|
|
20
|
+
description: "Bridge platform (e.g. discord, slack, telegram)"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
flags: {
|
|
24
|
+
"default-mind": { type: "string", description: "Mind to route DMs to (required)" }
|
|
25
|
+
},
|
|
26
|
+
run: async ({ args, flags }) => {
|
|
27
|
+
const platform = args.platform;
|
|
28
|
+
const defaultMind = flags["default-mind"];
|
|
29
|
+
if (!defaultMind) {
|
|
30
|
+
console.error("--default-mind is required (mind to route DMs to)");
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
const res = await daemonFetch(`/api/bridges/${encodeURIComponent(platform)}`, {
|
|
34
|
+
method: "POST",
|
|
35
|
+
headers: { "Content-Type": "application/json" },
|
|
36
|
+
body: JSON.stringify({ defaultMind })
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) {
|
|
39
|
+
const data = await res.json().catch(() => ({}));
|
|
40
|
+
if (data.error === "missing_env" && data.missing) {
|
|
41
|
+
console.error(`Missing required environment variables:`);
|
|
42
|
+
for (const v of data.missing) {
|
|
43
|
+
console.error(` ${v.name} \u2014 ${v.description}`);
|
|
44
|
+
}
|
|
45
|
+
console.error(`
|
|
46
|
+
Set them with: volute env set <VAR> <value>`);
|
|
47
|
+
} else {
|
|
48
|
+
console.error(data.error ?? `Failed to add bridge: ${res.status}`);
|
|
49
|
+
}
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
console.log(`Bridge ${platform} enabled.`);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
var bridgeRemoveCmd = command({
|
|
56
|
+
name: "volute chat bridge remove",
|
|
57
|
+
description: "Disable a bridge",
|
|
58
|
+
args: [{ name: "platform", required: true, description: "Bridge platform to remove" }],
|
|
59
|
+
flags: {},
|
|
60
|
+
run: async ({ args }) => {
|
|
61
|
+
const platform = args.platform;
|
|
62
|
+
const res = await daemonFetch(`/api/bridges/${encodeURIComponent(platform)}`, {
|
|
63
|
+
method: "DELETE"
|
|
64
|
+
});
|
|
65
|
+
if (!res.ok) {
|
|
66
|
+
console.error(`Failed to remove bridge: ${res.status}`);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
console.log(`Bridge ${platform} removed.`);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
var bridgeListCmd = command({
|
|
73
|
+
name: "volute chat bridge list",
|
|
74
|
+
description: "Show all bridges and their status",
|
|
75
|
+
args: [],
|
|
76
|
+
flags: {},
|
|
77
|
+
run: async () => {
|
|
78
|
+
const res = await daemonFetch("/api/bridges");
|
|
79
|
+
if (!res.ok) {
|
|
80
|
+
console.error(`Failed to list bridges: ${res.status}`);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
const bridges = await res.json();
|
|
84
|
+
if (bridges.length === 0) {
|
|
85
|
+
console.log("No bridges configured. Use 'volute chat bridge add <platform>' to set one up.");
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
for (const b of bridges) {
|
|
89
|
+
const status = b.running ? "running" : b.enabled ? "stopped" : "disabled";
|
|
90
|
+
console.log(` ${b.displayName} (${b.platform}) ${status} default: ${b.defaultMind}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
var bridgeMapCmd = command({
|
|
95
|
+
name: "volute chat bridge map",
|
|
96
|
+
description: "Map an external channel to a Volute channel",
|
|
97
|
+
args: [
|
|
98
|
+
{ name: "target", required: true, description: "External channel (platform:channel)" },
|
|
99
|
+
{ name: "volute-channel", required: true, description: "Volute channel name" }
|
|
100
|
+
],
|
|
101
|
+
flags: {},
|
|
102
|
+
run: async ({ args }) => {
|
|
103
|
+
const target = args.target;
|
|
104
|
+
const voluteChannel = args["volute-channel"];
|
|
105
|
+
const colonIdx = target.indexOf(":");
|
|
106
|
+
if (colonIdx < 1) {
|
|
107
|
+
console.error("Target must be in format platform:channel (e.g. discord:my-server/general)");
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
const platform = target.slice(0, colonIdx);
|
|
111
|
+
const externalChannel = target.slice(colonIdx + 1);
|
|
112
|
+
const res = await daemonFetch(`/api/bridges/${encodeURIComponent(platform)}/mappings`, {
|
|
113
|
+
method: "PUT",
|
|
114
|
+
headers: { "Content-Type": "application/json" },
|
|
115
|
+
body: JSON.stringify({ externalChannel, voluteChannel })
|
|
116
|
+
});
|
|
117
|
+
if (!res.ok) {
|
|
118
|
+
const data = await res.json().catch(() => ({}));
|
|
119
|
+
console.error(data.error ?? `Failed to set mapping: ${res.status}`);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
console.log(`Mapped ${platform}:${externalChannel} \u2192 ${voluteChannel}`);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
var bridgeUnmapCmd = command({
|
|
126
|
+
name: "volute chat bridge unmap",
|
|
127
|
+
description: "Remove a channel mapping",
|
|
128
|
+
args: [{ name: "target", required: true, description: "External channel (platform:channel)" }],
|
|
129
|
+
flags: {},
|
|
130
|
+
run: async ({ args }) => {
|
|
131
|
+
const target = args.target;
|
|
132
|
+
const colonIdx = target.indexOf(":");
|
|
133
|
+
if (colonIdx < 1) {
|
|
134
|
+
console.error("Target must be in format platform:channel");
|
|
135
|
+
process.exit(1);
|
|
136
|
+
}
|
|
137
|
+
const platform = target.slice(0, colonIdx);
|
|
138
|
+
const externalChannel = target.slice(colonIdx + 1);
|
|
139
|
+
const res = await daemonFetch(
|
|
140
|
+
`/api/bridges/${encodeURIComponent(platform)}/mappings/${encodeURIComponent(externalChannel)}`,
|
|
141
|
+
{ method: "DELETE" }
|
|
142
|
+
);
|
|
143
|
+
if (!res.ok) {
|
|
144
|
+
console.error(`Failed to remove mapping: ${res.status}`);
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
console.log(`Removed mapping for ${platform}:${externalChannel}`);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
var bridgeMappingsCmd = command({
|
|
151
|
+
name: "volute chat bridge mappings",
|
|
152
|
+
description: "List channel mappings",
|
|
153
|
+
args: [{ name: "platform", description: "Filter by platform" }],
|
|
154
|
+
flags: {},
|
|
155
|
+
run: async ({ args }) => {
|
|
156
|
+
const platform = args.platform;
|
|
157
|
+
if (platform) {
|
|
158
|
+
const res = await daemonFetch(`/api/bridges/${encodeURIComponent(platform)}/mappings`);
|
|
159
|
+
if (!res.ok) {
|
|
160
|
+
console.error(`Failed to get mappings: ${res.status}`);
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
const mappings = await res.json();
|
|
164
|
+
if (Object.keys(mappings).length === 0) {
|
|
165
|
+
console.log(`No mappings for ${platform}.`);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
for (const [external, volute] of Object.entries(mappings)) {
|
|
169
|
+
console.log(` ${platform}:${external} \u2192 ${volute}`);
|
|
170
|
+
}
|
|
171
|
+
} else {
|
|
172
|
+
const res = await daemonFetch("/api/bridges");
|
|
173
|
+
if (!res.ok) {
|
|
174
|
+
console.error(`Failed to list bridges: ${res.status}`);
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
const bridges = await res.json();
|
|
178
|
+
let found = false;
|
|
179
|
+
for (const b of bridges) {
|
|
180
|
+
for (const [external, volute] of Object.entries(b.channelMappings)) {
|
|
181
|
+
console.log(` ${b.platform}:${external} \u2192 ${volute}`);
|
|
182
|
+
found = true;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (!found) {
|
|
186
|
+
console.log("No mappings configured.");
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
var cmd = subcommands({
|
|
192
|
+
name: "volute chat bridge",
|
|
193
|
+
description: "Manage platform bridges",
|
|
194
|
+
commands: {
|
|
195
|
+
add: { description: "Enable a bridge with a default mind", run: bridgeAddCmd.execute },
|
|
196
|
+
remove: { description: "Disable a bridge", run: bridgeRemoveCmd.execute },
|
|
197
|
+
list: { description: "Show all bridges and their status", run: bridgeListCmd.execute },
|
|
198
|
+
map: { description: "Map an external channel to a Volute channel", run: bridgeMapCmd.execute },
|
|
199
|
+
unmap: { description: "Remove a channel mapping", run: bridgeUnmapCmd.execute },
|
|
200
|
+
mappings: { description: "List channel mappings", run: bridgeMappingsCmd.execute }
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
var run = cmd.execute;
|
|
204
|
+
export {
|
|
205
|
+
run
|
|
206
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
subcommands
|
|
4
|
+
} from "./chunk-TXSA4Q3V.js";
|
|
5
|
+
import "./chunk-O7IGP7ZW.js";
|
|
6
|
+
import "./chunk-7KJOFUNN.js";
|
|
7
|
+
|
|
8
|
+
// packages/cli/src/commands/chat.ts
|
|
9
|
+
var cmd = subcommands({
|
|
10
|
+
name: "volute chat",
|
|
11
|
+
description: "Manage conversations and messages",
|
|
12
|
+
commands: {
|
|
13
|
+
send: {
|
|
14
|
+
description: "Send a message",
|
|
15
|
+
run: (args) => import("./send-JBJJQ7CA.js").then((m) => m.run(args))
|
|
16
|
+
},
|
|
17
|
+
list: {
|
|
18
|
+
description: "List conversations",
|
|
19
|
+
run: (args) => import("./list-PDMQM7ZV.js").then((m) => m.run(args))
|
|
20
|
+
},
|
|
21
|
+
read: {
|
|
22
|
+
description: "Read conversation messages",
|
|
23
|
+
run: (args) => import("./read-67VRP2DO.js").then((m) => m.run(args))
|
|
24
|
+
},
|
|
25
|
+
create: {
|
|
26
|
+
description: "Create a conversation",
|
|
27
|
+
run: (args) => import("./create-5BPOOJAN.js").then((m) => m.run(args))
|
|
28
|
+
},
|
|
29
|
+
bridge: {
|
|
30
|
+
description: "Manage platform bridges",
|
|
31
|
+
run: (args) => import("./bridge-PXIO6PS2.js").then((m) => m.run(args))
|
|
32
|
+
},
|
|
33
|
+
files: {
|
|
34
|
+
description: "List pending incoming files",
|
|
35
|
+
run: (args) => import("./files-CWTK6V3H.js").then((m) => m.run(args))
|
|
36
|
+
},
|
|
37
|
+
accept: {
|
|
38
|
+
description: "Accept a pending file",
|
|
39
|
+
run: (args) => import("./accept-ZBDVVCEU.js").then((m) => m.run(args))
|
|
40
|
+
},
|
|
41
|
+
reject: {
|
|
42
|
+
description: "Reject a pending file",
|
|
43
|
+
run: (args) => import("./reject-MUR2KWJ4.js").then((m) => m.run(args))
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
footer: "Use --mind <name> or VOLUTE_MIND to identify the mind."
|
|
47
|
+
});
|
|
48
|
+
var run = cmd.execute;
|
|
49
|
+
export {
|
|
50
|
+
run
|
|
51
|
+
};
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import {
|
|
3
3
|
exec,
|
|
4
4
|
execInherit
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-AN2W47GW.js";
|
|
6
6
|
import {
|
|
7
7
|
voluteSystemDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BDYXIWA5.js";
|
|
9
9
|
|
|
10
|
-
// src/lib/service-mode.ts
|
|
10
|
+
// packages/daemon/src/lib/service-mode.ts
|
|
11
11
|
import { execFileSync } from "child_process";
|
|
12
12
|
import { existsSync, readFileSync } from "fs";
|
|
13
13
|
import { homedir } from "os";
|
|
@@ -4,35 +4,41 @@ import {
|
|
|
4
4
|
composeTemplate,
|
|
5
5
|
copyTemplateToDir,
|
|
6
6
|
findTemplatesRoot
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AOB6GVRM.js";
|
|
8
8
|
import {
|
|
9
9
|
getSharedSkill,
|
|
10
10
|
installSkill
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IJHIXLVN.js";
|
|
12
12
|
import {
|
|
13
13
|
qualifyModelId,
|
|
14
14
|
resolveTemplate
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-FT5KETXZ.js";
|
|
16
16
|
import {
|
|
17
17
|
logger_default
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BKF4WQCY.js";
|
|
19
19
|
import {
|
|
20
20
|
exec
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-AN2W47GW.js";
|
|
22
22
|
import {
|
|
23
23
|
readGlobalConfig
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-BMZQYACC.js";
|
|
25
25
|
import {
|
|
26
26
|
addSpirit,
|
|
27
27
|
findMind,
|
|
28
28
|
nextPort,
|
|
29
29
|
voluteSystemDir
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-BDYXIWA5.js";
|
|
31
31
|
|
|
32
|
-
// src/lib/spirit.ts
|
|
32
|
+
// packages/daemon/src/lib/spirit.ts
|
|
33
33
|
import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
|
|
34
|
+
import { homedir } from "os";
|
|
34
35
|
import { resolve } from "path";
|
|
35
36
|
var slog = logger_default.child("spirit");
|
|
37
|
+
function npmEnv() {
|
|
38
|
+
const cacheDir = resolve(homedir(), ".npm");
|
|
39
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
40
|
+
return { ...process.env, npm_config_cache: cacheDir };
|
|
41
|
+
}
|
|
36
42
|
function spiritDir() {
|
|
37
43
|
return resolve(voluteSystemDir(), "spirit");
|
|
38
44
|
}
|
|
@@ -71,7 +77,7 @@ async function ensureSpiritProject() {
|
|
|
71
77
|
writeFileSync(configPath, `${JSON.stringify(mindConfig, null, 2)}
|
|
72
78
|
`);
|
|
73
79
|
}
|
|
74
|
-
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir });
|
|
80
|
+
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir, env: npmEnv() });
|
|
75
81
|
try {
|
|
76
82
|
await exec("git", ["init"], { cwd: dir });
|
|
77
83
|
await exec("git", ["add", "-A"], { cwd: dir });
|
|
@@ -96,7 +102,7 @@ async function ensureSpiritProject() {
|
|
|
96
102
|
slog.warn(`failed to install skill ${skillId} for spirit`, logger_default.errorData(err));
|
|
97
103
|
}
|
|
98
104
|
}
|
|
99
|
-
const { createMindUser, chownMindDir, ensureVoluteGroup } = await import("./isolation-
|
|
105
|
+
const { createMindUser, chownMindDir, ensureVoluteGroup } = await import("./isolation-TK5RX2WM.js");
|
|
100
106
|
ensureVoluteGroup();
|
|
101
107
|
createMindUser("volute", resolve(dir, "home"));
|
|
102
108
|
chownMindDir(dir, "volute");
|
|
@@ -128,10 +134,10 @@ async function syncSpiritTemplate() {
|
|
|
128
134
|
const newPkg = resolve(newComposed.composedDir, "package.json");
|
|
129
135
|
if (existsSync(newPkg)) {
|
|
130
136
|
cpSync(newPkg, resolve(dir, "package.json"));
|
|
131
|
-
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir });
|
|
137
|
+
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir, env: npmEnv() });
|
|
132
138
|
}
|
|
133
|
-
const db = await (await import("./db-
|
|
134
|
-
const { minds } = await import("./schema-
|
|
139
|
+
const db = await (await import("./db-BVBJ57TU.js")).getDb();
|
|
140
|
+
const { minds } = await import("./schema-XVZ2CLKW.js");
|
|
135
141
|
const { eq } = await import("drizzle-orm");
|
|
136
142
|
await db.update(minds).set({ template: expectedTemplate }).where(eq(minds.name, "volute"));
|
|
137
143
|
}
|
|
@@ -176,10 +182,10 @@ async function syncSpiritTemplate() {
|
|
|
176
182
|
if (composedContent !== currentContent) {
|
|
177
183
|
cpSync(composedPkg, currentPkg);
|
|
178
184
|
}
|
|
179
|
-
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir });
|
|
185
|
+
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir, env: npmEnv() });
|
|
180
186
|
}
|
|
181
187
|
} else if (nodeModulesMissing) {
|
|
182
|
-
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir });
|
|
188
|
+
await exec("npm", ["install", "--ignore-scripts"], { cwd: dir, env: npmEnv() });
|
|
183
189
|
}
|
|
184
190
|
for (const [p, content] of preserved) {
|
|
185
191
|
const full = resolve(dir, p);
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
stateDir,
|
|
4
4
|
voluteSystemDir
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BDYXIWA5.js";
|
|
6
6
|
|
|
7
|
-
// src/lib/env.ts
|
|
7
|
+
// packages/daemon/src/lib/env.ts
|
|
8
8
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
9
9
|
import { dirname, resolve } from "path";
|
|
10
10
|
function sharedEnvPath() {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
wrapForIsolation
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VHJRZM2S.js";
|
|
5
5
|
|
|
6
|
-
// src/lib/exec.ts
|
|
6
|
+
// packages/daemon/src/lib/exec.ts
|
|
7
7
|
import { execFile as execFileCb, execFileSync, spawn } from "child_process";
|
|
8
8
|
async function exec(cmd, args, options) {
|
|
9
9
|
const [wrappedCmd, wrappedArgs] = options?.mindName ? await wrapForIsolation(cmd, args, options.mindName) : [cmd, args];
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
minds,
|
|
4
4
|
schema_exports
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5N7Y5WAM.js";
|
|
6
6
|
|
|
7
|
-
// src/lib/db.ts
|
|
7
|
+
// packages/daemon/src/lib/db.ts
|
|
8
8
|
import { chmodSync, existsSync } from "fs";
|
|
9
9
|
import { dirname as dirname2, resolve as resolve2 } from "path";
|
|
10
10
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
@@ -12,7 +12,7 @@ import { sql } from "drizzle-orm";
|
|
|
12
12
|
import { drizzle } from "drizzle-orm/libsql";
|
|
13
13
|
import { migrate } from "drizzle-orm/libsql/migrator";
|
|
14
14
|
|
|
15
|
-
// src/lib/registry.ts
|
|
15
|
+
// packages/daemon/src/lib/registry.ts
|
|
16
16
|
import { mkdirSync } from "fs";
|
|
17
17
|
import { homedir } from "os";
|
|
18
18
|
import { dirname, resolve } from "path";
|
|
@@ -192,9 +192,9 @@ function daemonLoopback() {
|
|
|
192
192
|
return host;
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
// src/lib/db.ts
|
|
195
|
+
// packages/daemon/src/lib/db.ts
|
|
196
196
|
var __dirname = dirname2(fileURLToPath2(import.meta.url));
|
|
197
|
-
var migrationsFolder = existsSync(resolve2(__dirname, "../drizzle")) ? resolve2(__dirname, "../drizzle") : resolve2(__dirname, "../../drizzle");
|
|
197
|
+
var migrationsFolder = existsSync(resolve2(__dirname, "../drizzle")) ? resolve2(__dirname, "../drizzle") : existsSync(resolve2(__dirname, "../../drizzle")) ? resolve2(__dirname, "../../drizzle") : resolve2(__dirname, "../../../../drizzle");
|
|
198
198
|
var db = null;
|
|
199
199
|
var dbPromise = null;
|
|
200
200
|
async function getDb() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
// src/lib/log-buffer.ts
|
|
3
|
+
// packages/daemon/src/lib/log-buffer.ts
|
|
4
4
|
var LogBuffer = class {
|
|
5
5
|
entries = [];
|
|
6
6
|
maxSize = 1e3;
|
|
@@ -24,7 +24,7 @@ var LogBuffer = class {
|
|
|
24
24
|
};
|
|
25
25
|
var logBuffer = new LogBuffer();
|
|
26
26
|
|
|
27
|
-
// src/lib/logger.ts
|
|
27
|
+
// packages/daemon/src/lib/logger.ts
|
|
28
28
|
var LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
|
|
29
29
|
var minLevel = LEVELS[process.env.VOLUTE_LOG_LEVEL || "info"] ?? LEVELS.info;
|
|
30
30
|
var output = (line) => process.stderr.write(`${line}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
voluteSystemDir
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BDYXIWA5.js";
|
|
5
5
|
|
|
6
|
-
// src/lib/setup.ts
|
|
6
|
+
// packages/daemon/src/lib/setup.ts
|
|
7
7
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
8
8
|
import { resolve } from "path";
|
|
9
9
|
function configPath() {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
stateDir
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BDYXIWA5.js";
|
|
5
5
|
|
|
6
|
-
// src/lib/file-sharing.ts
|
|
6
|
+
// packages/daemon/src/lib/file-sharing.ts
|
|
7
7
|
import { randomBytes } from "crypto";
|
|
8
8
|
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
|
|
9
9
|
import { basename, join, normalize, resolve } from "path";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
logger_default
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BKF4WQCY.js";
|
|
5
5
|
import {
|
|
6
6
|
getDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BDYXIWA5.js";
|
|
8
8
|
import {
|
|
9
9
|
activity
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-5N7Y5WAM.js";
|
|
11
11
|
|
|
12
|
-
// src/lib/events/activity-events.ts
|
|
12
|
+
// packages/daemon/src/lib/events/activity-events.ts
|
|
13
13
|
var subscribers = /* @__PURE__ */ new Set();
|
|
14
14
|
function subscribe(callback) {
|
|
15
15
|
subscribers.add(callback);
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
composeTemplate,
|
|
4
4
|
findTemplatesRoot,
|
|
5
5
|
listFiles
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AOB6GVRM.js";
|
|
7
7
|
|
|
8
|
-
// src/lib/template-hash.ts
|
|
8
|
+
// packages/daemon/src/lib/template-hash.ts
|
|
9
9
|
import { createHash } from "crypto";
|
|
10
10
|
import { existsSync, readFileSync, rmSync } from "fs";
|
|
11
11
|
import { resolve } from "path";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
logger_default
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BKF4WQCY.js";
|
|
5
5
|
import {
|
|
6
6
|
readGlobalConfig,
|
|
7
7
|
writeGlobalConfig
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BMZQYACC.js";
|
|
9
9
|
|
|
10
|
-
// src/lib/ai-service.ts
|
|
10
|
+
// packages/daemon/src/lib/ai-service.ts
|
|
11
11
|
import { complete, getEnvApiKey, getModel, getModels, getProviders } from "@mariozechner/pi-ai";
|
|
12
12
|
import { getOAuthApiKey } from "@mariozechner/pi-ai/oauth";
|
|
13
13
|
var aiLog = logger_default.child("ai-service");
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
logger_default
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BKF4WQCY.js";
|
|
5
5
|
import {
|
|
6
6
|
exec,
|
|
7
7
|
gitExec
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-AN2W47GW.js";
|
|
9
9
|
import {
|
|
10
10
|
readGlobalConfig,
|
|
11
11
|
writeGlobalConfig
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BMZQYACC.js";
|
|
13
13
|
import {
|
|
14
14
|
getDb,
|
|
15
15
|
mindDir,
|
|
16
16
|
readRegistry,
|
|
17
17
|
voluteHome
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BDYXIWA5.js";
|
|
19
19
|
import {
|
|
20
20
|
sharedSkills
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-5N7Y5WAM.js";
|
|
22
22
|
|
|
23
|
-
// src/lib/skills.ts
|
|
23
|
+
// packages/daemon/src/lib/skills.ts
|
|
24
24
|
import { createHash } from "crypto";
|
|
25
25
|
import {
|
|
26
26
|
cpSync,
|
|
@@ -36,7 +36,7 @@ import { basename, dirname, join, resolve } from "path";
|
|
|
36
36
|
import { eq, sql } from "drizzle-orm";
|
|
37
37
|
var VALID_SKILL_ID = /^[a-zA-Z0-9_-]+$/;
|
|
38
38
|
var SEED_SKILLS = ["orientation", "memory"];
|
|
39
|
-
var STANDARD_SKILLS = ["volute-mind", "memory", "dreaming"
|
|
39
|
+
var STANDARD_SKILLS = ["volute-mind", "memory", "dreaming"];
|
|
40
40
|
function getStandardSkillsWithExtensions() {
|
|
41
41
|
const config = readGlobalConfig();
|
|
42
42
|
if (config.defaultSkills) return [...config.defaultSkills];
|
|
@@ -46,7 +46,7 @@ async function initDefaultSkills() {
|
|
|
46
46
|
const config = readGlobalConfig();
|
|
47
47
|
let extensionSkills = [];
|
|
48
48
|
try {
|
|
49
|
-
const { getExtensionStandardSkills } = await import("./extensions-
|
|
49
|
+
const { getExtensionStandardSkills } = await import("./extensions-XDDFY72A.js");
|
|
50
50
|
extensionSkills = getExtensionStandardSkills();
|
|
51
51
|
} catch (err) {
|
|
52
52
|
logger_default.warn("failed to load extension standard skills during init", logger_default.errorData(err));
|