volute 0.43.0 → 0.44.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 (108) hide show
  1. package/dist/{activity-events-UISXY4Y5.js → activity-events-OMCSM7XW.js} +3 -3
  2. package/dist/{ai-service-FBCCEYF5.js → ai-service-7PHSRDMO.js} +4 -4
  3. package/dist/{archive-I32WHCJB.js → archive-6R4TZMYI.js} +3 -3
  4. package/dist/{auth-3RIG6GKN.js → auth-FRZJVQCS.js} +4 -4
  5. package/dist/avatar-image-BNWEXSA2.js +16 -0
  6. package/dist/{chat-SDSX5TVV.js → chat-I4EDDIQC.js} +2 -2
  7. package/dist/{chunk-AD46AYZQ.js → chunk-2BONPXAF.js} +1 -1
  8. package/dist/{chunk-PGPLCJPK.js → chunk-3ERIL673.js} +1 -1
  9. package/dist/{chunk-C6ESRQZ7.js → chunk-3GYVW2X3.js} +1 -1
  10. package/dist/{chunk-SPLPKBES.js → chunk-5AHYQHNT.js} +4 -8
  11. package/dist/{chunk-XDTKJNW5.js → chunk-5GT7URXJ.js} +1 -1
  12. package/dist/{chunk-65OLHBCL.js → chunk-7FT24JBQ.js} +8 -8
  13. package/dist/{chunk-ZO7IQJKO.js → chunk-7KWANSLX.js} +3 -3
  14. package/dist/{chunk-EFL5UOY4.js → chunk-CYI534DJ.js} +3 -3
  15. package/dist/{chunk-FZ5TH5PF.js → chunk-EQZD4YU3.js} +8 -8
  16. package/dist/{chunk-57LBQ7JX.js → chunk-FHWUQZXE.js} +1 -1
  17. package/dist/{chunk-K4EHBHPE.js → chunk-FZMEVCWC.js} +3 -3
  18. package/dist/{chunk-YAMO2U3N.js → chunk-H7IYFRAL.js} +1 -1
  19. package/dist/{chunk-M3PGGSBH.js → chunk-HVU45COX.js} +1 -1
  20. package/dist/{chunk-FSSUANZJ.js → chunk-I2Y2YHIO.js} +5 -5
  21. package/dist/{chunk-O3DXAR44.js → chunk-IEWZ7VD7.js} +2 -2
  22. package/dist/{chunk-YSV3VJQK.js → chunk-J47TIYHA.js} +1 -1
  23. package/dist/{chunk-QHG4OMZL.js → chunk-KDLYIECM.js} +37 -32
  24. package/dist/{chunk-EE7SZJON.js → chunk-KP3KWNG6.js} +2 -2
  25. package/dist/{chunk-JVK6QQIC.js → chunk-LAXUUY7O.js} +2 -2
  26. package/dist/{chunk-3WLWKOGM.js → chunk-NF75HPNR.js} +5 -5
  27. package/dist/{chunk-PF2AB7VJ.js → chunk-OMETFX5H.js} +321 -204
  28. package/dist/{chunk-ONM2AZFL.js → chunk-PNV24SEP.js} +1 -1
  29. package/dist/{chunk-ATEX3ZPG.js → chunk-Q2XBKQ2D.js} +2 -2
  30. package/dist/{chunk-GZJFC76M.js → chunk-QMJJWTNL.js} +1 -1
  31. package/dist/chunk-SQL7M4HJ.js +120 -0
  32. package/dist/{chunk-2HIVYZDB.js → chunk-UMI4UIJG.js} +1 -1
  33. package/dist/{chunk-7G2EEYXX.js → chunk-ZMIMSIIT.js} +2 -2
  34. package/dist/{chunk-L3IV23ZG.js → chunk-ZV7MFISX.js} +2 -0
  35. package/dist/cli.js +47 -22
  36. package/dist/{cloud-sync-FRYNWKCR.js → cloud-sync-6WJ7WFYD.js} +16 -16
  37. package/dist/{conversations-67WWW25C.js → conversations-WAJYZKOC.js} +4 -4
  38. package/dist/{create-7W3LV3J7.js → create-YZIV5OJC.js} +1 -1
  39. package/dist/{daemon-restart-5GVZ5V3X.js → daemon-restart-OUJVINXV.js} +7 -7
  40. package/dist/daemon.js +297 -294
  41. package/dist/{db-CZV62BOQ.js → db-JFLCJCUG.js} +2 -2
  42. package/dist/{db-IJL6B26S.js → db-LZTLA7XC.js} +1 -1
  43. package/dist/delivery-manager-TEVOHX5W.js +32 -0
  44. package/dist/{delivery-router-HXBHYHJM.js → delivery-router-GODSIS62.js} +3 -3
  45. package/dist/{down-RRNYIGCU.js → down-XCAZXWLB.js} +5 -5
  46. package/dist/echo-text-T7ZA5EYD.js +32 -0
  47. package/dist/{exec-SJK7VUTC.js → exec-4GWHAHS3.js} +3 -3
  48. package/dist/{export-7LPCIB5J.js → export-ID7YUSLZ.js} +3 -3
  49. package/dist/{extensions-76EGTMFY.js → extensions-3QNDGW5E.js} +16 -16
  50. package/dist/{files-LV7VAKPC.js → files-BQ2WB5KC.js} +3 -3
  51. package/dist/{import-XPECCRQ7.js → import-SKID37QX.js} +6 -6
  52. package/dist/{isolation-5AYEY55P.js → isolation-5MB3J73F.js} +3 -3
  53. package/dist/{login-KJSN4JDA.js → login-LM4NF4ZB.js} +2 -2
  54. package/dist/{logout-TMJGUQV2.js → logout-CTJVIZGA.js} +2 -2
  55. package/dist/message-delivery-2EA5LLMD.js +34 -0
  56. package/dist/{mind-QEWCR7FA.js → mind-MI7Z6KM2.js} +5 -5
  57. package/dist/{mind-activity-tracker-JHAT6456.js → mind-activity-tracker-BGHJE7XA.js} +4 -4
  58. package/dist/mind-service-S3SY7HAM.js +36 -0
  59. package/dist/{package-ZOI2KAYC.js → package-5B4XDTJH.js} +1 -1
  60. package/dist/{registry-7LQHTRUX.js → registry-NUJAGLQJ.js} +2 -2
  61. package/dist/{sandbox-SJH3XOPZ.js → sandbox-IOPWWILM.js} +4 -4
  62. package/dist/scheduler-CXWQ6Z4E.js +30 -0
  63. package/dist/{schema-LRUTFOER.js → schema-PVNG3PQM.js} +1 -1
  64. package/dist/{seed-KOG6KJAO.js → seed-UUPVQWFB.js} +1 -1
  65. package/dist/{seed-cmd-GJFENEJH.js → seed-cmd-7XPKDQUC.js} +2 -2
  66. package/dist/{seed-create-YXO6R4KE.js → seed-create-IZ4M5ESO.js} +3 -3
  67. package/dist/{seed-sprout-BBU64QXP.js → seed-sprout-POJXHJWV.js} +7 -7
  68. package/dist/{send-ZBZWIH5V.js → send-O6W53VBM.js} +37 -42
  69. package/dist/{service-4EVZKGSA.js → service-AQVPUANO.js} +4 -4
  70. package/dist/{service-install-SHRM6NHK.js → service-install-4QNUDKLM.js} +5 -5
  71. package/dist/{setup-354PDHUF.js → setup-5GCO3CUB.js} +7 -7
  72. package/dist/{setup-25MMJ3J4.js → setup-MLRKNP7Y.js} +3 -3
  73. package/dist/{skills-DPI3WZPQ.js → skills-775C7QFF.js} +5 -5
  74. package/dist/sleep-manager-HINI6Y46.js +34 -0
  75. package/dist/{spirit-JQQHUVWR.js → spirit-IK5OYWMV.js} +7 -7
  76. package/dist/{sprout-4WAYBUVV.js → sprout-ZY5QGOEL.js} +1 -1
  77. package/dist/{src-O4PRLMKM.js → src-JAOVXO5W.js} +1 -0
  78. package/dist/{src-TJ7RBU5H.js → src-XFY3XDD6.js} +24 -19
  79. package/dist/{src-L2Z7X5UT.js → src-YH6PQ7LJ.js} +264 -52
  80. package/dist/{status-WTU2WHXY.js → status-E5DQNCAO.js} +5 -5
  81. package/dist/system-chat-4DQZOEZI.js +34 -0
  82. package/dist/{tailscale-Q7ZJL7S7.js → tailscale-QAWVKQKU.js} +2 -2
  83. package/dist/{turn-tracker-2GMKJQTN.js → turn-tracker-RWZMY7M6.js} +5 -5
  84. package/dist/{up-7RSBEKW6.js → up-FLCDR2UB.js} +6 -6
  85. package/dist/{update-EJ7Q77ZX.js → update-7TYVH5FM.js} +5 -5
  86. package/dist/{update-check-ACYYNKTW.js → update-check-VSCSJ7KX.js} +3 -3
  87. package/dist/{version-notify-DCAIXXZB.js → version-notify-B67N35A3.js} +17 -17
  88. package/dist/web-assets/assets/{index-DTDmEfPU.js → index-Domoz5Cg.js} +8 -8
  89. package/dist/web-assets/assets/index-dJdNzAPn.css +1 -0
  90. package/dist/web-assets/ext-theme.css +5 -0
  91. package/dist/web-assets/index.html +2 -2
  92. package/package.json +1 -1
  93. package/packages/extensions/notes/dist/ui/assets/{index-BbgANhFm.js → index-D0-DgYyj.js} +1 -1
  94. package/packages/extensions/notes/dist/ui/index.html +1 -1
  95. package/packages/extensions/notes/skills/notes/SKILL.md +31 -3
  96. package/packages/extensions/pages/dist/ui/assets/{index-Dxk-DYrf.js → index-CQjEQg1r.js} +1 -1
  97. package/packages/extensions/pages/dist/ui/index.html +1 -1
  98. package/templates/_base/.init/.local/hooks/startup-context.ts +25 -0
  99. package/templates/claude/src/agent.ts +16 -2
  100. package/templates/claude/src/lib/message-channel.ts +28 -6
  101. package/dist/delivery-manager-5J2BE22P.js +0 -32
  102. package/dist/echo-text-XKBJM6RV.js +0 -32
  103. package/dist/message-delivery-WJBZFALY.js +0 -34
  104. package/dist/mind-service-ZBVUMJ5H.js +0 -36
  105. package/dist/scheduler-BR6C6B3E.js +0 -30
  106. package/dist/sleep-manager-BVU5D2AE.js +0 -34
  107. package/dist/system-chat-KMQIP7VH.js +0 -34
  108. package/dist/web-assets/assets/index-D7udpBCx.css +0 -1
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  voluteSystemDir
4
- } from "./chunk-YAMO2U3N.js";
4
+ } from "./chunk-H7IYFRAL.js";
5
5
 
6
6
  // packages/daemon/src/lib/config/setup.ts
7
7
  import { chmodSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  exec,
4
4
  execInherit
5
- } from "./chunk-PGPLCJPK.js";
5
+ } from "./chunk-3ERIL673.js";
6
6
  import {
7
7
  voluteSystemDir
8
- } from "./chunk-YAMO2U3N.js";
8
+ } from "./chunk-H7IYFRAL.js";
9
9
 
10
10
  // packages/daemon/src/lib/config/service-mode.ts
11
11
  import { execFileSync } from "child_process";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  mindDir,
4
4
  stateDir
5
- } from "./chunk-YAMO2U3N.js";
5
+ } from "./chunk-H7IYFRAL.js";
6
6
 
7
7
  // packages/daemon/src/lib/mind/archive.ts
8
8
  import { execFileSync } from "child_process";
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ readVoluteConfig
4
+ } from "./chunk-CU6OFXMM.js";
5
+ import {
6
+ logger_default
7
+ } from "./chunk-T2TP6ZC6.js";
8
+ import {
9
+ mindDir,
10
+ readAllMinds,
11
+ voluteHome
12
+ } from "./chunk-H7IYFRAL.js";
13
+
14
+ // packages/daemon/src/lib/util/avatar-image.ts
15
+ import { readdir, readFile, writeFile } from "fs/promises";
16
+ import { resolve as resolve2 } from "path";
17
+
18
+ // packages/daemon/src/lib/util/paths.ts
19
+ import { resolve, sep } from "path";
20
+ var PathTraversalError = class extends Error {
21
+ constructor(base, userPath) {
22
+ super(`Path "${userPath}" escapes base directory "${base}"`);
23
+ this.name = "PathTraversalError";
24
+ }
25
+ };
26
+ function resolveWithinBase(base, userPath) {
27
+ const resolvedBase = resolve(base);
28
+ const target = resolve(resolvedBase, userPath);
29
+ if (target !== resolvedBase && !target.startsWith(resolvedBase + sep)) {
30
+ throw new PathTraversalError(base, userPath);
31
+ }
32
+ return target;
33
+ }
34
+ function safeResolveWithinBase(base, userPath) {
35
+ try {
36
+ return resolveWithinBase(base, userPath);
37
+ } catch {
38
+ return null;
39
+ }
40
+ }
41
+
42
+ // packages/daemon/src/lib/util/avatar-image.ts
43
+ var alog = logger_default.child("avatar-image");
44
+ var AVATAR_DIM = 256;
45
+ async function loadSharp() {
46
+ try {
47
+ const mod = await import("sharp");
48
+ return mod.default ?? mod;
49
+ } catch (err) {
50
+ const code = err.code;
51
+ if (code === "MODULE_NOT_FOUND" || code === "ERR_MODULE_NOT_FOUND") {
52
+ alog.debug("sharp not available, keeping original avatars");
53
+ } else {
54
+ alog.warn("sharp import failed, keeping original avatars", logger_default.errorData(err));
55
+ }
56
+ return null;
57
+ }
58
+ }
59
+ async function normalizeAvatar(buffer) {
60
+ const sharp = await loadSharp();
61
+ if (!sharp) return null;
62
+ try {
63
+ const out = await sharp(buffer, { animated: true }).resize(AVATAR_DIM, AVATAR_DIM, { fit: "cover", withoutEnlargement: true }).webp({ quality: 85 }).toBuffer();
64
+ return { buffer: out, ext: ".webp", mime: "image/webp" };
65
+ } catch (err) {
66
+ alog.warn("avatar normalize failed, keeping original", logger_default.errorData(err));
67
+ return null;
68
+ }
69
+ }
70
+ async function downscaleFile(sharp, filePath) {
71
+ const data = await readFile(filePath);
72
+ const image = sharp(data, { animated: true });
73
+ const meta = await image.metadata();
74
+ if (!meta.format || (meta.width ?? 0) <= AVATAR_DIM && (meta.height ?? 0) <= AVATAR_DIM) {
75
+ return false;
76
+ }
77
+ const out = await image.resize(AVATAR_DIM, AVATAR_DIM, { fit: "cover" }).toFormat(meta.format).toBuffer();
78
+ await writeFile(filePath, out);
79
+ return true;
80
+ }
81
+ async function migrateAvatarSizes() {
82
+ const sharp = await loadSharp();
83
+ if (!sharp) return;
84
+ const userAvatarsDir = resolve2(voluteHome(), "avatars");
85
+ let userAvatars = [];
86
+ try {
87
+ userAvatars = (await readdir(userAvatarsDir)).map((f) => resolve2(userAvatarsDir, f));
88
+ } catch {
89
+ }
90
+ const mindAvatars = [];
91
+ try {
92
+ for (const mind of await readAllMinds()) {
93
+ const dir = mind.dir ?? mindDir(mind.name);
94
+ const avatar = readVoluteConfig(dir)?.profile?.avatar;
95
+ if (!avatar) continue;
96
+ const path = safeResolveWithinBase(resolve2(dir, "home"), avatar);
97
+ if (path) mindAvatars.push(path);
98
+ }
99
+ } catch (err) {
100
+ alog.warn("failed to enumerate mind avatars for migration", logger_default.errorData(err));
101
+ }
102
+ for (const filePath of [...userAvatars, ...mindAvatars]) {
103
+ try {
104
+ if (await downscaleFile(sharp, filePath)) {
105
+ alog.info(`downscaled oversized avatar ${filePath}`);
106
+ }
107
+ } catch (err) {
108
+ if (err.code !== "ENOENT") {
109
+ alog.warn(`failed to downscale avatar ${filePath}`, logger_default.errorData(err));
110
+ }
111
+ }
112
+ }
113
+ }
114
+
115
+ export {
116
+ safeResolveWithinBase,
117
+ AVATAR_DIM,
118
+ normalizeAvatar,
119
+ migrateAvatarSizes
120
+ };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  stateDir
4
- } from "./chunk-YAMO2U3N.js";
4
+ } from "./chunk-H7IYFRAL.js";
5
5
 
6
6
  // packages/daemon/src/lib/chat/file-sharing.ts
7
7
  import { randomBytes } from "crypto";
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-T2TP6ZC6.js";
5
5
  import {
6
6
  getDb
7
- } from "./chunk-YAMO2U3N.js";
7
+ } from "./chunk-H7IYFRAL.js";
8
8
  import {
9
9
  activity
10
- } from "./chunk-L3IV23ZG.js";
10
+ } from "./chunk-ZV7MFISX.js";
11
11
 
12
12
  // packages/daemon/src/lib/events/activity-events.ts
13
13
  var subscribers = /* @__PURE__ */ new Set();
@@ -258,6 +258,8 @@ var mindNotices = sqliteTable(
258
258
  {
259
259
  id: integer("id").primaryKey({ autoIncrement: true }),
260
260
  mind: text("mind").notNull(),
261
+ // Mind-level notices (not tied to a session, e.g. extension notifications)
262
+ // use the sentinel session = "" so any session's drain picks them up.
261
263
  session: text("session").notNull(),
262
264
  kind: text("kind").$type().notNull(),
263
265
  reason: text("reason").$type().notNull(),
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-ZOI2KAYC.js");
13
+ const { default: pkg } = await import("./package-5B4XDTJH.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-25MMJ3J4.js");
34
+ const { isSetupComplete } = await import("./setup-MLRKNP7Y.js");
35
35
  if (!isSetupComplete()) {
36
36
  console.error("Volute is not set up. Run `volute setup` first.");
37
37
  process.exit(1);
@@ -39,16 +39,16 @@ if (!ungatedCommands.has(command)) {
39
39
  }
40
40
  switch (command) {
41
41
  case "setup":
42
- await import("./setup-354PDHUF.js").then((m) => m.run(args));
42
+ await import("./setup-5GCO3CUB.js").then((m) => m.run(args));
43
43
  break;
44
44
  case "mind":
45
- await import("./mind-QEWCR7FA.js").then((m) => m.run(args));
45
+ await import("./mind-MI7Z6KM2.js").then((m) => m.run(args));
46
46
  break;
47
47
  case "seed":
48
- await import("./seed-cmd-GJFENEJH.js").then((m) => m.run(args));
48
+ await import("./seed-cmd-7XPKDQUC.js").then((m) => m.run(args));
49
49
  break;
50
50
  case "chat":
51
- await import("./chat-SDSX5TVV.js").then((m) => m.run(args));
51
+ await import("./chat-I4EDDIQC.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));
@@ -66,19 +66,19 @@ switch (command) {
66
66
  await import("./config-TJLYUV3U.js").then((m) => m.run(args));
67
67
  break;
68
68
  case "up":
69
- await import("./up-7RSBEKW6.js").then((m) => m.run(args));
69
+ await import("./up-FLCDR2UB.js").then((m) => m.run(args));
70
70
  break;
71
71
  case "down":
72
- await import("./down-RRNYIGCU.js").then((m) => m.run(args));
72
+ await import("./down-XCAZXWLB.js").then((m) => m.run(args));
73
73
  break;
74
74
  case "restart":
75
- await import("./daemon-restart-5GVZ5V3X.js").then((m) => m.run(args));
75
+ await import("./daemon-restart-OUJVINXV.js").then((m) => m.run(args));
76
76
  break;
77
77
  case "update":
78
- await import("./update-EJ7Q77ZX.js").then((m) => m.run(args));
78
+ await import("./update-7TYVH5FM.js").then((m) => m.run(args));
79
79
  break;
80
80
  case "status":
81
- await import("./status-WTU2WHXY.js").then((m) => m.run(args));
81
+ await import("./status-E5DQNCAO.js").then((m) => m.run(args));
82
82
  break;
83
83
  case "extension":
84
84
  await import("./extension-SEID47SR.js").then((m) => m.run(args));
@@ -87,17 +87,17 @@ switch (command) {
87
87
  await import("./systems-VNB5WKSS.js").then((m) => m.run(args));
88
88
  break;
89
89
  case "login":
90
- await import("./login-KJSN4JDA.js").then((m) => m.run(args));
90
+ await import("./login-LM4NF4ZB.js").then((m) => m.run(args));
91
91
  break;
92
92
  case "logout":
93
- await import("./logout-TMJGUQV2.js").then((m) => m.run(args));
93
+ await import("./logout-CTJVIZGA.js").then((m) => m.run(args));
94
94
  break;
95
95
  case "service":
96
- await import("./service-4EVZKGSA.js").then((m) => m.run(args));
96
+ await import("./service-AQVPUANO.js").then((m) => m.run(args));
97
97
  break;
98
98
  case "--help":
99
99
  case "-h":
100
- case void 0:
100
+ case void 0: {
101
101
  console.log(`volute \u2014 create and manage AI minds
102
102
 
103
103
  Common:
@@ -132,12 +132,36 @@ System:
132
132
  extension list/install/uninstall Manage extensions
133
133
  login / logout CLI authentication
134
134
  update Update volute
135
- systems register/login/logout volute.systems account
136
-
137
- Extensions:
138
- notes write/list/read/... Manage notes
139
- pages publish/list/pull/log Manage pages
140
-
135
+ systems register/login/logout volute.systems account`);
136
+ try {
137
+ const { resolveDaemonUrl, getAuthToken } = await import("./daemon-client-IYR4KCPU.js");
138
+ const token = getAuthToken();
139
+ const headers = {};
140
+ if (token) headers.Authorization = `Bearer ${token}`;
141
+ const res = await fetch(`${resolveDaemonUrl()}/api/extensions/commands`, {
142
+ headers,
143
+ signal: AbortSignal.timeout(1500)
144
+ });
145
+ if (res.ok) {
146
+ const extCommands = await res.json();
147
+ const entries = Object.entries(extCommands).filter(
148
+ ([, ext]) => Object.keys(ext.commands).length > 0
149
+ );
150
+ if (entries.length > 0) {
151
+ const rows = entries.map(([id, ext]) => {
152
+ const subs = Object.keys(ext.commands).join("/");
153
+ return { left: ` ${id} ${subs}`, id };
154
+ });
155
+ const width = Math.max(...rows.map((r) => r.left.length));
156
+ console.log("\nExtensions:");
157
+ for (const r of rows) {
158
+ console.log(`${r.left.padEnd(width + 2)} Manage ${r.id}`);
159
+ }
160
+ }
161
+ }
162
+ } catch {
163
+ }
164
+ console.log(`
141
165
  Options:
142
166
  --version, -v Show version number
143
167
  --help, -h Show this help message
@@ -147,6 +171,7 @@ Run 'volute <command> --help' for details.
147
171
  Mind-scoped commands (chat, clock, skill)
148
172
  use --mind <name> or VOLUTE_MIND env var to identify the mind.`);
149
173
  break;
174
+ }
150
175
  default: {
151
176
  let isExtensionCommand = false;
152
177
  try {
@@ -264,7 +289,7 @@ Run 'volute --help' for usage.`);
264
289
  }
265
290
  }
266
291
  if (command !== "update") {
267
- import("./update-check-ACYYNKTW.js").then((m) => m.checkForUpdate()).then((result) => {
292
+ import("./update-check-VSCSJ7KX.js").then((m) => m.checkForUpdate()).then((result) => {
268
293
  if (result.updateAvailable) {
269
294
  console.error(`
270
295
  Update available: ${result.current} \u2192 ${result.latest}`);
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  deliverMessage
4
- } from "./chunk-PF2AB7VJ.js";
5
- import "./chunk-XDTKJNW5.js";
6
- import "./chunk-65OLHBCL.js";
4
+ } from "./chunk-OMETFX5H.js";
5
+ import "./chunk-5GT7URXJ.js";
6
+ import "./chunk-7FT24JBQ.js";
7
7
  import "./chunk-QLWG3C2Z.js";
8
- import "./chunk-FSSUANZJ.js";
8
+ import "./chunk-I2Y2YHIO.js";
9
9
  import {
10
10
  getAuthHeaders,
11
11
  getWebhookUrl
12
- } from "./chunk-K4EHBHPE.js";
12
+ } from "./chunk-FZMEVCWC.js";
13
13
  import "./chunk-CU6OFXMM.js";
14
- import "./chunk-C6ESRQZ7.js";
15
- import "./chunk-M3PGGSBH.js";
16
- import "./chunk-SPLPKBES.js";
17
- import "./chunk-3WLWKOGM.js";
18
- import "./chunk-PGPLCJPK.js";
19
- import "./chunk-YSV3VJQK.js";
20
- import "./chunk-ONM2AZFL.js";
21
- import "./chunk-EFL5UOY4.js";
22
- import "./chunk-7G2EEYXX.js";
14
+ import "./chunk-3GYVW2X3.js";
15
+ import "./chunk-HVU45COX.js";
16
+ import "./chunk-5AHYQHNT.js";
17
+ import "./chunk-NF75HPNR.js";
18
+ import "./chunk-3ERIL673.js";
19
+ import "./chunk-J47TIYHA.js";
20
+ import "./chunk-PNV24SEP.js";
21
+ import "./chunk-CYI534DJ.js";
22
+ import "./chunk-ZMIMSIIT.js";
23
23
  import {
24
24
  logger_default
25
25
  } from "./chunk-T2TP6ZC6.js";
26
- import "./chunk-YAMO2U3N.js";
27
- import "./chunk-L3IV23ZG.js";
26
+ import "./chunk-H7IYFRAL.js";
27
+ import "./chunk-ZV7MFISX.js";
28
28
  import "./chunk-K3NQKI34.js";
29
29
 
30
30
  // packages/daemon/src/lib/cloud-sync.ts
@@ -29,11 +29,11 @@ import {
29
29
  removeParticipant,
30
30
  setConversationPrivate,
31
31
  updateChannelSettings
32
- } from "./chunk-K4EHBHPE.js";
33
- import "./chunk-7G2EEYXX.js";
32
+ } from "./chunk-FZMEVCWC.js";
33
+ import "./chunk-ZMIMSIIT.js";
34
34
  import "./chunk-T2TP6ZC6.js";
35
- import "./chunk-YAMO2U3N.js";
36
- import "./chunk-L3IV23ZG.js";
35
+ import "./chunk-H7IYFRAL.js";
36
+ import "./chunk-ZV7MFISX.js";
37
37
  import "./chunk-K3NQKI34.js";
38
38
  export {
39
39
  addMessage,
@@ -21,7 +21,7 @@ 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-FBCCEYF5.js");
24
+ const { resolveTemplate } = await import("./ai-service-7PHSRDMO.js");
25
25
  template = await resolveTemplate();
26
26
  }
27
27
  const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  stopDaemon
4
- } from "./chunk-O3DXAR44.js";
4
+ } from "./chunk-IEWZ7VD7.js";
5
5
  import {
6
6
  run
7
- } from "./chunk-ZO7IQJKO.js";
7
+ } from "./chunk-7KWANSLX.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-ATEX3ZPG.js";
19
- import "./chunk-PGPLCJPK.js";
20
- import "./chunk-ONM2AZFL.js";
21
- import "./chunk-YAMO2U3N.js";
22
- import "./chunk-L3IV23ZG.js";
18
+ } from "./chunk-Q2XBKQ2D.js";
19
+ import "./chunk-3ERIL673.js";
20
+ import "./chunk-PNV24SEP.js";
21
+ import "./chunk-H7IYFRAL.js";
22
+ import "./chunk-ZV7MFISX.js";
23
23
  import "./chunk-K3NQKI34.js";
24
24
 
25
25
  // src/commands/daemon-restart.ts