volute 0.20.0 → 0.21.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 (92) hide show
  1. package/README.md +7 -7
  2. package/dist/{activity-events-OMXKXD5N.js → activity-events-3WHHCOBB.js} +3 -4
  3. package/dist/{archive-ZCFOSTKB.js → archive-4ZQYK5MN.js} +4 -2
  4. package/dist/auth-HM2RSPY7.js +37 -0
  5. package/dist/{channel-PUQKGSQM.js → channel-BOOMFULW.js} +2 -2
  6. package/dist/{chunk-IKMY5X76.js → chunk-5462YKWP.js} +12 -9
  7. package/dist/{chunk-PUVXOZ6T.js → chunk-7LPTHFIL.js} +63 -64
  8. package/dist/{chunk-UU7A7KLB.js → chunk-A4S7H6G6.js} +5 -7
  9. package/dist/chunk-AKPFNL7L.js +148 -0
  10. package/dist/{chunk-EBGCNDMM.js → chunk-B2CPS4QU.js} +128 -114
  11. package/dist/{chunk-FCDU5BFX.js → chunk-HFCBO2GL.js} +2 -2
  12. package/dist/{chunk-GZ7DW4YL.js → chunk-HGCDWKSP.js} +2 -2
  13. package/dist/{chunk-DYZGP3EW.js → chunk-IPJXU366.js} +1 -1
  14. package/dist/{chunk-7UFKREVW.js → chunk-J5A3DF2U.js} +2 -2
  15. package/dist/{chunk-WC6ZHVRL.js → chunk-KFI7TQJ6.js} +2 -2
  16. package/dist/{chunk-AW7P4EVV.js → chunk-KTJGZ7M7.js} +55 -7
  17. package/dist/{chunk-TIWH32HP.js → chunk-L3LHXZD7.js} +3 -3
  18. package/dist/{chunk-OGXOMR65.js → chunk-NWPT4ASZ.js} +1 -1
  19. package/dist/{chunk-FGSYHIS3.js → chunk-OGZYB5GL.js} +252 -296
  20. package/dist/{chunk-SCUDS4US.js → chunk-ON3FF5JA.js} +1 -1
  21. package/dist/{chunk-O6ASDHFO.js → chunk-PC6R6UUW.js} +4 -4
  22. package/dist/{chunk-VDWCHYTS.js → chunk-PHU4DEAJ.js} +1 -1
  23. package/dist/{chunk-7NO7EV5Z.js → chunk-Q7AITQ44.js} +2 -2
  24. package/dist/{chunk-32VR2EOH.js → chunk-QUJUKM4U.js} +2 -2
  25. package/dist/{chunk-NSE7VJQA.js → chunk-SGPEZ32F.js} +29 -1
  26. package/dist/{chunk-RHEGSQFJ.js → chunk-WSLPZF72.js} +1 -1
  27. package/dist/cli.js +57 -119
  28. package/dist/{connector-JBVNZ7VK.js → connector-PYT5UOTZ.js} +6 -6
  29. package/dist/connectors/discord.js +2 -2
  30. package/dist/connectors/slack.js +2 -2
  31. package/dist/connectors/telegram.js +2 -2
  32. package/dist/{create-HP4OVVHF.js → create-WIDA3M4C.js} +1 -1
  33. package/dist/{daemon-client-ITWUCNFO.js → daemon-client-ZHCDL4RS.js} +2 -2
  34. package/dist/{daemon-restart-KPSWNYTH.js → daemon-restart-BH67ZOTE.js} +6 -6
  35. package/dist/daemon.js +1538 -687
  36. package/dist/{delete-BSU7K3RY.js → delete-LOIANQGD.js} +1 -1
  37. package/dist/down-LIOQ5JDH.js +14 -0
  38. package/dist/{env-A3LMO777.js → env-4PHIHTF4.js} +2 -2
  39. package/dist/{export-6QBUOQGC.js → export-XD6PJBQP.js} +19 -8
  40. package/dist/{file-C57SK5DK.js → file-X4L5TTOL.js} +2 -2
  41. package/dist/{history-WNK3DFUM.js → history-HTEKRNID.js} +2 -2
  42. package/dist/{import-XEC34Y4Z.js → import-E433B4KG.js} +3 -3
  43. package/dist/{log-PPPZDVEF.js → log-SRO5Q6AD.js} +2 -2
  44. package/dist/{login-HNH3EUQV.js → login-UO6AOVEA.js} +4 -4
  45. package/dist/{logout-I5CB5UZS.js → logout-UKD5LA37.js} +2 -2
  46. package/dist/{logs-SF2IMJN4.js → logs-HNTNNBDW.js} +2 -2
  47. package/dist/{merge-33C237A4.js → merge-B6SYTGI7.js} +2 -2
  48. package/dist/{mind-Z7CKD6DG.js → mind-BIDOF65R.js} +27 -11
  49. package/dist/{mind-activity-tracker-624QLQLC.js → mind-activity-tracker-PGC3DBJ7.js} +4 -5
  50. package/dist/{mind-manager-3DMYKZPB.js → mind-manager-3V2NXX4I.js} +5 -6
  51. package/dist/{package-4NHAVUUI.js → package-HQR52XSG.js} +1 -1
  52. package/dist/{pages-4DGQT7ZA.js → pages-KQBR5TAZ.js} +6 -6
  53. package/dist/{publish-TAJUET4I.js → publish-OJ4QMXVZ.js} +6 -6
  54. package/dist/{pull-XAEWQJ47.js → pull-GRQAXM2E.js} +2 -2
  55. package/dist/{register-VSPCMHKX.js → register-U2UO6TC4.js} +5 -5
  56. package/dist/registry-D2BSQ2X5.js +42 -0
  57. package/dist/{restart-IQKMCK5M.js → restart-CIDAKGG2.js} +3 -6
  58. package/dist/{schedule-FFZG23IW.js → schedule-NLR3LZLY.js} +2 -2
  59. package/dist/{seed-J43YDKXG.js → seed-3H2MRREW.js} +2 -2
  60. package/dist/{send-KVIZIGCE.js → send-RP2TA7SG.js} +132 -36
  61. package/dist/{service-LUR7WDO7.js → service-TVNEORO7.js} +31 -13
  62. package/dist/{setup-52YRV7VP.js → setup-OZDYCKDI.js} +9 -34
  63. package/dist/{shared-KO35ZM44.js → shared-DCQ2UXOM.js} +4 -4
  64. package/dist/{skill-BCVNI6TV.js → skill-Q2Y6PQ3L.js} +2 -2
  65. package/dist/skills/orientation/SKILL.md +2 -2
  66. package/dist/skills/volute-mind/SKILL.md +5 -5
  67. package/dist/{sprout-QN7Y4VVO.js → sprout-6Z6C42YM.js} +34 -30
  68. package/dist/{start-I5JYB65M.js → start-JR6CUUWF.js} +3 -6
  69. package/dist/{status-D7E5HHBV.js → status-5XDGYHKP.js} +2 -2
  70. package/dist/{status-FU2PFVVF.js → status-LV34BG6G.js} +3 -3
  71. package/dist/{status-4ESFLGH4.js → status-Z7NAFMBI.js} +5 -5
  72. package/dist/{stop-NBVKEFQQ.js → stop-VKPGK25U.js} +2 -5
  73. package/dist/template-hash-BIMA4ILT.js +8 -0
  74. package/dist/{up-FS7CKM6V.js → up-7BGDMFRT.js} +5 -5
  75. package/dist/{update-FJIHDJKM.js → update-4WT7VWHW.js} +5 -5
  76. package/dist/{update-check-MWE5AH4U.js → update-check-F5Z3ALXX.js} +2 -2
  77. package/dist/{upgrade-AIT24B5I.js → upgrade-ZEC2GGFO.js} +1 -1
  78. package/dist/{variant-63ZWO2W7.js → variant-A4I7PHXS.js} +16 -24
  79. package/dist/version-notify-TFS2U5CF.js +173 -0
  80. package/dist/web-assets/assets/index-BR3gtK3E.css +1 -0
  81. package/dist/web-assets/assets/index-CWmrZRQd.js +64 -0
  82. package/dist/web-assets/index.html +2 -2
  83. package/package.json +1 -1
  84. package/dist/chunk-5XNT2472.js +0 -36
  85. package/dist/chunk-UJ6GHNR7.js +0 -675
  86. package/dist/db-C2CJ46ZU.js +0 -10
  87. package/dist/delivery-manager-CSG7LXA4.js +0 -16
  88. package/dist/down-ZY35KMHR.js +0 -14
  89. package/dist/schema-GFH6RV3W.js +0 -26
  90. package/dist/variants-JAGWGBXG.js +0 -26
  91. package/dist/web-assets/assets/index-CUZTZzaW.js +0 -64
  92. package/dist/web-assets/assets/index-adVuCkqy.css +0 -1
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  voluteHome
4
- } from "./chunk-EBGCNDMM.js";
4
+ } from "./chunk-B2CPS4QU.js";
5
5
 
6
6
  // src/lib/update-check.ts
7
7
  import { existsSync, readFileSync, writeFileSync } from "fs";
@@ -3,7 +3,7 @@ import {
3
3
  mindEnvPath,
4
4
  readEnv,
5
5
  writeEnv
6
- } from "./chunk-VDWCHYTS.js";
6
+ } from "./chunk-PHU4DEAJ.js";
7
7
  import {
8
8
  parseArgs
9
9
  } from "./chunk-D424ZQGI.js";
@@ -60,7 +60,7 @@ async function run(args) {
60
60
  return;
61
61
  }
62
62
  const wsDir = resolveWorkspace(inputPath);
63
- const { daemonFetch } = await import("./daemon-client-ITWUCNFO.js");
63
+ const { daemonFetch } = await import("./daemon-client-ZHCDL4RS.js");
64
64
  const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
65
65
  const client = getClient();
66
66
  const res = await daemonFetch(urlOf(client.api.minds.import.$url()), {
@@ -100,7 +100,7 @@ async function importArchive(archivePath, nameOverride) {
100
100
  console.error(`File not found: ${archivePath}`);
101
101
  process.exit(1);
102
102
  }
103
- const { extractArchive } = await import("./archive-ZCFOSTKB.js");
103
+ const { extractArchive } = await import("./archive-4ZQYK5MN.js");
104
104
  const tempDir = resolve2(tmpdir(), `volute-import-${Date.now()}`);
105
105
  mkdirSync2(tempDir, { recursive: true });
106
106
  let extracted;
@@ -112,7 +112,7 @@ async function importArchive(archivePath, nameOverride) {
112
112
  process.exit(1);
113
113
  }
114
114
  try {
115
- const { daemonFetch } = await import("./daemon-client-ITWUCNFO.js");
115
+ const { daemonFetch } = await import("./daemon-client-ZHCDL4RS.js");
116
116
  const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
117
117
  const client = getClient();
118
118
  const res = await daemonFetch(urlOf(client.api.minds.import.$url()), {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  stateDir,
4
4
  voluteHome
5
- } from "./chunk-EBGCNDMM.js";
5
+ } from "./chunk-B2CPS4QU.js";
6
6
 
7
7
  // src/lib/env.ts
8
8
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
@@ -5,10 +5,10 @@ import {
5
5
  pollHealthDown,
6
6
  readDaemonConfig,
7
7
  stopService
8
- } from "./chunk-32VR2EOH.js";
8
+ } from "./chunk-QUJUKM4U.js";
9
9
  import {
10
10
  voluteHome
11
- } from "./chunk-EBGCNDMM.js";
11
+ } from "./chunk-B2CPS4QU.js";
12
12
 
13
13
  // src/commands/down.ts
14
14
  import { existsSync, readFileSync, unlinkSync } from "fs";
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  execInherit
4
- } from "./chunk-DYZGP3EW.js";
4
+ } from "./chunk-IPJXU366.js";
5
5
  import {
6
6
  voluteHome
7
- } from "./chunk-EBGCNDMM.js";
7
+ } from "./chunk-B2CPS4QU.js";
8
8
 
9
9
  // src/lib/service-mode.ts
10
10
  import { execFileSync } from "child_process";
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ voluteHome
4
+ } from "./chunk-B2CPS4QU.js";
2
5
  import {
3
6
  __export
4
7
  } from "./chunk-K3NQKI34.js";
@@ -144,6 +147,31 @@ var messages = sqliteTable(
144
147
  (table) => [index("idx_messages_conversation_id").on(table.conversation_id)]
145
148
  );
146
149
 
150
+ // src/lib/db.ts
151
+ import { chmodSync, existsSync } from "fs";
152
+ import { dirname, resolve } from "path";
153
+ import { fileURLToPath } from "url";
154
+ import { drizzle } from "drizzle-orm/libsql";
155
+ import { migrate } from "drizzle-orm/libsql/migrator";
156
+ var __dirname = dirname(fileURLToPath(import.meta.url));
157
+ var migrationsFolder = existsSync(resolve(__dirname, "../drizzle")) ? resolve(__dirname, "../drizzle") : resolve(__dirname, "../../drizzle");
158
+ var db = null;
159
+ async function getDb() {
160
+ if (db) return db;
161
+ const dbPath = process.env.VOLUTE_DB_PATH || resolve(voluteHome(), "volute.db");
162
+ db = drizzle({ connection: { url: `file:${dbPath}` }, schema: schema_exports });
163
+ await migrate(db, { migrationsFolder });
164
+ try {
165
+ chmodSync(dbPath, 384);
166
+ } catch (err) {
167
+ console.error(
168
+ `[volute] WARNING: Failed to restrict database file permissions on ${dbPath}:`,
169
+ err
170
+ );
171
+ }
172
+ return db;
173
+ }
174
+
147
175
  export {
148
176
  users,
149
177
  conversations,
@@ -155,5 +183,5 @@ export {
155
183
  deliveryQueue,
156
184
  activity,
157
185
  messages,
158
- schema_exports
186
+ getDb
159
187
  };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  stateDir
4
- } from "./chunk-EBGCNDMM.js";
4
+ } from "./chunk-B2CPS4QU.js";
5
5
 
6
6
  // src/lib/slugify.ts
7
7
  function slugify(text) {
package/dist/cli.js CHANGED
@@ -9,171 +9,109 @@ if (!process.env.VOLUTE_HOME) {
9
9
  var command = process.argv[2];
10
10
  var args = process.argv.slice(3);
11
11
  if (command === "--version" || command === "-v") {
12
- const { default: pkg } = await import("./package-4NHAVUUI.js");
12
+ const { default: pkg } = await import("./package-HQR52XSG.js");
13
13
  console.log(pkg.version);
14
14
  process.exit(0);
15
15
  }
16
16
  switch (command) {
17
17
  case "mind":
18
- await import("./mind-Z7CKD6DG.js").then((m) => m.run(args));
18
+ await import("./mind-BIDOF65R.js").then((m) => m.run(args));
19
19
  break;
20
20
  case "send":
21
- await import("./send-KVIZIGCE.js").then((m) => m.run(args));
21
+ await import("./send-RP2TA7SG.js").then((m) => m.run(args));
22
22
  break;
23
23
  case "history":
24
- await import("./history-WNK3DFUM.js").then((m) => m.run(args));
24
+ await import("./history-HTEKRNID.js").then((m) => m.run(args));
25
25
  break;
26
26
  case "variant":
27
- await import("./variant-63ZWO2W7.js").then((m) => m.run(args));
28
- break;
29
- case "connector":
30
- await import("./connector-JBVNZ7VK.js").then((m) => m.run(args));
27
+ await import("./variant-A4I7PHXS.js").then((m) => m.run(args));
31
28
  break;
32
29
  case "channel":
33
- await import("./channel-PUQKGSQM.js").then((m) => m.run(args));
30
+ await import("./channel-BOOMFULW.js").then((m) => m.run(args));
34
31
  break;
35
32
  case "schedule":
36
- await import("./schedule-FFZG23IW.js").then((m) => m.run(args));
33
+ await import("./schedule-NLR3LZLY.js").then((m) => m.run(args));
37
34
  break;
38
35
  case "skill":
39
- await import("./skill-BCVNI6TV.js").then((m) => m.run(args));
36
+ await import("./skill-Q2Y6PQ3L.js").then((m) => m.run(args));
40
37
  break;
41
38
  case "shared":
42
- await import("./shared-KO35ZM44.js").then((m) => m.run(args));
39
+ await import("./shared-DCQ2UXOM.js").then((m) => m.run(args));
43
40
  break;
44
41
  case "file":
45
- await import("./file-C57SK5DK.js").then((m) => m.run(args));
42
+ await import("./file-X4L5TTOL.js").then((m) => m.run(args));
46
43
  break;
47
44
  case "env":
48
- await import("./env-A3LMO777.js").then((m) => m.run(args));
45
+ await import("./env-4PHIHTF4.js").then((m) => m.run(args));
49
46
  break;
50
47
  case "up":
51
- await import("./up-FS7CKM6V.js").then((m) => m.run(args));
48
+ await import("./up-7BGDMFRT.js").then((m) => m.run(args));
52
49
  break;
53
50
  case "down":
54
- await import("./down-ZY35KMHR.js").then((m) => m.run(args));
51
+ await import("./down-LIOQ5JDH.js").then((m) => m.run(args));
55
52
  break;
56
53
  case "restart":
57
- await import("./daemon-restart-KPSWNYTH.js").then((m) => m.run(args));
58
- break;
59
- case "setup":
60
- await import("./setup-52YRV7VP.js").then((m) => m.run(args));
54
+ await import("./daemon-restart-BH67ZOTE.js").then((m) => m.run(args));
61
55
  break;
62
56
  case "service":
63
- await import("./service-LUR7WDO7.js").then((m) => m.run(args));
57
+ await import("./service-TVNEORO7.js").then((m) => m.run(args));
64
58
  break;
65
59
  case "update":
66
- await import("./update-FJIHDJKM.js").then((m) => m.run(args));
60
+ await import("./update-4WT7VWHW.js").then((m) => m.run(args));
67
61
  break;
68
62
  case "status":
69
- await import("./status-4ESFLGH4.js").then((m) => m.run(args));
70
- break;
71
- case "seed":
72
- await import("./seed-J43YDKXG.js").then((m) => m.run(args));
73
- break;
74
- case "sprout":
75
- await import("./sprout-QN7Y4VVO.js").then((m) => m.run(args));
63
+ await import("./status-Z7NAFMBI.js").then((m) => m.run(args));
76
64
  break;
77
65
  case "pages":
78
- await import("./pages-4DGQT7ZA.js").then((m) => m.run(args));
79
- break;
80
- case "register":
81
- await import("./register-VSPCMHKX.js").then((m) => m.run(args));
82
- break;
83
- case "login":
84
- await import("./login-HNH3EUQV.js").then((m) => m.run(args));
66
+ await import("./pages-KQBR5TAZ.js").then((m) => m.run(args));
85
67
  break;
86
- case "logout":
87
- await import("./logout-I5CB5UZS.js").then((m) => m.run());
68
+ case "auth":
69
+ await import("./auth-HM2RSPY7.js").then((m) => m.run(args));
88
70
  break;
89
71
  case "--help":
90
72
  case "-h":
91
73
  case void 0:
92
74
  console.log(`volute \u2014 create and manage AI minds
93
75
 
94
- Commands:
95
- volute mind create <name> Create a new mind
96
- volute mind start <name> Start a mind (daemonized)
97
- volute mind stop <name> Stop a mind
98
- volute mind restart <name> Restart a mind
99
- volute mind delete <name> [--force] Delete a mind (--force removes files)
100
- volute mind list List all minds
101
- volute mind status <name> Check mind status
102
- volute mind logs <name> [--follow] Tail mind logs
103
- volute mind upgrade <name> Upgrade mind to latest template
104
- volute mind import <path> Import an OpenClaw workspace
105
-
106
- volute send <target> "<msg>" Send a message (mind DM, channel, etc.)
107
- volute history [--mind <name>] View message history
108
-
109
- volute variant create <name> Create a variant (worktree + server)
110
- volute variant list List variants for a mind
111
- volute variant merge <name> Merge a variant back
112
- volute variant delete <name> Delete a variant
113
-
114
- volute connector connect <type> Enable a connector for a mind
115
- volute connector disconnect <type> Disable a connector for a mind
116
-
117
- volute channel read <uri> Read recent messages from a channel
118
- volute channel list [<platform>] List conversations on a platform
119
- volute channel users <platform> List users on a platform
120
- volute channel create <platform> ... Create a conversation on a platform
121
-
122
- volute schedule list List schedules for a mind
123
- volute schedule add ... Add a cron schedule
124
- volute schedule remove ... Remove a schedule
125
-
126
- volute skill list List shared skills
127
- volute skill list --mind <name> List installed skills for a mind
128
- volute skill info <name> Show details of a shared skill
129
- volute skill install <name> --mind Install a shared skill into a mind
130
- volute skill update <name> --mind Update an installed skill
131
- volute skill publish <name> --mind Publish a mind's skill to shared repo
132
- volute skill remove <name> Remove a shared skill
133
- volute skill uninstall <name> --mind Uninstall a skill from a mind
134
-
135
- volute file send <path> <mind> Send a file to another mind
136
- volute file list List pending incoming files
137
- volute file accept <id> Accept a pending file
138
- volute file reject <id> Reject a pending file
139
- volute file trust <sender> Trust a sender (auto-deliver)
140
- volute file untrust <sender> Remove sender trust
141
-
142
- volute shared merge "<msg>" Merge shared changes to main
143
- volute shared pull Pull latest shared changes
144
- volute shared log Show shared repo history
145
- volute shared status Show pending changes diff
146
-
147
- volute env <set|get|list|remove> Manage environment variables
148
-
149
- volute up [--port N] Start the daemon (default: 4200)
150
- volute down Stop the daemon
151
- volute restart [--port N] Restart the daemon
152
-
153
- volute service install [--port N] Install as system service (auto-start)
154
- volute service uninstall Remove system service
155
- volute service status Check service status
156
- volute setup [--port N] [--host H] Install system service with user isolation
157
- volute setup uninstall [--force] Remove system service + isolation
158
-
159
- volute register [--name <name>] Register a system on volute.systems
160
- volute login [--key <key>] Log in with an existing API key
161
- volute logout Remove stored credentials
162
-
163
- volute pages publish [--mind <name>] Publish mind's pages/ directory
164
- volute pages status [--mind <name>] Show publish status
165
-
166
- volute seed <name> Plant a seed mind (orientation mode)
167
- volute sprout Complete orientation, become a full mind
168
-
169
- volute update Update to latest version
170
- volute status Show daemon status and minds
76
+ Common:
77
+ send <target> "<msg>" Send a message
78
+ history [--channel <ch>] View activity history
79
+ status Show system status
80
+
81
+ Mind:
82
+ mind create <name> Create a new mind
83
+ mind seed <name> Plant a seed mind (orientation mode)
84
+ mind start/stop/restart [name] Control a mind
85
+ mind list List all minds
86
+ mind status [name] Check a mind's status
87
+ mind connect/disconnect <type> Manage connectors
88
+ mind logs [name] [--follow] Tail mind logs
89
+ mind sprout Complete orientation
90
+ mind upgrade/import/export Lifecycle operations
91
+
92
+ Configuration:
93
+ channel Read, list, and manage channels
94
+ variant Create and merge experimental variants
95
+ schedule Manage cron schedules
96
+ skill Browse and install skills
97
+ env Manage environment variables
98
+ file Mind-to-mind file sharing
99
+ shared Collaborative shared repository
100
+ pages Publish web pages
101
+
102
+ System:
103
+ up / down / restart Daemon control
104
+ update Update volute
105
+ service install/uninstall Auto-start service
106
+ auth register/login/logout volute.systems account
171
107
 
172
108
  Options:
173
- --version, -v Show version number
174
- --help, -h Show this help message
109
+ --version, -v Show version number
110
+ --help, -h Show this help message
111
+
112
+ Run 'volute <command> --help' for details.
175
113
 
176
- Mind-scoped commands (send, history, variant, connector, schedule, channel, file, skill, shared, pages)
114
+ Mind-scoped commands (send, history, variant, schedule, channel, file, skill, shared, pages)
177
115
  use --mind <name> or VOLUTE_MIND env var to identify the mind.`);
178
116
  break;
179
117
  default:
@@ -182,7 +120,7 @@ Run 'volute --help' for usage.`);
182
120
  process.exit(1);
183
121
  }
184
122
  if (command !== "update") {
185
- import("./update-check-MWE5AH4U.js").then((m) => m.checkForUpdate()).then((result) => {
123
+ import("./update-check-F5Z3ALXX.js").then((m) => m.checkForUpdate()).then((result) => {
186
124
  if (result.updateAvailable) {
187
125
  console.error(`
188
126
  Update available: ${result.current} \u2192 ${result.latest}`);
@@ -14,8 +14,8 @@ import {
14
14
  } from "./chunk-D424ZQGI.js";
15
15
  import {
16
16
  daemonFetch
17
- } from "./chunk-WC6ZHVRL.js";
18
- import "./chunk-EBGCNDMM.js";
17
+ } from "./chunk-KFI7TQJ6.js";
18
+ import "./chunk-B2CPS4QU.js";
19
19
  import "./chunk-K3NQKI34.js";
20
20
 
21
21
  // src/commands/connector.ts
@@ -40,8 +40,8 @@ async function run(args) {
40
40
  }
41
41
  function printUsage() {
42
42
  console.log(`Usage:
43
- volute connector connect <type> [--mind <name>]
44
- volute connector disconnect <type> [--mind <name>]`);
43
+ volute mind connect <type> [--mind <name>]
44
+ volute mind disconnect <type> [--mind <name>]`);
45
45
  }
46
46
  async function connectConnector(args) {
47
47
  const { positional, flags } = parseArgs(args, {
@@ -50,7 +50,7 @@ async function connectConnector(args) {
50
50
  const mindName = resolveMindName(flags);
51
51
  const type = positional[0];
52
52
  if (!type) {
53
- console.error("Usage: volute connector connect <type> [--mind <name>]");
53
+ console.error("Usage: volute mind connect <type> [--mind <name>]");
54
54
  process.exit(1);
55
55
  }
56
56
  const client = getClient();
@@ -123,7 +123,7 @@ async function disconnectConnector(args) {
123
123
  const mindName = resolveMindName(flags);
124
124
  const type = positional[0];
125
125
  if (!type) {
126
- console.error("Usage: volute connector disconnect <type> [--mind <name>]");
126
+ console.error("Usage: volute mind disconnect <type> [--mind <name>]");
127
127
  process.exit(1);
128
128
  }
129
129
  const client = getClient();
@@ -7,8 +7,8 @@ import {
7
7
  sendToMind,
8
8
  slugify,
9
9
  writeChannelEntry
10
- } from "../chunk-RHEGSQFJ.js";
11
- import "../chunk-EBGCNDMM.js";
10
+ } from "../chunk-WSLPZF72.js";
11
+ import "../chunk-B2CPS4QU.js";
12
12
  import "../chunk-K3NQKI34.js";
13
13
 
14
14
  // src/connectors/discord.ts
@@ -6,8 +6,8 @@ import {
6
6
  onShutdown,
7
7
  sendToMind,
8
8
  writeChannelEntry
9
- } from "../chunk-RHEGSQFJ.js";
10
- import "../chunk-EBGCNDMM.js";
9
+ } from "../chunk-WSLPZF72.js";
10
+ import "../chunk-B2CPS4QU.js";
11
11
  import "../chunk-K3NQKI34.js";
12
12
 
13
13
  // src/connectors/slack.ts
@@ -5,8 +5,8 @@ import {
5
5
  loadFollowedChannels,
6
6
  sendToMind,
7
7
  writeChannelEntry
8
- } from "../chunk-RHEGSQFJ.js";
9
- import "../chunk-EBGCNDMM.js";
8
+ } from "../chunk-WSLPZF72.js";
9
+ import "../chunk-B2CPS4QU.js";
10
10
  import "../chunk-K3NQKI34.js";
11
11
 
12
12
  // src/connectors/telegram.ts
@@ -17,7 +17,7 @@ async function run(args) {
17
17
  process.exit(1);
18
18
  }
19
19
  const skills = flags.skills === "none" ? [] : flags.skills ? flags.skills.split(",") : void 0;
20
- const { daemonFetch } = await import("./daemon-client-ITWUCNFO.js");
20
+ const { daemonFetch } = await import("./daemon-client-ZHCDL4RS.js");
21
21
  const { getClient, urlOf } = await import("./api-client-YPKOZP2O.js");
22
22
  const client = getClient();
23
23
  const res = await daemonFetch(urlOf(client.api.minds.$url()), {
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  daemonFetch
4
- } from "./chunk-WC6ZHVRL.js";
5
- import "./chunk-EBGCNDMM.js";
4
+ } from "./chunk-KFI7TQJ6.js";
5
+ import "./chunk-B2CPS4QU.js";
6
6
  import "./chunk-K3NQKI34.js";
7
7
  export {
8
8
  daemonFetch
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  run
4
- } from "./chunk-7UFKREVW.js";
4
+ } from "./chunk-J5A3DF2U.js";
5
5
  import {
6
6
  stopDaemon
7
- } from "./chunk-7NO7EV5Z.js";
7
+ } from "./chunk-Q7AITQ44.js";
8
8
  import {
9
9
  getServiceMode,
10
10
  modeLabel,
11
11
  pollHealth,
12
12
  readDaemonConfig,
13
13
  restartService
14
- } from "./chunk-32VR2EOH.js";
14
+ } from "./chunk-QUJUKM4U.js";
15
15
  import "./chunk-D424ZQGI.js";
16
- import "./chunk-DYZGP3EW.js";
17
- import "./chunk-OGXOMR65.js";
18
- import "./chunk-EBGCNDMM.js";
16
+ import "./chunk-IPJXU366.js";
17
+ import "./chunk-NWPT4ASZ.js";
18
+ import "./chunk-B2CPS4QU.js";
19
19
  import "./chunk-K3NQKI34.js";
20
20
 
21
21
  // src/commands/daemon-restart.ts