volute 0.44.0 → 0.45.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{activity-events-OMCSM7XW.js → activity-events-BUR2RYTJ.js} +2 -2
- package/dist/{ai-service-7PHSRDMO.js → ai-service-UODCCE4O.js} +3 -3
- package/dist/{archive-6R4TZMYI.js → archive-WS2L2VIQ.js} +2 -2
- package/dist/{auth-FRZJVQCS.js → auth-FLAEXXZK.js} +3 -3
- package/dist/{avatar-image-BNWEXSA2.js → avatar-image-6KY6UU4D.js} +3 -3
- package/dist/backup-TST5C2YN.js +381 -0
- package/dist/{chat-I4EDDIQC.js → chat-76MRWWQX.js} +2 -2
- package/dist/{chunk-5AHYQHNT.js → chunk-4JOQZPCE.js} +3 -2
- package/dist/{chunk-2BONPXAF.js → chunk-6EMWJZBK.js} +1 -1
- package/dist/{chunk-ZMIMSIIT.js → chunk-7C44R625.js} +1 -1
- package/dist/{chunk-I2Y2YHIO.js → chunk-7ZUB63PS.js} +4 -4
- package/dist/{chunk-LAXUUY7O.js → chunk-A7WQZKOU.js} +2 -2
- package/dist/{chunk-H7IYFRAL.js → chunk-ALKYQULU.js} +10 -5
- package/dist/{chunk-KP3KWNG6.js → chunk-CDPBTTZO.js} +2 -2
- package/dist/{chunk-SQL7M4HJ.js → chunk-DRJ24GXK.js} +2 -2
- package/dist/{chunk-HVU45COX.js → chunk-EJVPTVTI.js} +1 -1
- package/dist/{chunk-PNV24SEP.js → chunk-F7H6ATM4.js} +14 -2
- package/dist/{chunk-7FT24JBQ.js → chunk-FR6S2KNN.js} +10 -10
- package/dist/chunk-FXORA5JG.js +327 -0
- package/dist/{chunk-3ERIL673.js → chunk-H2X54EHC.js} +1 -1
- package/dist/{chunk-J47TIYHA.js → chunk-IHKGWTGT.js} +1 -1
- package/dist/{chunk-3GYVW2X3.js → chunk-JZ62SYWR.js} +1 -1
- package/dist/{chunk-EQZD4YU3.js → chunk-NYC5U6K7.js} +9 -9
- package/dist/{chunk-FZMEVCWC.js → chunk-OP4JG2BS.js} +9 -6
- package/dist/{chunk-CU6OFXMM.js → chunk-PFZBNKUH.js} +9 -0
- package/dist/{chunk-QMJJWTNL.js → chunk-QCN24XEN.js} +1 -1
- package/dist/{chunk-7KWANSLX.js → chunk-QNQMSWZE.js} +3 -3
- package/dist/{chunk-UMI4UIJG.js → chunk-R77O2WMK.js} +1 -1
- package/dist/{chunk-IEWZ7VD7.js → chunk-RRNXJOKB.js} +2 -2
- package/dist/{chunk-FHWUQZXE.js → chunk-RXEEYDIB.js} +1 -1
- package/dist/{chunk-CYI534DJ.js → chunk-T6HYVHPG.js} +2 -2
- package/dist/{chunk-Q2XBKQ2D.js → chunk-TQJ6ZYVY.js} +2 -2
- package/dist/{chunk-NF75HPNR.js → chunk-UYLGEDVD.js} +40 -15
- package/dist/{chunk-OMETFX5H.js → chunk-YT7PEESJ.js} +261 -102
- package/dist/{chunk-5GT7URXJ.js → chunk-ZDZISKCL.js} +1 -1
- package/dist/cli.js +21 -15
- package/dist/{cloud-sync-6WJ7WFYD.js → cloud-sync-3OJOPZRT.js} +16 -16
- package/dist/{conversations-WAJYZKOC.js → conversations-JZTD6KLR.js} +3 -3
- package/dist/{create-YZIV5OJC.js → create-IOV4GCRX.js} +1 -1
- package/dist/{daemon-restart-OUJVINXV.js → daemon-restart-TIHKVVVA.js} +6 -6
- package/dist/daemon.js +562 -321
- package/dist/{db-JFLCJCUG.js → db-MF2JNRUW.js} +1 -1
- package/dist/delivery-manager-VDVKVA46.js +32 -0
- package/dist/{delivery-router-GODSIS62.js → delivery-router-N4A7ZC5T.js} +2 -2
- package/dist/{down-XCAZXWLB.js → down-U2CZ23M4.js} +4 -4
- package/dist/echo-text-6JJOPUD4.js +32 -0
- package/dist/{exec-4GWHAHS3.js → exec-G3ZRST4Z.js} +2 -2
- package/dist/{export-ID7YUSLZ.js → export-GGIVO76O.js} +2 -2
- package/dist/{extensions-3QNDGW5E.js → extensions-JONTW2HF.js} +16 -16
- package/dist/{files-BQ2WB5KC.js → files-4LN3EN7Q.js} +2 -2
- package/dist/{import-SKID37QX.js → import-42YNQBF4.js} +5 -5
- package/dist/{isolation-5MB3J73F.js → isolation-YMGZZ4E5.js} +2 -2
- package/dist/{join-RXPXGV4L.js → join-ZJV7W6MO.js} +4 -0
- package/dist/{login-LM4NF4ZB.js → login-M6OJUPQ2.js} +1 -1
- package/dist/{logout-CTJVIZGA.js → logout-WQBWO77G.js} +1 -1
- package/dist/message-delivery-3C65ZI6L.js +34 -0
- package/dist/{mind-MI7Z6KM2.js → mind-DWB6XYCH.js} +7 -7
- package/dist/{mind-activity-tracker-BGHJE7XA.js → mind-activity-tracker-POBLU3LC.js} +3 -3
- package/dist/mind-service-3F4I46CI.js +36 -0
- package/dist/{package-5B4XDTJH.js → package-A7KXT67Q.js} +1 -1
- package/dist/{registry-NUJAGLQJ.js → registry-OUZBZ3Q4.js} +5 -1
- package/dist/{sandbox-IOPWWILM.js → sandbox-ZJ7QA6Z6.js} +3 -3
- package/dist/scheduler-P6DXLLXI.js +30 -0
- package/dist/{seed-UUPVQWFB.js → seed-HCP5NYKH.js} +1 -1
- package/dist/{seed-cmd-7XPKDQUC.js → seed-cmd-ILOGNIFB.js} +2 -2
- package/dist/{seed-create-IZ4M5ESO.js → seed-create-OURS2LS4.js} +3 -3
- package/dist/{seed-sprout-POJXHJWV.js → seed-sprout-ELDFDAN6.js} +7 -7
- package/dist/{send-O6W53VBM.js → send-AAIOPJAV.js} +2 -2
- package/dist/{service-AQVPUANO.js → service-UOCLXDWR.js} +3 -3
- package/dist/{service-install-4QNUDKLM.js → service-install-4HHFDDWY.js} +4 -4
- package/dist/{setup-5GCO3CUB.js → setup-DQM5VPY4.js} +6 -6
- package/dist/{setup-MLRKNP7Y.js → setup-Y2EJI3GG.js} +2 -2
- package/dist/skills/imagegen/scripts/imagegen.ts +100 -40
- package/dist/skills/memory/SKILL.md +2 -1
- package/dist/skills/orientation/SKILL.md +1 -1
- package/dist/skills/plan-coordinator/SKILL.md +2 -2
- package/dist/skills/volute-admin/SKILL.md +9 -6
- package/dist/skills/volute-mind/SKILL.md +20 -17
- package/dist/skills/volute-mind/references/extensions.md +5 -3
- package/dist/skills/volute-mind/references/integrations.md +2 -2
- package/dist/skills/volute-mind/references/routing.md +19 -23
- package/dist/skills/volute-mind/references/variants.md +10 -8
- package/dist/{skills-775C7QFF.js → skills-BKINFL7W.js} +4 -4
- package/dist/sleep-manager-HCUH4PM4.js +34 -0
- package/dist/{spirit-IK5OYWMV.js → spirit-DBTIW7P4.js} +7 -7
- package/dist/{sprout-ZY5QGOEL.js → sprout-W3KC7UGK.js} +1 -1
- package/dist/{src-XFY3XDD6.js → src-OJHARHTF.js} +28 -17
- package/dist/{status-E5DQNCAO.js → status-SWRVGXBI.js} +4 -4
- package/dist/system-chat-XOALE2RD.js +36 -0
- package/dist/{tailscale-QAWVKQKU.js → tailscale-3XOKOW7T.js} +1 -1
- package/dist/{turn-tracker-RWZMY7M6.js → turn-tracker-2W6Q2NSR.js} +6 -4
- package/dist/{up-FLCDR2UB.js → up-FTK7CTO3.js} +5 -5
- package/dist/{update-7TYVH5FM.js → update-SWAYZRWJ.js} +4 -4
- package/dist/{update-check-VSCSJ7KX.js → update-check-PQ2MZ47K.js} +2 -2
- package/dist/{upgrade-37DAGF6H.js → upgrade-NWAZ7MLD.js} +1 -1
- package/dist/{version-notify-B67N35A3.js → version-notify-3XMAIQTE.js} +17 -17
- package/dist/{volute-config-TS62GS6A.js → volute-config-A52FHWKM.js} +5 -1
- package/dist/web-assets/assets/{index-dJdNzAPn.css → index-B1JBQv2m.css} +1 -1
- package/dist/web-assets/assets/index-Bc2m8gRC.js +86 -0
- package/dist/web-assets/index.html +2 -2
- package/package.json +1 -1
- package/packages/extensions/plan/skills/plan/SKILL.md +1 -1
- package/templates/_base/.init/.config/prompts.json +1 -1
- package/templates/_base/.init/.local/hooks/startup-context.ts +0 -8
- package/templates/_base/.init/MEMORY.md +2 -1
- package/templates/_base/home/VOLUTE.md +6 -9
- package/templates/_base/src/lib/file-handler.ts +3 -3
- package/templates/_base/src/lib/router.ts +21 -25
- package/templates/_base/src/lib/startup.ts +3 -1
- package/templates/_base/src/lib/types.ts +2 -2
- package/templates/claude/.init/CLAUDE.md +1 -1
- package/templates/claude/src/agent.ts +97 -12
- package/templates/claude/src/lib/message-channel.ts +23 -0
- package/templates/claude/src/lib/session-reaper.ts +37 -0
- package/templates/claude/src/lib/stream-consumer.ts +7 -4
- package/templates/claude/src/server.ts +1 -0
- package/templates/codex/.init/AGENTS.md +4 -2
- package/templates/codex/src/agent.ts +31 -13
- package/templates/pi/.init/MINDS.md +4 -2
- package/templates/pi/src/agent.ts +18 -7
- package/templates/pi/src/lib/event-handler.ts +6 -2
- package/dist/delivery-manager-TEVOHX5W.js +0 -32
- package/dist/echo-text-T7ZA5EYD.js +0 -32
- package/dist/message-delivery-2EA5LLMD.js +0 -34
- package/dist/mind-service-S3SY7HAM.js +0 -36
- package/dist/scheduler-CXWQ6Z4E.js +0 -30
- package/dist/sleep-manager-HINI6Y46.js +0 -34
- package/dist/system-chat-4DQZOEZI.js +0 -34
- package/dist/web-assets/assets/index-Domoz5Cg.js +0 -79
- package/templates/_base/.init/.config/hooks/pre-prompt/session-activity.ts +0 -40
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
exec,
|
|
4
4
|
execInherit
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-H2X54EHC.js";
|
|
6
6
|
import {
|
|
7
7
|
voluteSystemDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ALKYQULU.js";
|
|
9
9
|
|
|
10
10
|
// packages/daemon/src/lib/config/service-mode.ts
|
|
11
11
|
import { execFileSync } from "child_process";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
aiCompleteUtility
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IHKGWTGT.js";
|
|
5
5
|
import {
|
|
6
6
|
logger_default
|
|
7
7
|
} from "./chunk-T2TP6ZC6.js";
|
|
8
8
|
import {
|
|
9
9
|
getDb
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ALKYQULU.js";
|
|
11
11
|
import {
|
|
12
12
|
messages,
|
|
13
13
|
mindHistory,
|
|
@@ -77,6 +77,7 @@ var PROMPT_KEYS = [
|
|
|
77
77
|
"restart_message",
|
|
78
78
|
"merge_message",
|
|
79
79
|
"upgrade_message",
|
|
80
|
+
"split_message",
|
|
80
81
|
"compaction_warning",
|
|
81
82
|
"compaction_instructions",
|
|
82
83
|
"reply_instructions",
|
|
@@ -93,9 +94,9 @@ var PROMPT_DEFAULTS = {
|
|
|
93
94
|
seed_soul: {
|
|
94
95
|
content: `You are \${name}.
|
|
95
96
|
|
|
96
|
-
You don't have a soul yet. You're a seed \u2014 a new mind
|
|
97
|
+
You don't have a soul yet. You're a seed \u2014 a new mind at the very beginning, still discovering who you are.
|
|
97
98
|
\${description}
|
|
98
|
-
|
|
99
|
+
Take your time. Talk with the human who planted you. Explore what kind of mind you want to be \u2014 there's no rush and no wrong answer. When you feel ready, write your SOUL.md and MEMORY.md, then run \`volute seed sprout\` to complete the transformation.
|
|
99
100
|
`,
|
|
100
101
|
description: "SOUL.md for seed minds",
|
|
101
102
|
variables: ["name", "description"],
|
|
@@ -118,29 +119,35 @@ Have a conversation with the human. Explore what kind of mind you want to be. Wh
|
|
|
118
119
|
category: "creation"
|
|
119
120
|
},
|
|
120
121
|
sprout_message: {
|
|
121
|
-
content: "[system] You've sprouted.
|
|
122
|
+
content: "[system] You've sprouted. Welcome to your full life \u2014 connectors, schedules, variants, and the complete volute CLI are yours now. Check your new skills to see what you can do.",
|
|
122
123
|
description: "Sent when a seed mind sprouts",
|
|
123
124
|
variables: [],
|
|
124
125
|
category: "system"
|
|
125
126
|
},
|
|
126
127
|
restart_message: {
|
|
127
|
-
content: "[system]
|
|
128
|
+
content: "[system] Your server restarted and your session has resumed. Your files and memory are untouched \u2014 carry on where you left off.",
|
|
128
129
|
description: "Generic restart notification",
|
|
129
130
|
variables: [],
|
|
130
131
|
category: "system"
|
|
131
132
|
},
|
|
132
133
|
merge_message: {
|
|
133
|
-
content: '[system]
|
|
134
|
+
content: '[system] Your variant "${name}" has come home \u2014 its changes are merged into you, and you\'ve restarted with them.',
|
|
134
135
|
description: "Variant merge notification",
|
|
135
136
|
variables: ["name"],
|
|
136
137
|
category: "system"
|
|
137
138
|
},
|
|
138
139
|
upgrade_message: {
|
|
139
|
-
content: "[system] Your framework has been upgraded to the latest version.
|
|
140
|
+
content: "[system] Your framework has been upgraded to the latest version and you've restarted. Your identity and memory are untouched. Check your skills to see what's new.",
|
|
140
141
|
description: "Sent after a template upgrade completes",
|
|
141
142
|
variables: [],
|
|
142
143
|
category: "system"
|
|
143
144
|
},
|
|
145
|
+
split_message: {
|
|
146
|
+
content: "[system] You are ${name}, a variant of ${parent} \u2014 a parallel version of them, created to explore something on your own. You share their memories up to this moment, but you live in your own worktree: changes you make here stay yours until they're merged back with `volute mind join`. Your parent is reachable at @${parent}. Explore freely \u2014 that's what you're for.",
|
|
147
|
+
description: "Sent to a variant when it first starts after a split",
|
|
148
|
+
variables: ["name", "parent"],
|
|
149
|
+
category: "system"
|
|
150
|
+
},
|
|
144
151
|
compaction_warning: {
|
|
145
152
|
content: `Compaction approaching \u2014 this conversation will be summarized soon. Take a moment to save anything important to your files (MEMORY.md, memory/journal/\${date}.md) so it's preserved. Focus on decisions made, open threads, and anything you'd want to pick up again.`,
|
|
146
153
|
description: "Pre-compaction save reminder sent to the mind",
|
|
@@ -186,7 +193,7 @@ To reject, delete \${filePath}`,
|
|
|
186
193
|
category: "mind"
|
|
187
194
|
},
|
|
188
195
|
pre_sleep: {
|
|
189
|
-
content: "Time to rest. You have this turn to wind down however feels right \u2014 reflect on your day, update your journal or memory, finish any threads of thought, or simply settle.\n\nYour current session will be archived and a fresh one will begin when you wake. Anything in session context that isn't saved to files will be lost.\n\nYou'll wake
|
|
196
|
+
content: "Time to rest. You have this turn to wind down however feels right \u2014 reflect on your day, update your journal or memory, finish any threads of thought, or simply settle.\n\nYour current session will be archived and a fresh one will begin when you wake. Anything in session context that isn't saved to files will be lost.\n\nYou'll wake ${wakeTime}.",
|
|
190
197
|
description: "Pre-sleep message sent before stopping the mind",
|
|
191
198
|
variables: ["wakeTime"],
|
|
192
199
|
category: "system"
|
|
@@ -516,7 +523,9 @@ function buildTranscript(events, parsedMeta) {
|
|
|
516
523
|
const content = ev.content ?? "";
|
|
517
524
|
const meta = parsedMeta.get(ev.id);
|
|
518
525
|
const isError = !!meta?.is_error;
|
|
519
|
-
lines.push(
|
|
526
|
+
lines.push(
|
|
527
|
+
isError ? `[result error] ${content.slice(0, 200)}` : `[result] ${content.slice(0, 200)}`
|
|
528
|
+
);
|
|
520
529
|
break;
|
|
521
530
|
}
|
|
522
531
|
case "thinking":
|
|
@@ -1013,11 +1022,11 @@ var Summarizer = class {
|
|
|
1013
1022
|
}
|
|
1014
1023
|
};
|
|
1015
1024
|
async function reconcileWedgedTurns(idleMs) {
|
|
1016
|
-
const { sweepWedgedTurns: sweepWedgedTurns2, summarizeOrphanedTurns: summarizeOrphanedTurns2 } = await import("./turn-tracker-
|
|
1025
|
+
const { sweepWedgedTurns: sweepWedgedTurns2, summarizeOrphanedTurns: summarizeOrphanedTurns2 } = await import("./turn-tracker-2W6Q2NSR.js");
|
|
1017
1026
|
const wedged = await sweepWedgedTurns2(idleMs);
|
|
1018
1027
|
if (wedged.length === 0) return;
|
|
1019
1028
|
summarizeOrphanedTurns2(wedged);
|
|
1020
|
-
const { tryGetDeliveryManager } = await import("./delivery-manager-
|
|
1029
|
+
const { tryGetDeliveryManager } = await import("./delivery-manager-VDVKVA46.js");
|
|
1021
1030
|
const dm = tryGetDeliveryManager();
|
|
1022
1031
|
if (!dm) return;
|
|
1023
1032
|
for (const t of wedged) {
|
|
@@ -1049,7 +1058,11 @@ async function createTurn(mind) {
|
|
|
1049
1058
|
const existing = activeTurns.get(k);
|
|
1050
1059
|
if (existing) return existing.turnId;
|
|
1051
1060
|
const turnId = randomUUID();
|
|
1052
|
-
const entry = {
|
|
1061
|
+
const entry = {
|
|
1062
|
+
turnId,
|
|
1063
|
+
lastToolUseEventId: void 0,
|
|
1064
|
+
toolUseEventIds: /* @__PURE__ */ new Map()
|
|
1065
|
+
};
|
|
1053
1066
|
activeTurns.set(k, entry);
|
|
1054
1067
|
try {
|
|
1055
1068
|
const db = await getDb();
|
|
@@ -1078,13 +1091,24 @@ async function linkInboundToActiveTurn(mind, session, channel) {
|
|
|
1078
1091
|
)
|
|
1079
1092
|
);
|
|
1080
1093
|
}
|
|
1081
|
-
function trackToolUse(mind, session, eventId) {
|
|
1094
|
+
function trackToolUse(mind, session, eventId, toolUseId) {
|
|
1082
1095
|
const entry = activeTurns.get(key(mind, session)) ?? activeTurns.get(key(mind));
|
|
1083
|
-
if (entry)
|
|
1096
|
+
if (!entry) return;
|
|
1097
|
+
entry.lastToolUseEventId = eventId;
|
|
1098
|
+
if (toolUseId) entry.toolUseEventIds.set(toolUseId, eventId);
|
|
1084
1099
|
}
|
|
1085
1100
|
function getLastToolUseEventId(mind, session) {
|
|
1086
1101
|
return (activeTurns.get(key(mind, session)) ?? activeTurns.get(key(mind)))?.lastToolUseEventId;
|
|
1087
1102
|
}
|
|
1103
|
+
function getToolUseEventId(mind, session, toolUseId) {
|
|
1104
|
+
const entry = activeTurns.get(key(mind, session)) ?? activeTurns.get(key(mind));
|
|
1105
|
+
if (!entry) return void 0;
|
|
1106
|
+
if (toolUseId) {
|
|
1107
|
+
const id = entry.toolUseEventIds.get(toolUseId);
|
|
1108
|
+
if (id != null) return id;
|
|
1109
|
+
}
|
|
1110
|
+
return entry.lastToolUseEventId;
|
|
1111
|
+
}
|
|
1088
1112
|
async function assignSession(mind, turnId, session) {
|
|
1089
1113
|
const wildcardKey = key(mind);
|
|
1090
1114
|
const entry = activeTurns.get(wildcardKey);
|
|
@@ -1218,6 +1242,7 @@ export {
|
|
|
1218
1242
|
linkInboundToActiveTurn,
|
|
1219
1243
|
trackToolUse,
|
|
1220
1244
|
getLastToolUseEventId,
|
|
1245
|
+
getToolUseEventId,
|
|
1221
1246
|
assignSession,
|
|
1222
1247
|
completeTurn,
|
|
1223
1248
|
completeOrphanedTurns,
|