volute 0.53.0 → 0.54.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 (147) hide show
  1. package/dist/auto-upgrade-HEVZKPTF.js +46 -0
  2. package/dist/{backup-WWXVIMYQ.js → backup-QRNX6RK7.js} +11 -11
  3. package/dist/channels-CKCY64TD.js +203 -0
  4. package/dist/{chat-WK2BLM7B.js → chat-ZUGNL5GS.js} +9 -9
  5. package/dist/{chunk-UTKUO2KY.js → chunk-3LHUXY3E.js} +2 -2
  6. package/dist/{chunk-PIZDPY4G.js → chunk-444RR3YF.js} +4 -4
  7. package/dist/{chunk-VDZ4I4ZP.js → chunk-56IT2ZXF.js} +3 -3
  8. package/dist/{chunk-OXWUEU5V.js → chunk-5U5GLZSD.js} +2 -2
  9. package/dist/{chunk-LN7XJ56R.js → chunk-7XKPG66D.js} +9 -9
  10. package/dist/{chunk-R772ET2M.js → chunk-AAPNU7GA.js} +4 -0
  11. package/dist/{chunk-7ARONCZW.js → chunk-ATZF2RNJ.js} +3 -3
  12. package/dist/{chunk-6NLW72HP.js → chunk-CKPAVQNK.js} +1 -1
  13. package/dist/{chunk-RMADJFA7.js → chunk-CLCHOXLR.js} +1 -1
  14. package/dist/{chunk-IQ7VNWH6.js → chunk-HKGYZVWN.js} +1 -1
  15. package/dist/{chunk-HASADR3E.js → chunk-LGXVGIWN.js} +66 -25
  16. package/dist/{chunk-P2TBUKLW.js → chunk-LKUGUQUW.js} +3 -3
  17. package/dist/{chunk-AP2KQMMW.js → chunk-OAYY3WF3.js} +11 -3
  18. package/dist/{chunk-UO4MZQNO.js → chunk-OGPVJ53N.js} +14 -6
  19. package/dist/{chunk-M77B73VV.js → chunk-OIOW3FPT.js} +7 -2
  20. package/dist/chunk-OT5SXF7L.js +904 -0
  21. package/dist/{chunk-EDR47UE2.js → chunk-OYF25B62.js} +1 -1
  22. package/dist/{chunk-TAWRJ24T.js → chunk-PPSN2MLC.js} +2 -2
  23. package/dist/{chunk-5DBGQBQR.js → chunk-RGHF3OK5.js} +21 -10
  24. package/dist/{chunk-RQRO6PC7.js → chunk-VDUCLVZI.js} +305 -31
  25. package/dist/{chunk-23UJGVYP.js → chunk-WHL6PKYP.js} +10 -10
  26. package/dist/{chunk-HTB7KDRU.js → chunk-WZZCA23D.js} +5 -4
  27. package/dist/{chunk-UDZLPR34.js → chunk-YSRYCS3N.js} +13 -8
  28. package/dist/{chunk-5N32EN4O.js → chunk-Z4Q6TQWL.js} +1 -1
  29. package/dist/{chunk-BDHKCLWK.js → chunk-ZNHL5KQJ.js} +1 -1
  30. package/dist/cli.js +19 -19
  31. package/dist/{clock-SH4NQC2F.js → clock-X7V3C7NL.js} +3 -3
  32. package/dist/{cloud-sync-MJVJ33LD.js → cloud-sync-52YNJRMR.js} +11 -11
  33. package/dist/{daemon-restart-BIGU4OKS.js → daemon-restart-QWHN5VMU.js} +4 -4
  34. package/dist/daemon.js +330 -746
  35. package/dist/{db-IPXRJUI7.js → db-I4EH5SLF.js} +3 -1
  36. package/dist/{delivery-manager-FDHCZ7PU.js → delivery-manager-7R2YIQ2W.js} +11 -7
  37. package/dist/{delivery-notices-65TB3CBX.js → delivery-notices-RZQ6GONP.js} +3 -3
  38. package/dist/{delivery-router-RHANNTAC.js → delivery-router-QS4NLJR6.js} +3 -1
  39. package/dist/{down-QSNEMTTX.js → down-UN2EDX2Y.js} +3 -3
  40. package/dist/{echo-text-KU6G4Z7V.js → echo-text-73CYQRL7.js} +14 -14
  41. package/dist/{exec-ABD3DYA2.js → exec-Z34TTUO3.js} +1 -1
  42. package/dist/{extensions-VACUKFA5.js → extensions-QT65JGV6.js} +21 -11
  43. package/dist/{isolation-GVV2IBAU.js → isolation-UQPDO34R.js} +1 -1
  44. package/dist/{message-delivery-TUXM3AAE.js → message-delivery-TRKT4T2P.js} +11 -11
  45. package/dist/migrate-name-placeholder-C7NCNLWF.js +37 -0
  46. package/dist/{mind-IX5AWUST.js → mind-CT6ANXK4.js} +12 -12
  47. package/dist/{mind-contacts-BKUOUJPV.js → mind-contacts-PEXCDRXA.js} +8 -8
  48. package/dist/{mind-list-KNU34SUD.js → mind-list-7KBLPLES.js} +2 -2
  49. package/dist/{mind-service-WHFBUKZE.js → mind-service-7EFIJ3ZA.js} +11 -11
  50. package/dist/{mind-sleep-D3DEYAWG.js → mind-sleep-24HV4RCA.js} +5 -5
  51. package/dist/{mind-status-BPTLQ5Z6.js → mind-status-4YW4PHMO.js} +6 -3
  52. package/dist/{package-BN5KMU54.js → package-F6S5NHY2.js} +4 -4
  53. package/dist/{prompts-HNKGCAEY.js → prompts-JECJIFPQ.js} +1 -1
  54. package/dist/{scheduler-5X5UIQOQ.js → scheduler-73Q4MQ7Y.js} +6 -6
  55. package/dist/{seed-LHZ33UB4.js → seed-DRKAP3XV.js} +1 -1
  56. package/dist/{seed-cmd-U4RVJ3UA.js → seed-cmd-6IMTO3LG.js} +2 -2
  57. package/dist/{seed-create-OQU4KNCB.js → seed-create-VNLDYRFK.js} +1 -1
  58. package/dist/{seed-readiness-WJYYRRCK.js → seed-readiness-H5TTPAQH.js} +2 -2
  59. package/dist/{seed-sprout-SFUYH2RG.js → seed-sprout-PPGYGK4G.js} +8 -8
  60. package/dist/{send-FWZAMDBN.js → send-UXUQKO4N.js} +9 -9
  61. package/dist/{service-XQPMZAGI.js → service-T4P5W6RS.js} +2 -2
  62. package/dist/{service-install-2EWD7KXD.js → service-install-R4SNYUVO.js} +3 -3
  63. package/dist/{setup-RVSGCIF3.js → setup-YUAQMDVZ.js} +4 -4
  64. package/dist/skills/dreaming/SKILL.md +2 -2
  65. package/dist/skills/dreaming/references/INSTALL.md +1 -1
  66. package/dist/skills/tending/SKILL.md +2 -0
  67. package/dist/skills/volute-mind/references/integrations.md +3 -2
  68. package/dist/skills/volute-mind/references/routing.md +18 -5
  69. package/dist/{skills-QRPU6BWY.js → skills-GMQ5UIIW.js} +2 -2
  70. package/dist/{sleep-manager-NWUCRBZB.js → sleep-manager-KHI65FEX.js} +11 -11
  71. package/dist/{spirit-I5ECLGRI.js → spirit-Q5VGFWUI.js} +5 -3
  72. package/dist/{spirit-availability-NIUUYKU2.js → spirit-availability-G5FMWKRH.js} +12 -12
  73. package/dist/{sprout-A2PMEF7Z.js → sprout-PMTRL7QN.js} +1 -1
  74. package/dist/{src-LCSOQY6Z.js → src-3FIW7DLH.js} +241 -87
  75. package/dist/src-H3UCOP6B.js +516 -0
  76. package/dist/{src-HGNE2XG4.js → src-LTTQVN2Z.js} +1 -1
  77. package/dist/{status-EYG4A3OK.js → status-LCKTTIWS.js} +5 -5
  78. package/dist/{system-events-YTOU66QI.js → system-events-Q7IVZ5T4.js} +1 -1
  79. package/dist/{systems-2DIJY4RF.js → systems-HL7SGSW7.js} +6 -6
  80. package/dist/{turn-tracker-NNHS6MAR.js → turn-tracker-HZDPMSCC.js} +2 -2
  81. package/dist/{up-UGBHH743.js → up-XZDSJVMU.js} +3 -3
  82. package/dist/{update-CIWI2JYA.js → update-ILCPVNDD.js} +2 -2
  83. package/dist/{upgrade-LIE46UBB.js → upgrade-XY2J7NWZ.js} +9 -1
  84. package/dist/{variant-cleanup-CZDLIY3F.js → variant-cleanup-QHGGY7ND.js} +6 -6
  85. package/dist/{version-notify-SJVAQLZI.js → version-notify-VNVFX6UP.js} +19 -4
  86. package/dist/web-assets/assets/{index-b7G7ZsVk.js → index-CwtxGwe_.js} +16 -16
  87. package/dist/web-assets/assets/index-DhM1yYRN.css +1 -0
  88. package/dist/web-assets/index.html +2 -2
  89. package/package.json +4 -4
  90. package/packages/extensions/intentions/dist/ui/assets/index-3FneLCKR.css +1 -0
  91. package/packages/extensions/intentions/dist/ui/assets/index-CQz4aceM.js +67 -0
  92. package/packages/extensions/{plan → intentions}/dist/ui/index.html +3 -3
  93. package/packages/extensions/intentions/skills/intention-review/SKILL.md +38 -0
  94. package/packages/extensions/intentions/skills/intentions/SKILL.md +49 -0
  95. package/packages/extensions/intentions/skills/intentions/scripts/intentions-hook.sh +45 -0
  96. package/packages/extensions/pages/skills/commons-gardening/SKILL.md +50 -0
  97. package/packages/extensions/pages/skills/pages/SKILL.md +18 -13
  98. package/templates/_base/.init/.config/prompts.json +2 -2
  99. package/templates/{pi → _base}/.init/.config/routes.json +1 -0
  100. package/templates/_base/.init/memory/dreams/.gitkeep +0 -0
  101. package/templates/_base/home/.config/routes.json +1 -1
  102. package/templates/_base/home/VOLUTE.md +1 -1
  103. package/templates/_base/src/lib/context-breakdown.ts +11 -3
  104. package/templates/_base/src/lib/routing.ts +2 -2
  105. package/templates/_base/src/lib/startup.ts +4 -2
  106. package/templates/claude/.init/CLAUDE.md +4 -0
  107. package/templates/claude/src/agent.ts +28 -12
  108. package/templates/claude/src/lib/message-channel.ts +43 -15
  109. package/templates/claude/src/lib/recover.ts +69 -0
  110. package/templates/claude/src/lib/stream-consumer.ts +23 -5
  111. package/templates/claude/volute-template.json +1 -1
  112. package/templates/codex/.init/AGENTS.md +4 -0
  113. package/templates/codex/volute-template.json +1 -1
  114. package/templates/pi/.init/MINDS.md +4 -0
  115. package/templates/pi/src/lib/mechanics-doc.ts +30 -0
  116. package/templates/pi/src/server.ts +3 -1
  117. package/templates/pi/volute-template.json +1 -1
  118. package/dist/channels-LW5ZLMSQ.js +0 -90
  119. package/dist/skills/plan-coordinator/SKILL.md +0 -60
  120. package/dist/src-UDMJZ6MH.js +0 -426
  121. package/dist/web-assets/assets/index-BHSU9r-4.css +0 -1
  122. package/packages/extensions/plan/dist/ui/assets/index-B8s8wxyt.js +0 -67
  123. package/packages/extensions/plan/dist/ui/assets/index-jIkrt-vI.css +0 -1
  124. package/packages/extensions/plan/skills/plan/SKILL.md +0 -43
  125. package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +0 -37
  126. package/templates/claude/.init/.config/routes.json +0 -11
  127. package/templates/codex/.init/.config/routes.json +0 -11
  128. package/dist/{accept-I4GVGWA3.js → accept-RSDIVJL6.js} +3 -3
  129. package/dist/{bridge-KU2IKSH3.js → bridge-YK7NTRU5.js} +3 -3
  130. package/dist/{create-C3XZACTV.js → create-M727VUDF.js} +3 -3
  131. package/dist/{env-BJGM6FBA.js → env-7AZFBPWX.js} +7 -7
  132. package/dist/{extension-B2W52WZY.js → extension-MRYJWSMV.js} +3 -3
  133. package/dist/{files-CHPNEQXN.js → files-PCKBQHAY.js} +3 -3
  134. package/dist/{list-R2GDWOEE.js → list-UQGIW7OF.js} +3 -3
  135. package/dist/{login-EZ4RRDQX.js → login-4NUS72Z5.js} +3 -3
  136. package/dist/{login-JDOAK465.js → login-57MMYILL.js} +4 -4
  137. package/dist/{logout-MWSIUOQU.js → logout-BYV433X6.js} +3 -3
  138. package/dist/{logout-K6ZGAJY5.js → logout-YFZAJRPY.js} +3 -3
  139. package/dist/{mind-history-RVF6KJ7K.js → mind-history-RZMMCHMX.js} +9 -9
  140. package/dist/{mind-wake-DCDFFQKX.js → mind-wake-LDGPRA42.js} +3 -3
  141. package/dist/{read-J5RM674N.js → read-RJ5NAW5J.js} +3 -3
  142. package/dist/{register-53LBGSDC.js → register-WNCSOTAU.js} +3 -3
  143. package/dist/{reject-K2A4UK2Y.js → reject-4NFLXKRN.js} +3 -3
  144. package/dist/{restart-R2WFNF5K.js → restart-B4GNMVF2.js} +7 -7
  145. package/dist/{skill-DXLLSUHB.js → skill-QYTBUDNQ.js} +7 -7
  146. package/dist/{start-XDOUAWN3.js → start-BDHJVOVX.js} +6 -6
  147. package/dist/{stop-O62RTEMD.js → stop-45QYSGYS.js} +7 -7
@@ -1,16 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getAllSites,
4
+ getMindsWithSites,
4
5
  getPublishedPages,
5
6
  getRecentPages,
6
7
  getSystemPages,
7
8
  initDb,
8
9
  syncPublishedPages,
9
10
  syncSystemPages
10
- } from "./chunk-R772ET2M.js";
11
+ } from "./chunk-AAPNU7GA.js";
11
12
  import "./chunk-K3NQKI34.js";
12
13
  export {
13
14
  getAllSites,
15
+ getMindsWithSites,
14
16
  getPublishedPages,
15
17
  getRecentPages,
16
18
  getSystemPages,
@@ -2,17 +2,19 @@
2
2
  import {
3
3
  DeliveryManager,
4
4
  MAX_DELIVERY_ATTEMPTS,
5
+ UnknownChannelError,
6
+ formatSuggestions,
5
7
  getDeliveryManager,
6
8
  initDeliveryManager,
7
9
  tryGetDeliveryManager
8
- } from "./chunk-RQRO6PC7.js";
9
- import "./chunk-23UJGVYP.js";
10
- import "./chunk-UDZLPR34.js";
11
- import "./chunk-VDZ4I4ZP.js";
10
+ } from "./chunk-VDUCLVZI.js";
11
+ import "./chunk-WHL6PKYP.js";
12
+ import "./chunk-YSRYCS3N.js";
13
+ import "./chunk-56IT2ZXF.js";
12
14
  import "./chunk-7LT3YZUR.js";
13
- import "./chunk-IQ7VNWH6.js";
15
+ import "./chunk-HKGYZVWN.js";
14
16
  import "./chunk-LNNI3MS4.js";
15
- import "./chunk-AP2KQMMW.js";
17
+ import "./chunk-OAYY3WF3.js";
16
18
  import "./chunk-5Y54AE3L.js";
17
19
  import "./chunk-TPX6E6PL.js";
18
20
  import "./chunk-UFTDRTCP.js";
@@ -20,7 +22,7 @@ import "./chunk-U54PJPTB.js";
20
22
  import "./chunk-ICXY54ZC.js";
21
23
  import "./chunk-DW4TRDOZ.js";
22
24
  import "./chunk-WCFSBH33.js";
23
- import "./chunk-M77B73VV.js";
25
+ import "./chunk-OIOW3FPT.js";
24
26
  import "./chunk-GLM7TVWP.js";
25
27
  import "./chunk-EGV6R6UF.js";
26
28
  import "./chunk-QUSMYGNQ.js";
@@ -31,6 +33,8 @@ import "./chunk-K3NQKI34.js";
31
33
  export {
32
34
  DeliveryManager,
33
35
  MAX_DELIVERY_ATTEMPTS,
36
+ UnknownChannelError,
37
+ formatSuggestions,
34
38
  getDeliveryManager,
35
39
  initDeliveryManager,
36
40
  tryGetDeliveryManager
@@ -3,10 +3,10 @@ import {
3
3
  COALESCE_WINDOW_MINUTES,
4
4
  recordDeliveryFailure,
5
5
  recordSenderDeliveryFailure
6
- } from "./chunk-UTKUO2KY.js";
7
- import "./chunk-IQ7VNWH6.js";
6
+ } from "./chunk-3LHUXY3E.js";
7
+ import "./chunk-HKGYZVWN.js";
8
8
  import "./chunk-LNNI3MS4.js";
9
- import "./chunk-AP2KQMMW.js";
9
+ import "./chunk-OAYY3WF3.js";
10
10
  import "./chunk-QUSMYGNQ.js";
11
11
  import "./chunk-H6X6CKDN.js";
12
12
  import "./chunk-2RNMBXD2.js";
@@ -6,10 +6,11 @@ import {
6
6
  registerMindDir,
7
7
  resolveDeliveryMode,
8
8
  resolveRoute,
9
+ routesConfigPath,
9
10
  setRoutesChangeListener,
10
11
  shouldGate,
11
12
  warnUnknownRuleKeys
12
- } from "./chunk-UDZLPR34.js";
13
+ } from "./chunk-YSRYCS3N.js";
13
14
  import "./chunk-QUSMYGNQ.js";
14
15
  import "./chunk-H6X6CKDN.js";
15
16
  import "./chunk-2RNMBXD2.js";
@@ -21,6 +22,7 @@ export {
21
22
  registerMindDir,
22
23
  resolveDeliveryMode,
23
24
  resolveRoute,
25
+ routesConfigPath,
24
26
  setRoutesChangeListener,
25
27
  shouldGate,
26
28
  warnUnknownRuleKeys
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  run,
4
4
  stopDaemon
5
- } from "./chunk-5N32EN4O.js";
5
+ } from "./chunk-Z4Q6TQWL.js";
6
6
  import "./chunk-TXSA4Q3V.js";
7
7
  import "./chunk-O7IGP7ZW.js";
8
- import "./chunk-6NLW72HP.js";
9
- import "./chunk-M77B73VV.js";
8
+ import "./chunk-CKPAVQNK.js";
9
+ import "./chunk-OIOW3FPT.js";
10
10
  import "./chunk-H6X6CKDN.js";
11
11
  import "./chunk-2RNMBXD2.js";
12
12
  import "./chunk-K3NQKI34.js";
@@ -2,22 +2,22 @@
2
2
  import {
3
3
  clearEchoTextCache,
4
4
  echoTextToChannel
5
- } from "./chunk-7ARONCZW.js";
5
+ } from "./chunk-ATZF2RNJ.js";
6
6
  import "./chunk-L7BKTZ5U.js";
7
- import "./chunk-HASADR3E.js";
8
- import "./chunk-5DBGQBQR.js";
7
+ import "./chunk-LGXVGIWN.js";
8
+ import "./chunk-RGHF3OK5.js";
9
9
  import "./chunk-X67BDDZR.js";
10
- import "./chunk-PIZDPY4G.js";
11
- import "./chunk-UTKUO2KY.js";
12
- import "./chunk-RQRO6PC7.js";
13
- import "./chunk-23UJGVYP.js";
14
- import "./chunk-UDZLPR34.js";
15
- import "./chunk-VDZ4I4ZP.js";
16
- import "./chunk-TAWRJ24T.js";
10
+ import "./chunk-444RR3YF.js";
11
+ import "./chunk-3LHUXY3E.js";
12
+ import "./chunk-VDUCLVZI.js";
13
+ import "./chunk-WHL6PKYP.js";
14
+ import "./chunk-YSRYCS3N.js";
15
+ import "./chunk-56IT2ZXF.js";
16
+ import "./chunk-PPSN2MLC.js";
17
17
  import "./chunk-7LT3YZUR.js";
18
- import "./chunk-IQ7VNWH6.js";
18
+ import "./chunk-HKGYZVWN.js";
19
19
  import "./chunk-LNNI3MS4.js";
20
- import "./chunk-AP2KQMMW.js";
20
+ import "./chunk-OAYY3WF3.js";
21
21
  import "./chunk-5Y54AE3L.js";
22
22
  import "./chunk-TPX6E6PL.js";
23
23
  import "./chunk-UFTDRTCP.js";
@@ -25,8 +25,8 @@ import "./chunk-U54PJPTB.js";
25
25
  import "./chunk-ICXY54ZC.js";
26
26
  import "./chunk-DW4TRDOZ.js";
27
27
  import "./chunk-WCFSBH33.js";
28
- import "./chunk-6NLW72HP.js";
29
- import "./chunk-M77B73VV.js";
28
+ import "./chunk-CKPAVQNK.js";
29
+ import "./chunk-OIOW3FPT.js";
30
30
  import "./chunk-GLM7TVWP.js";
31
31
  import "./chunk-EGV6R6UF.js";
32
32
  import "./chunk-QUSMYGNQ.js";
@@ -4,7 +4,7 @@ import {
4
4
  execInherit,
5
5
  gitExec,
6
6
  resolveVoluteBin
7
- } from "./chunk-M77B73VV.js";
7
+ } from "./chunk-OIOW3FPT.js";
8
8
  import "./chunk-H6X6CKDN.js";
9
9
  import "./chunk-2RNMBXD2.js";
10
10
  import "./chunk-K3NQKI34.js";
@@ -1,8 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ _clearLoadedExtensionsForTest,
4
+ _registerExtensionForTest,
5
+ buildExtensionContext,
3
6
  enrichActivityMetadata,
4
7
  getAllDiscoveredExtensions,
5
8
  getAllDiscoveredExtensionsDetailed,
9
+ getExtensionSpiritSkills,
6
10
  getExtensionStandardSkills,
7
11
  getLoadedExtensions,
8
12
  installNpmExtension,
@@ -11,22 +15,23 @@ import {
11
15
  notifyExtensionsDaemonStop,
12
16
  notifyExtensionsMindStart,
13
17
  notifyExtensionsMindStop,
18
+ notifyExtensionsSpiritReady,
14
19
  parseCommandArgs,
15
20
  setExtensionEnabled,
16
21
  uninstallNpmExtension
17
- } from "./chunk-HASADR3E.js";
18
- import "./chunk-5DBGQBQR.js";
22
+ } from "./chunk-LGXVGIWN.js";
23
+ import "./chunk-RGHF3OK5.js";
19
24
  import "./chunk-X67BDDZR.js";
20
- import "./chunk-PIZDPY4G.js";
21
- import "./chunk-RQRO6PC7.js";
22
- import "./chunk-23UJGVYP.js";
23
- import "./chunk-UDZLPR34.js";
24
- import "./chunk-VDZ4I4ZP.js";
25
- import "./chunk-TAWRJ24T.js";
25
+ import "./chunk-444RR3YF.js";
26
+ import "./chunk-VDUCLVZI.js";
27
+ import "./chunk-WHL6PKYP.js";
28
+ import "./chunk-YSRYCS3N.js";
29
+ import "./chunk-56IT2ZXF.js";
30
+ import "./chunk-PPSN2MLC.js";
26
31
  import "./chunk-7LT3YZUR.js";
27
- import "./chunk-IQ7VNWH6.js";
32
+ import "./chunk-HKGYZVWN.js";
28
33
  import "./chunk-LNNI3MS4.js";
29
- import "./chunk-AP2KQMMW.js";
34
+ import "./chunk-OAYY3WF3.js";
30
35
  import "./chunk-5Y54AE3L.js";
31
36
  import "./chunk-TPX6E6PL.js";
32
37
  import "./chunk-UFTDRTCP.js";
@@ -34,7 +39,7 @@ import "./chunk-U54PJPTB.js";
34
39
  import "./chunk-ICXY54ZC.js";
35
40
  import "./chunk-DW4TRDOZ.js";
36
41
  import "./chunk-WCFSBH33.js";
37
- import "./chunk-M77B73VV.js";
42
+ import "./chunk-OIOW3FPT.js";
38
43
  import "./chunk-GLM7TVWP.js";
39
44
  import "./chunk-EGV6R6UF.js";
40
45
  import "./chunk-QUSMYGNQ.js";
@@ -43,9 +48,13 @@ import "./chunk-H6X6CKDN.js";
43
48
  import "./chunk-2RNMBXD2.js";
44
49
  import "./chunk-K3NQKI34.js";
45
50
  export {
51
+ _clearLoadedExtensionsForTest,
52
+ _registerExtensionForTest,
53
+ buildExtensionContext,
46
54
  enrichActivityMetadata,
47
55
  getAllDiscoveredExtensions,
48
56
  getAllDiscoveredExtensionsDetailed,
57
+ getExtensionSpiritSkills,
49
58
  getExtensionStandardSkills,
50
59
  getLoadedExtensions,
51
60
  installNpmExtension,
@@ -54,6 +63,7 @@ export {
54
63
  notifyExtensionsDaemonStop,
55
64
  notifyExtensionsMindStart,
56
65
  notifyExtensionsMindStop,
66
+ notifyExtensionsSpiritReady,
57
67
  parseCommandArgs,
58
68
  setExtensionEnabled,
59
69
  uninstallNpmExtension
@@ -9,7 +9,7 @@ import {
9
9
  isIsolationEnabled,
10
10
  mindUserName,
11
11
  wrapForIsolation
12
- } from "./chunk-M77B73VV.js";
12
+ } from "./chunk-OIOW3FPT.js";
13
13
  import "./chunk-H6X6CKDN.js";
14
14
  import "./chunk-2RNMBXD2.js";
15
15
  import "./chunk-K3NQKI34.js";
@@ -7,19 +7,19 @@ import {
7
7
  recordOutbound,
8
8
  resolveSleepAction,
9
9
  willGateMessage
10
- } from "./chunk-HASADR3E.js";
11
- import "./chunk-5DBGQBQR.js";
10
+ } from "./chunk-LGXVGIWN.js";
11
+ import "./chunk-RGHF3OK5.js";
12
12
  import "./chunk-X67BDDZR.js";
13
- import "./chunk-PIZDPY4G.js";
14
- import "./chunk-RQRO6PC7.js";
15
- import "./chunk-23UJGVYP.js";
16
- import "./chunk-UDZLPR34.js";
17
- import "./chunk-VDZ4I4ZP.js";
18
- import "./chunk-TAWRJ24T.js";
13
+ import "./chunk-444RR3YF.js";
14
+ import "./chunk-VDUCLVZI.js";
15
+ import "./chunk-WHL6PKYP.js";
16
+ import "./chunk-YSRYCS3N.js";
17
+ import "./chunk-56IT2ZXF.js";
18
+ import "./chunk-PPSN2MLC.js";
19
19
  import "./chunk-7LT3YZUR.js";
20
- import "./chunk-IQ7VNWH6.js";
20
+ import "./chunk-HKGYZVWN.js";
21
21
  import "./chunk-LNNI3MS4.js";
22
- import "./chunk-AP2KQMMW.js";
22
+ import "./chunk-OAYY3WF3.js";
23
23
  import "./chunk-5Y54AE3L.js";
24
24
  import "./chunk-TPX6E6PL.js";
25
25
  import "./chunk-UFTDRTCP.js";
@@ -27,7 +27,7 @@ import "./chunk-U54PJPTB.js";
27
27
  import "./chunk-ICXY54ZC.js";
28
28
  import "./chunk-DW4TRDOZ.js";
29
29
  import "./chunk-WCFSBH33.js";
30
- import "./chunk-M77B73VV.js";
30
+ import "./chunk-OIOW3FPT.js";
31
31
  import "./chunk-GLM7TVWP.js";
32
32
  import "./chunk-EGV6R6UF.js";
33
33
  import "./chunk-QUSMYGNQ.js";
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ logger_default
4
+ } from "./chunk-QUSMYGNQ.js";
5
+ import {
6
+ mindDir,
7
+ readAllMinds
8
+ } from "./chunk-H6X6CKDN.js";
9
+ import "./chunk-2RNMBXD2.js";
10
+ import "./chunk-K3NQKI34.js";
11
+
12
+ // packages/daemon/src/lib/mind/migrate-name-placeholder.ts
13
+ import { readFileSync, writeFileSync } from "fs";
14
+ import { resolve } from "path";
15
+ var mlog = logger_default.child("migrate");
16
+ async function migrateNamePlaceholders() {
17
+ const entries = await readAllMinds();
18
+ for (const entry of entries) {
19
+ const dir = entry.dir ?? mindDir(entry.name);
20
+ const path = resolve(dir, "home/.config/routes.json");
21
+ try {
22
+ const raw = readFileSync(path, "utf-8");
23
+ if (!raw.includes("{{name}}")) continue;
24
+ writeFileSync(path, raw.replaceAll("{{name}}", entry.name));
25
+ mlog.info(`substituted leftover {{name}} placeholder in routes.json for ${entry.name}`);
26
+ } catch (err) {
27
+ if (err.code === "ENOENT") continue;
28
+ mlog.warn(
29
+ `failed to substitute {{name}} in routes.json for ${entry.name} \u2014 channel batch triggers will not match a mention of its name`,
30
+ logger_default.errorData(err)
31
+ );
32
+ }
33
+ }
34
+ }
35
+ export {
36
+ migrateNamePlaceholders
37
+ };
@@ -22,15 +22,15 @@ var cmd = subcommands({
22
22
  },
23
23
  start: {
24
24
  description: "Start a mind",
25
- run: (args) => import("./start-XDOUAWN3.js").then((m) => m.run(args))
25
+ run: (args) => import("./start-BDHJVOVX.js").then((m) => m.run(args))
26
26
  },
27
27
  stop: {
28
28
  description: "Stop a mind",
29
- run: (args) => import("./stop-O62RTEMD.js").then((m) => m.run(args))
29
+ run: (args) => import("./stop-45QYSGYS.js").then((m) => m.run(args))
30
30
  },
31
31
  restart: {
32
32
  description: "Restart a mind",
33
- run: (args) => import("./restart-R2WFNF5K.js").then((m) => m.run(args))
33
+ run: (args) => import("./restart-B4GNMVF2.js").then((m) => m.run(args))
34
34
  },
35
35
  delete: {
36
36
  description: "Delete a mind",
@@ -38,19 +38,19 @@ var cmd = subcommands({
38
38
  },
39
39
  list: {
40
40
  description: "List all minds",
41
- run: (args) => import("./mind-list-KNU34SUD.js").then((m) => m.run(args))
41
+ run: (args) => import("./mind-list-7KBLPLES.js").then((m) => m.run(args))
42
42
  },
43
43
  status: {
44
44
  description: "Check mind status",
45
- run: (args) => import("./mind-status-BPTLQ5Z6.js").then((m) => m.run(args))
45
+ run: (args) => import("./mind-status-4YW4PHMO.js").then((m) => m.run(args))
46
46
  },
47
47
  history: {
48
48
  description: "View mind activity history",
49
- run: (args) => import("./mind-history-RVF6KJ7K.js").then((m) => m.run(transformMindFlag(args)))
49
+ run: (args) => import("./mind-history-RZMMCHMX.js").then((m) => m.run(transformMindFlag(args)))
50
50
  },
51
51
  contacts: {
52
52
  description: "Who a mind has recently been in contact with",
53
- run: (args) => import("./mind-contacts-BKUOUJPV.js").then((m) => m.run(transformMindFlag(args)))
53
+ run: (args) => import("./mind-contacts-PEXCDRXA.js").then((m) => m.run(transformMindFlag(args)))
54
54
  },
55
55
  profile: {
56
56
  description: "Update mind profile",
@@ -58,7 +58,7 @@ var cmd = subcommands({
58
58
  },
59
59
  upgrade: {
60
60
  description: "Upgrade mind to latest template",
61
- run: (args) => import("./upgrade-LIE46UBB.js").then((m) => m.run(args))
61
+ run: (args) => import("./upgrade-XY2J7NWZ.js").then((m) => m.run(args))
62
62
  },
63
63
  import: {
64
64
  description: "Import an OpenClaw workspace",
@@ -78,19 +78,19 @@ var cmd = subcommands({
78
78
  },
79
79
  sleep: {
80
80
  description: "(legacy) Use 'volute clock sleep' instead",
81
- run: (args) => import("./mind-sleep-D3DEYAWG.js").then((m) => m.run(args))
81
+ run: (args) => import("./mind-sleep-24HV4RCA.js").then((m) => m.run(args))
82
82
  },
83
83
  wake: {
84
84
  description: "(legacy) Use 'volute clock wake' instead",
85
- run: (args) => import("./mind-wake-DCDFFQKX.js").then((m) => m.run(args))
85
+ run: (args) => import("./mind-wake-LDGPRA42.js").then((m) => m.run(args))
86
86
  },
87
87
  seed: {
88
88
  description: "(legacy) Use 'volute seed create' instead",
89
- run: (args) => import("./seed-LHZ33UB4.js").then((m) => m.run(args))
89
+ run: (args) => import("./seed-DRKAP3XV.js").then((m) => m.run(args))
90
90
  },
91
91
  sprout: {
92
92
  description: "(legacy) Use 'volute seed sprout' instead",
93
- run: (args) => import("./sprout-A2PMEF7Z.js").then((m) => m.run(args))
93
+ run: (args) => import("./sprout-PMTRL7QN.js").then((m) => m.run(args))
94
94
  }
95
95
  },
96
96
  footer: "Mind name can be omitted (where applicable) if VOLUTE_MIND is set."
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- relativeAge
4
- } from "./chunk-HTB7KDRU.js";
3
+ getClient,
4
+ urlOf
5
+ } from "./chunk-LOPXTW6H.js";
5
6
  import {
6
7
  resolveMindName
7
8
  } from "./chunk-BTY4WNFE.js";
8
9
  import {
9
- command
10
- } from "./chunk-TXSA4Q3V.js";
11
- import "./chunk-O7IGP7ZW.js";
10
+ relativeAge
11
+ } from "./chunk-WZZCA23D.js";
12
12
  import {
13
13
  daemonFetch
14
14
  } from "./chunk-M74I3HHF.js";
15
15
  import {
16
- getClient,
17
- urlOf
18
- } from "./chunk-LOPXTW6H.js";
16
+ command
17
+ } from "./chunk-TXSA4Q3V.js";
18
+ import "./chunk-O7IGP7ZW.js";
19
19
  import "./chunk-FNJCBRD3.js";
20
20
  import "./chunk-K3NQKI34.js";
21
21
 
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  relativeAge,
4
4
  run
5
- } from "./chunk-HTB7KDRU.js";
5
+ } from "./chunk-WZZCA23D.js";
6
+ import "./chunk-M74I3HHF.js";
6
7
  import "./chunk-TXSA4Q3V.js";
7
8
  import "./chunk-O7IGP7ZW.js";
8
- import "./chunk-M74I3HHF.js";
9
9
  import "./chunk-FNJCBRD3.js";
10
10
  import "./chunk-K3NQKI34.js";
11
11
  export {
@@ -8,19 +8,19 @@ import {
8
8
  stopMindFull,
9
9
  stopSpiritFull,
10
10
  wakeMind
11
- } from "./chunk-HASADR3E.js";
12
- import "./chunk-5DBGQBQR.js";
11
+ } from "./chunk-LGXVGIWN.js";
12
+ import "./chunk-RGHF3OK5.js";
13
13
  import "./chunk-X67BDDZR.js";
14
- import "./chunk-PIZDPY4G.js";
15
- import "./chunk-RQRO6PC7.js";
16
- import "./chunk-23UJGVYP.js";
17
- import "./chunk-UDZLPR34.js";
18
- import "./chunk-VDZ4I4ZP.js";
19
- import "./chunk-TAWRJ24T.js";
14
+ import "./chunk-444RR3YF.js";
15
+ import "./chunk-VDUCLVZI.js";
16
+ import "./chunk-WHL6PKYP.js";
17
+ import "./chunk-YSRYCS3N.js";
18
+ import "./chunk-56IT2ZXF.js";
19
+ import "./chunk-PPSN2MLC.js";
20
20
  import "./chunk-7LT3YZUR.js";
21
- import "./chunk-IQ7VNWH6.js";
21
+ import "./chunk-HKGYZVWN.js";
22
22
  import "./chunk-LNNI3MS4.js";
23
- import "./chunk-AP2KQMMW.js";
23
+ import "./chunk-OAYY3WF3.js";
24
24
  import "./chunk-5Y54AE3L.js";
25
25
  import "./chunk-TPX6E6PL.js";
26
26
  import "./chunk-UFTDRTCP.js";
@@ -28,7 +28,7 @@ import "./chunk-U54PJPTB.js";
28
28
  import "./chunk-ICXY54ZC.js";
29
29
  import "./chunk-DW4TRDOZ.js";
30
30
  import "./chunk-WCFSBH33.js";
31
- import "./chunk-M77B73VV.js";
31
+ import "./chunk-OIOW3FPT.js";
32
32
  import "./chunk-GLM7TVWP.js";
33
33
  import "./chunk-EGV6R6UF.js";
34
34
  import "./chunk-QUSMYGNQ.js";
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  parseDuration
4
- } from "./chunk-LN7XJ56R.js";
4
+ } from "./chunk-7XKPG66D.js";
5
5
  import "./chunk-7YJY3F2R.js";
6
+ import "./chunk-LOPXTW6H.js";
6
7
  import {
7
8
  resolveMindName
8
9
  } from "./chunk-BTY4WNFE.js";
10
+ import {
11
+ daemonFetch
12
+ } from "./chunk-M74I3HHF.js";
9
13
  import {
10
14
  command
11
15
  } from "./chunk-TXSA4Q3V.js";
12
16
  import "./chunk-O7IGP7ZW.js";
13
- import {
14
- daemonFetch
15
- } from "./chunk-M74I3HHF.js";
16
- import "./chunk-LOPXTW6H.js";
17
17
  import "./chunk-FNJCBRD3.js";
18
18
  import "./chunk-K3NQKI34.js";
19
19
 
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  resolveMindName
4
4
  } from "./chunk-BTY4WNFE.js";
5
+ import {
6
+ daemonFetch
7
+ } from "./chunk-M74I3HHF.js";
5
8
  import {
6
9
  command
7
10
  } from "./chunk-TXSA4Q3V.js";
8
11
  import "./chunk-O7IGP7ZW.js";
9
- import {
10
- daemonFetch
11
- } from "./chunk-M74I3HHF.js";
12
12
  import "./chunk-FNJCBRD3.js";
13
13
  import {
14
14
  formatTokens
@@ -57,6 +57,9 @@ var cmd = command({
57
57
  if (mind.templateStale) {
58
58
  console.log(`Template: outdated \u2014 run 'volute mind upgrade ${mind.name}'`);
59
59
  }
60
+ if (mind.upgradeBlocked) {
61
+ console.log(`[upgrade blocked: ${mind.upgradeBlocked}]`);
62
+ }
60
63
  if (mind.lastNotice) {
61
64
  const label = mind.lastNotice.kind === "turn_error" ? "Last turn failed" : "Last issue";
62
65
  console.log(`
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "volute",
7
- version: "0.53.0",
7
+ version: "0.54.0",
8
8
  description: "CLI for creating and managing self-modifying AI minds powered by the Claude Agent SDK",
9
9
  type: "module",
10
10
  license: "MIT",
@@ -43,14 +43,14 @@ var package_default = {
43
43
  "packages/extensions/notes/skills/",
44
44
  "packages/extensions/pages/dist/ui/",
45
45
  "packages/extensions/pages/skills/",
46
- "packages/extensions/plan/dist/ui/",
47
- "packages/extensions/plan/skills/"
46
+ "packages/extensions/intentions/dist/ui/",
47
+ "packages/extensions/intentions/skills/"
48
48
  ],
49
49
  scripts: {
50
50
  dev: "tsx src/cli.ts",
51
51
  build: "npm run build:ext && tsup && cp -r skills dist/skills && npm run build:web",
52
52
  "ext-theme": "npm run build:ext-theme --workspace=packages/ui && cp packages/ui/dist/ext-theme.css packages/web/public/ext-theme.css",
53
- "build:ext": "npm run ext-theme && npm run build:ui --workspace=packages/extensions/notes && npm run build:ui --workspace=packages/extensions/pages && npm run build:ui --workspace=packages/extensions/plan",
53
+ "build:ext": "npm run ext-theme && npm run build:ui --workspace=packages/extensions/notes && npm run build:ui --workspace=packages/extensions/pages && npm run build:ui --workspace=packages/extensions/intentions",
54
54
  "build:web": "npm run ext-theme && npm run build:ui --workspace=packages/web",
55
55
  "dev:web": "npm run ext-theme && npm run dev --workspace=packages/web",
56
56
  test: "node --import tsx --import ./test/setup.ts --test --test-force-exit --test-concurrency=4 $(find test -name '*.test.ts' ! -name 'daemon-e2e.test.ts' | sort)",
@@ -8,7 +8,7 @@ import {
8
8
  getPrompt,
9
9
  getPromptIfCustom,
10
10
  substitute
11
- } from "./chunk-AP2KQMMW.js";
11
+ } from "./chunk-OAYY3WF3.js";
12
12
  import "./chunk-H6X6CKDN.js";
13
13
  import "./chunk-2RNMBXD2.js";
14
14
  import "./chunk-K3NQKI34.js";
@@ -3,17 +3,17 @@ import {
3
3
  Scheduler,
4
4
  getScheduler,
5
5
  initScheduler
6
- } from "./chunk-PIZDPY4G.js";
7
- import "./chunk-23UJGVYP.js";
8
- import "./chunk-VDZ4I4ZP.js";
6
+ } from "./chunk-444RR3YF.js";
7
+ import "./chunk-WHL6PKYP.js";
8
+ import "./chunk-56IT2ZXF.js";
9
9
  import "./chunk-7LT3YZUR.js";
10
- import "./chunk-IQ7VNWH6.js";
10
+ import "./chunk-HKGYZVWN.js";
11
11
  import "./chunk-LNNI3MS4.js";
12
- import "./chunk-AP2KQMMW.js";
12
+ import "./chunk-OAYY3WF3.js";
13
13
  import "./chunk-5Y54AE3L.js";
14
14
  import "./chunk-U54PJPTB.js";
15
15
  import "./chunk-WCFSBH33.js";
16
- import "./chunk-M77B73VV.js";
16
+ import "./chunk-OIOW3FPT.js";
17
17
  import "./chunk-GLM7TVWP.js";
18
18
  import "./chunk-EGV6R6UF.js";
19
19
  import "./chunk-QUSMYGNQ.js";
@@ -4,7 +4,7 @@ import "./chunk-K3NQKI34.js";
4
4
  // packages/cli/src/commands/seed.ts
5
5
  async function run(args) {
6
6
  console.error("Note: `volute mind seed` is now `volute seed create`");
7
- await import("./seed-create-OQU4KNCB.js").then((m) => m.run(args));
7
+ await import("./seed-create-VNLDYRFK.js").then((m) => m.run(args));
8
8
  }
9
9
  export {
10
10
  run
@@ -12,11 +12,11 @@ var cmd = subcommands({
12
12
  commands: {
13
13
  create: {
14
14
  description: "Plant a new seed",
15
- run: (args) => import("./seed-create-OQU4KNCB.js").then((m) => m.run(args))
15
+ run: (args) => import("./seed-create-VNLDYRFK.js").then((m) => m.run(args))
16
16
  },
17
17
  sprout: {
18
18
  description: "Complete orientation and become a full mind",
19
- run: (args) => import("./seed-sprout-SFUYH2RG.js").then((m) => m.run(args))
19
+ run: (args) => import("./seed-sprout-PPGYGK4G.js").then((m) => m.run(args))
20
20
  },
21
21
  check: {
22
22
  description: "Check seed readiness",
@@ -58,7 +58,7 @@ var cmd = command({
58
58
  }
59
59
  if (template !== "claude" && !model) {
60
60
  if (process.env.VOLUTE_MIND || !process.stdin.isTTY) {
61
- const { getSpiritModel } = await import("./spirit-I5ECLGRI.js");
61
+ const { getSpiritModel } = await import("./spirit-Q5VGFWUI.js");
62
62
  const { qualifyModelId } = await import("./ai-service-YW5SWCSB.js");
63
63
  const spiritModel = getSpiritModel();
64
64
  if (spiritModel) {