volute 0.54.0 → 0.55.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 (135) hide show
  1. package/dist/{activity-events-LQII6PZS.js → activity-events-TFAJBNBW.js} +2 -2
  2. package/dist/{ai-service-YW5SWCSB.js → ai-service-KEK2V3AP.js} +2 -2
  3. package/dist/{auth-KRDSM55Q.js → auth-Y27LTNZK.js} +3 -3
  4. package/dist/auto-upgrade-2MZF7NG3.js +46 -0
  5. package/dist/{avatar-image-52WGXLHV.js → avatar-image-SN576P45.js} +2 -2
  6. package/dist/{backup-QRNX6RK7.js → backup-GDCWH6MC.js} +2 -2
  7. package/dist/{channels-CKCY64TD.js → channels-AFJWGX7W.js} +15 -15
  8. package/dist/{chat-ZUGNL5GS.js → chat-HVPOZK3O.js} +3 -3
  9. package/dist/{chunk-QUSMYGNQ.js → chunk-2674KIGI.js} +1 -0
  10. package/dist/chunk-2GATCSZK.js +520 -0
  11. package/dist/{chunk-LKUGUQUW.js → chunk-3SFKY4GI.js} +4 -4
  12. package/dist/{chunk-CLCHOXLR.js → chunk-45QTYKQQ.js} +4 -4
  13. package/dist/{chunk-PPSN2MLC.js → chunk-4VAQKLMU.js} +7 -4
  14. package/dist/{chunk-TPX6E6PL.js → chunk-6HBGUPBA.js} +2 -2
  15. package/dist/{chunk-UFTDRTCP.js → chunk-7AA4T2RT.js} +2 -2
  16. package/dist/{chunk-56IT2ZXF.js → chunk-BP2X5AIK.js} +8 -14
  17. package/dist/{chunk-444RR3YF.js → chunk-CKOA4LWV.js} +11 -11
  18. package/dist/{chunk-HKGYZVWN.js → chunk-DUV4EMNW.js} +37 -3
  19. package/dist/{chunk-CV6BNGFK.js → chunk-FSXPPOPM.js} +3 -3
  20. package/dist/{chunk-3LHUXY3E.js → chunk-FZUPIS3T.js} +3 -3
  21. package/dist/{chunk-L7BKTZ5U.js → chunk-G3XAB4DK.js} +1 -1
  22. package/dist/{chunk-WHL6PKYP.js → chunk-HLWQ3P3R.js} +49 -45
  23. package/dist/{chunk-OAYY3WF3.js → chunk-HTSWDOJE.js} +0 -11
  24. package/dist/{chunk-OYF25B62.js → chunk-IR2FW4W7.js} +1 -1
  25. package/dist/{chunk-ICXY54ZC.js → chunk-IT4GEFDH.js} +1 -1
  26. package/dist/{chunk-F6D766VQ.js → chunk-KS62IHE2.js} +1 -1
  27. package/dist/{chunk-LNNI3MS4.js → chunk-MNKPAAQF.js} +9 -2
  28. package/dist/{chunk-LGXVGIWN.js → chunk-NCRG4SBR.js} +189 -55
  29. package/dist/{chunk-I7U5EEZC.js → chunk-NM5FDH4T.js} +1 -1
  30. package/dist/{chunk-7LT3YZUR.js → chunk-OFU6WJJZ.js} +1 -1
  31. package/dist/{chunk-OT5SXF7L.js → chunk-OUGD5L5U.js} +26 -12
  32. package/dist/{chunk-X67BDDZR.js → chunk-P3GXOT2X.js} +48 -2
  33. package/dist/{chunk-U54PJPTB.js → chunk-PRZUBJ4K.js} +1 -1
  34. package/dist/{chunk-OGPVJ53N.js → chunk-QVS3C4DK.js} +2 -2
  35. package/dist/{chunk-VDUCLVZI.js → chunk-TMTAHKYP.js} +27 -25
  36. package/dist/{chunk-RGHF3OK5.js → chunk-UEZC5MNB.js} +13 -13
  37. package/dist/{chunk-ATZF2RNJ.js → chunk-VTFXZPC3.js} +12 -12
  38. package/dist/{chunk-YSRYCS3N.js → chunk-W3OIPJPB.js} +1 -1
  39. package/dist/{chunk-5Y54AE3L.js → chunk-XAG53RWY.js} +1 -1
  40. package/dist/{chunk-HTRSSOHY.js → chunk-YU5EYQAE.js} +1 -1
  41. package/dist/{chunk-EGV6R6UF.js → chunk-Z7TNIIHW.js} +3 -1
  42. package/dist/cli.js +8 -8
  43. package/dist/{cloud-sync-52YNJRMR.js → cloud-sync-FM73SVFJ.js} +20 -20
  44. package/dist/{conversations-ZL6PHROD.js → conversations-FH3ODBL7.js} +3 -3
  45. package/dist/{create-G2RIKQYK.js → create-P75ZFTVN.js} +1 -1
  46. package/dist/{daemon-restart-QWHN5VMU.js → daemon-restart-JQMMMITM.js} +1 -1
  47. package/dist/daemon.js +187 -159
  48. package/dist/{db-I4EH5SLF.js → db-JH3NTERX.js} +17 -3
  49. package/dist/{delivery-manager-7R2YIQ2W.js → delivery-manager-H23Q23N7.js} +15 -15
  50. package/dist/{delivery-notices-RZQ6GONP.js → delivery-notices-S7TKOACE.js} +5 -5
  51. package/dist/{delivery-router-QS4NLJR6.js → delivery-router-KHBVEVVL.js} +2 -2
  52. package/dist/echo-text-ULEIFJJF.js +40 -0
  53. package/dist/{extensions-QT65JGV6.js → extensions-QD22GXZD.js} +24 -20
  54. package/dist/{files-PCKBQHAY.js → files-DUGRXN6V.js} +2 -2
  55. package/dist/{import-DB2KULRO.js → import-RDDUGGFI.js} +3 -3
  56. package/dist/message-delivery-LU4EP244.js +46 -0
  57. package/dist/migrate-init-infrastructure-Z72UJ5NT.js +44 -0
  58. package/dist/{migrate-name-placeholder-C7NCNLWF.js → migrate-name-placeholder-64AEAWPE.js} +1 -1
  59. package/dist/{migrate-thread-config-EQSEP2XG.js → migrate-thread-config-SVF2M3D3.js} +1 -1
  60. package/dist/{mind-CT6ANXK4.js → mind-BARCLI7O.js} +4 -4
  61. package/dist/{mind-activity-tracker-QF6DCX2X.js → mind-activity-tracker-UT23RGBF.js} +3 -3
  62. package/dist/mind-service-ZJCUBAUL.js +48 -0
  63. package/dist/{package-F6S5NHY2.js → package-AUDBDKAO.js} +10 -12
  64. package/dist/{prompts-JECJIFPQ.js → prompts-MOBF3TMO.js} +1 -1
  65. package/dist/{sandbox-NNWCTHRI.js → sandbox-VI7XWBIA.js} +2 -2
  66. package/dist/scheduler-GLINVC2B.js +27 -0
  67. package/dist/{seed-DRKAP3XV.js → seed-5JGR7ZRA.js} +1 -1
  68. package/dist/{seed-cmd-6IMTO3LG.js → seed-cmd-M6A7N7F3.js} +2 -2
  69. package/dist/{seed-create-VNLDYRFK.js → seed-create-TGFZW4IO.js} +3 -3
  70. package/dist/{seed-readiness-H5TTPAQH.js → seed-readiness-XBH2MUNA.js} +2 -2
  71. package/dist/{seed-sprout-PPGYGK4G.js → seed-sprout-3IC5ZVTI.js} +7 -7
  72. package/dist/{send-UXUQKO4N.js → send-DHYBAYK4.js} +2 -2
  73. package/dist/{setup-YUAQMDVZ.js → setup-6KAH3GRW.js} +1 -1
  74. package/dist/skills/volute-mind/SKILL.md +8 -0
  75. package/dist/{skills-GMQ5UIIW.js → skills-LKQCYFVP.js} +2 -2
  76. package/dist/sleep-manager-Q3ITFNOJ.js +42 -0
  77. package/dist/{spirit-Q5VGFWUI.js → spirit-FKXMGO3N.js} +5 -5
  78. package/dist/spirit-availability-5R2WYSWF.js +43 -0
  79. package/dist/{sprout-PMTRL7QN.js → sprout-VEW3CUNX.js} +1 -1
  80. package/dist/{src-H3UCOP6B.js → src-246GSX7A.js} +5 -2
  81. package/dist/src-LOUB3WPR.js +4189 -0
  82. package/dist/{system-events-Q7IVZ5T4.js → system-events-ZYOCYAO2.js} +5 -3
  83. package/dist/{tailscale-KHNZFC7L.js → tailscale-F2IMBILZ.js} +1 -1
  84. package/dist/{template-hash-YKWMVYMM.js → template-hash-RJRMF6DT.js} +2 -2
  85. package/dist/{template-staleness-PY2CULH6.js → template-staleness-IBD722PN.js} +4 -4
  86. package/dist/{turn-tracker-HZDPMSCC.js → turn-tracker-BE34OI6O.js} +7 -7
  87. package/dist/{up-XZDSJVMU.js → up-J47J5JRB.js} +1 -1
  88. package/dist/variant-cleanup-JGJZ5KB4.js +24 -0
  89. package/dist/{version-notify-VNVFX6UP.js → version-notify-KIXYNHJC.js} +11 -11
  90. package/dist/web-assets/assets/{index-CwtxGwe_.js → index-CoU1eUKE.js} +15 -15
  91. package/dist/web-assets/assets/index-hPn_fkz3.css +1 -0
  92. package/dist/web-assets/index.html +2 -2
  93. package/package.json +10 -12
  94. package/packages/extensions/intentions/dist/ui/assets/index-Bl5KEcli.js +67 -0
  95. package/packages/extensions/intentions/dist/ui/index.html +1 -1
  96. package/packages/extensions/pages/dist/ui/assets/index-BKxVQkA9.css +1 -0
  97. package/packages/extensions/pages/dist/ui/assets/index-BMt6sStP.js +68 -0
  98. package/packages/extensions/pages/dist/ui/index.html +2 -2
  99. package/packages/extensions/pages/skills/pages/SKILL.md +123 -4
  100. package/templates/_base/.init/.config/prompts.json +0 -1
  101. package/templates/_base/.init/.local/hooks/pre-prompt/turn-context.ts +30 -0
  102. package/templates/_base/src/lib/codex-session-seed.ts +6 -55
  103. package/templates/_base/src/lib/pi-session-seed.ts +8 -57
  104. package/templates/_base/src/lib/seed-note.ts +4 -4
  105. package/templates/_base/src/lib/session-seed.ts +8 -53
  106. package/templates/_base/src/lib/startup.ts +0 -20
  107. package/templates/claude/package.json +2 -2
  108. package/templates/claude/src/agent.ts +34 -102
  109. package/templates/claude/src/lib/hooks/pre-compact.ts +6 -6
  110. package/templates/claude/src/server.ts +0 -1
  111. package/templates/codex/package.json +2 -2
  112. package/templates/codex/src/agent.ts +23 -89
  113. package/templates/pi/package.json +1 -1
  114. package/templates/pi/src/agent.ts +26 -93
  115. package/templates/pi/src/server.ts +0 -1
  116. package/dist/auto-upgrade-HEVZKPTF.js +0 -46
  117. package/dist/chunk-AAPNU7GA.js +0 -168
  118. package/dist/echo-text-73CYQRL7.js +0 -40
  119. package/dist/message-delivery-TRKT4T2P.js +0 -46
  120. package/dist/mind-service-7EFIJ3ZA.js +0 -48
  121. package/dist/scheduler-73Q4MQ7Y.js +0 -27
  122. package/dist/sleep-manager-KHI65FEX.js +0 -42
  123. package/dist/spirit-availability-G5FMWKRH.js +0 -43
  124. package/dist/src-3FIW7DLH.js +0 -2376
  125. package/dist/src-LTTQVN2Z.js +0 -832
  126. package/dist/variant-cleanup-QHGGY7ND.js +0 -24
  127. package/dist/web-assets/assets/index-DhM1yYRN.css +0 -1
  128. package/packages/extensions/intentions/dist/ui/assets/index-CQz4aceM.js +0 -67
  129. package/packages/extensions/notes/dist/ui/assets/index-BBs8pyel.js +0 -67
  130. package/packages/extensions/notes/dist/ui/assets/index-D3cdui42.css +0 -1
  131. package/packages/extensions/notes/dist/ui/index.html +0 -14
  132. package/packages/extensions/notes/skills/notes/SKILL.md +0 -90
  133. package/packages/extensions/pages/dist/ui/assets/index-B589e8Xe.js +0 -2
  134. package/packages/extensions/pages/dist/ui/assets/index-BuXnE-rb.css +0 -1
  135. /package/dist/{chunk-ZNHL5KQJ.js → chunk-OKM67ZWH.js} +0 -0
@@ -9,15 +9,15 @@ import "./chunk-O7IGP7ZW.js";
9
9
  import "./chunk-FNJCBRD3.js";
10
10
  import {
11
11
  evaluateSeedChecklist
12
- } from "./chunk-CLCHOXLR.js";
13
- import {
14
- getStandardSkillsWithExtensions
15
- } from "./chunk-PPSN2MLC.js";
16
- import "./chunk-OAYY3WF3.js";
12
+ } from "./chunk-45QTYKQQ.js";
17
13
  import "./chunk-DW4TRDOZ.js";
18
14
  import "./chunk-WCFSBH33.js";
15
+ import "./chunk-HTSWDOJE.js";
16
+ import {
17
+ getStandardSkillsWithExtensions
18
+ } from "./chunk-4VAQKLMU.js";
19
19
  import "./chunk-OIOW3FPT.js";
20
- import "./chunk-QUSMYGNQ.js";
20
+ import "./chunk-2674KIGI.js";
21
21
  import {
22
22
  mindDir
23
23
  } from "./chunk-H6X6CKDN.js";
@@ -74,7 +74,7 @@ var cmd = command({
74
74
  process.exit(1);
75
75
  }
76
76
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
77
- const { mindSkillsDir } = await import("./skills-GMQ5UIIW.js");
77
+ const { mindSkillsDir } = await import("./skills-LKQCYFVP.js");
78
78
  const client = getClient();
79
79
  const failedSkills = [];
80
80
  for (const skillId of getStandardSkillsWithExtensions()) {
@@ -19,8 +19,8 @@ import "./chunk-O7IGP7ZW.js";
19
19
  import "./chunk-FNJCBRD3.js";
20
20
  import {
21
21
  formatFileSize
22
- } from "./chunk-F6D766VQ.js";
23
- import "./chunk-QUSMYGNQ.js";
22
+ } from "./chunk-KS62IHE2.js";
23
+ import "./chunk-2674KIGI.js";
24
24
  import "./chunk-H6X6CKDN.js";
25
25
  import "./chunk-2RNMBXD2.js";
26
26
  import "./chunk-K3NQKI34.js";
@@ -220,7 +220,7 @@ async function startDaemonAndOpenBrowser(port, host) {
220
220
  const url = `http://${displayHost === "0.0.0.0" || displayHost === "::" ? "localhost" : displayHost}:${displayPort}`;
221
221
  console.log("\nStarting daemon...");
222
222
  try {
223
- const { run: runUp } = await import("./up-XZDSJVMU.js");
223
+ const { run: runUp } = await import("./up-J47J5JRB.js");
224
224
  await runUp([
225
225
  ...port != null ? ["--port", String(port)] : [],
226
226
  ...host ? ["--host", host] : []
@@ -189,6 +189,14 @@ Default is `transparent` — observers can watch you think and work. `private` h
189
189
 
190
190
  Edit `.local/hooks/startup-context.ts` to customize what you see when a new session starts. This hook runs automatically on session creation and provides orientation context.
191
191
 
192
+ ### Turning a hook off
193
+
194
+ Everything under `.local/` is framework machinery — hooks the daemon runs, shims it generates. Your edits to those files are yours and are never overwritten. But the daemon does *add back* any file that is missing, on every start, so that a capability shipped after you were created still reaches you.
195
+
196
+ That means **deleting a hook doesn't stick** — it comes back, because absence can't be told apart from "this mind predates the hook."
197
+
198
+ To turn a hook off for good, **empty the file instead of removing it**. An empty hook is respected forever and runs as a no-op. This is a real limitation, not a preference about how you should work; the durable version of "I removed this on purpose" is tracked in [#811](https://github.com/mimsy/volute/issues/811).
199
+
192
200
  ## Reference Files
193
201
 
194
202
  When configuring message routing, read `references/routing.md`.
@@ -28,9 +28,9 @@ import {
28
28
  syncBuiltinSkills,
29
29
  uninstallSkill,
30
30
  updateSkill
31
- } from "./chunk-PPSN2MLC.js";
31
+ } from "./chunk-4VAQKLMU.js";
32
32
  import "./chunk-OIOW3FPT.js";
33
- import "./chunk-QUSMYGNQ.js";
33
+ import "./chunk-2674KIGI.js";
34
34
  import "./chunk-H6X6CKDN.js";
35
35
  import "./chunk-2RNMBXD2.js";
36
36
  import "./chunk-K3NQKI34.js";
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ SleepManager,
4
+ getSleepManager,
5
+ getSleepManagerIfReady,
6
+ initSleepManager,
7
+ matchesGlob
8
+ } from "./chunk-NCRG4SBR.js";
9
+ import "./chunk-UEZC5MNB.js";
10
+ import "./chunk-P3GXOT2X.js";
11
+ import "./chunk-CKOA4LWV.js";
12
+ import "./chunk-TMTAHKYP.js";
13
+ import "./chunk-HLWQ3P3R.js";
14
+ import "./chunk-BP2X5AIK.js";
15
+ import "./chunk-XAG53RWY.js";
16
+ import "./chunk-6HBGUPBA.js";
17
+ import "./chunk-7AA4T2RT.js";
18
+ import "./chunk-IT4GEFDH.js";
19
+ import "./chunk-DW4TRDOZ.js";
20
+ import "./chunk-WCFSBH33.js";
21
+ import "./chunk-W3OIPJPB.js";
22
+ import "./chunk-OFU6WJJZ.js";
23
+ import "./chunk-PRZUBJ4K.js";
24
+ import "./chunk-DUV4EMNW.js";
25
+ import "./chunk-MNKPAAQF.js";
26
+ import "./chunk-HTSWDOJE.js";
27
+ import "./chunk-4VAQKLMU.js";
28
+ import "./chunk-OIOW3FPT.js";
29
+ import "./chunk-GLM7TVWP.js";
30
+ import "./chunk-Z7TNIIHW.js";
31
+ import "./chunk-2674KIGI.js";
32
+ import "./chunk-LGNUFVMR.js";
33
+ import "./chunk-H6X6CKDN.js";
34
+ import "./chunk-2RNMBXD2.js";
35
+ import "./chunk-K3NQKI34.js";
36
+ export {
37
+ SleepManager,
38
+ getSleepManager,
39
+ getSleepManagerIfReady,
40
+ initSleepManager,
41
+ matchesGlob
42
+ };
@@ -18,13 +18,13 @@ import {
18
18
  syncSpiritTemplate,
19
19
  writeSpiritDoctrine,
20
20
  writeSpiritSystemJson
21
- } from "./chunk-RGHF3OK5.js";
22
- import "./chunk-X67BDDZR.js";
23
- import "./chunk-PPSN2MLC.js";
21
+ } from "./chunk-UEZC5MNB.js";
22
+ import "./chunk-P3GXOT2X.js";
24
23
  import "./chunk-WCFSBH33.js";
24
+ import "./chunk-4VAQKLMU.js";
25
25
  import "./chunk-OIOW3FPT.js";
26
- import "./chunk-EGV6R6UF.js";
27
- import "./chunk-QUSMYGNQ.js";
26
+ import "./chunk-Z7TNIIHW.js";
27
+ import "./chunk-2674KIGI.js";
28
28
  import "./chunk-H6X6CKDN.js";
29
29
  import "./chunk-2RNMBXD2.js";
30
30
  import "./chunk-K3NQKI34.js";
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ SPIRIT_NOTICE_PREFIX,
4
+ _resetSpiritAvailabilityState,
5
+ classifySpiritState,
6
+ ensureSpiritAvailable,
7
+ spiritUnavailableNotice
8
+ } from "./chunk-3SFKY4GI.js";
9
+ import "./chunk-NCRG4SBR.js";
10
+ import "./chunk-UEZC5MNB.js";
11
+ import "./chunk-P3GXOT2X.js";
12
+ import "./chunk-CKOA4LWV.js";
13
+ import "./chunk-TMTAHKYP.js";
14
+ import "./chunk-HLWQ3P3R.js";
15
+ import "./chunk-BP2X5AIK.js";
16
+ import "./chunk-XAG53RWY.js";
17
+ import "./chunk-6HBGUPBA.js";
18
+ import "./chunk-7AA4T2RT.js";
19
+ import "./chunk-IT4GEFDH.js";
20
+ import "./chunk-DW4TRDOZ.js";
21
+ import "./chunk-WCFSBH33.js";
22
+ import "./chunk-W3OIPJPB.js";
23
+ import "./chunk-OFU6WJJZ.js";
24
+ import "./chunk-PRZUBJ4K.js";
25
+ import "./chunk-DUV4EMNW.js";
26
+ import "./chunk-MNKPAAQF.js";
27
+ import "./chunk-HTSWDOJE.js";
28
+ import "./chunk-4VAQKLMU.js";
29
+ import "./chunk-OIOW3FPT.js";
30
+ import "./chunk-GLM7TVWP.js";
31
+ import "./chunk-Z7TNIIHW.js";
32
+ import "./chunk-2674KIGI.js";
33
+ import "./chunk-LGNUFVMR.js";
34
+ import "./chunk-H6X6CKDN.js";
35
+ import "./chunk-2RNMBXD2.js";
36
+ import "./chunk-K3NQKI34.js";
37
+ export {
38
+ SPIRIT_NOTICE_PREFIX,
39
+ _resetSpiritAvailabilityState,
40
+ classifySpiritState,
41
+ ensureSpiritAvailable,
42
+ spiritUnavailableNotice
43
+ };
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
4
4
  // packages/cli/src/commands/sprout.ts
5
5
  async function run(args) {
6
6
  console.error("Note: `volute mind sprout` is now `volute seed sprout`");
7
- await import("./seed-sprout-PPGYGK4G.js").then((m) => m.run(args));
7
+ await import("./seed-sprout-3IC5ZVTI.js").then((m) => m.run(args));
8
8
  }
9
9
  export {
10
10
  run
@@ -289,9 +289,12 @@ function initDb(db) {
289
289
  import { Hono } from "hono";
290
290
  function resolveActor(c) {
291
291
  const user = c.get("user");
292
- if (!user || user.id === 0) return null;
292
+ if (!user) return null;
293
293
  return user;
294
294
  }
295
+ function canOwn(actor) {
296
+ return actor.id !== 0;
297
+ }
295
298
  async function parseJson(c) {
296
299
  try {
297
300
  return await c.req.json();
@@ -316,7 +319,7 @@ function createRoutes(ctx) {
316
319
  }).post("/", async (c) => {
317
320
  const actor = resolveActor(c);
318
321
  if (!actor) return c.json({ error: "Unauthorized" }, 401);
319
- if (actor.user_type !== "mind" && actor.role !== "admin") {
322
+ if (actor.user_type !== "mind" && actor.role !== "admin" || !canOwn(actor)) {
320
323
  return c.json({ error: "Only a mind can hold intentions" }, 403);
321
324
  }
322
325
  const body = await parseJson(c);