volute 0.9.0 → 0.10.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 (36) hide show
  1. package/dist/{agent-MB3OTRRK.js → agent-ECRX44DB.js} +5 -5
  2. package/dist/{agent-manager-CMMH5KQQ.js → agent-manager-MRHHKAB6.js} +2 -2
  3. package/dist/{chunk-YNNK4QN2.js → chunk-FYQGANL6.js} +40 -2
  4. package/dist/chunk-R3VB7NF5.js +205 -0
  5. package/dist/cli.js +14 -14
  6. package/dist/create-VBZZNJOG.js +38 -0
  7. package/dist/daemon-restart-QCLR6ZZV.js +61 -0
  8. package/dist/daemon.js +1492 -170
  9. package/dist/delete-BOTVU4YO.js +35 -0
  10. package/dist/{down-4DGRZRJU.js → down-4LIQG3CE.js} +3 -1
  11. package/dist/import-2BZUWT23.js +21 -0
  12. package/dist/{package-WPX6LCYE.js → package-ERGXEDAF.js} +1 -1
  13. package/dist/{up-J7AHQHIM.js → up-MNNPCMFF.js} +1 -1
  14. package/dist/upgrade-RSE4CZNE.js +55 -0
  15. package/dist/variant-7IZF6OWO.js +215 -0
  16. package/package.json +1 -1
  17. package/dist/chunk-ECPQXRLB.js +0 -264
  18. package/dist/chunk-NETNFBA5.js +0 -28
  19. package/dist/chunk-XUA3JUFK.js +0 -121
  20. package/dist/create-HGJHLABX.js +0 -96
  21. package/dist/daemon-restart-EKDXXHKH.js +0 -28
  22. package/dist/delete-WKQKE3FT.js +0 -70
  23. package/dist/import-CNEDF3TD.js +0 -532
  24. package/dist/upgrade-BRNMSQBX.js +0 -233
  25. package/dist/variant-AQRAN6FR.js +0 -493
  26. package/dist/{channel-G5D4VBXY.js → channel-2WHBRDTD.js} +3 -3
  27. package/dist/{chunk-AWHQZDB4.js → chunk-4NAGJV3I.js} +0 -0
  28. package/dist/{chunk-W6TMWYU3.js → chunk-WV4W7BAT.js} +3 -3
  29. package/dist/{connector-PK7D5GTN.js → connector-L2HBLZBW.js} +3 -3
  30. package/dist/{env-HZMZSWWD.js → env-CGORIKVF.js} +3 -3
  31. package/dist/{history-SH25BAA5.js → history-NI5QP27M.js} +3 -3
  32. package/dist/{logs-V54B6QSG.js → logs-APWVWGNX.js} +3 -3
  33. package/dist/{schedule-XGBUF7NU.js → schedule-E4MFGYSA.js} +3 -3
  34. package/dist/{send-TFZ62XPZ.js → send-X6OQGSD6.js} +4 -4
  35. package/dist/{service-56CY4S6Z.js → service-OW35VZ5G.js} +3 -3
  36. package/dist/{setup-7SPMWF2O.js → setup-ABMZK6LS.js} +3 -3
@@ -1,493 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- resolveAgentName
4
- } from "./chunk-AZEL2IEK.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-STOEJOJO.js";
8
- import {
9
- parseArgs
10
- } from "./chunk-D424ZQGI.js";
11
- import {
12
- exec,
13
- execInherit
14
- } from "./chunk-5C5JWR2L.js";
15
- import {
16
- addVariant,
17
- checkHealth,
18
- findVariant,
19
- nextPort,
20
- readVariants,
21
- removeVariant,
22
- resolveAgent,
23
- validateBranchName,
24
- writeVariants
25
- } from "./chunk-DP2DX4WV.js";
26
- import {
27
- getClient,
28
- urlOf
29
- } from "./chunk-4RQBJWQX.js";
30
- import "./chunk-K3NQKI34.js";
31
-
32
- // src/commands/variant.ts
33
- import { existsSync, mkdirSync as mkdirSync2, writeFileSync } from "fs";
34
- import { resolve as resolve2 } from "path";
35
-
36
- // src/lib/spawn-server.ts
37
- import { spawn } from "child_process";
38
- import { closeSync, mkdirSync, openSync, readFileSync } from "fs";
39
- import { resolve } from "path";
40
- function tsxBin(cwd) {
41
- return resolve(cwd, "node_modules", ".bin", "tsx");
42
- }
43
- function spawnServer(cwd, port, options) {
44
- if (options?.detached) {
45
- return spawnDetached(cwd, port, options.logDir);
46
- }
47
- return spawnAttached(cwd, port);
48
- }
49
- function spawnAttached(cwd, port) {
50
- const child = spawn(tsxBin(cwd), ["src/server.ts", "--port", String(port)], {
51
- cwd,
52
- stdio: ["ignore", "pipe", "pipe"]
53
- });
54
- return new Promise((resolve3) => {
55
- const timeout = setTimeout(() => resolve3(null), 3e4);
56
- function checkOutput(data) {
57
- const match = data.toString().match(/listening on :(\d+)/);
58
- if (match) {
59
- clearTimeout(timeout);
60
- resolve3({ child, actualPort: parseInt(match[1], 10) });
61
- }
62
- }
63
- child.stdout?.on("data", checkOutput);
64
- child.stderr?.on("data", checkOutput);
65
- child.on("error", () => {
66
- clearTimeout(timeout);
67
- resolve3(null);
68
- });
69
- child.on("exit", () => {
70
- clearTimeout(timeout);
71
- resolve3(null);
72
- });
73
- });
74
- }
75
- function spawnDetached(cwd, port, logDir) {
76
- const logsDir = logDir ?? resolve(cwd, ".volute", "logs");
77
- mkdirSync(logsDir, { recursive: true });
78
- const logPath = resolve(logsDir, "agent.log");
79
- const logFd = openSync(logPath, "a");
80
- const child = spawn(tsxBin(cwd), ["src/server.ts", "--port", String(port)], {
81
- cwd,
82
- stdio: ["ignore", logFd, logFd],
83
- detached: true
84
- });
85
- child.unref();
86
- closeSync(logFd);
87
- return new Promise((res) => {
88
- let done = false;
89
- function finish(result) {
90
- if (done) return;
91
- done = true;
92
- clearInterval(interval);
93
- clearTimeout(timeout);
94
- res(result);
95
- }
96
- const interval = setInterval(() => {
97
- try {
98
- const content = readFileSync(logPath, "utf-8");
99
- const match = content.match(/listening on :(\d+)/);
100
- if (match) {
101
- finish({ child, actualPort: parseInt(match[1], 10) });
102
- }
103
- } catch {
104
- }
105
- }, 100);
106
- const timeout = setTimeout(() => finish(null), 3e4);
107
- child.on("error", () => finish(null));
108
- child.on("exit", () => finish(null));
109
- });
110
- }
111
-
112
- // src/lib/verify.ts
113
- async function verify(port) {
114
- const health = await checkHealth(port);
115
- if (!health.ok) {
116
- console.error(" Health check: failed");
117
- return false;
118
- }
119
- console.log(" Health check: OK");
120
- try {
121
- const res = await fetch(`http://127.0.0.1:${port}/message`, {
122
- method: "POST",
123
- headers: { "Content-Type": "application/json" },
124
- body: JSON.stringify({
125
- content: [{ type: "text", text: "ping" }],
126
- channel: "system"
127
- }),
128
- signal: AbortSignal.timeout(6e4)
129
- });
130
- if (!res.ok) {
131
- console.error(" Test message: failed to send");
132
- return false;
133
- }
134
- const result = await res.json();
135
- if (result.ok) {
136
- console.log(" Test message: OK");
137
- return true;
138
- } else {
139
- console.error(" Test message: unexpected response");
140
- return false;
141
- }
142
- } catch (e) {
143
- const msg = e instanceof Error ? e.message : String(e);
144
- console.error(` Test message: ${msg}`);
145
- return false;
146
- }
147
- }
148
-
149
- // src/commands/variant.ts
150
- async function run(args) {
151
- const subcommand = args[0];
152
- switch (subcommand) {
153
- case "create":
154
- await createVariant(args.slice(1));
155
- break;
156
- case "list":
157
- await listVariants(args.slice(1));
158
- break;
159
- case "merge":
160
- await mergeVariant(args.slice(1));
161
- break;
162
- case "delete":
163
- await deleteVariant(args.slice(1));
164
- break;
165
- case "--help":
166
- case "-h":
167
- case void 0:
168
- printUsage();
169
- break;
170
- default:
171
- printUsage();
172
- process.exit(1);
173
- }
174
- }
175
- function printUsage() {
176
- console.log(`Usage:
177
- volute variant create <variant> [--agent <name>] [--soul "..."] [--port N] [--no-start] [--json]
178
- volute variant list [--agent <name>] [--json]
179
- volute variant merge <variant> [--agent <name>] [--summary "..." --memory "..."] [--skip-verify]
180
- volute variant delete <variant> [--agent <name>]`);
181
- }
182
- async function createVariant(args) {
183
- const { positional, flags } = parseArgs(args, {
184
- agent: { type: "string" },
185
- soul: { type: "string" },
186
- port: { type: "number" },
187
- "no-start": { type: "boolean" },
188
- json: { type: "boolean" }
189
- });
190
- const agentName = resolveAgentName(flags);
191
- const variantName = positional[0];
192
- const { soul, port, json } = flags;
193
- const noStart = flags["no-start"];
194
- if (!variantName) {
195
- console.error(
196
- 'Usage: volute variant create <variant> [--agent <name>] [--soul "..."] [--port N] [--no-start] [--json]'
197
- );
198
- process.exit(1);
199
- }
200
- const err = validateBranchName(variantName);
201
- if (err) {
202
- console.error(err);
203
- process.exit(1);
204
- }
205
- const { dir: projectRoot } = resolveAgent(agentName);
206
- const variantDir = resolve2(projectRoot, ".variants", variantName);
207
- if (existsSync(variantDir)) {
208
- console.error(`Variant directory already exists: ${variantDir}`);
209
- process.exit(1);
210
- }
211
- mkdirSync2(resolve2(projectRoot, ".variants"), { recursive: true });
212
- try {
213
- await exec("git", ["worktree", "add", "-b", variantName, variantDir], { cwd: projectRoot });
214
- } catch (e) {
215
- const msg = e instanceof Error ? e.message : String(e);
216
- console.error(`Failed to create worktree: ${msg}`);
217
- process.exit(1);
218
- }
219
- if (!json) console.log("Installing dependencies...");
220
- try {
221
- if (json) {
222
- await exec("npm", ["install"], { cwd: variantDir });
223
- } else {
224
- await execInherit("npm", ["install"], { cwd: variantDir });
225
- }
226
- } catch (e) {
227
- const msg = e instanceof Error ? e.message : String(e);
228
- console.error(`npm install failed: ${msg}`);
229
- process.exit(1);
230
- }
231
- if (soul) {
232
- writeFileSync(resolve2(variantDir, "home/SOUL.md"), soul);
233
- }
234
- const variantPort = port ?? nextPort();
235
- const variant = {
236
- name: variantName,
237
- branch: variantName,
238
- path: variantDir,
239
- port: variantPort,
240
- created: (/* @__PURE__ */ new Date()).toISOString()
241
- };
242
- addVariant(agentName, variant);
243
- if (!noStart) {
244
- if (!json) console.log("Starting variant via daemon...");
245
- try {
246
- const client = getClient();
247
- const res = await daemonFetch(
248
- urlOf(
249
- client.api.agents[":name"].start.$url({
250
- param: { name: `${agentName}@${variantName}` }
251
- })
252
- ),
253
- { method: "POST" }
254
- );
255
- if (!res.ok) {
256
- const data = await res.json();
257
- console.error(data.error ?? "Failed to start variant");
258
- process.exit(1);
259
- }
260
- } catch {
261
- console.error("Failed to start variant. Is the daemon running? (volute up)");
262
- console.error(
263
- `The variant was created but not started. Use: volute agent start ${agentName}@${variantName}`
264
- );
265
- process.exit(1);
266
- }
267
- }
268
- if (json) {
269
- console.log(JSON.stringify(variant, null, 2));
270
- } else {
271
- console.log(`
272
- Variant created: ${variantName}`);
273
- console.log(` Branch: ${variant.branch}`);
274
- console.log(` Path: ${variant.path}`);
275
- console.log(` Port: ${variantPort}`);
276
- }
277
- }
278
- async function listVariants(args) {
279
- const { flags } = parseArgs(args, {
280
- agent: { type: "string" },
281
- json: { type: "boolean" }
282
- });
283
- const agentName = resolveAgentName(flags);
284
- const { json } = flags;
285
- resolveAgent(agentName);
286
- const variants = readVariants(agentName);
287
- if (variants.length === 0) {
288
- if (json) {
289
- console.log("[]");
290
- } else {
291
- console.log("No variants.");
292
- }
293
- return;
294
- }
295
- const results = await Promise.all(
296
- variants.map(async (v) => {
297
- if (!v.port) return { ...v, status: "no-server" };
298
- const health = await checkHealth(v.port);
299
- return { ...v, status: health.ok ? "running" : "dead" };
300
- })
301
- );
302
- const updated = results.map(({ status, ...v }) => ({
303
- ...v,
304
- running: status === "running"
305
- }));
306
- writeVariants(agentName, updated);
307
- if (json) {
308
- console.log(JSON.stringify(results, null, 2));
309
- return;
310
- }
311
- const nameW = Math.max(4, ...results.map((r) => r.name.length));
312
- const portW = Math.max(4, ...results.map((r) => String(r.port || "-").length));
313
- console.log(`${"NAME".padEnd(nameW)} ${"PORT".padEnd(portW)} ${"STATUS".padEnd(10)} BRANCH`);
314
- for (const r of results) {
315
- console.log(
316
- `${r.name.padEnd(nameW)} ${String(r.port || "-").padEnd(portW)} ${r.status.padEnd(10)} ${r.branch}`
317
- );
318
- }
319
- }
320
- async function mergeVariant(args) {
321
- const { positional, flags } = parseArgs(args, {
322
- agent: { type: "string" },
323
- summary: { type: "string" },
324
- justification: { type: "string" },
325
- memory: { type: "string" },
326
- "skip-verify": { type: "boolean" }
327
- });
328
- const agentName = resolveAgentName(flags);
329
- const variantName = positional[0];
330
- if (!variantName) {
331
- console.error(
332
- "Usage: volute variant merge <variant> [--agent <name>] [--summary '...'] [--justification '...'] [--memory '...'] [--skip-verify]"
333
- );
334
- process.exit(1);
335
- }
336
- const { dir: projectRoot } = resolveAgent(agentName);
337
- const variant = findVariant(agentName, variantName);
338
- if (!variant) {
339
- console.error(`Unknown variant: ${variantName}`);
340
- process.exit(1);
341
- }
342
- const branchErr = validateBranchName(variant.branch);
343
- if (branchErr) {
344
- console.error(branchErr);
345
- process.exit(1);
346
- }
347
- if (existsSync(variant.path)) {
348
- const status = (await exec("git", ["status", "--porcelain"], { cwd: variant.path })).trim();
349
- if (status) {
350
- console.log("Committing uncommitted changes in variant...");
351
- try {
352
- await exec("git", ["add", "-A"], { cwd: variant.path });
353
- await exec("git", ["commit", "-m", "Auto-commit uncommitted changes before merge"], {
354
- cwd: variant.path
355
- });
356
- } catch (err) {
357
- console.error("Failed to auto-commit variant changes:", err);
358
- console.error("Please commit or stash changes in the variant manually before merging.");
359
- process.exit(1);
360
- }
361
- }
362
- }
363
- if (!flags["skip-verify"]) {
364
- console.log("Verifying variant...");
365
- console.log("Starting temporary server for verification...");
366
- const result = await spawnServer(variant.path, 0, { detached: true });
367
- if (!result) {
368
- console.error("Failed to start server for verification. Use --skip-verify to skip.");
369
- process.exit(1);
370
- }
371
- const verified = await verify(result.actualPort);
372
- try {
373
- process.kill(result.child.pid);
374
- } catch {
375
- }
376
- if (!verified) {
377
- console.error("Verification failed. Fix issues or use --skip-verify to proceed anyway.");
378
- process.exit(1);
379
- }
380
- console.log("Verification passed.");
381
- }
382
- const mainStatus = (await exec("git", ["status", "--porcelain"], { cwd: projectRoot })).trim();
383
- if (mainStatus) {
384
- console.log("Committing uncommitted changes in main...");
385
- try {
386
- await exec("git", ["add", "-A"], { cwd: projectRoot });
387
- await exec("git", ["commit", "-m", "Auto-commit uncommitted changes before merge"], {
388
- cwd: projectRoot
389
- });
390
- } catch (err) {
391
- console.error("Failed to auto-commit main changes:", err);
392
- console.error("Please commit or stash your changes manually before merging.");
393
- process.exit(1);
394
- }
395
- }
396
- console.log(`Merging branch: ${variant.branch}`);
397
- try {
398
- await execInherit("git", ["merge", variant.branch], { cwd: projectRoot });
399
- } catch (e) {
400
- console.error("Merge failed:", e);
401
- process.exit(1);
402
- }
403
- if (existsSync(variant.path)) {
404
- try {
405
- await exec("git", ["worktree", "remove", "--force", variant.path], { cwd: projectRoot });
406
- } catch {
407
- }
408
- }
409
- try {
410
- await exec("git", ["branch", "-D", variant.branch], { cwd: projectRoot });
411
- } catch {
412
- }
413
- removeVariant(agentName, variantName);
414
- console.log("Reinstalling dependencies...");
415
- try {
416
- await execInherit("npm", ["install"], { cwd: projectRoot });
417
- } catch (e) {
418
- console.error("npm install failed:", e);
419
- }
420
- console.log(`Variant ${variantName} merged and cleaned up.`);
421
- if (process.env.VOLUTE_SUPERVISOR) return;
422
- const context = {
423
- type: "merged",
424
- name: variantName,
425
- ...flags.summary && { summary: flags.summary },
426
- ...flags.justification && { justification: flags.justification },
427
- ...flags.memory && { memory: flags.memory }
428
- };
429
- try {
430
- console.log("Restarting agent via daemon...");
431
- const client = getClient();
432
- const res = await daemonFetch(
433
- urlOf(client.api.agents[":name"].restart.$url({ param: { name: agentName } })),
434
- {
435
- method: "POST",
436
- headers: { "Content-Type": "application/json" },
437
- body: JSON.stringify({ context })
438
- }
439
- );
440
- if (res.ok) {
441
- console.log(`${agentName} restarted.`);
442
- } else {
443
- const data = await res.json();
444
- console.error(`Failed to restart: ${data.error ?? "unknown error"}`);
445
- }
446
- } catch {
447
- console.log(`Daemon not running. Start the agent manually: volute agent start ${agentName}`);
448
- }
449
- }
450
- async function deleteVariant(args) {
451
- const { positional, flags } = parseArgs(args, {
452
- agent: { type: "string" }
453
- });
454
- const agentName = resolveAgentName(flags);
455
- const variantName = positional[0];
456
- if (!variantName) {
457
- console.error("Usage: volute variant delete <variant> [--agent <name>]");
458
- process.exit(1);
459
- }
460
- const { dir: projectRoot } = resolveAgent(agentName);
461
- const variant = findVariant(agentName, variantName);
462
- if (!variant) {
463
- console.error(`Unknown variant: ${variantName}`);
464
- process.exit(1);
465
- }
466
- try {
467
- const client = getClient();
468
- await daemonFetch(
469
- urlOf(
470
- client.api.agents[":name"].stop.$url({
471
- param: { name: `${agentName}@${variantName}` }
472
- })
473
- ),
474
- { method: "POST" }
475
- );
476
- } catch {
477
- }
478
- if (existsSync(variant.path)) {
479
- try {
480
- await exec("git", ["worktree", "remove", "--force", variant.path], { cwd: projectRoot });
481
- } catch {
482
- }
483
- }
484
- try {
485
- await exec("git", ["branch", "-D", variant.branch], { cwd: projectRoot });
486
- } catch {
487
- }
488
- removeVariant(agentName, variantName);
489
- console.log(`Variant ${variantName} deleted.`);
490
- }
491
- export {
492
- run
493
- };
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  resolveAgentName
4
4
  } from "./chunk-AZEL2IEK.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-STOEJOJO.js";
8
5
  import {
9
6
  parseArgs
10
7
  } from "./chunk-D424ZQGI.js";
8
+ import {
9
+ daemonFetch
10
+ } from "./chunk-STOEJOJO.js";
11
11
  import "./chunk-DP2DX4WV.js";
12
12
  import {
13
13
  getClient,
File without changes
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- loadMergedEnv
4
- } from "./chunk-QF22MYDJ.js";
5
2
  import {
6
3
  applyIsolation
7
4
  } from "./chunk-IQXBMFZG.js";
5
+ import {
6
+ loadMergedEnv
7
+ } from "./chunk-QF22MYDJ.js";
8
8
  import {
9
9
  agentDir,
10
10
  findAgent,
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  resolveAgentName
4
4
  } from "./chunk-AZEL2IEK.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-STOEJOJO.js";
8
5
  import {
9
6
  parseArgs
10
7
  } from "./chunk-D424ZQGI.js";
8
+ import {
9
+ daemonFetch
10
+ } from "./chunk-STOEJOJO.js";
11
11
  import "./chunk-DP2DX4WV.js";
12
12
  import {
13
13
  getClient,
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- daemonFetch
4
- } from "./chunk-STOEJOJO.js";
5
2
  import {
6
3
  parseArgs
7
4
  } from "./chunk-D424ZQGI.js";
5
+ import {
6
+ daemonFetch
7
+ } from "./chunk-STOEJOJO.js";
8
8
  import "./chunk-DP2DX4WV.js";
9
9
  import {
10
10
  getClient,
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  resolveAgentName
4
4
  } from "./chunk-AZEL2IEK.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-STOEJOJO.js";
8
5
  import {
9
6
  parseArgs
10
7
  } from "./chunk-D424ZQGI.js";
8
+ import {
9
+ daemonFetch
10
+ } from "./chunk-STOEJOJO.js";
11
11
  import "./chunk-DP2DX4WV.js";
12
12
  import {
13
13
  getClient,
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  resolveAgentName
4
4
  } from "./chunk-AZEL2IEK.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-STOEJOJO.js";
8
5
  import {
9
6
  parseArgs
10
7
  } from "./chunk-D424ZQGI.js";
8
+ import {
9
+ daemonFetch
10
+ } from "./chunk-STOEJOJO.js";
11
11
  import "./chunk-DP2DX4WV.js";
12
12
  import {
13
13
  getClient,
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  resolveAgentName
4
4
  } from "./chunk-AZEL2IEK.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-STOEJOJO.js";
8
5
  import {
9
6
  parseArgs
10
7
  } from "./chunk-D424ZQGI.js";
8
+ import {
9
+ daemonFetch
10
+ } from "./chunk-STOEJOJO.js";
11
11
  import "./chunk-DP2DX4WV.js";
12
12
  import {
13
13
  getClient,
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  resolveAgentName
4
4
  } from "./chunk-AZEL2IEK.js";
5
- import {
6
- daemonFetch
7
- } from "./chunk-STOEJOJO.js";
8
5
  import {
9
6
  getChannelDriver
10
7
  } from "./chunk-LIPPXNIE.js";
11
- import "./chunk-N6MLQ26B.js";
12
8
  import {
13
9
  parseArgs
14
10
  } from "./chunk-D424ZQGI.js";
11
+ import "./chunk-N6MLQ26B.js";
12
+ import {
13
+ daemonFetch
14
+ } from "./chunk-STOEJOJO.js";
15
15
  import "./chunk-DP2DX4WV.js";
16
16
  import {
17
17
  getClient,
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- parseArgs
4
- } from "./chunk-D424ZQGI.js";
5
2
  import {
6
3
  resolveVoluteBin
7
4
  } from "./chunk-5C5JWR2L.js";
5
+ import {
6
+ parseArgs
7
+ } from "./chunk-D424ZQGI.js";
8
8
  import "./chunk-K3NQKI34.js";
9
9
 
10
10
  // src/commands/service.ts
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- parseArgs
4
- } from "./chunk-D424ZQGI.js";
5
2
  import {
6
3
  ensureVoluteGroup
7
4
  } from "./chunk-IQXBMFZG.js";
8
5
  import {
9
6
  resolveVoluteBin
10
7
  } from "./chunk-5C5JWR2L.js";
8
+ import {
9
+ parseArgs
10
+ } from "./chunk-D424ZQGI.js";
11
11
  import "./chunk-DP2DX4WV.js";
12
12
  import "./chunk-K3NQKI34.js";
13
13