volute 0.45.2 → 0.46.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.
Files changed (62) hide show
  1. package/README.md +3 -3
  2. package/dist/{activity-events-BUR2RYTJ.js → activity-events-NF6VWTJQ.js} +1 -1
  3. package/dist/{auth-FLAEXXZK.js → auth-CCFAU4GQ.js} +2 -2
  4. package/dist/{chat-76MRWWQX.js → chat-ZIQQS25U.js} +1 -1
  5. package/dist/chunk-4YU7HF4L.js +237 -0
  6. package/dist/{chunk-OP4JG2BS.js → chunk-5ZQZDDIK.js} +6 -2
  7. package/dist/{chunk-FR6S2KNN.js → chunk-BJZ4PV7R.js} +1 -1
  8. package/dist/{chunk-NYC5U6K7.js → chunk-E3DA4HYV.js} +4 -4
  9. package/dist/{chunk-YT7PEESJ.js → chunk-JO5IO4FH.js} +245 -124
  10. package/dist/{chunk-7ZUB63PS.js → chunk-KGIXX4NM.js} +1 -1
  11. package/dist/{chunk-EJVPTVTI.js → chunk-KQSFTPIM.js} +1 -1
  12. package/dist/{chunk-T6HYVHPG.js → chunk-OV7ZQ2GH.js} +1 -1
  13. package/dist/{clock-K43IMROX.js → chunk-PJ45FQPT.js} +21 -16
  14. package/dist/{chunk-UYLGEDVD.js → chunk-YXSUMLTC.js} +44 -267
  15. package/dist/{chunk-7C44R625.js → chunk-ZNMCCHCP.js} +47 -1
  16. package/dist/cli.js +11 -11
  17. package/dist/clock-RHS2JEDL.js +16 -0
  18. package/dist/{cloud-sync-3OJOPZRT.js → cloud-sync-46RS4SDA.js} +9 -8
  19. package/dist/{conversations-JZTD6KLR.js → conversations-CJOOCGNW.js} +2 -2
  20. package/dist/{daemon-restart-TIHKVVVA.js → daemon-restart-VFEI57UO.js} +1 -1
  21. package/dist/daemon.js +249 -170
  22. package/dist/{delete-BFMIGAIB.js → delete-HPLC7ETU.js} +1 -1
  23. package/dist/{delivery-manager-VDVKVA46.js → delivery-manager-JINZRG2W.js} +9 -8
  24. package/dist/{echo-text-6JJOPUD4.js → echo-text-VQPB5L2X.js} +10 -9
  25. package/dist/{export-GGIVO76O.js → export-LY723I3Z.js} +3 -3
  26. package/dist/{extensions-JONTW2HF.js → extensions-ZELQLTSR.js} +9 -8
  27. package/dist/{message-delivery-3C65ZI6L.js → message-delivery-R7JSQGYX.js} +11 -8
  28. package/dist/{mind-DWB6XYCH.js → mind-LHKS55DI.js} +9 -9
  29. package/dist/{mind-activity-tracker-POBLU3LC.js → mind-activity-tracker-3QRNJVR4.js} +2 -2
  30. package/dist/{mind-service-3F4I46CI.js → mind-service-NB2JMWQZ.js} +11 -8
  31. package/dist/mind-sleep-74TGOQBC.js +83 -0
  32. package/dist/{package-A7KXT67Q.js → package-DOD6CPO6.js} +2 -1
  33. package/dist/{scheduler-P6DXLLXI.js → scheduler-WVKII3LA.js} +9 -8
  34. package/dist/{seed-HCP5NYKH.js → seed-CNYIHPOH.js} +1 -1
  35. package/dist/{seed-cmd-ILOGNIFB.js → seed-cmd-AVNUNLZV.js} +2 -2
  36. package/dist/{seed-create-OURS2LS4.js → seed-create-ANXGYSCC.js} +3 -3
  37. package/dist/{seed-sprout-ELDFDAN6.js → seed-sprout-NIUFTX32.js} +5 -3
  38. package/dist/{send-AAIOPJAV.js → send-SPE6DVNJ.js} +6 -0
  39. package/dist/{setup-DQM5VPY4.js → setup-QT2A25SY.js} +1 -1
  40. package/dist/skills/orientation/SKILL.md +1 -1
  41. package/dist/skills/volute-mind/SKILL.md +8 -8
  42. package/dist/skills/volute-mind/references/sleep.md +8 -1
  43. package/dist/{skills-BKINFL7W.js → skills-AKCFA7BN.js} +1 -1
  44. package/dist/{sleep-manager-HCUH4PM4.js → sleep-manager-G6TXSDP7.js} +9 -8
  45. package/dist/{spirit-DBTIW7P4.js → spirit-RPBLLUQ5.js} +2 -2
  46. package/dist/{sprout-W3KC7UGK.js → sprout-SMX42ZBP.js} +1 -1
  47. package/dist/{system-chat-XOALE2RD.js → system-chat-NDAW6YP7.js} +9 -8
  48. package/dist/{turn-tracker-2W6Q2NSR.js → turn-tracker-FOIBNUUA.js} +2 -1
  49. package/dist/{up-FTK7CTO3.js → up-PS6PFS75.js} +1 -1
  50. package/dist/{version-notify-3XMAIQTE.js → version-notify-C5CH7CVP.js} +15 -10
  51. package/dist/web-assets/assets/{index-Bc2m8gRC.js → index-CU6XWICM.js} +3 -3
  52. package/dist/web-assets/index.html +1 -1
  53. package/package.json +2 -1
  54. package/templates/_base/home/VOLUTE.md +6 -2
  55. package/templates/_base/src/lib/context-breakdown.ts +57 -67
  56. package/templates/_base/src/lib/volute-server.ts +2 -2
  57. package/templates/claude/src/agent.ts +78 -42
  58. package/templates/claude/src/lib/session-reaper.ts +31 -0
  59. package/templates/codex/src/agent.ts +62 -40
  60. package/templates/pi/src/agent.ts +55 -38
  61. package/dist/mind-sleep-YMBR3I35.js +0 -47
  62. /package/dist/{chunk-QNQMSWZE.js → chunk-K6T43YBD.js} +0 -0
@@ -9,6 +9,42 @@ import {
9
9
  activity
10
10
  } from "./chunk-ZV7MFISX.js";
11
11
 
12
+ // packages/daemon/src/lib/events/event-sequencer.ts
13
+ var BUFFER_SIZE = 1e3;
14
+ var MAX_AGE_MS = 5 * 60 * 1e3;
15
+ var nextId = 1;
16
+ var buffer = [];
17
+ function bufferEvent(data) {
18
+ const id = nextId++;
19
+ buffer.push({ id, data, timestamp: Date.now() });
20
+ while (buffer.length > BUFFER_SIZE) {
21
+ buffer.shift();
22
+ }
23
+ return id;
24
+ }
25
+ function nextEventId() {
26
+ return nextId++;
27
+ }
28
+ function getEventsSince(sinceId, allowedConversationIds, allowedActivityMind) {
29
+ const now = Date.now();
30
+ const startIdx = buffer.findIndex((e) => e.id > sinceId);
31
+ if (startIdx === -1) return [];
32
+ return buffer.slice(startIdx).filter((e) => {
33
+ if (now - e.timestamp >= MAX_AGE_MS) return false;
34
+ const data = e.data;
35
+ switch (data.event) {
36
+ case "snapshot":
37
+ return false;
38
+ case "conversation":
39
+ return allowedConversationIds.has(data.conversationId);
40
+ case "activity":
41
+ return allowedActivityMind === void 0 || data.mind === allowedActivityMind;
42
+ default:
43
+ return false;
44
+ }
45
+ });
46
+ }
47
+
12
48
  // packages/daemon/src/lib/events/activity-events.ts
13
49
  var subscribers = /* @__PURE__ */ new Set();
14
50
  function subscribe(callback) {
@@ -44,9 +80,16 @@ function broadcast(event) {
44
80
  notify({ ...event, id: 0, created_at });
45
81
  }
46
82
  function notify(event) {
83
+ const data = {
84
+ event: "activity",
85
+ ...event,
86
+ metadata: event.metadata ?? null
87
+ };
88
+ const seq = bufferEvent(data);
89
+ const delivered = { ...event, seq };
47
90
  for (const cb of subscribers) {
48
91
  try {
49
- cb(event);
92
+ cb(delivered);
50
93
  } catch (err) {
51
94
  logger_default.error("[activity-events] subscriber threw:", logger_default.errorData(err));
52
95
  subscribers.delete(cb);
@@ -55,6 +98,9 @@ function notify(event) {
55
98
  }
56
99
 
57
100
  export {
101
+ bufferEvent,
102
+ nextEventId,
103
+ getEventsSince,
58
104
  subscribe,
59
105
  publish,
60
106
  broadcast
package/dist/cli.js CHANGED
@@ -10,7 +10,7 @@ if (!process.env.VOLUTE_HOME) {
10
10
  var command = process.argv[2];
11
11
  var args = process.argv.slice(3);
12
12
  if (command === "--version" || command === "-v") {
13
- const { default: pkg } = await import("./package-A7KXT67Q.js");
13
+ const { default: pkg } = await import("./package-DOD6CPO6.js");
14
14
  console.log(pkg.version);
15
15
  process.exit(0);
16
16
  }
@@ -41,22 +41,22 @@ if (!ungatedCommands.has(command)) {
41
41
  }
42
42
  switch (command) {
43
43
  case "setup":
44
- await import("./setup-DQM5VPY4.js").then((m) => m.run(args));
44
+ await import("./setup-QT2A25SY.js").then((m) => m.run(args));
45
45
  break;
46
46
  case "mind":
47
- await import("./mind-DWB6XYCH.js").then((m) => m.run(args));
47
+ await import("./mind-LHKS55DI.js").then((m) => m.run(args));
48
48
  break;
49
49
  case "seed":
50
- await import("./seed-cmd-ILOGNIFB.js").then((m) => m.run(args));
50
+ await import("./seed-cmd-AVNUNLZV.js").then((m) => m.run(args));
51
51
  break;
52
52
  case "chat":
53
- await import("./chat-76MRWWQX.js").then((m) => m.run(args));
53
+ await import("./chat-ZIQQS25U.js").then((m) => m.run(args));
54
54
  break;
55
55
  case "variant":
56
56
  await import("./variant-HHDTW74J.js").then((m) => m.run(args));
57
57
  break;
58
58
  case "clock":
59
- await import("./clock-K43IMROX.js").then((m) => m.run(args));
59
+ await import("./clock-RHS2JEDL.js").then((m) => m.run(args));
60
60
  break;
61
61
  case "skill":
62
62
  await import("./skill-FKFHIJRR.js").then((m) => m.run(args));
@@ -68,7 +68,7 @@ switch (command) {
68
68
  await import("./config-TJLYUV3U.js").then((m) => m.run(args));
69
69
  break;
70
70
  case "up":
71
- await import("./up-FTK7CTO3.js").then((m) => m.run(args));
71
+ await import("./up-PS6PFS75.js").then((m) => m.run(args));
72
72
  break;
73
73
  case "backup":
74
74
  await import("./backup-TST5C2YN.js").then((m) => m.run(args));
@@ -77,7 +77,7 @@ switch (command) {
77
77
  await import("./down-U2CZ23M4.js").then((m) => m.run(args));
78
78
  break;
79
79
  case "restart":
80
- await import("./daemon-restart-TIHKVVVA.js").then((m) => m.run(args));
80
+ await import("./daemon-restart-VFEI57UO.js").then((m) => m.run(args));
81
81
  break;
82
82
  case "update":
83
83
  await import("./update-SWAYZRWJ.js").then((m) => m.run(args));
@@ -117,16 +117,16 @@ Mind:
117
117
  mind status [name] Check a mind's status
118
118
  mind history [name] [--full] View mind activity history
119
119
  mind profile [--mind] [...] Set display name, description, avatar
120
- mind split/join Create and merge experimental splits
120
+ mind split/join Split off and rejoin variants
121
121
  mind upgrade/import/export Lifecycle operations
122
122
 
123
123
  Seed:
124
- seed create <name> Plant a new seed mind
124
+ seed create <name> Plant a new seed
125
125
  seed sprout Complete orientation and become a full mind
126
126
 
127
127
  Configuration:
128
128
  chat Conversations, messages, files, and platform bridges
129
- clock Schedules, timers, and sleep/wake cycles
129
+ clock Schedules and sleep/wake cycles
130
130
  skill Browse and install skills
131
131
  env Manage environment variables
132
132
 
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ parseDuration,
4
+ run
5
+ } from "./chunk-PJ45FQPT.js";
6
+ import "./chunk-5T5YMX6S.js";
7
+ import "./chunk-BTY4WNFE.js";
8
+ import "./chunk-RBNMDAKB.js";
9
+ import "./chunk-LOPXTW6H.js";
10
+ import "./chunk-TXSA4Q3V.js";
11
+ import "./chunk-O7IGP7ZW.js";
12
+ import "./chunk-K3NQKI34.js";
13
+ export {
14
+ parseDuration,
15
+ run
16
+ };
@@ -1,25 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  deliverMessage
4
- } from "./chunk-YT7PEESJ.js";
4
+ } from "./chunk-JO5IO4FH.js";
5
5
  import "./chunk-ZDZISKCL.js";
6
- import "./chunk-FR6S2KNN.js";
6
+ import "./chunk-BJZ4PV7R.js";
7
7
  import "./chunk-QLWG3C2Z.js";
8
- import "./chunk-7ZUB63PS.js";
8
+ import "./chunk-KGIXX4NM.js";
9
9
  import {
10
10
  getAuthHeaders,
11
11
  getWebhookUrl
12
- } from "./chunk-OP4JG2BS.js";
12
+ } from "./chunk-5ZQZDDIK.js";
13
13
  import "./chunk-PFZBNKUH.js";
14
14
  import "./chunk-JZ62SYWR.js";
15
- import "./chunk-EJVPTVTI.js";
15
+ import "./chunk-KQSFTPIM.js";
16
16
  import "./chunk-4JOQZPCE.js";
17
- import "./chunk-UYLGEDVD.js";
17
+ import "./chunk-YXSUMLTC.js";
18
+ import "./chunk-4YU7HF4L.js";
18
19
  import "./chunk-H2X54EHC.js";
19
20
  import "./chunk-IHKGWTGT.js";
20
21
  import "./chunk-F7H6ATM4.js";
21
- import "./chunk-T6HYVHPG.js";
22
- import "./chunk-7C44R625.js";
22
+ import "./chunk-OV7ZQ2GH.js";
23
+ import "./chunk-ZNMCCHCP.js";
23
24
  import {
24
25
  logger_default
25
26
  } from "./chunk-T2TP6ZC6.js";
@@ -29,8 +29,8 @@ import {
29
29
  removeParticipant,
30
30
  setConversationPrivate,
31
31
  updateChannelSettings
32
- } from "./chunk-OP4JG2BS.js";
33
- import "./chunk-7C44R625.js";
32
+ } from "./chunk-5ZQZDDIK.js";
33
+ import "./chunk-ZNMCCHCP.js";
34
34
  import "./chunk-T2TP6ZC6.js";
35
35
  import "./chunk-ALKYQULU.js";
36
36
  import "./chunk-ZV7MFISX.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-RRNXJOKB.js";
5
5
  import {
6
6
  run
7
- } from "./chunk-QNQMSWZE.js";
7
+ } from "./chunk-K6T43YBD.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";