svamp-cli 0.2.108 → 0.2.109

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: loop
3
- version: 0.2.1
3
+ version: 0.3.0
4
4
  description: Run a task as a reliable, self-verifying loop — iterate until objective exit conditions are met, with an independent evaluator instead of self-judging. Use when a task needs repeated iterations until "done" (fix until tests pass, refactor until clean, build until a spec is met, autonomous long-running work).
5
5
  ---
6
6
 
@@ -2,6 +2,25 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync, renameSync } from '
2
2
  import { join, dirname } from 'node:path';
3
3
  import os from 'node:os';
4
4
  import { requireNotSandboxed } from './sandboxDetect-DNTcbgWD.mjs';
5
+ import { n as shortId } from './run-CvXWD1x2.mjs';
6
+ import 'os';
7
+ import 'fs/promises';
8
+ import 'fs';
9
+ import 'path';
10
+ import 'url';
11
+ import 'child_process';
12
+ import 'crypto';
13
+ import 'node:crypto';
14
+ import 'node:child_process';
15
+ import 'util';
16
+ import 'node:events';
17
+ import '@agentclientprotocol/sdk';
18
+ import '@modelcontextprotocol/sdk/client/index.js';
19
+ import '@modelcontextprotocol/sdk/client/stdio.js';
20
+ import '@modelcontextprotocol/sdk/types.js';
21
+ import 'zod';
22
+ import 'node:fs/promises';
23
+ import 'node:util';
5
24
 
6
25
  const SVAMP_HOME = process.env.SVAMP_HOME || join(os.homedir(), ".svamp");
7
26
  function getConfigPath(sessionId) {
@@ -75,6 +94,19 @@ async function sessionSetTitle(title) {
75
94
  writeConfig(configPath, config);
76
95
  console.log(`Session title set: "${title.trim()}"`);
77
96
  }
97
+ async function sessionSetProjectDescription(description) {
98
+ const dir = process.cwd();
99
+ const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.T; });
100
+ const desc = sanitizeDescription(description, 240);
101
+ if (!desc) {
102
+ console.error("Project description is empty.");
103
+ process.exit(1);
104
+ }
105
+ const name = projectName(dir);
106
+ writeProjectInfo(dir, { name, description: desc, source: "manual", updatedAt: Date.now() });
107
+ console.log(`Project description set for "${name}": "${desc}"`);
108
+ console.log(`Shared across all sessions in this project (${projectInfoPath(dir)}).`);
109
+ }
78
110
  async function sessionSetLink(url, label) {
79
111
  const sessionId = process.env.SVAMP_SESSION_ID;
80
112
  if (!sessionId) {
@@ -148,7 +180,7 @@ async function sessionBroadcast(action, args) {
148
180
  console.log(`Broadcast sent: ${action}`);
149
181
  }
150
182
  async function connectToMachineService() {
151
- const { connectAndGetMachine } = await import('./commands-DOsK9QRw.mjs');
183
+ const { connectAndGetMachine } = await import('./commands-DJgTzFWk.mjs');
152
184
  return connectAndGetMachine();
153
185
  }
154
186
  async function inboxSend(targetSessionId, opts) {
@@ -165,13 +197,12 @@ async function inboxSend(targetSessionId, opts) {
165
197
  }
166
198
  const { server, machine } = await connectToMachineService();
167
199
  try {
168
- const { resolveSessionId } = await import('./commands-DOsK9QRw.mjs');
200
+ const { resolveSessionId } = await import('./commands-DJgTzFWk.mjs');
169
201
  const sessions = await machine.listSessions();
170
202
  const match = resolveSessionId(sessions, targetSessionId);
171
203
  const fullTargetId = match.sessionId;
172
- const { randomUUID } = await import('node:crypto');
173
204
  const message = {
174
- messageId: randomUUID(),
205
+ messageId: shortId(),
175
206
  body,
176
207
  timestamp: Date.now(),
177
208
  read: false,
@@ -248,9 +279,8 @@ async function inboxReply(messageId, body) {
248
279
  console.error("Cannot reply: original message has no fromSession (and not a channel message).");
249
280
  process.exit(1);
250
281
  }
251
- const { randomUUID } = await import('node:crypto');
252
282
  const reply = {
253
- messageId: randomUUID(),
283
+ messageId: shortId(),
254
284
  body,
255
285
  timestamp: Date.now(),
256
286
  read: false,
@@ -278,4 +308,4 @@ async function machineNotify(message, level = "info") {
278
308
  console.log(`Machine notification sent [${level}]: ${message}`);
279
309
  }
280
310
 
281
- export { inboxList, inboxReply, inboxSend, machineNotify, sessionBroadcast, sessionNotify, sessionSetLink, sessionSetTitle };
311
+ export { inboxList, inboxReply, inboxSend, machineNotify, sessionBroadcast, sessionNotify, sessionSetLink, sessionSetProjectDescription, sessionSetTitle };
@@ -1,4 +1,4 @@
1
- import { E as resolveModel } from './run-LyzVTe3J.mjs';
1
+ import { F as resolveModel } from './run-CvXWD1x2.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -6,11 +6,11 @@ import 'path';
6
6
  import 'url';
7
7
  import 'child_process';
8
8
  import 'crypto';
9
+ import 'node:crypto';
9
10
  import 'node:fs';
10
11
  import 'node:child_process';
11
12
  import 'util';
12
13
  import 'node:path';
13
- import 'node:crypto';
14
14
  import 'node:os';
15
15
  import 'node:events';
16
16
  import '@agentclientprotocol/sdk';
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-LyzVTe3J.mjs';
1
+ import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-CvXWD1x2.mjs';
2
2
  import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
3
3
  import 'os';
4
4
  import 'fs/promises';
@@ -7,11 +7,11 @@ import 'path';
7
7
  import 'url';
8
8
  import 'child_process';
9
9
  import 'crypto';
10
+ import 'node:crypto';
10
11
  import 'node:fs';
11
12
  import 'node:child_process';
12
13
  import 'util';
13
14
  import 'node:path';
14
- import 'node:crypto';
15
15
  import 'node:os';
16
16
  import 'node:events';
17
17
  import '@agentclientprotocol/sdk';
@@ -34,7 +34,7 @@ const subcommand = args[0];
34
34
  let daemonSubcommand = args[1];
35
35
  async function main() {
36
36
  try {
37
- const { getLoadedConfig } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.Y; });
37
+ const { getLoadedConfig } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n._; });
38
38
  getLoadedConfig();
39
39
  } catch {
40
40
  }
@@ -51,7 +51,7 @@ async function main() {
51
51
  console.error(`svamp daemon restart: ${err.message || err}`);
52
52
  process.exit(1);
53
53
  }
54
- const { restartDaemon } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n._; });
54
+ const { restartDaemon } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.a0; });
55
55
  await restartDaemon();
56
56
  process.exit(0);
57
57
  }
@@ -344,7 +344,7 @@ async function main() {
344
344
  console.error("svamp service: Service commands are not available in sandboxed sessions.");
345
345
  process.exit(1);
346
346
  }
347
- const { handleServiceCommand } = await import('./commands-D38_YkF9.mjs');
347
+ const { handleServiceCommand } = await import('./commands-BhkiEmV8.mjs');
348
348
  await handleServiceCommand();
349
349
  } else if (subcommand === "serve") {
350
350
  const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
@@ -352,7 +352,7 @@ async function main() {
352
352
  console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
353
353
  process.exit(1);
354
354
  }
355
- const { handleServeCommand } = await import('./serveCommands-XlqflmVF.mjs');
355
+ const { handleServeCommand } = await import('./serveCommands-J44oCE_D.mjs');
356
356
  await handleServeCommand();
357
357
  process.exit(0);
358
358
  } else if (subcommand === "process" || subcommand === "proc") {
@@ -361,7 +361,7 @@ async function main() {
361
361
  console.error("svamp process: Process commands are not available in sandboxed sessions.");
362
362
  process.exit(1);
363
363
  }
364
- const { processCommand } = await import('./commands-4JPwWmBF.mjs');
364
+ const { processCommand } = await import('./commands-D2kGC5mL.mjs');
365
365
  let machineId;
366
366
  const processArgs = args.slice(1);
367
367
  const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
@@ -375,7 +375,7 @@ async function main() {
375
375
  }), machineId);
376
376
  process.exit(0);
377
377
  } else if (subcommand === "routine" || subcommand === "routines") {
378
- const { routineCommand } = await import('./commands-CjuVNGG4.mjs');
378
+ const { routineCommand } = await import('./commands-j38M6llT.mjs');
379
379
  await routineCommand(args.slice(1));
380
380
  process.exit(0);
381
381
  } else if (subcommand === "wise-agent" || subcommand === "wise") {
@@ -386,7 +386,7 @@ async function main() {
386
386
  } else if (!subcommand || subcommand === "start") {
387
387
  await handleInteractiveCommand();
388
388
  } else if (subcommand === "--version" || subcommand === "-v") {
389
- const pkg = await import('./package-D7tAsMPM.mjs').catch(() => ({ default: { version: "unknown" } }));
389
+ const pkg = await import('./package-Bz0dbAvV.mjs').catch(() => ({ default: { version: "unknown" } }));
390
390
  console.log(`svamp version: ${pkg.default.version}`);
391
391
  } else {
392
392
  console.error(`Unknown command: ${subcommand}`);
@@ -395,7 +395,7 @@ async function main() {
395
395
  }
396
396
  }
397
397
  async function handleInteractiveCommand() {
398
- const { runInteractive } = await import('./run-TjecLji1.mjs');
398
+ const { runInteractive } = await import('./run-B3epzMIw.mjs');
399
399
  const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
400
400
  let directory = process.cwd();
401
401
  let resumeSessionId;
@@ -440,7 +440,7 @@ async function handleAgentCommand() {
440
440
  return;
441
441
  }
442
442
  if (agentArgs[0] === "list") {
443
- const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.U; });
443
+ const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.W; });
444
444
  console.log("Known agents:");
445
445
  for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
446
446
  console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
@@ -452,7 +452,7 @@ async function handleAgentCommand() {
452
452
  console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
453
453
  return;
454
454
  }
455
- const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.U; });
455
+ const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.W; });
456
456
  let cwd = process.cwd();
457
457
  const filteredArgs = [];
458
458
  for (let i = 0; i < agentArgs.length; i++) {
@@ -476,12 +476,12 @@ async function handleAgentCommand() {
476
476
  console.log(`Starting ${config.agentName} agent in ${cwd}...`);
477
477
  let backend;
478
478
  if (KNOWN_MCP_AGENTS[config.agentName]) {
479
- const { CodexMcpBackend } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.V; });
479
+ const { CodexMcpBackend } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.X; });
480
480
  backend = new CodexMcpBackend({ cwd, log: logFn });
481
481
  } else {
482
- const { AcpBackend } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.T; });
483
- const { GeminiTransport } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.W; });
484
- const { DefaultTransport } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.Q; });
482
+ const { AcpBackend } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.V; });
483
+ const { GeminiTransport } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.Y; });
484
+ const { DefaultTransport } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.U; });
485
485
  const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
486
486
  backend = new AcpBackend({
487
487
  agentName: config.agentName,
@@ -599,7 +599,7 @@ async function handleSessionCommand() {
599
599
  printSessionHelp();
600
600
  return;
601
601
  }
602
- const SANDBOX_SAFE_SESSION_CMDS = /* @__PURE__ */ new Set(["set-title", "set-link"]);
602
+ const SANDBOX_SAFE_SESSION_CMDS = /* @__PURE__ */ new Set(["set-title", "set-link", "set-project-description", "set-project"]);
603
603
  if (!SANDBOX_SAFE_SESSION_CMDS.has(sessionSubcommand)) {
604
604
  const { isSandboxed } = await import('./sandboxDetect-DNTcbgWD.mjs');
605
605
  if (isSandboxed()) {
@@ -608,7 +608,7 @@ async function handleSessionCommand() {
608
608
  process.exit(1);
609
609
  }
610
610
  }
611
- const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-DOsK9QRw.mjs');
611
+ const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-DJgTzFWk.mjs');
612
612
  const parseFlagStr = (flag, shortFlag) => {
613
613
  for (let i = 1; i < sessionArgs.length; i++) {
614
614
  if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
@@ -676,7 +676,7 @@ async function handleSessionCommand() {
676
676
  allowDomain.push(sessionArgs[++i]);
677
677
  }
678
678
  }
679
- const { parseShareArg } = await import('./commands-DOsK9QRw.mjs');
679
+ const { parseShareArg } = await import('./commands-DJgTzFWk.mjs');
680
680
  const shareEntries = share.map((s) => parseShareArg(s));
681
681
  await sessionSpawn(agent, dir, targetMachineId, {
682
682
  message,
@@ -763,7 +763,7 @@ async function handleSessionCommand() {
763
763
  console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
764
764
  process.exit(1);
765
765
  }
766
- const { sessionQuery } = await import('./commands-DOsK9QRw.mjs');
766
+ const { sessionQuery } = await import('./commands-DJgTzFWk.mjs');
767
767
  await sessionQuery(dir, prompt, targetMachineId, {
768
768
  timeout: parseFlagInt("--timeout"),
769
769
  json: hasFlag("--json"),
@@ -796,7 +796,7 @@ async function handleSessionCommand() {
796
796
  console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
797
797
  process.exit(1);
798
798
  }
799
- const { sessionApprove } = await import('./commands-DOsK9QRw.mjs');
799
+ const { sessionApprove } = await import('./commands-DJgTzFWk.mjs');
800
800
  const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
801
801
  await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
802
802
  json: hasFlag("--json")
@@ -806,7 +806,7 @@ async function handleSessionCommand() {
806
806
  console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
807
807
  process.exit(1);
808
808
  }
809
- const { sessionDeny } = await import('./commands-DOsK9QRw.mjs');
809
+ const { sessionDeny } = await import('./commands-DJgTzFWk.mjs');
810
810
  const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
811
811
  await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
812
812
  json: hasFlag("--json")
@@ -841,8 +841,16 @@ async function handleSessionCommand() {
841
841
  console.error("Usage: svamp session set-title <title>");
842
842
  process.exit(1);
843
843
  }
844
- const { sessionSetTitle } = await import('./agentCommands-Cpq_Yk3h.mjs');
844
+ const { sessionSetTitle } = await import('./agentCommands-CoGlvh8y.mjs');
845
845
  await sessionSetTitle(title);
846
+ } else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
847
+ const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
848
+ if (!desc) {
849
+ console.error("Usage: svamp session set-project-description <text>");
850
+ process.exit(1);
851
+ }
852
+ const { sessionSetProjectDescription } = await import('./agentCommands-CoGlvh8y.mjs');
853
+ await sessionSetProjectDescription(desc);
846
854
  } else if (sessionSubcommand === "set-link") {
847
855
  const url = sessionArgs[1];
848
856
  if (!url) {
@@ -850,7 +858,7 @@ async function handleSessionCommand() {
850
858
  process.exit(1);
851
859
  }
852
860
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
853
- const { sessionSetLink } = await import('./agentCommands-Cpq_Yk3h.mjs');
861
+ const { sessionSetLink } = await import('./agentCommands-CoGlvh8y.mjs');
854
862
  await sessionSetLink(url, label);
855
863
  } else if (sessionSubcommand === "notify") {
856
864
  const message = sessionArgs[1];
@@ -859,7 +867,7 @@ async function handleSessionCommand() {
859
867
  process.exit(1);
860
868
  }
861
869
  const level = parseFlagStr("--level") || "info";
862
- const { sessionNotify } = await import('./agentCommands-Cpq_Yk3h.mjs');
870
+ const { sessionNotify } = await import('./agentCommands-CoGlvh8y.mjs');
863
871
  await sessionNotify(message, level);
864
872
  } else if (sessionSubcommand === "broadcast") {
865
873
  const action = sessionArgs[1];
@@ -867,7 +875,7 @@ async function handleSessionCommand() {
867
875
  console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
868
876
  process.exit(1);
869
877
  }
870
- const { sessionBroadcast } = await import('./agentCommands-Cpq_Yk3h.mjs');
878
+ const { sessionBroadcast } = await import('./agentCommands-CoGlvh8y.mjs');
871
879
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
872
880
  } else if (sessionSubcommand === "inbox") {
873
881
  const inboxSubcmd = sessionArgs[1];
@@ -878,7 +886,7 @@ async function handleSessionCommand() {
878
886
  process.exit(1);
879
887
  }
880
888
  if (agentSessionId) {
881
- const { inboxSend } = await import('./agentCommands-Cpq_Yk3h.mjs');
889
+ const { inboxSend } = await import('./agentCommands-CoGlvh8y.mjs');
882
890
  await inboxSend(sessionArgs[2], {
883
891
  body: sessionArgs[3],
884
892
  subject: parseFlagStr("--subject"),
@@ -893,7 +901,7 @@ async function handleSessionCommand() {
893
901
  }
894
902
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
895
903
  if (agentSessionId && !sessionArgs[2]) {
896
- const { inboxList } = await import('./agentCommands-Cpq_Yk3h.mjs');
904
+ const { inboxList } = await import('./agentCommands-CoGlvh8y.mjs');
897
905
  await inboxList({
898
906
  unread: hasFlag("--unread"),
899
907
  limit: parseFlagInt("--limit"),
@@ -915,7 +923,7 @@ async function handleSessionCommand() {
915
923
  process.exit(1);
916
924
  }
917
925
  if (agentSessionId && !sessionArgs[3]) {
918
- const { inboxList } = await import('./agentCommands-Cpq_Yk3h.mjs');
926
+ const { inboxList } = await import('./agentCommands-CoGlvh8y.mjs');
919
927
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
920
928
  } else if (sessionArgs[3]) {
921
929
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -925,7 +933,7 @@ async function handleSessionCommand() {
925
933
  }
926
934
  } else if (inboxSubcmd === "reply") {
927
935
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
928
- const { inboxReply } = await import('./agentCommands-Cpq_Yk3h.mjs');
936
+ const { inboxReply } = await import('./agentCommands-CoGlvh8y.mjs');
929
937
  await inboxReply(sessionArgs[2], sessionArgs[3]);
930
938
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
931
939
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -961,7 +969,7 @@ async function handleMachineCommand() {
961
969
  return;
962
970
  }
963
971
  if (machineSubcommand === "share") {
964
- const { machineShare } = await import('./commands-DOsK9QRw.mjs');
972
+ const { machineShare } = await import('./commands-DJgTzFWk.mjs');
965
973
  let machineId;
966
974
  const shareArgs = [];
967
975
  for (let i = 1; i < machineArgs.length; i++) {
@@ -991,7 +999,7 @@ async function handleMachineCommand() {
991
999
  }
992
1000
  await machineShare(machineId, { add, remove, list, configPath, showConfig });
993
1001
  } else if (machineSubcommand === "exec") {
994
- const { machineExec } = await import('./commands-DOsK9QRw.mjs');
1002
+ const { machineExec } = await import('./commands-DJgTzFWk.mjs');
995
1003
  let machineId;
996
1004
  let cwd;
997
1005
  const cmdParts = [];
@@ -1011,7 +1019,7 @@ async function handleMachineCommand() {
1011
1019
  }
1012
1020
  await machineExec(machineId, command, cwd);
1013
1021
  } else if (machineSubcommand === "info") {
1014
- const { machineInfo } = await import('./commands-DOsK9QRw.mjs');
1022
+ const { machineInfo } = await import('./commands-DJgTzFWk.mjs');
1015
1023
  let machineId;
1016
1024
  for (let i = 1; i < machineArgs.length; i++) {
1017
1025
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -1031,10 +1039,10 @@ async function handleMachineCommand() {
1031
1039
  level = machineArgs[++i];
1032
1040
  }
1033
1041
  }
1034
- const { machineNotify } = await import('./agentCommands-Cpq_Yk3h.mjs');
1042
+ const { machineNotify } = await import('./agentCommands-CoGlvh8y.mjs');
1035
1043
  await machineNotify(message, level);
1036
1044
  } else if (machineSubcommand === "ls") {
1037
- const { machineLs } = await import('./commands-DOsK9QRw.mjs');
1045
+ const { machineLs } = await import('./commands-DJgTzFWk.mjs');
1038
1046
  let machineId;
1039
1047
  let showHidden = false;
1040
1048
  let path;
@@ -1092,24 +1100,24 @@ Examples:
1092
1100
  };
1093
1101
  const hasFlag = (name) => fleetArgs.includes(`--${name}`);
1094
1102
  if (sub === "status") {
1095
- const { fleetStatus } = await import('./fleet-D-YD8lYU.mjs');
1103
+ const { fleetStatus } = await import('./fleet-Pg9X2izv.mjs');
1096
1104
  await fleetStatus();
1097
1105
  } else if (sub === "exec") {
1098
1106
  const command = fleetArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1099
- const { fleetExec } = await import('./fleet-D-YD8lYU.mjs');
1107
+ const { fleetExec } = await import('./fleet-Pg9X2izv.mjs');
1100
1108
  await fleetExec(command, { cwd: flag("cwd") });
1101
1109
  } else if (sub === "upgrade-claude") {
1102
- const { fleetUpgradeClaude } = await import('./fleet-D-YD8lYU.mjs');
1110
+ const { fleetUpgradeClaude } = await import('./fleet-Pg9X2izv.mjs');
1103
1111
  await fleetUpgradeClaude({ version: flag("version", "-v") });
1104
1112
  } else if (sub === "upgrade-svamp") {
1105
- const { fleetUpgradeSvamp } = await import('./fleet-D-YD8lYU.mjs');
1113
+ const { fleetUpgradeSvamp } = await import('./fleet-Pg9X2izv.mjs');
1106
1114
  await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self") });
1107
1115
  } else if (sub === "daemon-restart") {
1108
- const { fleetDaemonRestart } = await import('./fleet-D-YD8lYU.mjs');
1116
+ const { fleetDaemonRestart } = await import('./fleet-Pg9X2izv.mjs');
1109
1117
  await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
1110
1118
  } else if (sub === "push-skill") {
1111
1119
  const name = fleetArgs[1];
1112
- const { fleetPushSkill } = await import('./fleet-D-YD8lYU.mjs');
1120
+ const { fleetPushSkill } = await import('./fleet-Pg9X2izv.mjs');
1113
1121
  await fleetPushSkill(name);
1114
1122
  } else {
1115
1123
  console.error(`Unknown fleet subcommand: ${sub}`);
@@ -1125,7 +1133,7 @@ async function handleSkillsCommand() {
1125
1133
  await printSkillsHelp();
1126
1134
  return;
1127
1135
  }
1128
- const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-B7z0Yoi7.mjs');
1136
+ const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-Dy6X_MM5.mjs');
1129
1137
  if (skillsSubcommand === "find" || skillsSubcommand === "search") {
1130
1138
  const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1131
1139
  if (!query) {
@@ -1172,7 +1180,7 @@ async function loginToHypha() {
1172
1180
  process.exit(1);
1173
1181
  }
1174
1182
  const anchor = anchorArg.replace(/\/+$/, "");
1175
- const { loadInstanceConfig } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.Y; });
1183
+ const { loadInstanceConfig } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n._; });
1176
1184
  let cfg = null;
1177
1185
  try {
1178
1186
  cfg = await loadInstanceConfig({ anchor, force: true });
@@ -1283,7 +1291,7 @@ async function logoutFromHypha() {
1283
1291
  } catch {
1284
1292
  }
1285
1293
  try {
1286
- const { clearInstanceConfigCache } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.Y; });
1294
+ const { clearInstanceConfigCache } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n._; });
1287
1295
  clearInstanceConfigCache();
1288
1296
  } catch {
1289
1297
  }
@@ -1614,7 +1622,7 @@ async function applyClaudeAuthFlags(argv) {
1614
1622
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
1615
1623
  );
1616
1624
  }
1617
- const mod = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.X; });
1625
+ const mod = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.Z; });
1618
1626
  if (hasHypha) {
1619
1627
  let url;
1620
1628
  const hyphaIdx = argv.indexOf("--use-hypha-proxy");
@@ -1668,7 +1676,7 @@ async function applyDaemonShareFlag(argv) {
1668
1676
  }
1669
1677
  }
1670
1678
  if (collected.length === 0) return;
1671
- const { updateEnvFile } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.X; });
1679
+ const { updateEnvFile } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.Z; });
1672
1680
  const seen = /* @__PURE__ */ new Set();
1673
1681
  const deduped = collected.filter((e) => {
1674
1682
  const k = e.toLowerCase();
@@ -1701,7 +1709,7 @@ async function handleWiseAgentCommand(rest) {
1701
1709
  }
1702
1710
  });
1703
1711
  const message = rest.slice(1).map((a, idx) => ({ a, idx: idx + 1 })).filter(({ a, idx }) => !a.startsWith("-") && !consumed.has(String(idx))).map(({ a }) => a).join(" ");
1704
- const { wiseAskCli } = await import('./commands-DOsK9QRw.mjs');
1712
+ const { wiseAskCli } = await import('./commands-DJgTzFWk.mjs');
1705
1713
  await wiseAskCli(machineId, message, sessionId, { json });
1706
1714
  return;
1707
1715
  }
@@ -1713,7 +1721,7 @@ async function handleWiseAgentCommand(rest) {
1713
1721
  }
1714
1722
  return void 0;
1715
1723
  };
1716
- const { runWiseVoiceCli } = await import('./headlessCli-Cwqhpbm1.mjs');
1724
+ const { runWiseVoiceCli } = await import('./headlessCli-6WuIXZ9F.mjs');
1717
1725
  await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
1718
1726
  return;
1719
1727
  }
@@ -1755,7 +1763,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1755
1763
  return;
1756
1764
  }
1757
1765
  const authArgs = rest.slice(1);
1758
- const mod = await import('./auth-DBKbI5IE.mjs');
1766
+ const mod = await import('./auth-DMERa7I8.mjs');
1759
1767
  let action;
1760
1768
  try {
1761
1769
  action = mod.parseWiseAgentAuthArgs(authArgs);
@@ -1765,7 +1773,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1765
1773
  return;
1766
1774
  }
1767
1775
  if (action) {
1768
- const { updateEnvFile } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.X; });
1776
+ const { updateEnvFile } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.Z; });
1769
1777
  const updates = mod.buildWiseAgentEnvUpdates(action);
1770
1778
  updateEnvFile(updates);
1771
1779
  for (const [k, v] of Object.entries(updates)) {
@@ -1779,7 +1787,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1779
1787
  }
1780
1788
  async function handleDaemonAuthCommand(argv) {
1781
1789
  const sub = (argv[0] || "status").toLowerCase();
1782
- const mod = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.X; });
1790
+ const mod = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.Z; });
1783
1791
  if (sub === "--help" || sub === "-h" || sub === "help") {
1784
1792
  console.log(`
1785
1793
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -2082,7 +2090,7 @@ Examples:
2082
2090
  async function printSkillsHelp() {
2083
2091
  let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
2084
2092
  try {
2085
- const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-LyzVTe3J.mjs').then(function (n) { return n.Z; });
2093
+ const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-CvXWD1x2.mjs').then(function (n) { return n.$; });
2086
2094
  browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
2087
2095
  } catch {
2088
2096
  }
@@ -58,7 +58,7 @@ async function serviceExpose(args) {
58
58
  process.exit(1);
59
59
  }
60
60
  if (foreground) {
61
- const { runFrpcTunnel } = await import('./frpc-C5Bhpsdw.mjs');
61
+ const { runFrpcTunnel } = await import('./frpc-BmpNco2u.mjs');
62
62
  await runFrpcTunnel(name, ports, void 0, {
63
63
  group,
64
64
  groupKey,
@@ -68,7 +68,7 @@ async function serviceExpose(args) {
68
68
  });
69
69
  return;
70
70
  }
71
- const { connectAndGetMachine } = await import('./commands-DOsK9QRw.mjs');
71
+ const { connectAndGetMachine } = await import('./commands-DJgTzFWk.mjs');
72
72
  const { server, machine } = await connectAndGetMachine();
73
73
  try {
74
74
  const status = await machine.tunnelStart({
@@ -123,7 +123,7 @@ async function serviceServe(args) {
123
123
  };
124
124
  process.on("SIGINT", cleanup);
125
125
  process.on("SIGTERM", cleanup);
126
- const { runFrpcTunnel } = await import('./frpc-C5Bhpsdw.mjs');
126
+ const { runFrpcTunnel } = await import('./frpc-BmpNco2u.mjs');
127
127
  await runFrpcTunnel(name, [caddyPort]);
128
128
  } catch (err) {
129
129
  console.error(`Error serving directory: ${err.message}`);
@@ -132,7 +132,7 @@ async function serviceServe(args) {
132
132
  }
133
133
  async function serviceList(_args) {
134
134
  try {
135
- const { connectAndGetMachine } = await import('./commands-DOsK9QRw.mjs');
135
+ const { connectAndGetMachine } = await import('./commands-DJgTzFWk.mjs');
136
136
  const { server, machine } = await connectAndGetMachine();
137
137
  try {
138
138
  const tunnels = await machine.tunnelList({});
@@ -161,7 +161,7 @@ async function serviceDelete(args) {
161
161
  process.exit(1);
162
162
  }
163
163
  try {
164
- const { connectAndGetMachine } = await import('./commands-DOsK9QRw.mjs');
164
+ const { connectAndGetMachine } = await import('./commands-DJgTzFWk.mjs');
165
165
  const { server, machine } = await connectAndGetMachine();
166
166
  try {
167
167
  await machine.tunnelStop({ name });
@@ -1,18 +1,18 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-DOsK9QRw.mjs';
3
+ import { connectAndGetMachine } from './commands-DJgTzFWk.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:child_process';
6
6
  import 'node:path';
7
7
  import 'node:os';
8
- import './run-LyzVTe3J.mjs';
8
+ import './run-CvXWD1x2.mjs';
9
9
  import 'os';
10
10
  import 'fs/promises';
11
11
  import 'url';
12
12
  import 'child_process';
13
13
  import 'crypto';
14
- import 'util';
15
14
  import 'node:crypto';
15
+ import 'util';
16
16
  import 'node:events';
17
17
  import '@agentclientprotocol/sdk';
18
18
  import '@modelcontextprotocol/sdk/client/index.js';