volute 0.41.0 → 0.42.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 (138) hide show
  1. package/dist/{accept-AHAOUFBK.js → accept-7YVHZKRD.js} +1 -1
  2. package/dist/{activity-events-EQGBUEZ7.js → activity-events-KFKVRZE3.js} +2 -2
  3. package/dist/{ai-service-ZHEPFC3U.js → ai-service-3GBOJGUA.js} +11 -3
  4. package/dist/{archive-LJAXDDEY.js → archive-4PPYF7LL.js} +2 -2
  5. package/dist/{auth-VYW2ECCE.js → auth-EAASQPTN.js} +3 -3
  6. package/dist/{bridge-F3ZJEKDN.js → bridge-WPYSOQKR.js} +1 -1
  7. package/dist/{chat-FO722GU2.js → chat-7DOENBY2.js} +8 -8
  8. package/dist/{chunk-AXNAK3HT.js → chunk-2YRTSK5K.js} +7 -7
  9. package/dist/{chunk-VK2YD7VJ.js → chunk-4ZSUUBG5.js} +97 -2
  10. package/dist/{chunk-W5Z2H3LU.js → chunk-52NMCDBS.js} +290 -71
  11. package/dist/{chunk-6TPRURK5.js → chunk-5QG36RV7.js} +2 -2
  12. package/dist/{chunk-GMFCSXWB.js → chunk-62ICA2FF.js} +1 -1
  13. package/dist/{chunk-6ZAT5PYV.js → chunk-BLOAJLGI.js} +1 -1
  14. package/dist/{chunk-2I7OKOYV.js → chunk-CGPESELY.js} +2 -2
  15. package/dist/{chunk-FEQPNCXB.js → chunk-E7XWFDZL.js} +1 -1
  16. package/dist/{chunk-V67XMNGP.js → chunk-G777ME4L.js} +2 -2
  17. package/dist/{chunk-Y2XLASFJ.js → chunk-GN52E2DP.js} +1 -1
  18. package/dist/{chunk-ZX7EAV5J.js → chunk-IFNSAOA4.js} +9 -2
  19. package/dist/{chunk-VDODEQSJ.js → chunk-IUZ3EV2D.js} +4 -0
  20. package/dist/{chunk-JIGVTFIR.js → chunk-JLX3GC7T.js} +43 -14
  21. package/dist/{chunk-2RQIIKFC.js → chunk-K547QOCM.js} +1 -1
  22. package/dist/{chunk-OQ7UEW67.js → chunk-KUJVCDWT.js} +2 -2
  23. package/dist/chunk-KZAL7HEQ.js +141 -0
  24. package/dist/{chunk-GSOEUMVO.js → chunk-M2YMNTHK.js} +1 -1
  25. package/dist/{chunk-MU2B7A3L.js → chunk-OEJFZHZZ.js} +1 -1
  26. package/dist/{chunk-SWY4DJ67.js → chunk-OSUF75I7.js} +2 -2
  27. package/dist/{chunk-WSRGS4XP.js → chunk-QLWG3C2Z.js} +10 -0
  28. package/dist/{chunk-UU3Q65US.js → chunk-QMJCNZ6C.js} +1 -1
  29. package/dist/{chunk-CYUNO4BM.js → chunk-QPTQKGGF.js} +1 -1
  30. package/dist/{chunk-FU5YDH6Q.js → chunk-RKBYFLOR.js} +3 -3
  31. package/dist/{chunk-4ED2DBNC.js → chunk-TFBQESH7.js} +1 -1
  32. package/dist/{chunk-YATR5BXD.js → chunk-TKOWXAHG.js} +4 -4
  33. package/dist/{chunk-PP5CGT2P.js → chunk-VBKRZCR7.js} +1 -1
  34. package/dist/{chunk-YN6ISG7A.js → chunk-VSUZE2PD.js} +14 -13
  35. package/dist/{chunk-U7UASV36.js → chunk-WR7CSHQ4.js} +43 -10
  36. package/dist/{chunk-2R4JIZCB.js → chunk-YLTIEEVL.js} +2 -2
  37. package/dist/cli.js +22 -22
  38. package/dist/{clock-BMLJ2TR6.js → clock-HP2TGMG5.js} +3 -3
  39. package/dist/{cloud-sync-GV6O2HN2.js → cloud-sync-3OPHFOYQ.js} +17 -17
  40. package/dist/{config-QB7W3Z7P.js → config-W7MS3PWY.js} +3 -3
  41. package/dist/{conversations-KW7IYESK.js → conversations-FSZCUUYO.js} +3 -3
  42. package/dist/{create-C3BBFYV7.js → create-CJ2SR4EU.js} +1 -1
  43. package/dist/{create-CTPXWFTL.js → create-YNBZWD34.js} +2 -2
  44. package/dist/{daemon-client-2MIPKY3E.js → daemon-client-EWDPOOHC.js} +3 -1
  45. package/dist/{daemon-restart-W47YDE5E.js → daemon-restart-RAKGR56L.js} +7 -7
  46. package/dist/daemon.js +258 -302
  47. package/dist/{db-D4FVCA5I.js → db-ZJJJYJBU.js} +1 -1
  48. package/dist/{delete-NLXES2C7.js → delete-4ND5PLE7.js} +1 -1
  49. package/dist/delivery-manager-5Y35DOX3.js +33 -0
  50. package/dist/{delivery-router-Y66OXJPM.js → delivery-router-FDBZJQOY.js} +2 -2
  51. package/dist/{down-JVHNXOFU.js → down-DS6WCT34.js} +5 -5
  52. package/dist/echo-text-YP3JVLNA.js +32 -0
  53. package/dist/{env-IQ6Q2333.js → env-XX2MBZCZ.js} +1 -1
  54. package/dist/{exec-R2WWZ6FH.js → exec-ZDD7NEB4.js} +3 -3
  55. package/dist/{export-ZZ5WWBUH.js → export-5DOQV2WM.js} +3 -3
  56. package/dist/{extension-LZYHBNLV.js → extension-BCFYXI7A.js} +4 -1
  57. package/dist/{extensions-AGANCIQA.js → extensions-BTNIUS5J.js} +17 -17
  58. package/dist/{files-Q2Z4LQZP.js → files-K2MEMV3W.js} +3 -3
  59. package/dist/{import-MFYCBS4K.js → import-V6QEHMPQ.js} +7 -7
  60. package/dist/{isolation-7F3MA4G7.js → isolation-F7ABZMDA.js} +2 -2
  61. package/dist/{join-6SZCA5FX.js → join-4S3KT7NE.js} +1 -1
  62. package/dist/{list-KHJZJPEJ.js → list-XJB5WII6.js} +1 -1
  63. package/dist/{login-WY3DADVB.js → login-PHMTLNUF.js} +2 -2
  64. package/dist/{login-GYTH67ES.js → login-YWD6PUOT.js} +1 -1
  65. package/dist/{logout-TFZHWNVL.js → logout-BP3R3CAA.js} +2 -2
  66. package/dist/{logout-YHQLOFLR.js → logout-Q2WICH4V.js} +1 -1
  67. package/dist/message-delivery-FPIL26WV.js +41 -0
  68. package/dist/{mind-XIKEPJNS.js → mind-VXV6ZYZY.js} +18 -18
  69. package/dist/{mind-activity-tracker-RSIWUUJK.js → mind-activity-tracker-HWVFE533.js} +3 -3
  70. package/dist/{mind-history-WHCNZ6I5.js → mind-history-TDUQFYAG.js} +1 -1
  71. package/dist/{mind-list-H3HC2ZRG.js → mind-list-2T353Q5G.js} +1 -1
  72. package/dist/mind-manager-OYOIBGK6.js +33 -0
  73. package/dist/{mind-profile-7VYRJGFZ.js → mind-profile-2HHR7LZ7.js} +1 -1
  74. package/dist/mind-service-PR4PR4XI.js +37 -0
  75. package/dist/{mind-sleep-ZL5ZXFTM.js → mind-sleep-4NXV4J4U.js} +1 -1
  76. package/dist/{mind-status-ZWULKOUO.js → mind-status-CG66OXDK.js} +1 -1
  77. package/dist/{mind-wake-HK5ORGUK.js → mind-wake-TNB54DBR.js} +1 -1
  78. package/dist/{package-2X7UNSTQ.js → package-UWH5IM76.js} +2 -1
  79. package/dist/{read-CP7MYMJQ.js → read-JLR4NQXU.js} +1 -1
  80. package/dist/{register-XOBFEMI4.js → register-IQ2M4UO6.js} +1 -1
  81. package/dist/{registry-RAXNFN7K.js → registry-MDLNPTTI.js} +3 -1
  82. package/dist/{reject-43AGXB6B.js → reject-N2D4CZND.js} +1 -1
  83. package/dist/{restart-O5QIYQJT.js → restart-43A5MBGV.js} +1 -1
  84. package/dist/{sandbox-O3GZTS7J.js → sandbox-E7RWZDVG.js} +7 -3
  85. package/dist/scheduler-KXUY2I7W.js +31 -0
  86. package/dist/{seed-I4CNKTKZ.js → seed-YQAOIXIY.js} +1 -1
  87. package/dist/{seed-check-HZPVFJKZ.js → seed-check-N5ALJBT6.js} +1 -1
  88. package/dist/{seed-cmd-YTQYWCZF.js → seed-cmd-7KJS4LCA.js} +3 -3
  89. package/dist/{seed-create-MDBTVADS.js → seed-create-Z7NDRRGP.js} +4 -4
  90. package/dist/{seed-sprout-N6O5FBPY.js → seed-sprout-PYDMVVUL.js} +8 -8
  91. package/dist/{send-5XA7LRNB.js → send-KQECN2EL.js} +3 -3
  92. package/dist/{service-AY5TGWJX.js → service-Q5OVY5AK.js} +4 -4
  93. package/dist/{service-install-NLGAVTQS.js → service-install-GTDUHP6R.js} +5 -5
  94. package/dist/{setup-3434PQ5Q.js → setup-IYOUPCIK.js} +6 -2
  95. package/dist/{setup-47NBOCZL.js → setup-VARJ7N6Z.js} +7 -7
  96. package/dist/{skill-ICN6Y2ZF.js → skill-E43BI34Y.js} +1 -1
  97. package/dist/skills/imagegen/scripts/imagegen.ts +1 -1
  98. package/dist/{skills-YTLBAF32.js → skills-YBCYVOPQ.js} +5 -5
  99. package/dist/sleep-manager-FJLASHHW.js +35 -0
  100. package/dist/{spirit-KTBHLULO.js → spirit-NJFAY5CZ.js} +8 -8
  101. package/dist/{split-5YBEQTBF.js → split-5IBUODEE.js} +1 -1
  102. package/dist/{sprout-4ZUJUNDQ.js → sprout-B27C2WGE.js} +1 -1
  103. package/dist/{src-OYWRPLC6.js → src-L2Z7X5UT.js} +5 -8
  104. package/dist/{src-4LFGGNW7.js → src-TJ7RBU5H.js} +2 -12
  105. package/dist/{start-LMXXRR3X.js → start-5AYFGNS7.js} +1 -1
  106. package/dist/{status-VMOZUIZ2.js → status-ECZHHSY5.js} +5 -5
  107. package/dist/{stop-TWDKVEUX.js → stop-WJ6IG6OK.js} +1 -1
  108. package/dist/system-chat-P6KVGW4T.js +35 -0
  109. package/dist/{systems-Y2WZV2K4.js → systems-5MA57Q7G.js} +4 -4
  110. package/dist/{tailscale-PK3AI5EV.js → tailscale-TIRTGM6E.js} +1 -1
  111. package/dist/{template-hash-JARTCRGS.js → template-hash-446HHH5V.js} +2 -2
  112. package/dist/{turn-tracker-SZBSL7LK.js → turn-tracker-W4TASMR7.js} +4 -4
  113. package/dist/{up-VGVPOB6J.js → up-POJX6S5Y.js} +6 -6
  114. package/dist/{update-3ANTQO54.js → update-OPR4KU4M.js} +5 -5
  115. package/dist/{update-check-4O6DKUOF.js → update-check-OG27AL4Z.js} +2 -2
  116. package/dist/{upgrade-RXFZR5FI.js → upgrade-QB7AHIKX.js} +1 -1
  117. package/dist/{version-notify-SSNAWZMX.js → version-notify-TCKAX7ZA.js} +19 -19
  118. package/dist/web-assets/assets/{index-DaUp9iE2.js → index-CrFAsfiE.js} +10 -10
  119. package/dist/web-assets/assets/{index-DqHSW9Fr.css → index-D7udpBCx.css} +1 -1
  120. package/dist/web-assets/index.html +2 -2
  121. package/package.json +2 -1
  122. package/packages/extensions/plan/skills/plan/scripts/plan-hook.sh +2 -2
  123. package/templates/_base/.init/.config/hooks/pre-prompt/session-activity.ts +3 -3
  124. package/templates/_base/.init/.local/hooks/pre-prompt/notices.ts +3 -3
  125. package/templates/_base/.init/.local/hooks/pre-prompt/session-activity.ts +3 -3
  126. package/templates/_base/src/lib/daemon-client.ts +1 -1
  127. package/templates/_base/src/lib/volute-server.ts +1 -1
  128. package/templates/codex/src/server.ts +8 -2
  129. package/templates/pi/src/lib/resolve-model.ts +50 -12
  130. package/dist/chunk-N64Q7FMP.js +0 -70
  131. package/dist/delivery-manager-EB52CQ5X.js +0 -33
  132. package/dist/echo-text-QVPS6QDM.js +0 -32
  133. package/dist/message-delivery-X4CZE2L6.js +0 -41
  134. package/dist/mind-manager-VU3RGCXD.js +0 -31
  135. package/dist/mind-service-L7LMMDYJ.js +0 -37
  136. package/dist/scheduler-SXELVRWO.js +0 -31
  137. package/dist/sleep-manager-T3AXQB3R.js +0 -35
  138. package/dist/system-chat-HCPHUQGI.js +0 -35
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readGlobalConfig
4
- } from "./chunk-N64Q7FMP.js";
4
+ } from "./chunk-KZAL7HEQ.js";
5
5
  import {
6
6
  logger_default
7
7
  } from "./chunk-T2TP6ZC6.js";
@@ -10,10 +10,22 @@ import {
10
10
  import { execFileSync } from "child_process";
11
11
  var slog = logger_default.child("sandbox");
12
12
  var sandboxManager = null;
13
+ var SandboxUnavailableError = class extends Error {
14
+ constructor(reason, cause) {
15
+ super(
16
+ `${reason} \u2014 refusing to run unsandboxed. Fix the sandbox runtime, or set VOLUTE_SANDBOX_OPTIONAL=1 to allow running without isolation.`,
17
+ cause ? { cause } : void 0
18
+ );
19
+ this.name = "SandboxUnavailableError";
20
+ }
21
+ };
13
22
  function isSandboxEnabled() {
14
23
  if (process.env.VOLUTE_SANDBOX === "0") return false;
15
24
  return readGlobalConfig().setup?.isolation === "sandbox";
16
25
  }
26
+ function isSandboxOptional() {
27
+ return process.env.VOLUTE_SANDBOX_OPTIONAL === "1";
28
+ }
17
29
  function findRipgrep() {
18
30
  if (process.env.VOLUTE_RIPGREP_PATH) {
19
31
  try {
@@ -48,10 +60,7 @@ async function initSandbox() {
48
60
  if (process.platform === "darwin") {
49
61
  slog.warn(`sandbox dependency issues (non-fatal on macOS): ${errors.join(", ")}`);
50
62
  } else {
51
- slog.error(
52
- `sandbox dependencies missing \u2014 minds will run without sandbox isolation: ${errors.join(", ")}`
53
- );
54
- return;
63
+ throw new SandboxUnavailableError(`sandbox dependencies missing: ${errors.join(", ")}`);
55
64
  }
56
65
  }
57
66
  const config = {
@@ -65,10 +74,24 @@ async function initSandbox() {
65
74
  await SandboxManager.initialize(config);
66
75
  sandboxManager = SandboxManager;
67
76
  } catch (err) {
68
- slog.error(
69
- "sandbox runtime not available \u2014 minds will run without sandbox isolation",
70
- logger_default.errorData(err)
71
- );
77
+ if (err instanceof SandboxUnavailableError) {
78
+ if (isSandboxOptional()) {
79
+ slog.error(
80
+ "sandbox unavailable but VOLUTE_SANDBOX_OPTIONAL=1 \u2014 minds will run WITHOUT isolation",
81
+ logger_default.errorData(err)
82
+ );
83
+ return;
84
+ }
85
+ throw err;
86
+ }
87
+ if (isSandboxOptional()) {
88
+ slog.error(
89
+ "sandbox runtime not available but VOLUTE_SANDBOX_OPTIONAL=1 \u2014 minds will run WITHOUT isolation",
90
+ logger_default.errorData(err)
91
+ );
92
+ return;
93
+ }
94
+ throw new SandboxUnavailableError("sandbox runtime not available", err);
72
95
  }
73
96
  }
74
97
  async function buildSandboxReadConfig(_mindName, mindDir) {
@@ -92,7 +115,12 @@ function shellEscape(s) {
92
115
  return `'${s.replace(/'/g, "'\\''")}'`;
93
116
  }
94
117
  async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
95
- if (!sandboxManager) return [cmd, args];
118
+ if (!sandboxManager) {
119
+ if (isSandboxEnabled() && !isSandboxOptional()) {
120
+ throw new SandboxUnavailableError(`cannot sandbox mind ${mindName}`);
121
+ }
122
+ return [cmd, args];
123
+ }
96
124
  const { denyRead, allowRead } = await buildSandboxReadConfig(mindName, mindDir);
97
125
  const customConfig = {
98
126
  filesystem: {
@@ -107,6 +135,9 @@ async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
107
135
  const wrapped = await sandboxManager.wrapWithSandbox(shellCmd, void 0, customConfig);
108
136
  return ["bash", ["-c", wrapped]];
109
137
  } catch (err) {
138
+ if (isSandboxEnabled() && !isSandboxOptional()) {
139
+ throw new SandboxUnavailableError(`failed to sandbox mind ${mindName}`, err);
140
+ }
110
141
  slog.error(
111
142
  `failed to sandbox mind ${mindName} \u2014 running without isolation`,
112
143
  logger_default.errorData(err)
@@ -116,7 +147,9 @@ async function wrapForSandbox(cmd, args, mindDir, mindName, allowWrite) {
116
147
  }
117
148
 
118
149
  export {
150
+ SandboxUnavailableError,
119
151
  isSandboxEnabled,
152
+ isSandboxOptional,
120
153
  initSandbox,
121
154
  buildSandboxReadConfig,
122
155
  shellEscape,
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  subscribe
4
- } from "./chunk-2RQIIKFC.js";
4
+ } from "./chunk-K547QOCM.js";
5
5
  import {
6
6
  logger_default
7
7
  } from "./chunk-T2TP6ZC6.js";
8
8
  import {
9
9
  getDb
10
- } from "./chunk-VDODEQSJ.js";
10
+ } from "./chunk-IUZ3EV2D.js";
11
11
  import {
12
12
  channels,
13
13
  conversationParticipants,
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-2X7UNSTQ.js");
13
+ const { default: pkg } = await import("./package-UWH5IM76.js");
14
14
  console.log(pkg.version);
15
15
  process.exit(0);
16
16
  }
@@ -31,7 +31,7 @@ var ungatedCommands = /* @__PURE__ */ new Set([
31
31
  void 0
32
32
  ]);
33
33
  if (!ungatedCommands.has(command)) {
34
- const { isSetupComplete } = await import("./setup-3434PQ5Q.js");
34
+ const { isSetupComplete } = await import("./setup-IYOUPCIK.js");
35
35
  if (!isSetupComplete()) {
36
36
  console.error("Volute is not set up. Run `volute setup` first.");
37
37
  process.exit(1);
@@ -39,61 +39,61 @@ if (!ungatedCommands.has(command)) {
39
39
  }
40
40
  switch (command) {
41
41
  case "setup":
42
- await import("./setup-47NBOCZL.js").then((m) => m.run(args));
42
+ await import("./setup-VARJ7N6Z.js").then((m) => m.run(args));
43
43
  break;
44
44
  case "mind":
45
- await import("./mind-XIKEPJNS.js").then((m) => m.run(args));
45
+ await import("./mind-VXV6ZYZY.js").then((m) => m.run(args));
46
46
  break;
47
47
  case "seed":
48
- await import("./seed-cmd-YTQYWCZF.js").then((m) => m.run(args));
48
+ await import("./seed-cmd-7KJS4LCA.js").then((m) => m.run(args));
49
49
  break;
50
50
  case "chat":
51
- await import("./chat-FO722GU2.js").then((m) => m.run(args));
51
+ await import("./chat-7DOENBY2.js").then((m) => m.run(args));
52
52
  break;
53
53
  case "variant":
54
54
  await import("./variant-HHDTW74J.js").then((m) => m.run(args));
55
55
  break;
56
56
  case "clock":
57
- await import("./clock-BMLJ2TR6.js").then((m) => m.run(args));
57
+ await import("./clock-HP2TGMG5.js").then((m) => m.run(args));
58
58
  break;
59
59
  case "skill":
60
- await import("./skill-ICN6Y2ZF.js").then((m) => m.run(args));
60
+ await import("./skill-E43BI34Y.js").then((m) => m.run(args));
61
61
  break;
62
62
  case "env":
63
- await import("./env-IQ6Q2333.js").then((m) => m.run(args));
63
+ await import("./env-XX2MBZCZ.js").then((m) => m.run(args));
64
64
  break;
65
65
  case "config":
66
- await import("./config-QB7W3Z7P.js").then((m) => m.run(args));
66
+ await import("./config-W7MS3PWY.js").then((m) => m.run(args));
67
67
  break;
68
68
  case "up":
69
- await import("./up-VGVPOB6J.js").then((m) => m.run(args));
69
+ await import("./up-POJX6S5Y.js").then((m) => m.run(args));
70
70
  break;
71
71
  case "down":
72
- await import("./down-JVHNXOFU.js").then((m) => m.run(args));
72
+ await import("./down-DS6WCT34.js").then((m) => m.run(args));
73
73
  break;
74
74
  case "restart":
75
- await import("./daemon-restart-W47YDE5E.js").then((m) => m.run(args));
75
+ await import("./daemon-restart-RAKGR56L.js").then((m) => m.run(args));
76
76
  break;
77
77
  case "update":
78
- await import("./update-3ANTQO54.js").then((m) => m.run(args));
78
+ await import("./update-OPR4KU4M.js").then((m) => m.run(args));
79
79
  break;
80
80
  case "status":
81
- await import("./status-VMOZUIZ2.js").then((m) => m.run(args));
81
+ await import("./status-ECZHHSY5.js").then((m) => m.run(args));
82
82
  break;
83
83
  case "extension":
84
- await import("./extension-LZYHBNLV.js").then((m) => m.run(args));
84
+ await import("./extension-BCFYXI7A.js").then((m) => m.run(args));
85
85
  break;
86
86
  case "systems":
87
- await import("./systems-Y2WZV2K4.js").then((m) => m.run(args));
87
+ await import("./systems-5MA57Q7G.js").then((m) => m.run(args));
88
88
  break;
89
89
  case "login":
90
- await import("./login-WY3DADVB.js").then((m) => m.run(args));
90
+ await import("./login-PHMTLNUF.js").then((m) => m.run(args));
91
91
  break;
92
92
  case "logout":
93
- await import("./logout-TFZHWNVL.js").then((m) => m.run(args));
93
+ await import("./logout-BP3R3CAA.js").then((m) => m.run(args));
94
94
  break;
95
95
  case "service":
96
- await import("./service-AY5TGWJX.js").then((m) => m.run(args));
96
+ await import("./service-Q5OVY5AK.js").then((m) => m.run(args));
97
97
  break;
98
98
  case "--help":
99
99
  case "-h":
@@ -150,7 +150,7 @@ use --mind <name> or VOLUTE_MIND env var to identify the mind.`);
150
150
  default: {
151
151
  let isExtensionCommand = false;
152
152
  try {
153
- const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
153
+ const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
154
154
  const res = await daemonFetch("/api/extensions/commands");
155
155
  if (res.ok) {
156
156
  const extCommands = await res.json();
@@ -264,7 +264,7 @@ Run 'volute --help' for usage.`);
264
264
  }
265
265
  }
266
266
  if (command !== "update") {
267
- import("./update-check-4O6DKUOF.js").then((m) => m.checkForUpdate()).then((result) => {
267
+ import("./update-check-OG27AL4Z.js").then((m) => m.checkForUpdate()).then((result) => {
268
268
  if (result.updateAvailable) {
269
269
  console.error(`
270
270
  Update available: ${result.current} \u2192 ${result.latest}`);
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-BTY4WNFE.js";
9
9
  import {
10
10
  daemonFetch
11
- } from "./chunk-ZX7EAV5J.js";
11
+ } from "./chunk-IFNSAOA4.js";
12
12
  import {
13
13
  getClient,
14
14
  urlOf
@@ -274,11 +274,11 @@ var cmd = subcommands({
274
274
  },
275
275
  sleep: {
276
276
  description: "Put a mind to sleep",
277
- run: (args) => import("./mind-sleep-ZL5ZXFTM.js").then((m) => m.run(args))
277
+ run: (args) => import("./mind-sleep-4NXV4J4U.js").then((m) => m.run(args))
278
278
  },
279
279
  wake: {
280
280
  description: "Wake a sleeping mind",
281
- run: (args) => import("./mind-wake-HK5ORGUK.js").then((m) => m.run(args))
281
+ run: (args) => import("./mind-wake-TNB54DBR.js").then((m) => m.run(args))
282
282
  }
283
283
  },
284
284
  footer: "Use --mind <name> or VOLUTE_MIND to identify the mind."
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  deliverMessage
4
- } from "./chunk-W5Z2H3LU.js";
5
- import "./chunk-6ZAT5PYV.js";
6
- import "./chunk-YN6ISG7A.js";
7
- import "./chunk-WSRGS4XP.js";
8
- import "./chunk-JIGVTFIR.js";
4
+ } from "./chunk-52NMCDBS.js";
5
+ import "./chunk-BLOAJLGI.js";
6
+ import "./chunk-VSUZE2PD.js";
7
+ import "./chunk-QLWG3C2Z.js";
8
+ import "./chunk-JLX3GC7T.js";
9
9
  import {
10
10
  getAuthHeaders,
11
11
  getWebhookUrl
12
- } from "./chunk-2R4JIZCB.js";
12
+ } from "./chunk-YLTIEEVL.js";
13
13
  import "./chunk-CU6OFXMM.js";
14
- import "./chunk-U7UASV36.js";
15
- import "./chunk-PP5CGT2P.js";
16
- import "./chunk-GMFCSXWB.js";
17
- import "./chunk-YATR5BXD.js";
18
- import "./chunk-Y2XLASFJ.js";
19
- import "./chunk-4ED2DBNC.js";
20
- import "./chunk-VK2YD7VJ.js";
21
- import "./chunk-N64Q7FMP.js";
22
- import "./chunk-6TPRURK5.js";
23
- import "./chunk-2RQIIKFC.js";
14
+ import "./chunk-WR7CSHQ4.js";
15
+ import "./chunk-VBKRZCR7.js";
16
+ import "./chunk-62ICA2FF.js";
17
+ import "./chunk-TKOWXAHG.js";
18
+ import "./chunk-GN52E2DP.js";
19
+ import "./chunk-TFBQESH7.js";
20
+ import "./chunk-4ZSUUBG5.js";
21
+ import "./chunk-KZAL7HEQ.js";
22
+ import "./chunk-5QG36RV7.js";
23
+ import "./chunk-K547QOCM.js";
24
24
  import {
25
25
  logger_default
26
26
  } from "./chunk-T2TP6ZC6.js";
27
- import "./chunk-VDODEQSJ.js";
27
+ import "./chunk-IUZ3EV2D.js";
28
28
  import "./chunk-MHFAWJCC.js";
29
29
  import "./chunk-K3NQKI34.js";
30
30
 
@@ -7,7 +7,7 @@ import "./chunk-K3NQKI34.js";
7
7
 
8
8
  // packages/cli/src/commands/config.ts
9
9
  async function listModels() {
10
- const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
10
+ const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
11
11
  const res = await daemonFetch("/api/config/models");
12
12
  if (!res.ok) {
13
13
  console.error(`Failed to fetch models (HTTP ${res.status})`);
@@ -24,7 +24,7 @@ async function listModels() {
24
24
  }
25
25
  }
26
26
  async function listProviders() {
27
- const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
27
+ const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
28
28
  const res = await daemonFetch("/api/config/providers");
29
29
  if (!res.ok) {
30
30
  console.error(`Failed to fetch providers (HTTP ${res.status})`);
@@ -41,7 +41,7 @@ async function listProviders() {
41
41
  }
42
42
  }
43
43
  async function showStatus() {
44
- const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
44
+ const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
45
45
  const res = await daemonFetch("/api/config/status");
46
46
  if (!res.ok) {
47
47
  console.error(`Failed to fetch config (HTTP ${res.status})`);
@@ -29,10 +29,10 @@ import {
29
29
  removeParticipant,
30
30
  setConversationPrivate,
31
31
  updateChannelSettings
32
- } from "./chunk-2R4JIZCB.js";
33
- import "./chunk-2RQIIKFC.js";
32
+ } from "./chunk-YLTIEEVL.js";
33
+ import "./chunk-K547QOCM.js";
34
34
  import "./chunk-T2TP6ZC6.js";
35
- import "./chunk-VDODEQSJ.js";
35
+ import "./chunk-IUZ3EV2D.js";
36
36
  import "./chunk-MHFAWJCC.js";
37
37
  import "./chunk-K3NQKI34.js";
38
38
  export {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-BTY4WNFE.js";
5
5
  import {
6
6
  daemonFetch
7
- } from "./chunk-ZX7EAV5J.js";
7
+ } from "./chunk-IFNSAOA4.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";
@@ -21,11 +21,11 @@ var cmd = command({
21
21
  const name = args.name;
22
22
  let template = flags.template;
23
23
  if (!template) {
24
- const { resolveTemplate } = await import("./ai-service-ZHEPFC3U.js");
24
+ const { resolveTemplate } = await import("./ai-service-3GBOJGUA.js");
25
25
  template = await resolveTemplate();
26
26
  }
27
27
  const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
28
- const { daemonFetch } = await import("./daemon-client-2MIPKY3E.js");
28
+ const { daemonFetch } = await import("./daemon-client-EWDPOOHC.js");
29
29
  const { getClient, urlOf } = await import("./api-client-LC5YRA32.js");
30
30
  const client = getClient();
31
31
  const res = await daemonFetch(urlOf(client.api.minds.$url()), {
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ daemonDispatcher,
3
4
  daemonFetch,
4
5
  readSessionFile,
5
6
  resolveDaemonUrl
6
- } from "./chunk-ZX7EAV5J.js";
7
+ } from "./chunk-IFNSAOA4.js";
7
8
  import "./chunk-K3NQKI34.js";
8
9
  export {
10
+ daemonDispatcher,
9
11
  daemonFetch,
10
12
  readSessionFile,
11
13
  resolveDaemonUrl
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  stopDaemon
4
- } from "./chunk-V67XMNGP.js";
4
+ } from "./chunk-G777ME4L.js";
5
5
  import {
6
6
  run
7
- } from "./chunk-FU5YDH6Q.js";
7
+ } from "./chunk-RKBYFLOR.js";
8
8
  import {
9
9
  command
10
10
  } from "./chunk-TXSA4Q3V.js";
@@ -15,11 +15,11 @@ import {
15
15
  pollHealth,
16
16
  readDaemonConfig,
17
17
  restartService
18
- } from "./chunk-2I7OKOYV.js";
19
- import "./chunk-Y2XLASFJ.js";
20
- import "./chunk-4ED2DBNC.js";
21
- import "./chunk-N64Q7FMP.js";
22
- import "./chunk-VDODEQSJ.js";
18
+ } from "./chunk-CGPESELY.js";
19
+ import "./chunk-GN52E2DP.js";
20
+ import "./chunk-TFBQESH7.js";
21
+ import "./chunk-KZAL7HEQ.js";
22
+ import "./chunk-IUZ3EV2D.js";
23
23
  import "./chunk-MHFAWJCC.js";
24
24
  import "./chunk-K3NQKI34.js";
25
25