svamp-cli 0.2.104 → 0.2.106

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.
@@ -148,7 +148,7 @@ async function sessionBroadcast(action, args) {
148
148
  console.log(`Broadcast sent: ${action}`);
149
149
  }
150
150
  async function connectToMachineService() {
151
- const { connectAndGetMachine } = await import('./commands-o0MBJocy.mjs');
151
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.mjs');
152
152
  return connectAndGetMachine();
153
153
  }
154
154
  async function inboxSend(targetSessionId, opts) {
@@ -165,7 +165,7 @@ async function inboxSend(targetSessionId, opts) {
165
165
  }
166
166
  const { server, machine } = await connectToMachineService();
167
167
  try {
168
- const { resolveSessionId } = await import('./commands-o0MBJocy.mjs');
168
+ const { resolveSessionId } = await import('./commands-Cectk2JF.mjs');
169
169
  const sessions = await machine.listSessions();
170
170
  const match = resolveSessionId(sessions, targetSessionId);
171
171
  const fullTargetId = match.sessionId;
@@ -1,4 +1,4 @@
1
- import { E as resolveModel } from './run-CoaYIdw1.mjs';
1
+ import { E as resolveModel } from './run-9j9_wlx5.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
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-CoaYIdw1.mjs';
1
+ import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-9j9_wlx5.mjs';
2
2
  import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
3
3
  import 'os';
4
4
  import 'fs/promises';
@@ -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-CoaYIdw1.mjs').then(function (n) { return n.Y; });
37
+ const { getLoadedConfig } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.Y; });
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-CoaYIdw1.mjs').then(function (n) { return n._; });
54
+ const { restartDaemon } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n._; });
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-AkN7uDYW.mjs');
347
+ const { handleServiceCommand } = await import('./commands-Dd1kqgBk.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-DSn_4Auj.mjs');
355
+ const { handleServeCommand } = await import('./serveCommands-JHbRf6Vz.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-u519ohSC.mjs');
364
+ const { processCommand } = await import('./commands-BGO8YrVj.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-C1dsiSL5.mjs');
378
+ const { routineCommand } = await import('./commands-CmnRHJ_u.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-IQYoSW7o.mjs').catch(() => ({ default: { version: "unknown" } }));
389
+ const pkg = await import('./package-1Infuho2.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-aFkkky75.mjs');
398
+ const { runInteractive } = await import('./run-Cysre19E.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-CoaYIdw1.mjs').then(function (n) { return n.U; });
443
+ const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.U; });
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-CoaYIdw1.mjs').then(function (n) { return n.U; });
455
+ const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.U; });
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-CoaYIdw1.mjs').then(function (n) { return n.V; });
479
+ const { CodexMcpBackend } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.V; });
480
480
  backend = new CodexMcpBackend({ cwd, log: logFn });
481
481
  } else {
482
- const { AcpBackend } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.T; });
483
- const { GeminiTransport } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.W; });
484
- const { DefaultTransport } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.Q; });
482
+ const { AcpBackend } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.T; });
483
+ const { GeminiTransport } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.W; });
484
+ const { DefaultTransport } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.Q; });
485
485
  const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
486
486
  backend = new AcpBackend({
487
487
  agentName: config.agentName,
@@ -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-o0MBJocy.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-Cectk2JF.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-o0MBJocy.mjs');
679
+ const { parseShareArg } = await import('./commands-Cectk2JF.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-o0MBJocy.mjs');
766
+ const { sessionQuery } = await import('./commands-Cectk2JF.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-o0MBJocy.mjs');
799
+ const { sessionApprove } = await import('./commands-Cectk2JF.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-o0MBJocy.mjs');
809
+ const { sessionDeny } = await import('./commands-Cectk2JF.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,7 +841,7 @@ 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-DhcQMAe-.mjs');
844
+ const { sessionSetTitle } = await import('./agentCommands-V14aFkLp.mjs');
845
845
  await sessionSetTitle(title);
846
846
  } else if (sessionSubcommand === "set-link") {
847
847
  const url = sessionArgs[1];
@@ -850,7 +850,7 @@ async function handleSessionCommand() {
850
850
  process.exit(1);
851
851
  }
852
852
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
853
- const { sessionSetLink } = await import('./agentCommands-DhcQMAe-.mjs');
853
+ const { sessionSetLink } = await import('./agentCommands-V14aFkLp.mjs');
854
854
  await sessionSetLink(url, label);
855
855
  } else if (sessionSubcommand === "notify") {
856
856
  const message = sessionArgs[1];
@@ -859,7 +859,7 @@ async function handleSessionCommand() {
859
859
  process.exit(1);
860
860
  }
861
861
  const level = parseFlagStr("--level") || "info";
862
- const { sessionNotify } = await import('./agentCommands-DhcQMAe-.mjs');
862
+ const { sessionNotify } = await import('./agentCommands-V14aFkLp.mjs');
863
863
  await sessionNotify(message, level);
864
864
  } else if (sessionSubcommand === "broadcast") {
865
865
  const action = sessionArgs[1];
@@ -867,7 +867,7 @@ async function handleSessionCommand() {
867
867
  console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
868
868
  process.exit(1);
869
869
  }
870
- const { sessionBroadcast } = await import('./agentCommands-DhcQMAe-.mjs');
870
+ const { sessionBroadcast } = await import('./agentCommands-V14aFkLp.mjs');
871
871
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
872
872
  } else if (sessionSubcommand === "inbox") {
873
873
  const inboxSubcmd = sessionArgs[1];
@@ -878,7 +878,7 @@ async function handleSessionCommand() {
878
878
  process.exit(1);
879
879
  }
880
880
  if (agentSessionId) {
881
- const { inboxSend } = await import('./agentCommands-DhcQMAe-.mjs');
881
+ const { inboxSend } = await import('./agentCommands-V14aFkLp.mjs');
882
882
  await inboxSend(sessionArgs[2], {
883
883
  body: sessionArgs[3],
884
884
  subject: parseFlagStr("--subject"),
@@ -893,7 +893,7 @@ async function handleSessionCommand() {
893
893
  }
894
894
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
895
895
  if (agentSessionId && !sessionArgs[2]) {
896
- const { inboxList } = await import('./agentCommands-DhcQMAe-.mjs');
896
+ const { inboxList } = await import('./agentCommands-V14aFkLp.mjs');
897
897
  await inboxList({
898
898
  unread: hasFlag("--unread"),
899
899
  limit: parseFlagInt("--limit"),
@@ -915,7 +915,7 @@ async function handleSessionCommand() {
915
915
  process.exit(1);
916
916
  }
917
917
  if (agentSessionId && !sessionArgs[3]) {
918
- const { inboxList } = await import('./agentCommands-DhcQMAe-.mjs');
918
+ const { inboxList } = await import('./agentCommands-V14aFkLp.mjs');
919
919
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
920
920
  } else if (sessionArgs[3]) {
921
921
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -925,7 +925,7 @@ async function handleSessionCommand() {
925
925
  }
926
926
  } else if (inboxSubcmd === "reply") {
927
927
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
928
- const { inboxReply } = await import('./agentCommands-DhcQMAe-.mjs');
928
+ const { inboxReply } = await import('./agentCommands-V14aFkLp.mjs');
929
929
  await inboxReply(sessionArgs[2], sessionArgs[3]);
930
930
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
931
931
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -961,7 +961,7 @@ async function handleMachineCommand() {
961
961
  return;
962
962
  }
963
963
  if (machineSubcommand === "share") {
964
- const { machineShare } = await import('./commands-o0MBJocy.mjs');
964
+ const { machineShare } = await import('./commands-Cectk2JF.mjs');
965
965
  let machineId;
966
966
  const shareArgs = [];
967
967
  for (let i = 1; i < machineArgs.length; i++) {
@@ -991,7 +991,7 @@ async function handleMachineCommand() {
991
991
  }
992
992
  await machineShare(machineId, { add, remove, list, configPath, showConfig });
993
993
  } else if (machineSubcommand === "exec") {
994
- const { machineExec } = await import('./commands-o0MBJocy.mjs');
994
+ const { machineExec } = await import('./commands-Cectk2JF.mjs');
995
995
  let machineId;
996
996
  let cwd;
997
997
  const cmdParts = [];
@@ -1011,7 +1011,7 @@ async function handleMachineCommand() {
1011
1011
  }
1012
1012
  await machineExec(machineId, command, cwd);
1013
1013
  } else if (machineSubcommand === "info") {
1014
- const { machineInfo } = await import('./commands-o0MBJocy.mjs');
1014
+ const { machineInfo } = await import('./commands-Cectk2JF.mjs');
1015
1015
  let machineId;
1016
1016
  for (let i = 1; i < machineArgs.length; i++) {
1017
1017
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -1031,10 +1031,10 @@ async function handleMachineCommand() {
1031
1031
  level = machineArgs[++i];
1032
1032
  }
1033
1033
  }
1034
- const { machineNotify } = await import('./agentCommands-DhcQMAe-.mjs');
1034
+ const { machineNotify } = await import('./agentCommands-V14aFkLp.mjs');
1035
1035
  await machineNotify(message, level);
1036
1036
  } else if (machineSubcommand === "ls") {
1037
- const { machineLs } = await import('./commands-o0MBJocy.mjs');
1037
+ const { machineLs } = await import('./commands-Cectk2JF.mjs');
1038
1038
  let machineId;
1039
1039
  let showHidden = false;
1040
1040
  let path;
@@ -1092,24 +1092,24 @@ Examples:
1092
1092
  };
1093
1093
  const hasFlag = (name) => fleetArgs.includes(`--${name}`);
1094
1094
  if (sub === "status") {
1095
- const { fleetStatus } = await import('./fleet-CjAI4rxS.mjs');
1095
+ const { fleetStatus } = await import('./fleet-D7A8whbP.mjs');
1096
1096
  await fleetStatus();
1097
1097
  } else if (sub === "exec") {
1098
1098
  const command = fleetArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1099
- const { fleetExec } = await import('./fleet-CjAI4rxS.mjs');
1099
+ const { fleetExec } = await import('./fleet-D7A8whbP.mjs');
1100
1100
  await fleetExec(command, { cwd: flag("cwd") });
1101
1101
  } else if (sub === "upgrade-claude") {
1102
- const { fleetUpgradeClaude } = await import('./fleet-CjAI4rxS.mjs');
1102
+ const { fleetUpgradeClaude } = await import('./fleet-D7A8whbP.mjs');
1103
1103
  await fleetUpgradeClaude({ version: flag("version", "-v") });
1104
1104
  } else if (sub === "upgrade-svamp") {
1105
- const { fleetUpgradeSvamp } = await import('./fleet-CjAI4rxS.mjs');
1105
+ const { fleetUpgradeSvamp } = await import('./fleet-D7A8whbP.mjs');
1106
1106
  await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self") });
1107
1107
  } else if (sub === "daemon-restart") {
1108
- const { fleetDaemonRestart } = await import('./fleet-CjAI4rxS.mjs');
1108
+ const { fleetDaemonRestart } = await import('./fleet-D7A8whbP.mjs');
1109
1109
  await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
1110
1110
  } else if (sub === "push-skill") {
1111
1111
  const name = fleetArgs[1];
1112
- const { fleetPushSkill } = await import('./fleet-CjAI4rxS.mjs');
1112
+ const { fleetPushSkill } = await import('./fleet-D7A8whbP.mjs');
1113
1113
  await fleetPushSkill(name);
1114
1114
  } else {
1115
1115
  console.error(`Unknown fleet subcommand: ${sub}`);
@@ -1125,7 +1125,7 @@ async function handleSkillsCommand() {
1125
1125
  await printSkillsHelp();
1126
1126
  return;
1127
1127
  }
1128
- const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-DsSzRtJu.mjs');
1128
+ const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-CyVLITvL.mjs');
1129
1129
  if (skillsSubcommand === "find" || skillsSubcommand === "search") {
1130
1130
  const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1131
1131
  if (!query) {
@@ -1172,7 +1172,7 @@ async function loginToHypha() {
1172
1172
  process.exit(1);
1173
1173
  }
1174
1174
  const anchor = anchorArg.replace(/\/+$/, "");
1175
- const { loadInstanceConfig } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.Y; });
1175
+ const { loadInstanceConfig } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.Y; });
1176
1176
  let cfg = null;
1177
1177
  try {
1178
1178
  cfg = await loadInstanceConfig({ anchor, force: true });
@@ -1283,7 +1283,7 @@ async function logoutFromHypha() {
1283
1283
  } catch {
1284
1284
  }
1285
1285
  try {
1286
- const { clearInstanceConfigCache } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.Y; });
1286
+ const { clearInstanceConfigCache } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.Y; });
1287
1287
  clearInstanceConfigCache();
1288
1288
  } catch {
1289
1289
  }
@@ -1614,7 +1614,7 @@ async function applyClaudeAuthFlags(argv) {
1614
1614
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
1615
1615
  );
1616
1616
  }
1617
- const mod = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.X; });
1617
+ const mod = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.X; });
1618
1618
  if (hasHypha) {
1619
1619
  let url;
1620
1620
  const hyphaIdx = argv.indexOf("--use-hypha-proxy");
@@ -1668,7 +1668,7 @@ async function applyDaemonShareFlag(argv) {
1668
1668
  }
1669
1669
  }
1670
1670
  if (collected.length === 0) return;
1671
- const { updateEnvFile } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.X; });
1671
+ const { updateEnvFile } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.X; });
1672
1672
  const seen = /* @__PURE__ */ new Set();
1673
1673
  const deduped = collected.filter((e) => {
1674
1674
  const k = e.toLowerCase();
@@ -1701,7 +1701,7 @@ async function handleWiseAgentCommand(rest) {
1701
1701
  }
1702
1702
  });
1703
1703
  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-o0MBJocy.mjs');
1704
+ const { wiseAskCli } = await import('./commands-Cectk2JF.mjs');
1705
1705
  await wiseAskCli(machineId, message, sessionId, { json });
1706
1706
  return;
1707
1707
  }
@@ -1713,7 +1713,7 @@ async function handleWiseAgentCommand(rest) {
1713
1713
  }
1714
1714
  return void 0;
1715
1715
  };
1716
- const { runWiseVoiceCli } = await import('./headlessCli-CIMYmqci.mjs');
1716
+ const { runWiseVoiceCli } = await import('./headlessCli-Bli0HPzi.mjs');
1717
1717
  await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
1718
1718
  return;
1719
1719
  }
@@ -1755,7 +1755,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1755
1755
  return;
1756
1756
  }
1757
1757
  const authArgs = rest.slice(1);
1758
- const mod = await import('./auth-D4G47YjL.mjs');
1758
+ const mod = await import('./auth-CuCvqsTH.mjs');
1759
1759
  let action;
1760
1760
  try {
1761
1761
  action = mod.parseWiseAgentAuthArgs(authArgs);
@@ -1765,7 +1765,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1765
1765
  return;
1766
1766
  }
1767
1767
  if (action) {
1768
- const { updateEnvFile } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.X; });
1768
+ const { updateEnvFile } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.X; });
1769
1769
  const updates = mod.buildWiseAgentEnvUpdates(action);
1770
1770
  updateEnvFile(updates);
1771
1771
  for (const [k, v] of Object.entries(updates)) {
@@ -1779,7 +1779,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1779
1779
  }
1780
1780
  async function handleDaemonAuthCommand(argv) {
1781
1781
  const sub = (argv[0] || "status").toLowerCase();
1782
- const mod = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.X; });
1782
+ const mod = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.X; });
1783
1783
  if (sub === "--help" || sub === "-h" || sub === "help") {
1784
1784
  console.log(`
1785
1785
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -2082,7 +2082,7 @@ Examples:
2082
2082
  async function printSkillsHelp() {
2083
2083
  let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
2084
2084
  try {
2085
- const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-CoaYIdw1.mjs').then(function (n) { return n.Z; });
2085
+ const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-9j9_wlx5.mjs').then(function (n) { return n.Z; });
2086
2086
  browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
2087
2087
  } catch {
2088
2088
  }
@@ -1,11 +1,11 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-o0MBJocy.mjs';
3
+ import { connectAndGetMachine } from './commands-Cectk2JF.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-CoaYIdw1.mjs';
8
+ import './run-9j9_wlx5.mjs';
9
9
  import 'os';
10
10
  import 'fs/promises';
11
11
  import 'url';
@@ -2,7 +2,7 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { execSync } from 'node:child_process';
3
3
  import { basename, resolve, join } from 'node:path';
4
4
  import os from 'node:os';
5
- import { F as normalizeAllowedUser, G as loadSecurityContextConfig, H as resolveSecurityContext, I as buildSecurityContextFromFlags, J as mergeSecurityContexts, c as connectToHypha, K as buildSessionShareUrl, L as computeOutboundHop, M as buildMachineShareUrl } from './run-CoaYIdw1.mjs';
5
+ import { F as normalizeAllowedUser, G as loadSecurityContextConfig, H as resolveSecurityContext, I as buildSecurityContextFromFlags, J as mergeSecurityContexts, c as connectToHypha, K as buildSessionShareUrl, L as computeOutboundHop, M as buildMachineShareUrl } from './run-9j9_wlx5.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -1,6 +1,6 @@
1
1
  import { execFileSync } from 'node:child_process';
2
2
  import { createServer } from 'node:http';
3
- import { R as RoutineStore, m as RoutineRunner } from './run-CoaYIdw1.mjs';
3
+ import { R as RoutineStore, m as RoutineRunner } from './run-9j9_wlx5.mjs';
4
4
  import 'os';
5
5
  import 'fs/promises';
6
6
  import 'fs';
@@ -41,6 +41,15 @@ function isSessionLive(sid) {
41
41
  }
42
42
  }
43
43
  async function cliDeliver({ routine, resolved }) {
44
+ if (routine.bind === "stateless") {
45
+ const dir = routine.dir;
46
+ if (!dir) {
47
+ console.error(`[routine] skip ${routine.id || routine.name}: stateless routine has no dir`);
48
+ return;
49
+ }
50
+ execFileSync("svamp", ["session", "query", dir, resolved.text || resolved.task || "run"], { stdio: "pipe" });
51
+ return;
52
+ }
44
53
  const sid = routine.session_id;
45
54
  if (!isSessionLive(sid)) {
46
55
  console.error(`[routine] skip ${routine.id || routine.name}: session ${sid} is stopped/archived`);
@@ -64,6 +73,8 @@ function buildRoutineFromArgs(a) {
64
73
  else r.trigger = { type: "manual" };
65
74
  if (a.loop) r.action = { kind: "loop", task_template: a.task || "", loop: { dir: a.dir, oracle: a.oracle, evaluator: a.evaluator || "off" } };
66
75
  else r.action = { kind: "message", template: a.message || a.task || "run" };
76
+ if (a.dir) r.dir = a.dir;
77
+ if (a.stateless) r.bind = "stateless";
67
78
  return r;
68
79
  }
69
80
  async function routineCommand(args) {
@@ -92,7 +103,7 @@ async function routineCommand(args) {
92
103
  console.log("(no routines)");
93
104
  break;
94
105
  }
95
- for (const r of rs) console.log(`${r.enabled ? "\u25CF" : "\u25CB"} ${r.id} ${r.name} [${r.trigger.type}${r.trigger.cron ? " " + r.trigger.cron : ""}] -> ${r.action.kind} session=${r.session_id}`);
106
+ for (const r of rs) console.log(`${r.enabled ? "\u25CF" : "\u25CB"} ${r.id} ${r.name} [${r.trigger.type}${r.trigger.cron ? " " + r.trigger.cron : ""}] -> ${r.action.kind} ${r.bind === "stateless" ? `stateless(${r.dir || "?"})` : `session=${r.session_id}`}`);
96
107
  break;
97
108
  }
98
109
  case "remove":
@@ -114,7 +125,7 @@ async function routineCommand(args) {
114
125
  break;
115
126
  default:
116
127
  console.log(`usage: svamp routine <add|list|remove|enable|disable|run-now|serve>
117
- add --session <id> --name <n> [--schedule "*/5 * * * *" [--missed catchup]] [--webhook|--api [--get] [--public]] (--message "..." | --loop --dir <path> --task "..." [--oracle "cmd"])
128
+ add --session <id> --name <n> [--schedule "*/5 * * * *" [--missed catchup]] [--webhook|--api [--get] [--public]] [--stateless --dir <path>] (--message "..." | --loop --dir <path> --task "..." [--oracle "cmd"])
118
129
  list [--session <id>] [--json]
119
130
  serve [--port 8722]`);
120
131
  }
@@ -1,7 +1,7 @@
1
1
  import os from 'os';
2
2
  import fs__default from 'fs';
3
3
  import { resolve, join, relative } from 'path';
4
- import { p as parseFrontmatter, n as getSkillsServer, o as getSkillsWorkspaceName, q as getSkillsCollectionName, t as fetchWithTimeout, u as searchSkills, v as SKILLS_DIR, w as getSkillInfo, x as downloadSkillFile, y as listSkillFiles } from './run-CoaYIdw1.mjs';
4
+ import { p as parseFrontmatter, n as getSkillsServer, o as getSkillsWorkspaceName, q as getSkillsCollectionName, t as fetchWithTimeout, u as searchSkills, v as SKILLS_DIR, w as getSkillInfo, x as downloadSkillFile, y as listSkillFiles } from './run-9j9_wlx5.mjs';
5
5
  import 'fs/promises';
6
6
  import 'url';
7
7
  import 'child_process';
@@ -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-B8ORdlOO.mjs');
61
+ const { runFrpcTunnel } = await import('./frpc-D9HsqQ7e.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-o0MBJocy.mjs');
71
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.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-B8ORdlOO.mjs');
126
+ const { runFrpcTunnel } = await import('./frpc-D9HsqQ7e.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-o0MBJocy.mjs');
135
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.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-o0MBJocy.mjs');
164
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.mjs');
165
165
  const { server, machine } = await connectAndGetMachine();
166
166
  try {
167
167
  await machine.tunnelStop({ name });
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import os from 'node:os';
4
- import { c as connectToHypha } from './run-CoaYIdw1.mjs';
4
+ import { c as connectToHypha } from './run-9j9_wlx5.mjs';
5
5
  import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-HydRNEt7.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
@@ -3,7 +3,7 @@ import { mkdirSync, writeFileSync, unlinkSync, existsSync, chmodSync, readFileSy
3
3
  import { join } from 'path';
4
4
  import { homedir, platform, arch } from 'os';
5
5
  import { createHash, randomUUID } from 'crypto';
6
- import { h as getFrpsSubdomainHost, i as getFrpsServerPort, j as getFrpsServerAddr } from './run-CoaYIdw1.mjs';
6
+ import { h as getFrpsSubdomainHost, i as getFrpsServerPort, j as getFrpsServerAddr } from './run-9j9_wlx5.mjs';
7
7
  import 'fs/promises';
8
8
  import 'url';
9
9
  import 'node:fs';
@@ -1,5 +1,5 @@
1
- import { E as resolveModel, N as describeMisconfiguration, O as buildMachineDeps } from './run-CoaYIdw1.mjs';
2
- import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CO0bdYO_.mjs';
1
+ import { E as resolveModel, N as describeMisconfiguration, O as buildMachineDeps } from './run-9j9_wlx5.mjs';
2
+ import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CnnaC4xC.mjs';
3
3
  import { WebSocket } from 'ws';
4
4
  import { execSync, spawn } from 'child_process';
5
5
  import 'os';
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-CoaYIdw1.mjs';
1
+ export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-9j9_wlx5.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,5 +1,5 @@
1
1
  var name = "svamp-cli";
2
- var version = "0.2.104";
2
+ var version = "0.2.106";
3
3
  var description = "Svamp CLI — AI workspace daemon on Hypha Cloud";
4
4
  var author = "Amun AI AB";
5
5
  var license = "SEE LICENSE IN LICENSE";
@@ -1221,6 +1221,11 @@ function validateRoutine(r) {
1221
1221
  if (a?.kind === "message" && !a.template) errs.push("action.template required for message action");
1222
1222
  if (a?.kind === "loop" && !a.loop && !a.task_template) errs.push("action.loop or action.task_template required for loop action");
1223
1223
  if (r.overlap && !OVERLAP.includes(r.overlap)) errs.push(`overlap must be one of ${OVERLAP.join("|")}`);
1224
+ if (r.bind && r.bind !== "stateful" && r.bind !== "stateless") errs.push('bind must be "stateful" or "stateless"');
1225
+ if (r.bind === "stateless") {
1226
+ if (!r.dir) errs.push("a stateless routine requires a dir (the project folder to spawn the one-shot in)");
1227
+ if (a?.kind === "loop") errs.push('a stateless routine cannot use a loop action (needs a persistent session); use a message action or bind "stateful"');
1228
+ }
1224
1229
  if ((t?.type === "webhook" || t?.type === "api") && t.public && a?.kind === "loop")
1225
1230
  errs.push("a public webhook/api may not use a loop action (unauthenticated task injection) \u2014 use a message action or require a key");
1226
1231
  return errs;
@@ -2522,7 +2527,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
2522
2527
  const tunnels = handlers.tunnels;
2523
2528
  if (!tunnels) throw new Error("Tunnel management not available");
2524
2529
  if (tunnels.has(params.name)) throw new Error(`Tunnel '${params.name}' already running`);
2525
- const { FrpcTunnel } = await import('./frpc-B8ORdlOO.mjs');
2530
+ const { FrpcTunnel } = await import('./frpc-D9HsqQ7e.mjs');
2526
2531
  const tunnel = new FrpcTunnel({
2527
2532
  name: params.name,
2528
2533
  ports: params.ports,
@@ -2783,7 +2788,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
2783
2788
  }
2784
2789
  const deps = buildSessionDeps(rpc, { cwd, ownerEmail: owner });
2785
2790
  const sender = { name: context?.user?.email || context?.user?.id || "user", kind: "user", verified: true };
2786
- const { toolsForRole } = await import('./sideband-CO0bdYO_.mjs');
2791
+ const { toolsForRole } = await import('./sideband-CnnaC4xC.mjs');
2787
2792
  const r2 = await runWiseAgent({ message: params.message, sender, config: { tools: toolsForRole(role2) }, deps, transport, model: resolved.model });
2788
2793
  return fmt(r2);
2789
2794
  }
@@ -2882,7 +2887,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
2882
2887
  if (r.error || !r.sender) return { error: r.error || "unauthorized" };
2883
2888
  const callId = "call_" + Math.random().toString(16).slice(2, 12);
2884
2889
  const rendered = renderMessage(c, { sender: r.sender, body: { message: kwargs.message }, callId });
2885
- const { queryCore } = await import('./commands-o0MBJocy.mjs');
2890
+ const { queryCore } = await import('./commands-Cectk2JF.mjs');
2886
2891
  const timeout = c.reply?.timeout_sec || 120;
2887
2892
  let result;
2888
2893
  try {
@@ -3710,7 +3715,7 @@ function createSessionStore(server, sessionId, initialMetadata, initialAgentStat
3710
3715
  saveRoutine: async (routine, context) => {
3711
3716
  authorizeRequest(context, metadata.sharing, "admin");
3712
3717
  try {
3713
- const saved = routineStore.save({ ...routine, session_id: sessionId });
3718
+ const saved = routineStore.save({ ...routine, session_id: sessionId, dir: routine.dir || metadata.path });
3714
3719
  syncRoutinesToMetadata();
3715
3720
  return { success: true, routine: saved };
3716
3721
  } catch (e) {
@@ -3739,9 +3744,30 @@ function createSessionStore(server, sessionId, initialMetadata, initialAgentStat
3739
3744
  if (!r || r.session_id !== sessionId) return { error: "not found" };
3740
3745
  const resolved = new RoutineRunner({ store: routineStore, deliver: async () => {
3741
3746
  } }).resolveAction(r, {});
3742
- routineStore.recordRun(id, { via: "manual", delivered: resolved.kind, outcome: "resolved" });
3747
+ let outcome = "delivered";
3748
+ try {
3749
+ if (r.bind === "stateless") {
3750
+ if (!r.dir || !callbacks.onRunStatelessRoutine) {
3751
+ outcome = "stateless run-now unavailable (no dir/handler)";
3752
+ } else {
3753
+ callbacks.onRunStatelessRoutine(r.dir, resolved.text || resolved.task || "run");
3754
+ outcome = "spawned stateless one-shot";
3755
+ }
3756
+ } else {
3757
+ const text = resolved.kind === "message" ? resolved.text || "" : `Begin the loop (LOOP MODE). Task: ${resolved.task}. Iterate until the gate lets you stop.`;
3758
+ await rpcHandlers.sendMessage(
3759
+ JSON.stringify({ role: "user", content: { type: "text", text }, meta: { sentFrom: "routine-run-now" } }),
3760
+ void 0,
3761
+ { sentFrom: "routine-run-now" },
3762
+ context
3763
+ );
3764
+ }
3765
+ } catch (e) {
3766
+ outcome = "error: " + (e?.message || e);
3767
+ }
3768
+ routineStore.recordRun(id, { via: "manual", delivered: resolved.kind, outcome });
3743
3769
  syncRoutinesToMetadata();
3744
- return { success: true, resolved };
3770
+ return { success: !/error|unavailable/.test(outcome), resolved, outcome };
3745
3771
  },
3746
3772
  // ── Channels (project-folder config; served by the channel server) ──
3747
3773
  listChannels: async (context) => {
@@ -10274,7 +10300,7 @@ async function startDaemon(options) {
10274
10300
  const list = loadExposedTunnels().filter((t) => t.name !== name);
10275
10301
  saveExposedTunnels(list);
10276
10302
  }
10277
- const { ServeManager } = await import('./serveManager-Bq33kB5r.mjs');
10303
+ const { ServeManager } = await import('./serveManager-ClBIhxJK.mjs');
10278
10304
  const serveManager = new ServeManager(SVAMP_HOME, (msg) => logger.log(`[SERVE] ${msg}`), hyphaServerUrl);
10279
10305
  ensureAutoInstalledSkills(logger).catch(() => {
10280
10306
  });
@@ -11590,6 +11616,15 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
11590
11616
  }
11591
11617
  }
11592
11618
  },
11619
+ onRunStatelessRoutine: (dir, prompt) => {
11620
+ try {
11621
+ const child = spawn$1("svamp", ["session", "query", dir, prompt], { detached: true, stdio: "ignore" });
11622
+ child.unref();
11623
+ logger.log(`[routine] run-now: spawned stateless one-shot in ${dir}`);
11624
+ } catch (e) {
11625
+ logger.log(`[routine] run-now stateless spawn failed: ${e?.message || e}`);
11626
+ }
11627
+ },
11593
11628
  onMetadataUpdate: (newMeta) => {
11594
11629
  const oldTitle = sessionMetadata.summary?.text;
11595
11630
  const newTitle = newMeta.summary?.text;
@@ -12050,6 +12085,15 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
12050
12085
  }
12051
12086
  }
12052
12087
  },
12088
+ onRunStatelessRoutine: (dir, prompt) => {
12089
+ try {
12090
+ const child = spawn$1("svamp", ["session", "query", dir, prompt], { detached: true, stdio: "ignore" });
12091
+ child.unref();
12092
+ logger.log(`[routine] run-now: spawned stateless one-shot in ${dir}`);
12093
+ } catch (e) {
12094
+ logger.log(`[routine] run-now stateless spawn failed: ${e?.message || e}`);
12095
+ }
12096
+ },
12053
12097
  onMetadataUpdate: (newMeta) => {
12054
12098
  const oldTitleAcp = sessionMetadata.summary?.text;
12055
12099
  const newTitleAcp = newMeta.summary?.text;
@@ -12618,7 +12662,7 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
12618
12662
  const specs = loadExposedTunnels();
12619
12663
  if (specs.length === 0) return;
12620
12664
  logger.log(`[exposed-tunnels] Restoring ${specs.length} tunnel(s) from ${EXPOSED_TUNNELS_FILE}`);
12621
- const { FrpcTunnel } = await import('./frpc-B8ORdlOO.mjs');
12665
+ const { FrpcTunnel } = await import('./frpc-D9HsqQ7e.mjs');
12622
12666
  for (const spec of specs) {
12623
12667
  if (tunnels.has(spec.name)) continue;
12624
12668
  try {
@@ -2,7 +2,7 @@ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(im
2
2
  import os from 'node:os';
3
3
  import { resolve, join } from 'node:path';
4
4
  import { existsSync, readFileSync, watch } from 'node:fs';
5
- import { c as connectToHypha, a as createSessionStore, r as registerMachineService, P as generateHookSettings } from './run-CoaYIdw1.mjs';
5
+ import { c as connectToHypha, a as createSessionStore, r as registerMachineService, P as generateHookSettings } from './run-9j9_wlx5.mjs';
6
6
  import { createServer } from 'node:http';
7
7
  import { spawn } from 'node:child_process';
8
8
  import { createInterface } from 'node:readline';
@@ -54,7 +54,7 @@ async function handleServeCommand() {
54
54
  }
55
55
  }
56
56
  async function serveAdd(args, machineId) {
57
- const { connectAndGetMachine } = await import('./commands-o0MBJocy.mjs');
57
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.mjs');
58
58
  const pos = positionalArgs(args);
59
59
  const name = pos[0];
60
60
  if (!name) {
@@ -93,7 +93,7 @@ async function serveAdd(args, machineId) {
93
93
  }
94
94
  }
95
95
  async function serveApply(args, machineId) {
96
- const { connectAndGetMachine } = await import('./commands-o0MBJocy.mjs');
96
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.mjs');
97
97
  const fs = await import('fs');
98
98
  const yaml = await import('yaml');
99
99
  const file = positionalArgs(args)[0];
@@ -182,7 +182,7 @@ async function serveApply(args, machineId) {
182
182
  }
183
183
  }
184
184
  async function serveRemove(args, machineId) {
185
- const { connectAndGetMachine } = await import('./commands-o0MBJocy.mjs');
185
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.mjs');
186
186
  const pos = positionalArgs(args);
187
187
  const name = pos[0];
188
188
  if (!name) {
@@ -202,7 +202,7 @@ async function serveRemove(args, machineId) {
202
202
  }
203
203
  }
204
204
  async function serveList(args, machineId) {
205
- const { connectAndGetMachine } = await import('./commands-o0MBJocy.mjs');
205
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.mjs');
206
206
  const all = hasFlag(args, "--all", "-a");
207
207
  const json = hasFlag(args, "--json");
208
208
  const sessionId = getFlag(args, "--session");
@@ -235,7 +235,7 @@ async function serveList(args, machineId) {
235
235
  }
236
236
  }
237
237
  async function serveInfo(machineId) {
238
- const { connectAndGetMachine } = await import('./commands-o0MBJocy.mjs');
238
+ const { connectAndGetMachine } = await import('./commands-Cectk2JF.mjs');
239
239
  const { machine, server } = await connectAndGetMachine(machineId);
240
240
  try {
241
241
  const info = await machine.serveInfo();
@@ -4,7 +4,7 @@ import * as fs from 'fs';
4
4
  import * as http from 'http';
5
5
  import * as net from 'net';
6
6
  import * as path from 'path';
7
- import { k as getHyphaServerUrl, S as ServeAuth, l as hasCookieToken } from './run-CoaYIdw1.mjs';
7
+ import { k as getHyphaServerUrl, S as ServeAuth, l as hasCookieToken } from './run-9j9_wlx5.mjs';
8
8
  import 'os';
9
9
  import 'fs/promises';
10
10
  import 'url';
@@ -713,7 +713,7 @@ class ServeManager {
713
713
  const mount = this.mounts.get(mountName);
714
714
  const subdomainOverride = mount?.access === "link" && mount.linkToken ? /* @__PURE__ */ new Map([[this.port, `static-${subdomainSafe}-${mount.linkToken}`]]) : void 0;
715
715
  try {
716
- const { FrpcTunnel } = await import('./frpc-B8ORdlOO.mjs');
716
+ const { FrpcTunnel } = await import('./frpc-D9HsqQ7e.mjs');
717
717
  let tunnel;
718
718
  tunnel = new FrpcTunnel({
719
719
  name: tunnelName,
@@ -1,4 +1,4 @@
1
- import { z as READ_ONLY_TOOLS, A as loadMachineContext, B as buildMachineInstructions, C as machineToolsForRole, D as buildMachineTools } from './run-CoaYIdw1.mjs';
1
+ import { z as READ_ONLY_TOOLS, A as loadMachineContext, B as buildMachineInstructions, C as machineToolsForRole, D as buildMachineTools } from './run-9j9_wlx5.mjs';
2
2
  import 'node:child_process';
3
3
  import 'os';
4
4
  import 'fs/promises';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svamp-cli",
3
- "version": "0.2.104",
3
+ "version": "0.2.106",
4
4
  "description": "Svamp CLI — AI workspace daemon on Hypha Cloud",
5
5
  "author": "Amun AI AB",
6
6
  "license": "SEE LICENSE IN LICENSE",