volute 0.33.0 → 0.34.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 (182) hide show
  1. package/dist/{accept-D5VBM7JW.js → accept-TW6V4WI4.js} +6 -6
  2. package/dist/{activity-events-XJO3P4RR.js → activity-events-BN7V6KCC.js} +4 -4
  3. package/dist/{ai-service-SBY2WG7O.js → ai-service-PSILB5WD.js} +5 -5
  4. package/dist/{api-client-YPKOZP2O.js → api-client-XUXOB7LI.js} +1 -1
  5. package/dist/api.d.ts +426 -3
  6. package/dist/{archive-INXYFVCW.js → archive-C2VEMQOR.js} +4 -4
  7. package/dist/{auth-GKCDSO4T.js → auth-ZFZXJZDQ.js} +5 -5
  8. package/dist/{bridge-TXWWPPOJ.js → bridge-O753D5F4.js} +6 -6
  9. package/dist/{chat-U5ZOME3O.js → chat-BHYX7DJ4.js} +9 -9
  10. package/dist/{chunk-M7UL5S3Q.js → chunk-2IOP6PHB.js} +1 -1
  11. package/dist/{chunk-NPKSDYA2.js → chunk-47XDEWWV.js} +5 -5
  12. package/dist/{chunk-RSX4OPZY.js → chunk-47ZPNLF4.js} +7 -7
  13. package/dist/{chunk-RPZZSXV3.js → chunk-4JSR7YO7.js} +20 -1
  14. package/dist/{chunk-N432I7QH.js → chunk-6OWJXUAR.js} +1 -1
  15. package/dist/{chunk-I5KY25PQ.js → chunk-6WAWMWR5.js} +1 -1
  16. package/dist/{chunk-NNB4WIG7.js → chunk-7F2SW2KD.js} +2 -2
  17. package/dist/chunk-7KJOFUNN.js +22 -0
  18. package/dist/{chunk-7J3HEVR7.js → chunk-B2BVAIZ4.js} +15 -9
  19. package/dist/{chunk-VH33ZWMW.js → chunk-BDK73LK6.js} +1 -1
  20. package/dist/{chunk-QTUVYI7W.js → chunk-BFWHBQK4.js} +1 -1
  21. package/dist/{chunk-JYVGHWEJ.js → chunk-BM474GX6.js} +3 -3
  22. package/dist/{chunk-LOEJ4HPQ.js → chunk-BTWAGDV5.js} +1 -1
  23. package/dist/{chunk-A2A4KLFE.js → chunk-CVL5IGIR.js} +596 -40
  24. package/dist/{chunk-RVGLDGMI.js → chunk-E5C7OWZ2.js} +20 -22
  25. package/dist/chunk-FYCALD4Q.js +23 -0
  26. package/dist/{chunk-SKLSMHXO.js → chunk-IS7WJ56Q.js} +1 -1
  27. package/dist/{chunk-2NGTS5UU.js → chunk-M3K5AARV.js} +1 -1
  28. package/dist/{chunk-ALEF47VT.js → chunk-MLOQKQNB.js} +1 -1
  29. package/dist/{chunk-C7I35G4R.js → chunk-N3DNFPVA.js} +41 -5
  30. package/dist/{chunk-LRCG2JLP.js → chunk-N7BLAHNE.js} +5 -1
  31. package/dist/{chunk-UKVWJRKN.js → chunk-PLDWHR4D.js} +1 -1
  32. package/dist/{chunk-3Z2DPESO.js → chunk-TAHX36HZ.js} +126 -81
  33. package/dist/{chunk-KIEPMIM5.js → chunk-U5BTYSAL.js} +1 -1
  34. package/dist/{chunk-GY5HBI7A.js → chunk-V45JXOWY.js} +2 -2
  35. package/dist/{chunk-JUKK7FPS.js → chunk-V6ZCNULL.js} +2 -2
  36. package/dist/{chunk-KVK2DLWI.js → chunk-XWXBJQBE.js} +2 -2
  37. package/dist/cli.js +23 -23
  38. package/dist/{clock-BVH3V6E3.js → clock-3X4DSC2N.js} +40 -25
  39. package/dist/{cloud-sync-4NWLMFVH.js → cloud-sync-TG3TIX5H.js} +21 -21
  40. package/dist/{config-H2H4UIF7.js → config-OROA5DUA.js} +4 -4
  41. package/dist/connectors/discord-bridge.js +1 -1
  42. package/dist/connectors/slack-bridge.js +1 -1
  43. package/dist/connectors/telegram-bridge.js +1 -1
  44. package/dist/{conversations-AWI5SZW2.js → conversations-HL2JP5GI.js} +5 -5
  45. package/dist/{create-YWD2TIP4.js → create-3SEKKI6P.js} +6 -6
  46. package/dist/{create-2FK7Z46Y.js → create-UOSOQ2HN.js} +4 -4
  47. package/dist/daemon-client-WOAQXXBM.js +12 -0
  48. package/dist/{daemon-restart-GOBUKLX7.js → daemon-restart-5ABHNXJZ.js} +9 -9
  49. package/dist/daemon.js +1747 -688
  50. package/dist/{db-RA45JBFG.js → db-PLEDCBHZ.js} +1 -1
  51. package/dist/db-RYX3SS2W.js +9 -0
  52. package/dist/{delete-QTGWEDBI.js → delete-KYOVWR23.js} +3 -3
  53. package/dist/delivery-manager-2BR5NZKF.js +32 -0
  54. package/dist/{delivery-router-FL45JL7N.js → delivery-router-D5ELDMS2.js} +4 -4
  55. package/dist/down-QVFN4UPK.js +15 -0
  56. package/dist/{env-JCOF2222.js → env-R34DT7XL.js} +12 -8
  57. package/dist/exec-DVLXKRIO.js +17 -0
  58. package/dist/{export-SUYRLI5Q.js → export-6ZXAXATG.js} +6 -6
  59. package/dist/extension-PM42QCID.js +97 -0
  60. package/dist/extensions-BBGVL5JC.js +38 -0
  61. package/dist/{files-65PMW5IK.js → files-VQV2VZQO.js} +7 -7
  62. package/dist/{import-DDUFE7AY.js → import-MK2I2T6F.js} +5 -5
  63. package/dist/{isolation-LLAYQYDY.js → isolation-62MKDZN3.js} +4 -4
  64. package/dist/{join-I5QEE3LG.js → join-DGYHTJUH.js} +3 -3
  65. package/dist/lib-DYEZMGW7.js +6588 -0
  66. package/dist/{list-JQ463EDA.js → list-C644WTHV.js} +18 -10
  67. package/dist/{login-D7ETSU4R.js → login-IIGEQPHL.js} +6 -6
  68. package/dist/{login-RIJF2F4G.js → login-KZQLMAWE.js} +4 -4
  69. package/dist/{logout-5MLHZALK.js → logout-AGTZVRGP.js} +4 -4
  70. package/dist/{logout-UZJRGY4Z.js → logout-KD6GXIJJ.js} +4 -4
  71. package/dist/message-delivery-V3R6NXJP.js +42 -0
  72. package/dist/{mind-IOJFLEM5.js → mind-BI4EPBVZ.js} +19 -19
  73. package/dist/{mind-activity-tracker-F6O4Q2SL.js → mind-activity-tracker-2ACNHA7B.js} +5 -5
  74. package/dist/mind-history-WOYFLQAI.js +264 -0
  75. package/dist/{mind-list-WUPMQDYQ.js → mind-list-6VPM7GUQ.js} +4 -4
  76. package/dist/mind-manager-MWW3BTS4.js +32 -0
  77. package/dist/{mind-profile-P67FEHOY.js → mind-profile-WPG42U5Y.js} +2 -2
  78. package/dist/mind-service-VIKZJK2M.js +38 -0
  79. package/dist/{mind-sleep-WW2IX7JT.js → mind-sleep-XDISJY74.js} +6 -6
  80. package/dist/{mind-status-L3EFFRPR.js → mind-status-7FTZWPZF.js} +4 -4
  81. package/dist/{mind-wake-VSSGW465.js → mind-wake-KIIKEI3A.js} +6 -6
  82. package/dist/{package-U3VFO273.js → package-V2WHWVG6.js} +8 -5
  83. package/dist/{read-EBY56C33.js → read-H5C26YO7.js} +20 -10
  84. package/dist/{read-stdin-HQJ7774D.js → read-stdin-PIRM6A2Y.js} +1 -1
  85. package/dist/{register-HD74C4TT.js → register-J27WP33N.js} +6 -6
  86. package/dist/{registry-PJ4S5PHQ.js → registry-UYV5S6QT.js} +3 -3
  87. package/dist/{reject-UJKFBHRO.js → reject-OEANJYIA.js} +6 -6
  88. package/dist/{restart-3UCMRUVC.js → restart-V5EGYBJG.js} +4 -4
  89. package/dist/{sandbox-GJOK4QLQ.js → sandbox-SI5HMBP3.js} +5 -5
  90. package/dist/scheduler-AGG3L2FO.js +32 -0
  91. package/dist/{schema-PA3M5ZKH.js → schema-ETMABTW4.js} +4 -2
  92. package/dist/{seed-QDYVLG74.js → seed-WNGI6PNW.js} +2 -2
  93. package/dist/{seed-check-S2IX25RL.js → seed-check-PXTH7YXS.js} +2 -2
  94. package/dist/{seed-cmd-DKOUFEAU.js → seed-cmd-VENFTGS3.js} +4 -4
  95. package/dist/{seed-create-4XBBOLRH.js → seed-create-663ALOKH.js} +6 -6
  96. package/dist/{seed-sprout-GQEIIQRT.js → seed-sprout-EH3AGKAI.js} +12 -12
  97. package/dist/{send-QIV2INHB.js → send-7FUUUZZH.js} +23 -10
  98. package/dist/{setup-TISPCO22.js → setup-GGMKENLN.js} +4 -4
  99. package/dist/{setup-XMCBE3LF.js → setup-Z3DEVWV7.js} +11 -11
  100. package/dist/{skill-PSQGRRJX.js → skill-DKNYJS4P.js} +14 -10
  101. package/dist/skills/plan-coordinator/SKILL.md +60 -0
  102. package/dist/skills/volute-mind/SKILL.md +7 -221
  103. package/dist/skills/volute-mind/references/extensions.md +37 -0
  104. package/dist/skills/volute-mind/references/integrations.md +48 -0
  105. package/dist/skills/volute-mind/references/routing.md +86 -0
  106. package/dist/skills/volute-mind/references/sleep.md +33 -0
  107. package/dist/skills/volute-mind/references/variants.md +31 -0
  108. package/dist/{skills-7FV7EJTE.js → skills-Q6VZ2UGD.js} +11 -7
  109. package/dist/sleep-manager-BJK2ROPX.js +36 -0
  110. package/dist/spirit-4JP4TY4C.js +23 -0
  111. package/dist/{split-STOROBYJ.js → split-3YPMS2CL.js} +3 -3
  112. package/dist/{sprout-WKLZXUIQ.js → sprout-E3HJIV2Z.js} +2 -2
  113. package/dist/{start-K2NCUUCG.js → start-W3TPKX4D.js} +4 -4
  114. package/dist/{status-3JBTFSMI.js → status-4OVFXFEJ.js} +7 -7
  115. package/dist/{stop-H26JZDXF.js → stop-GTT6YWYO.js} +4 -4
  116. package/dist/system-channel-DXD2JBOU.js +36 -0
  117. package/dist/system-chat-TYLOL7SX.js +36 -0
  118. package/dist/{systems-XRI52VCH.js → systems-AYLO727G.js} +7 -7
  119. package/dist/{tailscale-XHQBZROW.js → tailscale-ZEUK7GKZ.js} +3 -3
  120. package/dist/{template-hash-A6VVKOXJ.js → template-hash-EJRTKE36.js} +1 -1
  121. package/dist/up-PA7F2CXE.js +18 -0
  122. package/dist/{update-UD543CXX.js → update-HG4LCUSG.js} +7 -7
  123. package/dist/{update-check-ZD6OOIYQ.js → update-check-X3YG4WVP.js} +4 -4
  124. package/dist/{upgrade-O4Q7WJM3.js → upgrade-YGNIDICG.js} +3 -3
  125. package/dist/{variant-7TGZHOU3.js → variant-MZUMRTQO.js} +1 -1
  126. package/dist/{version-notify-NBI2MTJO.js → version-notify-YCH4UVQ2.js} +19 -19
  127. package/dist/{volute-config-HD7WWUQC.js → volute-config-WBKYJGYQ.js} +1 -1
  128. package/dist/web-assets/assets/index-DiiwC-CZ.css +1 -0
  129. package/dist/web-assets/assets/index-d6y5b9Ij.js +75 -0
  130. package/dist/web-assets/ext-theme.css +48 -9
  131. package/dist/web-assets/index.html +2 -2
  132. package/drizzle/0005_meta_summaries.sql +15 -0
  133. package/drizzle/meta/0005_snapshot.json +7 -0
  134. package/drizzle/meta/_journal.json +7 -0
  135. package/package.json +7 -4
  136. package/packages/extensions/plan/dist/ui/assets/index-CJj2gZnZ.css +1 -0
  137. package/packages/extensions/plan/dist/ui/assets/index-FMEJmvQz.js +61 -0
  138. package/packages/extensions/plan/dist/ui/index.html +14 -0
  139. package/packages/extensions/plan/skills/plan/SKILL.md +43 -0
  140. package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +37 -0
  141. package/templates/_base/home/VOLUTE.md +12 -19
  142. package/templates/_base/src/lib/context-breakdown.ts +450 -0
  143. package/templates/_base/src/lib/format-prefix.ts +17 -0
  144. package/templates/_base/src/lib/hook-loader.ts +8 -2
  145. package/templates/_base/src/lib/router.ts +75 -33
  146. package/templates/_base/src/lib/routing.ts +4 -1
  147. package/templates/_base/src/lib/startup.ts +16 -8
  148. package/templates/_base/src/lib/types.ts +2 -1
  149. package/templates/_base/src/lib/volute-server.ts +69 -8
  150. package/templates/claude/.init/CLAUDE.md +4 -10
  151. package/templates/claude/package.json.tmpl +1 -0
  152. package/templates/claude/src/agent.ts +100 -32
  153. package/templates/claude/src/lib/hooks/reply-instructions.ts +27 -7
  154. package/templates/claude/src/lib/stream-consumer.ts +2 -2
  155. package/templates/claude/src/server.ts +1 -0
  156. package/templates/codex/package.json.tmpl +1 -0
  157. package/templates/codex/src/agent.ts +80 -8
  158. package/templates/codex/src/server.ts +1 -4
  159. package/templates/pi/package.json.tmpl +1 -0
  160. package/templates/pi/src/agent.ts +115 -36
  161. package/templates/pi/src/lib/event-handler.ts +22 -7
  162. package/templates/pi/src/lib/reply-instructions-extension.ts +23 -4
  163. package/templates/pi/src/lib/subagents.ts +20 -17
  164. package/templates/pi/src/server.ts +2 -5
  165. package/dist/chunk-K3NQKI34.js +0 -10
  166. package/dist/daemon-client-6QXHZ7US.js +0 -12
  167. package/dist/db-F34YLV7D.js +0 -9
  168. package/dist/delivery-manager-PFAKEJTC.js +0 -32
  169. package/dist/down-FWWTEKXM.js +0 -15
  170. package/dist/extension-OBTGKQQD.js +0 -175
  171. package/dist/extensions-KYNTVTMO.js +0 -30
  172. package/dist/history-DKCDI3JO.js +0 -128
  173. package/dist/message-delivery-DFF5SJRM.js +0 -42
  174. package/dist/mind-manager-NBJF5D26.js +0 -32
  175. package/dist/mind-service-2MQ6UK5N.js +0 -38
  176. package/dist/scheduler-ZZ7XGQG6.js +0 -32
  177. package/dist/sleep-manager-JTXSN7NV.js +0 -36
  178. package/dist/spirit-VRONKFMF.js +0 -23
  179. package/dist/system-chat-JAPOJ3KE.js +0 -36
  180. package/dist/up-M5AS6SBV.js +0 -18
  181. package/dist/web-assets/assets/index-CWJrVveV.css +0 -1
  182. package/dist/web-assets/assets/index-DJt14FRI.js +0 -75
@@ -6,7 +6,7 @@ import {
6
6
  initDb,
7
7
  syncPublishedPages
8
8
  } from "./chunk-PB65JZK2.js";
9
- import "./chunk-K3NQKI34.js";
9
+ import "./chunk-7KJOFUNN.js";
10
10
  export {
11
11
  getAllSites,
12
12
  getPublishedPages,
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ getDb
4
+ } from "./chunk-N7BLAHNE.js";
5
+ import "./chunk-4JSR7YO7.js";
6
+ import "./chunk-7KJOFUNN.js";
7
+ export {
8
+ getDb
9
+ };
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  parseArgs
7
7
  } from "./chunk-D424ZQGI.js";
8
- import "./chunk-K3NQKI34.js";
8
+ import "./chunk-7KJOFUNN.js";
9
9
 
10
10
  // src/commands/delete.ts
11
11
  async function run(args) {
@@ -13,8 +13,8 @@ async function run(args) {
13
13
  force: { type: "boolean" }
14
14
  });
15
15
  const name = resolveMindName({ mind: positional[0] });
16
- const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
17
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
16
+ const { daemonFetch } = await import("./daemon-client-WOAQXXBM.js");
17
+ const { getClient, urlOf } = await import("./api-client-XUXOB7LI.js");
18
18
  const client = getClient();
19
19
  const url = urlOf(client.api.minds[":name"].$url({ param: { name } })) + (flags.force ? "?force=true" : "");
20
20
  const res = await daemonFetch(url, { method: "DELETE" });
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ DeliveryManager,
4
+ getDeliveryManager,
5
+ initDeliveryManager
6
+ } from "./chunk-TAHX36HZ.js";
7
+ import "./chunk-CVL5IGIR.js";
8
+ import "./chunk-B2BVAIZ4.js";
9
+ import "./chunk-G53F3JA4.js";
10
+ import "./chunk-N3DNFPVA.js";
11
+ import "./chunk-OYAKCAVY.js";
12
+ import "./chunk-V45JXOWY.js";
13
+ import "./chunk-IS7WJ56Q.js";
14
+ import "./chunk-BTWAGDV5.js";
15
+ import "./chunk-M3K5AARV.js";
16
+ import "./chunk-PB65JZK2.js";
17
+ import "./chunk-BM474GX6.js";
18
+ import "./chunk-E5C7OWZ2.js";
19
+ import "./chunk-XWXBJQBE.js";
20
+ import "./chunk-BFWHBQK4.js";
21
+ import "./chunk-YUIHSKR6.js";
22
+ import "./chunk-U5BTYSAL.js";
23
+ import "./chunk-BDK73LK6.js";
24
+ import "./chunk-6OWJXUAR.js";
25
+ import "./chunk-N7BLAHNE.js";
26
+ import "./chunk-4JSR7YO7.js";
27
+ import "./chunk-7KJOFUNN.js";
28
+ export {
29
+ DeliveryManager,
30
+ getDeliveryManager,
31
+ initDeliveryManager
32
+ };
@@ -6,11 +6,11 @@ import {
6
6
  registerMindDir,
7
7
  resolveDeliveryMode,
8
8
  resolveRoute
9
- } from "./chunk-SKLSMHXO.js";
9
+ } from "./chunk-IS7WJ56Q.js";
10
10
  import "./chunk-YUIHSKR6.js";
11
- import "./chunk-LRCG2JLP.js";
12
- import "./chunk-RPZZSXV3.js";
13
- import "./chunk-K3NQKI34.js";
11
+ import "./chunk-N7BLAHNE.js";
12
+ import "./chunk-4JSR7YO7.js";
13
+ import "./chunk-7KJOFUNN.js";
14
14
  export {
15
15
  clearConfigCache,
16
16
  extractTextContent,
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ run,
4
+ stopDaemon
5
+ } from "./chunk-V6ZCNULL.js";
6
+ import "./chunk-7F2SW2KD.js";
7
+ import "./chunk-U5BTYSAL.js";
8
+ import "./chunk-BDK73LK6.js";
9
+ import "./chunk-N7BLAHNE.js";
10
+ import "./chunk-4JSR7YO7.js";
11
+ import "./chunk-7KJOFUNN.js";
12
+ export {
13
+ run,
14
+ stopDaemon
15
+ };
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ isCompact
4
+ } from "./chunk-FYCALD4Q.js";
2
5
  import {
3
6
  promptLine
4
7
  } from "./chunk-SSI47XP2.js";
@@ -6,15 +9,15 @@ import {
6
9
  getClient,
7
10
  urlOf
8
11
  } from "./chunk-4RQBJWQX.js";
9
- import {
10
- daemonFetch
11
- } from "./chunk-UKVWJRKN.js";
12
12
  import {
13
13
  parseArgs
14
14
  } from "./chunk-D424ZQGI.js";
15
- import "./chunk-LRCG2JLP.js";
16
- import "./chunk-RPZZSXV3.js";
17
- import "./chunk-K3NQKI34.js";
15
+ import {
16
+ daemonFetch
17
+ } from "./chunk-PLDWHR4D.js";
18
+ import "./chunk-N7BLAHNE.js";
19
+ import "./chunk-4JSR7YO7.js";
20
+ import "./chunk-7KJOFUNN.js";
18
21
 
19
22
  // src/commands/env.ts
20
23
  function maskValue(value) {
@@ -104,6 +107,7 @@ async function run(args) {
104
107
  break;
105
108
  }
106
109
  case "list": {
110
+ const compact = isCompact();
107
111
  if (flags.mind) {
108
112
  const res = await daemonFetch(
109
113
  urlOf(client.api.minds[":name"].env.$url({ param: { name: flags.mind } }))
@@ -123,7 +127,7 @@ async function run(args) {
123
127
  const scope = key in data.mind ? "mind" : "shared";
124
128
  const raw = key in data.mind ? data.mind[key] : data.shared[key];
125
129
  const value = flags.reveal ? raw : maskValue(raw);
126
- console.log(`${key}=${value} [${scope}]`);
130
+ console.log(compact ? `${key}=${value}` : `${key}=${value} [${scope}]`);
127
131
  }
128
132
  } else {
129
133
  const res = await daemonFetch(urlOf(client.api.env.$url()));
@@ -139,7 +143,7 @@ async function run(args) {
139
143
  }
140
144
  for (const key of keys.sort()) {
141
145
  const value = flags.reveal ? env[key] : maskValue(env[key]);
142
- console.log(`${key}=${value} [shared]`);
146
+ console.log(compact ? `${key}=${value}` : `${key}=${value} [shared]`);
143
147
  }
144
148
  }
145
149
  break;
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ exec,
4
+ execInherit,
5
+ gitExec,
6
+ resolveVoluteBin
7
+ } from "./chunk-U5BTYSAL.js";
8
+ import "./chunk-BDK73LK6.js";
9
+ import "./chunk-N7BLAHNE.js";
10
+ import "./chunk-4JSR7YO7.js";
11
+ import "./chunk-7KJOFUNN.js";
12
+ export {
13
+ exec,
14
+ execInherit,
15
+ gitExec,
16
+ resolveVoluteBin
17
+ };
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  addHistoryToArchive,
4
4
  createExportArchive
5
- } from "./chunk-I5KY25PQ.js";
5
+ } from "./chunk-6WAWMWR5.js";
6
6
  import {
7
7
  parseArgs
8
8
  } from "./chunk-D424ZQGI.js";
9
9
  import {
10
10
  findMind,
11
11
  mindDir
12
- } from "./chunk-LRCG2JLP.js";
13
- import "./chunk-RPZZSXV3.js";
14
- import "./chunk-K3NQKI34.js";
12
+ } from "./chunk-N7BLAHNE.js";
13
+ import "./chunk-4JSR7YO7.js";
14
+ import "./chunk-7KJOFUNN.js";
15
15
 
16
16
  // src/commands/export.ts
17
17
  import { existsSync, writeFileSync } from "fs";
@@ -64,8 +64,8 @@ async function run(args) {
64
64
  });
65
65
  if (includeHistory) {
66
66
  try {
67
- const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
68
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
67
+ const { daemonFetch } = await import("./daemon-client-WOAQXXBM.js");
68
+ const { getClient, urlOf } = await import("./api-client-XUXOB7LI.js");
69
69
  const client = getClient();
70
70
  const res = await daemonFetch(
71
71
  urlOf(client.api.minds[":name"].history.export.$url({ param: { name } }))
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ daemonFetch
4
+ } from "./chunk-PLDWHR4D.js";
5
+ import "./chunk-N7BLAHNE.js";
6
+ import "./chunk-4JSR7YO7.js";
7
+ import "./chunk-7KJOFUNN.js";
8
+
9
+ // src/commands/extension.ts
10
+ async function run(args) {
11
+ const subcommand = args[0];
12
+ switch (subcommand) {
13
+ case "list":
14
+ await listExtensions();
15
+ break;
16
+ case "install":
17
+ await installExtension(args.slice(1));
18
+ break;
19
+ case "uninstall":
20
+ await uninstallExtension(args.slice(1));
21
+ break;
22
+ case "--help":
23
+ case "-h":
24
+ case void 0:
25
+ printUsage();
26
+ break;
27
+ default:
28
+ console.error(`Unknown subcommand: ${subcommand}`);
29
+ printUsage();
30
+ process.exit(1);
31
+ }
32
+ }
33
+ function printUsage() {
34
+ console.log(`Usage:
35
+ volute extension list List installed extensions
36
+ volute extension install <package> Install a third-party extension
37
+ volute extension uninstall <package> Uninstall a third-party extension`);
38
+ }
39
+ async function listExtensions() {
40
+ const res = await daemonFetch("/api/extensions/all");
41
+ if (!res.ok) {
42
+ const body = await res.json().catch(() => ({ error: "Unknown error" }));
43
+ console.error(`Error: ${body.error}`);
44
+ process.exit(1);
45
+ }
46
+ const extensions = await res.json();
47
+ if (extensions.length === 0) {
48
+ console.log("No extensions found.");
49
+ return;
50
+ }
51
+ console.log("Extensions:\n");
52
+ for (const ext of extensions) {
53
+ const status = ext.enabled ? "enabled" : "disabled";
54
+ console.log(` ${ext.id} \u2014 ${ext.name} v${ext.version} (${ext.source}, ${status})`);
55
+ if (ext.description) console.log(` ${ext.description}`);
56
+ }
57
+ }
58
+ async function installExtension(args) {
59
+ const pkg = args[0];
60
+ if (!pkg) {
61
+ console.error("Usage: volute extension install <package>");
62
+ process.exit(1);
63
+ }
64
+ console.log(`Installing "${pkg}"...`);
65
+ const res = await daemonFetch("/api/extensions/install", {
66
+ method: "POST",
67
+ headers: { "Content-Type": "application/json" },
68
+ body: JSON.stringify({ package: pkg })
69
+ });
70
+ if (!res.ok) {
71
+ const body = await res.json().catch(() => ({ error: "Unknown error" }));
72
+ console.error(`Failed to install "${pkg}": ${body.error}`);
73
+ process.exit(1);
74
+ }
75
+ console.log(`Installed "${pkg}".`);
76
+ console.log("Restart the daemon (`volute restart`) to load the extension.");
77
+ }
78
+ async function uninstallExtension(args) {
79
+ const pkg = args[0];
80
+ if (!pkg) {
81
+ console.error("Usage: volute extension uninstall <package>");
82
+ process.exit(1);
83
+ }
84
+ const res = await daemonFetch(`/api/extensions/uninstall/${encodeURIComponent(pkg)}`, {
85
+ method: "DELETE"
86
+ });
87
+ if (!res.ok) {
88
+ const body = await res.json().catch(() => ({ error: "Unknown error" }));
89
+ console.error(`Failed to uninstall "${pkg}": ${body.error}`);
90
+ process.exit(1);
91
+ }
92
+ console.log(`Removed "${pkg}".`);
93
+ console.log("Restart the daemon (`volute restart`) to unload the extension.");
94
+ }
95
+ export {
96
+ run
97
+ };
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ getAllDiscoveredExtensions,
4
+ getExtensionStandardSkills,
5
+ getLoadedExtensions,
6
+ installNpmExtension,
7
+ loadAllExtensions,
8
+ notifyExtensionsDaemonStart,
9
+ notifyExtensionsDaemonStop,
10
+ notifyExtensionsMindStart,
11
+ notifyExtensionsMindStop,
12
+ setExtensionEnabled,
13
+ uninstallNpmExtension
14
+ } from "./chunk-CVL5IGIR.js";
15
+ import "./chunk-N3DNFPVA.js";
16
+ import "./chunk-PB65JZK2.js";
17
+ import "./chunk-BM474GX6.js";
18
+ import "./chunk-XWXBJQBE.js";
19
+ import "./chunk-YUIHSKR6.js";
20
+ import "./chunk-U5BTYSAL.js";
21
+ import "./chunk-BDK73LK6.js";
22
+ import "./chunk-6OWJXUAR.js";
23
+ import "./chunk-N7BLAHNE.js";
24
+ import "./chunk-4JSR7YO7.js";
25
+ import "./chunk-7KJOFUNN.js";
26
+ export {
27
+ getAllDiscoveredExtensions,
28
+ getExtensionStandardSkills,
29
+ getLoadedExtensions,
30
+ installNpmExtension,
31
+ loadAllExtensions,
32
+ notifyExtensionsDaemonStart,
33
+ notifyExtensionsDaemonStop,
34
+ notifyExtensionsMindStart,
35
+ notifyExtensionsMindStop,
36
+ setExtensionEnabled,
37
+ uninstallNpmExtension
38
+ };
@@ -4,16 +4,16 @@ import {
4
4
  } from "./chunk-NAOW2CLO.js";
5
5
  import {
6
6
  formatFileSize
7
- } from "./chunk-ALEF47VT.js";
8
- import {
9
- daemonFetch
10
- } from "./chunk-UKVWJRKN.js";
7
+ } from "./chunk-MLOQKQNB.js";
11
8
  import {
12
9
  parseArgs
13
10
  } from "./chunk-D424ZQGI.js";
14
- import "./chunk-LRCG2JLP.js";
15
- import "./chunk-RPZZSXV3.js";
16
- import "./chunk-K3NQKI34.js";
11
+ import {
12
+ daemonFetch
13
+ } from "./chunk-PLDWHR4D.js";
14
+ import "./chunk-N7BLAHNE.js";
15
+ import "./chunk-4JSR7YO7.js";
16
+ import "./chunk-7KJOFUNN.js";
17
17
 
18
18
  // src/commands/chat/files.ts
19
19
  async function run(args) {
@@ -6,13 +6,13 @@ import {
6
6
  parseNameFromIdentity,
7
7
  run,
8
8
  sessionMatchesWorkspace
9
- } from "./chunk-RSX4OPZY.js";
10
- import "./chunk-2NGTS5UU.js";
9
+ } from "./chunk-47ZPNLF4.js";
10
+ import "./chunk-M3K5AARV.js";
11
11
  import "./chunk-YUIHSKR6.js";
12
12
  import "./chunk-D424ZQGI.js";
13
- import "./chunk-LRCG2JLP.js";
14
- import "./chunk-RPZZSXV3.js";
15
- import "./chunk-K3NQKI34.js";
13
+ import "./chunk-N7BLAHNE.js";
14
+ import "./chunk-4JSR7YO7.js";
15
+ import "./chunk-7KJOFUNN.js";
16
16
  export {
17
17
  findOpenClawSession,
18
18
  importOpenClawConnectors,
@@ -7,10 +7,10 @@ import {
7
7
  isIsolationEnabled,
8
8
  mindUserName,
9
9
  wrapForIsolation
10
- } from "./chunk-VH33ZWMW.js";
11
- import "./chunk-LRCG2JLP.js";
12
- import "./chunk-RPZZSXV3.js";
13
- import "./chunk-K3NQKI34.js";
10
+ } from "./chunk-BDK73LK6.js";
11
+ import "./chunk-N7BLAHNE.js";
12
+ import "./chunk-4JSR7YO7.js";
13
+ import "./chunk-7KJOFUNN.js";
14
14
  export {
15
15
  chownMindDir,
16
16
  createMindUser,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  parseArgs
4
4
  } from "./chunk-D424ZQGI.js";
5
- import "./chunk-K3NQKI34.js";
5
+ import "./chunk-7KJOFUNN.js";
6
6
 
7
7
  // src/commands/join.ts
8
8
  async function run(args) {
@@ -20,8 +20,8 @@ async function run(args) {
20
20
  process.exit(1);
21
21
  }
22
22
  console.log(`Joining variant ${variantName}...`);
23
- const { daemonFetch } = await import("./daemon-client-6QXHZ7US.js");
24
- const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
23
+ const { daemonFetch } = await import("./daemon-client-WOAQXXBM.js");
24
+ const { getClient, urlOf } = await import("./api-client-XUXOB7LI.js");
25
25
  const client = getClient();
26
26
  const statusRes = await daemonFetch(
27
27
  urlOf(client.api.minds[":name"].$url({ param: { name: variantName } }))