volute 0.24.0 → 0.26.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 +15 -20
- package/dist/{activity-events-4O37J7PD.js → activity-events-ZMBAKLUF.js} +2 -2
- package/dist/api.d.ts +590 -10
- package/dist/{auth-HM2RSPY7.js → auth-4TV573WE.js} +2 -2
- package/dist/{channel-HZOSHGNF.js → channel-ZVZV42UD.js} +3 -3
- package/dist/{chunk-NOBRGACV.js → chunk-2VO7453N.js} +56 -19
- package/dist/{chunk-OOW675I3.js → chunk-3CFRE2VC.js} +931 -775
- package/dist/{chunk-PHHKNGA3.js → chunk-3TV4GLFO.js} +2 -2
- package/dist/{chunk-4TJ72QQ3.js → chunk-5Y3PBKW6.js} +3 -3
- package/dist/{chunk-BFK6SOEJ.js → chunk-J2CO4WEV.js} +1 -1
- package/dist/{chunk-TQDITGES.js → chunk-LX22GRG7.js} +10 -13
- package/dist/{chunk-E7GOKNOT.js → chunk-NWI2425I.js} +1 -1
- package/dist/{chunk-2767L2RZ.js → chunk-OZFKBXD6.js} +1 -1
- package/dist/{chunk-XLC342FO.js → chunk-SIAG3QMM.js} +14 -1
- package/dist/{chunk-RVKR2R7F.js → chunk-SSI47XP2.js} +10 -2
- package/dist/chunk-TZKJLDQN.js +78 -0
- package/dist/{chunk-P3W36ZGD.js → chunk-USNBKHYG.js} +33 -5
- package/dist/chunk-UTL75LP6.js +113 -0
- package/dist/{chunk-3AIBT4TW.js → chunk-V63B7DX3.js} +24 -1
- package/dist/{chunk-33XAVCS4.js → chunk-WBHMQ5OZ.js} +49 -0
- package/dist/{chunk-TRQEV3CD.js → chunk-WGOGUMPO.js} +22 -3
- package/dist/chunk-XOXLRRR2.js +176 -0
- package/dist/{chunk-JTDFJWI2.js → chunk-YJA7P64S.js} +1 -1
- package/dist/chunk-ZYGKG6VC.js +22 -0
- package/dist/cli.js +44 -20
- package/dist/{cloud-sync-DIU3OCPV.js → cloud-sync-NI2K3C7G.js} +11 -9
- package/dist/{connector-M6XFI6GM.js → connector-G722WXAU.js} +4 -4
- package/dist/{create-VDQJER52.js → create-4YBRTTJS.js} +1 -1
- package/dist/{daemon-client-JOVQZ52X.js → daemon-client-Z7FAJ6JW.js} +1 -1
- package/dist/{daemon-restart-YMPEATQH.js → daemon-restart-BJZ3O4U4.js} +6 -5
- package/dist/daemon.js +982 -340
- package/dist/{delete-2MRR4JX5.js → delete-27OYNK25.js} +1 -1
- package/dist/{down-674SX2IZ.js → down-7UKFMJJZ.js} +4 -4
- package/dist/{env-2FPOZK37.js → env-M336ONDP.js} +4 -4
- package/dist/{export-IKFAPRAO.js → export-HP4G5DQC.js} +1 -1
- package/dist/{file-KT3UIQM3.js → file-HUDKTRAS.js} +3 -3
- package/dist/{history-46WZN5CN.js → history-B64GTFTD.js} +3 -3
- package/dist/{import-FRDPQPJ2.js → import-XIB7UV4S.js} +2 -2
- package/dist/{log-6SGSSR3D.js → log-PBFNILJ4.js} +3 -3
- package/dist/{login-UO6AOVEA.js → login-6U7U6BNG.js} +1 -1
- package/dist/login-B5E7N7MY.js +46 -0
- package/dist/logout-XSJRYS3U.js +39 -0
- package/dist/{logs-HRBONI5I.js → logs-3CART7O7.js} +3 -3
- package/dist/{merge-KSFJKX6T.js → merge-VK2HSKMA.js} +3 -3
- package/dist/{message-delivery-S7BCNV6Y.js → message-delivery-MS5JYPZX.js} +11 -9
- package/dist/{mind-KPLCRKQA.js → mind-HZ3QSDDJ.js} +17 -17
- package/dist/{mind-activity-tracker-NMDDEV3K.js → mind-activity-tracker-4G6FURY2.js} +3 -3
- package/dist/{mind-manager-ZNRIYEK3.js → mind-manager-VVK67AY3.js} +6 -4
- package/dist/{mind-sleep-GHPTSAYN.js → mind-sleep-DTV7L44D.js} +3 -3
- package/dist/{mind-wake-BJDJFMDF.js → mind-wake-PFN4FN3T.js} +3 -3
- package/dist/notes-37FW2UR2.js +230 -0
- package/dist/{package-S5YF25XV.js → package-VZWLXPHV.js} +3 -1
- package/dist/{pages-TWR6U7DS.js → pages-DIIT5HMQ.js} +1 -1
- package/dist/{publish-BZNHKUUK.js → publish-HQV7YREB.js} +4 -4
- package/dist/{pull-D32SPFVU.js → pull-2MB4SK3C.js} +3 -3
- package/dist/{register-U2UO6TC4.js → register-EFND67FQ.js} +1 -1
- package/dist/{restart-5BMNV7KU.js → restart-CCK7D6TV.js} +3 -3
- package/dist/sandbox-EHGFF52K.js +19 -0
- package/dist/{schedule-YEFDLVMJ.js → schedule-6F7ELB2M.js} +3 -3
- package/dist/{seed-6FEKB3YC.js → seed-E5OQGWX3.js} +1 -1
- package/dist/{send-IISDYFCL.js → send-IH6XZKPC.js} +6 -20
- package/dist/service-LLBV3R7M.js +122 -0
- package/dist/setup-F6TWFYGQ.js +371 -0
- package/dist/setup-YGAAIKKZ.js +17 -0
- package/dist/{shared-LWMNTTZN.js → shared-UMO4S7CC.js} +4 -4
- package/dist/{skill-BQOFACEI.js → skill-42LGFBQC.js} +13 -5
- 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/imagegen/SKILL.md +37 -0
- package/dist/skills/imagegen/references/INSTALL.md +13 -0
- package/dist/skills/imagegen/scripts/imagegen.ts +136 -0
- package/dist/skills/notes/SKILL.md +34 -0
- package/dist/skills/resonance/SKILL.md +73 -0
- package/dist/skills/resonance/assets/default-config.json +21 -0
- package/dist/skills/resonance/references/INSTALL.md +23 -0
- package/dist/skills/resonance/scripts/resonance.ts +1250 -0
- package/dist/skills/volute-mind/SKILL.md +23 -3
- package/dist/{sleep-manager-XXSWQQLE.js → sleep-manager-EE4NRN2Q.js} +11 -9
- package/dist/{sprout-CGSW4CF5.js → sprout-QL74KR2X.js} +5 -5
- package/dist/{start-C7XITZ5O.js → start-O5JQASRC.js} +3 -3
- package/dist/{status-SIRPLEZC.js → status-FZBEBM7Q.js} +3 -3
- package/dist/{status-LYS4NUOZ.js → status-WXD4HXRL.js} +3 -3
- package/dist/{stop-CVKBSLXY.js → stop-2SOG5NYF.js} +3 -3
- package/dist/up-SDMCSVI3.js +17 -0
- package/dist/{update-7XCZMYBT.js → update-5VUDAI3D.js} +6 -6
- package/dist/{upgrade-7RUIXGOO.js → upgrade-QCCO33BK.js} +1 -1
- package/dist/{variant-UGREB4G5.js → variant-WWLDY6D5.js} +4 -4
- package/dist/{version-notify-SZ75QRGO.js → version-notify-USFZBWMG.js} +11 -9
- package/dist/web-assets/assets/index-CUQ31ieL.js +69 -0
- package/dist/web-assets/assets/index-CW8NSl1o.css +1 -0
- package/dist/web-assets/favicon.png +0 -0
- package/dist/web-assets/index.html +5 -4
- package/dist/web-assets/logo.png +0 -0
- package/drizzle/0015_notes.sql +23 -0
- package/drizzle/0016_note_reactions_and_replies.sql +15 -0
- package/drizzle/meta/_journal.json +14 -0
- package/package.json +3 -1
- package/templates/_base/.init/.config/hooks/wake-context.sh +7 -0
- package/templates/_base/home/public/.gitkeep +0 -0
- package/templates/_base/src/lib/startup.ts +8 -0
- 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/chunk-NWPT4ASZ.js +0 -89
- package/dist/service-FASYWLTC.js +0 -247
- package/dist/setup-BMLM2UTK.js +0 -230
- package/dist/up-OMHACRJL.js +0 -15
- package/dist/web-assets/assets/index-Bx9WDoaQ.js +0 -69
- package/dist/web-assets/assets/index-Clz8OhmJ.css +0 -1
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
isSandboxEnabled,
|
|
4
|
+
wrapForSandbox
|
|
5
|
+
} from "./chunk-UTL75LP6.js";
|
|
5
6
|
import {
|
|
6
7
|
getDb,
|
|
7
8
|
mindHistory,
|
|
8
9
|
systemPrompts
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WBHMQ5OZ.js";
|
|
10
11
|
import {
|
|
11
12
|
logger_default
|
|
12
13
|
} from "./chunk-YUIHSKR6.js";
|
|
14
|
+
import {
|
|
15
|
+
loadMergedEnv
|
|
16
|
+
} from "./chunk-PHU4DEAJ.js";
|
|
13
17
|
import {
|
|
14
18
|
chownMindDir,
|
|
15
19
|
isIsolationEnabled,
|
|
16
20
|
wrapForIsolation
|
|
17
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-XOXLRRR2.js";
|
|
18
22
|
import {
|
|
19
23
|
findMind,
|
|
20
24
|
findVariant,
|
|
@@ -82,8 +86,7 @@ var PROMPT_KEYS = [
|
|
|
82
86
|
"reply_instructions",
|
|
83
87
|
"channel_invite",
|
|
84
88
|
"pre_sleep",
|
|
85
|
-
"wake_summary"
|
|
86
|
-
"wake_trigger_summary"
|
|
89
|
+
"wake_summary"
|
|
87
90
|
];
|
|
88
91
|
var PROMPT_DEFAULTS = {
|
|
89
92
|
seed_soul: {
|
|
@@ -179,15 +182,9 @@ To reject, delete \${filePath}`,
|
|
|
179
182
|
category: "system"
|
|
180
183
|
},
|
|
181
184
|
wake_summary: {
|
|
182
|
-
content: "Good morning \u2014 it's ${currentDate}. You slept from ${sleepTime} to now (${duration}).\n\n${
|
|
185
|
+
content: "Good morning \u2014 it's ${currentDate}. You slept from ${sleepTime} to now (${duration}).\n\n${sleepActivity}",
|
|
183
186
|
description: "Wake-up summary after scheduled sleep",
|
|
184
|
-
variables: ["currentDate", "sleepTime", "duration", "
|
|
185
|
-
category: "system"
|
|
186
|
-
},
|
|
187
|
-
wake_trigger_summary: {
|
|
188
|
-
content: "You were woken during sleep by a message on ${triggerChannel}. It's ${currentDate} \u2014 you've been asleep since ${sleepTime} (${duration}).\n\nYou have this full turn to respond and handle anything else. You'll return to sleep when you go idle.\n\n${queuedSummary}",
|
|
189
|
-
description: "Wake-up summary when woken by a trigger message",
|
|
190
|
-
variables: ["currentDate", "triggerChannel", "sleepTime", "duration", "queuedSummary"],
|
|
187
|
+
variables: ["currentDate", "sleepTime", "duration", "sleepActivity"],
|
|
191
188
|
category: "system"
|
|
192
189
|
}
|
|
193
190
|
};
|
|
@@ -295,6 +292,31 @@ var RotatingLog = class extends Writable {
|
|
|
295
292
|
}
|
|
296
293
|
};
|
|
297
294
|
|
|
295
|
+
// src/lib/daemon/mind-tokens.ts
|
|
296
|
+
import { randomUUID } from "crypto";
|
|
297
|
+
var tokenToMind = /* @__PURE__ */ new Map();
|
|
298
|
+
var mindToToken = /* @__PURE__ */ new Map();
|
|
299
|
+
function generateMindToken(mindName) {
|
|
300
|
+
revokeMindToken(mindName);
|
|
301
|
+
const token = randomUUID();
|
|
302
|
+
tokenToMind.set(token, mindName);
|
|
303
|
+
mindToToken.set(mindName, token);
|
|
304
|
+
return token;
|
|
305
|
+
}
|
|
306
|
+
function revokeMindToken(mindName) {
|
|
307
|
+
const token = mindToToken.get(mindName);
|
|
308
|
+
if (token) {
|
|
309
|
+
tokenToMind.delete(token);
|
|
310
|
+
mindToToken.delete(mindName);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
function resolveMindToken(token) {
|
|
314
|
+
return tokenToMind.get(token) ?? null;
|
|
315
|
+
}
|
|
316
|
+
function getMindToken(mindName) {
|
|
317
|
+
return mindToToken.get(mindName) ?? null;
|
|
318
|
+
}
|
|
319
|
+
|
|
298
320
|
// src/lib/daemon/restart-tracker.ts
|
|
299
321
|
var DEFAULT_MAX_ATTEMPTS = 5;
|
|
300
322
|
var DEFAULT_BASE_DELAY = 3e3;
|
|
@@ -420,6 +442,7 @@ var MindManager = class {
|
|
|
420
442
|
}
|
|
421
443
|
}
|
|
422
444
|
const logStream = new RotatingLog(resolve(logsDir, "mind.log"));
|
|
445
|
+
const mindToken = generateMindToken(name);
|
|
423
446
|
const mindEnv = loadMergedEnv(name);
|
|
424
447
|
const env = {
|
|
425
448
|
...process.env,
|
|
@@ -428,6 +451,7 @@ var MindManager = class {
|
|
|
428
451
|
VOLUTE_STATE_DIR: stateDir(name),
|
|
429
452
|
VOLUTE_MIND_DIR: dir,
|
|
430
453
|
VOLUTE_MIND_PORT: String(port),
|
|
454
|
+
VOLUTE_DAEMON_TOKEN: mindToken,
|
|
431
455
|
// Strip CLAUDECODE so the Agent SDK can spawn Claude Code subprocesses
|
|
432
456
|
CLAUDECODE: void 0
|
|
433
457
|
};
|
|
@@ -436,7 +460,16 @@ var MindManager = class {
|
|
|
436
460
|
}
|
|
437
461
|
const tsxBin = resolve(dir, "node_modules", ".bin", "tsx");
|
|
438
462
|
const tsxArgs = ["src/server.ts", "--port", String(port)];
|
|
439
|
-
|
|
463
|
+
let spawnCmd;
|
|
464
|
+
let spawnArgs;
|
|
465
|
+
if (isIsolationEnabled()) {
|
|
466
|
+
[spawnCmd, spawnArgs] = wrapForIsolation(tsxBin, tsxArgs, name);
|
|
467
|
+
} else if (isSandboxEnabled()) {
|
|
468
|
+
[spawnCmd, spawnArgs] = await wrapForSandbox(tsxBin, tsxArgs, dir, name);
|
|
469
|
+
} else {
|
|
470
|
+
spawnCmd = tsxBin;
|
|
471
|
+
spawnArgs = tsxArgs;
|
|
472
|
+
}
|
|
440
473
|
const spawnOpts = {
|
|
441
474
|
cwd: dir,
|
|
442
475
|
stdio: ["ignore", "pipe", "pipe"],
|
|
@@ -548,16 +581,17 @@ var MindManager = class {
|
|
|
548
581
|
if (this.shuttingDown || this.stopping.has(name)) return;
|
|
549
582
|
mlog.error(`mind ${name} exited with code ${code}`);
|
|
550
583
|
try {
|
|
551
|
-
const { getSleepManagerIfReady } = await import("./sleep-manager-
|
|
552
|
-
|
|
584
|
+
const { getSleepManagerIfReady } = await import("./sleep-manager-EE4NRN2Q.js");
|
|
585
|
+
const sleepState = getSleepManagerIfReady()?.getState(name);
|
|
586
|
+
if (sleepState?.sleeping) {
|
|
553
587
|
mlog.info(`${name} is sleeping \u2014 skipping crash recovery`);
|
|
554
588
|
return;
|
|
555
589
|
}
|
|
556
590
|
} catch (err) {
|
|
557
591
|
mlog.warn(`failed to check sleep state for ${name}`, logger_default.errorData(err));
|
|
558
592
|
}
|
|
559
|
-
import("./mind-activity-tracker-
|
|
560
|
-
import("./activity-events-
|
|
593
|
+
import("./mind-activity-tracker-4G6FURY2.js").then(({ markIdle }) => markIdle(name)).catch((err) => mlog.warn(`failed to mark ${name} idle after crash`, logger_default.errorData(err)));
|
|
594
|
+
import("./activity-events-ZMBAKLUF.js").then(
|
|
561
595
|
({ publish }) => publish({ type: "mind_stopped", mind: name, summary: `${name} crashed (exit ${code})` })
|
|
562
596
|
).catch((err) => mlog.warn(`failed to publish crash event for ${name}`, logger_default.errorData(err)));
|
|
563
597
|
const { shouldRestart, delay, attempt } = this.restartTracker.recordCrash(name);
|
|
@@ -605,6 +639,7 @@ var MindManager = class {
|
|
|
605
639
|
}, 5e3);
|
|
606
640
|
});
|
|
607
641
|
this.stopping.delete(name);
|
|
642
|
+
revokeMindToken(name);
|
|
608
643
|
if (this.restartTracker.reset(name)) this.saveCrashAttempts();
|
|
609
644
|
rmSync2(mindPidPath(name), { force: true });
|
|
610
645
|
if (!this.shuttingDown) {
|
|
@@ -686,6 +721,8 @@ function getMindManager() {
|
|
|
686
721
|
|
|
687
722
|
export {
|
|
688
723
|
RotatingLog,
|
|
724
|
+
resolveMindToken,
|
|
725
|
+
getMindToken,
|
|
689
726
|
RestartTracker,
|
|
690
727
|
PROMPT_KEYS,
|
|
691
728
|
PROMPT_DEFAULTS,
|