volute 0.25.0 → 0.27.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 +28 -33
- package/dist/{activity-events-4O37J7PD.js → activity-events-BBIEA2F4.js} +2 -3
- package/dist/api.d.ts +886 -220
- package/dist/{archive-4ZQYK5MN.js → archive-UA4BDFXQ.js} +2 -2
- package/dist/{auth-HM2RSPY7.js → auth-D3OT2ARB.js} +3 -3
- package/dist/bridge-FQHZL3MC.js +206 -0
- package/dist/chat-MHJ3L6JQ.js +58 -0
- package/dist/{chunk-PHU4DEAJ.js → chunk-2WPW7OT6.js} +3 -3
- package/dist/{chunk-BOTQ25QT.js → chunk-2YP2TVDT.js} +138 -56
- package/dist/{chunk-DG7TO7EE.js → chunk-4WXYUOAK.js} +5 -7
- package/dist/{chunk-JTDFJWI2.js → chunk-AW7PFDVN.js} +5 -5
- package/dist/{chunk-2767L2RZ.js → chunk-EHYDTZTF.js} +6 -6
- package/dist/{chunk-ZSH4G2P5.js → chunk-GIE6CSN5.js} +17 -17
- package/dist/chunk-H7OZRFJB.js +432 -0
- package/dist/{chunk-ON3FF5JA.js → chunk-HDN7MNGD.js} +3 -3
- package/dist/chunk-IAYBDWVG.js +477 -0
- package/dist/chunk-IKRVFPWU.js +83 -0
- package/dist/{chunk-TRQEV3CD.js → chunk-JGFVMROS.js} +32 -6
- package/dist/{chunk-PHHKNGA3.js → chunk-JKOWNZ4P.js} +3 -3
- package/dist/{chunk-E7GOKNOT.js → chunk-K5NAC55T.js} +1 -1
- package/dist/{chunk-HFCBO2GL.js → chunk-KDGS53OS.js} +4 -4
- package/dist/chunk-KTLFDYPT.js +61 -0
- package/dist/{chunk-3AIBT4TW.js → chunk-LAC664WU.js} +30 -4
- package/dist/{chunk-PMX4EIJK.js → chunk-OQZH4PBB.js} +467 -1054
- package/dist/{chunk-SHSWYG2J.js → chunk-PHSAT7YL.js} +71 -58
- package/dist/chunk-RKQEHRBB.js +177 -0
- package/dist/{chunk-RVKR2R7F.js → chunk-SSI47XP2.js} +10 -2
- package/dist/chunk-T6HKBWXZ.js +23 -0
- package/dist/chunk-USUXRNVD.js +113 -0
- package/dist/{chunk-BFK6SOEJ.js → chunk-VIVMW2H2.js} +4 -4
- package/dist/{chunk-KTJGZ7M7.js → chunk-XBLSAVJF.js} +1 -1
- package/dist/chunk-ZYGKG6VC.js +22 -0
- package/dist/cli.js +51 -32
- package/dist/{cloud-sync-PPBBJDY6.js → cloud-sync-T7M3ESC3.js} +15 -12
- package/dist/connectors/discord-bridge.js +158 -0
- package/dist/connectors/slack-bridge.js +119 -0
- package/dist/connectors/telegram-bridge.js +133 -0
- package/dist/conversations-M2K4253F.js +55 -0
- package/dist/create-D7J73A6H.js +45 -0
- package/dist/{create-VDQJER52.js → create-QWV73WXD.js} +1 -1
- package/dist/{daemon-client-JOVQZ52X.js → daemon-client-I42FK2BF.js} +2 -2
- package/dist/{daemon-restart-FDNOZEAD.js → daemon-restart-M2QTYMEG.js} +7 -6
- package/dist/daemon.js +2247 -1085
- package/dist/db-IC4J52XQ.js +8 -0
- package/dist/{delete-2MRR4JX5.js → delete-4JYGD4VN.js} +1 -1
- package/dist/down-LVBXEULC.js +14 -0
- package/dist/{env-2FPOZK37.js → env-YJMUMFIY.js} +5 -5
- package/dist/{export-IKFAPRAO.js → export-BOJQWBMA.js} +4 -4
- package/dist/{file-KT3UIQM3.js → file-CR36YUPD.js} +4 -4
- package/dist/{history-46WZN5CN.js → history-XKRTAFS2.js} +7 -7
- package/dist/{import-TH26J76F.js → import-SRTQXBGH.js} +4 -4
- package/dist/join-J4QU42DL.js +66 -0
- package/dist/list-R73GENNL.js +40 -0
- package/dist/{log-6SGSSR3D.js → log-ABYNVYJ3.js} +4 -4
- package/dist/login-3QZNR2DF.js +46 -0
- package/dist/{login-UO6AOVEA.js → login-XX37I52P.js} +3 -3
- package/dist/logout-T53VKCPU.js +39 -0
- package/dist/{logout-UKD5LA37.js → logout-W4KOOBIT.js} +2 -2
- package/dist/{logs-HRBONI5I.js → logs-U35JR2KE.js} +7 -7
- package/dist/{merge-KSFJKX6T.js → merge-LNSMSAOF.js} +4 -4
- package/dist/message-delivery-LDXLGERA.js +25 -0
- package/dist/migrate-registry-to-db-XC7T5B7P.js +110 -0
- package/dist/{mind-YVWAHL2A.js → mind-DI33C74K.js} +25 -25
- package/dist/{mind-activity-tracker-NMDDEV3K.js → mind-activity-tracker-EN6XNXPF.js} +3 -4
- package/dist/{mind-manager-4NDNAYAB.js → mind-manager-M6EMUW5I.js} +6 -5
- package/dist/{mind-sleep-GHPTSAYN.js → mind-sleep-BTSWQNAC.js} +4 -4
- package/dist/{mind-wake-BJDJFMDF.js → mind-wake-SBAKIDVP.js} +4 -4
- package/dist/notes-XCER3I7M.js +220 -0
- package/dist/{package-3HF5MXU2.js → package-7WY6VKU3.js} +2 -1
- package/dist/{pages-Y6DRWUOJ.js → pages-6EBS6CBR.js} +2 -2
- package/dist/{publish-EEKTZBHW.js → publish-66UB2ZFY.js} +5 -5
- package/dist/{pull-D32SPFVU.js → pull-XCHJTM5M.js} +4 -4
- package/dist/read-36UFXN3G.js +46 -0
- package/dist/{register-U2UO6TC4.js → register-6B2CXTYM.js} +3 -3
- package/dist/{registry-D2BSQ2X5.js → registry-NDNOOYG4.js} +15 -9
- package/dist/{restart-5BMNV7KU.js → restart-6ESL3NBO.js} +6 -6
- package/dist/sandbox-TGBX22DS.js +19 -0
- package/dist/{schedule-YEFDLVMJ.js → schedule-QTJMFATP.js} +7 -7
- package/dist/{seed-6FEKB3YC.js → seed-SSUCYYDF.js} +2 -2
- package/dist/{send-IISDYFCL.js → send-ZNCJDSRP.js} +28 -36
- package/dist/service-6LIN3F3K.js +122 -0
- package/dist/setup-JG4QAEBV.js +371 -0
- package/dist/setup-JHL5ZEST.js +17 -0
- package/dist/{shared-LWMNTTZN.js → shared-ML5I4Q2A.js} +4 -4
- package/dist/{skill-T3EMR6IR.js → skill-AUAQTSP5.js} +7 -7
- package/dist/skills/dreaming/SKILL.md +68 -0
- package/dist/skills/dreaming/references/INSTALL.md +56 -0
- package/dist/skills/dreaming/scripts/dream.ts +289 -0
- package/dist/skills/dreaming/scripts/wake-context-dreams.sh +30 -0
- package/dist/skills/notes/SKILL.md +34 -0
- package/dist/skills/orientation/SKILL.md +3 -3
- package/dist/skills/volute-mind/SKILL.md +32 -30
- package/dist/sleep-manager-MWYHM5HV.js +29 -0
- package/dist/split-TKJ5OT3P.js +63 -0
- package/dist/{sprout-QJVGJDSH.js → sprout-IJVVKSJ2.js} +6 -7
- package/dist/{start-C7XITZ5O.js → start-EUJSS5R4.js} +4 -4
- package/dist/{status-SIRPLEZC.js → status-77YEPHMW.js} +5 -5
- package/dist/{status-LYS4NUOZ.js → status-7GA4SM4Y.js} +4 -4
- package/dist/{status-LV34BG6G.js → status-THLOBLWG.js} +2 -2
- package/dist/{stop-CVKBSLXY.js → stop-3XAITBBF.js} +6 -6
- package/dist/{tailscale-AJ4VL5XK.js → tailscale-NY5MUMY3.js} +1 -1
- package/dist/up-NKSMXBWR.js +17 -0
- package/dist/{update-7XCZMYBT.js → update-PTSH22AZ.js} +11 -11
- package/dist/{update-check-F5Z3ALXX.js → update-check-64FWC4Y2.js} +2 -2
- package/dist/{upgrade-7RUIXGOO.js → upgrade-HA47CS4C.js} +12 -5
- package/dist/variant-7TGZHOU3.js +41 -0
- package/dist/{version-notify-AZQMC32A.js → version-notify-5Z4MNR6M.js} +26 -28
- package/dist/web-assets/assets/index-CI5wgghI.css +1 -0
- package/dist/web-assets/assets/index-is5CvJWH.js +75 -0
- package/dist/web-assets/favicon.png +0 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0015_notes.sql +23 -0
- package/drizzle/0016_note_reactions_and_replies.sql +15 -0
- package/drizzle/0017_minds.sql +16 -0
- package/drizzle/meta/_journal.json +21 -0
- package/package.json +2 -1
- package/templates/_base/.init/.config/hooks/wake-context.sh +7 -0
- package/templates/_base/.init/.config/prompts.json +2 -2
- package/templates/_base/home/VOLUTE.md +5 -5
- package/templates/_base/src/lib/startup.ts +10 -2
- package/templates/claude/src/agent.ts +51 -1
- package/templates/claude/src/server.ts +1 -0
- package/templates/pi/package.json.tmpl +1 -0
- package/templates/pi/src/agent.ts +48 -1
- package/templates/pi/src/lib/subagents.ts +150 -0
- package/templates/pi/src/server.ts +1 -0
- package/dist/channel-HZOSHGNF.js +0 -260
- package/dist/chunk-33XAVCS4.js +0 -203
- package/dist/chunk-B2CPS4QU.js +0 -283
- package/dist/chunk-NWPT4ASZ.js +0 -89
- package/dist/chunk-SIAG3QMM.js +0 -42
- package/dist/chunk-WSLPZF72.js +0 -173
- package/dist/connector-M6XFI6GM.js +0 -147
- package/dist/connectors/discord.js +0 -177
- package/dist/connectors/slack.js +0 -181
- package/dist/connectors/telegram.js +0 -187
- package/dist/down-674SX2IZ.js +0 -14
- package/dist/message-delivery-XMGV3FUM.js +0 -23
- package/dist/service-FASYWLTC.js +0 -247
- package/dist/setup-BMLM2UTK.js +0 -230
- package/dist/sleep-manager-RKTFZPD3.js +0 -27
- package/dist/up-CJ26KQLN.js +0 -15
- package/dist/variant-UGREB4G5.js +0 -207
- package/dist/web-assets/assets/index-CGPSVu19.js +0 -69
- package/dist/web-assets/assets/index-V_rNDsM8.css +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/connectors/bridge-sdk.ts
|
|
4
|
+
function loadBridgeEnv() {
|
|
5
|
+
const daemonUrl = process.env.VOLUTE_DAEMON_URL;
|
|
6
|
+
const daemonToken = process.env.VOLUTE_DAEMON_TOKEN;
|
|
7
|
+
const platform = process.env.VOLUTE_BRIDGE_PLATFORM;
|
|
8
|
+
if (!daemonUrl || !daemonToken || !platform) {
|
|
9
|
+
console.error(
|
|
10
|
+
"Missing required env vars: VOLUTE_DAEMON_URL, VOLUTE_DAEMON_TOKEN, VOLUTE_BRIDGE_PLATFORM"
|
|
11
|
+
);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
return { daemonUrl, daemonToken, platform };
|
|
15
|
+
}
|
|
16
|
+
function getHeaders(env) {
|
|
17
|
+
return {
|
|
18
|
+
"Content-Type": "application/json",
|
|
19
|
+
Authorization: `Bearer ${env.daemonToken}`,
|
|
20
|
+
Origin: env.daemonUrl
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async function sendToBridge(env, message) {
|
|
24
|
+
const url = `${env.daemonUrl}/api/bridges/${env.platform}/inbound`;
|
|
25
|
+
try {
|
|
26
|
+
const res = await fetch(url, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: getHeaders(env),
|
|
29
|
+
body: JSON.stringify(message)
|
|
30
|
+
});
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
const body = await res.text().catch(() => "");
|
|
33
|
+
console.error(`Bridge inbound returned ${res.status}: ${body}`);
|
|
34
|
+
return { ok: false, error: `Bridge returned ${res.status}` };
|
|
35
|
+
}
|
|
36
|
+
return await res.json();
|
|
37
|
+
} catch (err) {
|
|
38
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
39
|
+
console.error(`Failed to send bridge message: ${detail}`);
|
|
40
|
+
return { ok: false, error: `Failed to reach daemon: ${detail}` };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function onShutdown(cleanup) {
|
|
44
|
+
const handler = () => {
|
|
45
|
+
Promise.resolve(cleanup()).then(
|
|
46
|
+
() => process.exit(0),
|
|
47
|
+
(err) => {
|
|
48
|
+
console.error(`Shutdown error: ${err}`);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
process.on("SIGINT", handler);
|
|
54
|
+
process.on("SIGTERM", handler);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
loadBridgeEnv,
|
|
59
|
+
sendToBridge,
|
|
60
|
+
onShutdown
|
|
61
|
+
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
execInherit
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-AW7PFDVN.js";
|
|
5
5
|
import {
|
|
6
|
-
voluteHome
|
|
7
|
-
|
|
6
|
+
voluteHome,
|
|
7
|
+
voluteSystemDir
|
|
8
|
+
} from "./chunk-H7OZRFJB.js";
|
|
8
9
|
|
|
9
10
|
// src/lib/service-mode.ts
|
|
10
11
|
import { execFileSync } from "child_process";
|
|
@@ -20,6 +21,7 @@ var LAUNCHD_PLIST_PATH = resolve(
|
|
|
20
21
|
"LaunchAgents",
|
|
21
22
|
`${LAUNCHD_PLIST_LABEL}.plist`
|
|
22
23
|
);
|
|
24
|
+
var SYSTEM_LAUNCHD_PLIST_PATH = "/Library/LaunchDaemons/com.volute.daemon.plist";
|
|
23
25
|
var HEALTH_POLL_TIMEOUT = 3e4;
|
|
24
26
|
var STOP_GRACE_TIMEOUT = 1e4;
|
|
25
27
|
var POLL_INTERVAL = 500;
|
|
@@ -38,6 +40,9 @@ function getServiceMode() {
|
|
|
38
40
|
} catch {
|
|
39
41
|
}
|
|
40
42
|
}
|
|
43
|
+
if (process.platform === "darwin" && existsSync(SYSTEM_LAUNCHD_PLIST_PATH)) {
|
|
44
|
+
return "system-launchd";
|
|
45
|
+
}
|
|
41
46
|
if (process.platform === "darwin" && existsSync(LAUNCHD_PLIST_PATH)) {
|
|
42
47
|
return "user-launchd";
|
|
43
48
|
}
|
|
@@ -92,6 +97,9 @@ async function startService(mode) {
|
|
|
92
97
|
case "user-systemd":
|
|
93
98
|
await execInherit("systemctl", ["--user", "start", "volute"]);
|
|
94
99
|
break;
|
|
100
|
+
case "system-launchd":
|
|
101
|
+
await execInherit("sudo", ["launchctl", "load", SYSTEM_LAUNCHD_PLIST_PATH]);
|
|
102
|
+
break;
|
|
95
103
|
case "user-launchd":
|
|
96
104
|
await execInherit("launchctl", ["load", LAUNCHD_PLIST_PATH]);
|
|
97
105
|
break;
|
|
@@ -105,6 +113,9 @@ async function stopService(mode) {
|
|
|
105
113
|
case "user-systemd":
|
|
106
114
|
await execInherit("systemctl", ["--user", "stop", "volute"]);
|
|
107
115
|
break;
|
|
116
|
+
case "system-launchd":
|
|
117
|
+
await execInherit("sudo", ["launchctl", "unload", SYSTEM_LAUNCHD_PLIST_PATH]);
|
|
118
|
+
break;
|
|
108
119
|
case "user-launchd":
|
|
109
120
|
await execInherit("launchctl", ["unload", LAUNCHD_PLIST_PATH]);
|
|
110
121
|
break;
|
|
@@ -118,6 +129,16 @@ async function restartService(mode) {
|
|
|
118
129
|
case "user-systemd":
|
|
119
130
|
await execInherit("systemctl", ["--user", "restart", "volute"]);
|
|
120
131
|
break;
|
|
132
|
+
case "system-launchd":
|
|
133
|
+
try {
|
|
134
|
+
await execInherit("sudo", ["launchctl", "unload", SYSTEM_LAUNCHD_PLIST_PATH]);
|
|
135
|
+
} catch (err) {
|
|
136
|
+
console.warn(
|
|
137
|
+
`Warning: launchctl unload failed: ${err instanceof Error ? err.message : err}`
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
await execInherit("sudo", ["launchctl", "load", SYSTEM_LAUNCHD_PLIST_PATH]);
|
|
141
|
+
break;
|
|
121
142
|
case "user-launchd":
|
|
122
143
|
try {
|
|
123
144
|
await execInherit("launchctl", ["unload", LAUNCHD_PLIST_PATH]);
|
|
@@ -131,7 +152,9 @@ async function restartService(mode) {
|
|
|
131
152
|
}
|
|
132
153
|
}
|
|
133
154
|
function readDaemonConfig() {
|
|
134
|
-
const
|
|
155
|
+
const newPath = resolve(voluteSystemDir(), "daemon.json");
|
|
156
|
+
const legacyPath = resolve(voluteHome(), "daemon.json");
|
|
157
|
+
const configPath = existsSync(newPath) ? newPath : legacyPath;
|
|
135
158
|
if (!existsSync(configPath)) return { hostname: "127.0.0.1", port: 1618 };
|
|
136
159
|
try {
|
|
137
160
|
const config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
@@ -152,6 +175,8 @@ function modeLabel(mode) {
|
|
|
152
175
|
return "system service (systemd)";
|
|
153
176
|
case "user-systemd":
|
|
154
177
|
return "user service (systemd)";
|
|
178
|
+
case "system-launchd":
|
|
179
|
+
return "system service (launchd)";
|
|
155
180
|
case "user-launchd":
|
|
156
181
|
return "user service (launchd)";
|
|
157
182
|
case "manual":
|
|
@@ -164,6 +189,7 @@ export {
|
|
|
164
189
|
USER_SYSTEMD_UNIT,
|
|
165
190
|
LAUNCHD_PLIST_LABEL,
|
|
166
191
|
LAUNCHD_PLIST_PATH,
|
|
192
|
+
SYSTEM_LAUNCHD_PLIST_PATH,
|
|
167
193
|
getServiceMode,
|
|
168
194
|
getDaemonUrl,
|
|
169
195
|
pollHealth,
|