svamp-cli 0.2.278 → 0.2.279

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 (25) hide show
  1. package/dist/{agentCommands-SejhmIxj.mjs → agentCommands-CZjZsqJC.mjs} +5 -5
  2. package/dist/{auth-Bp-lcNvX.mjs → auth-CFWhaPVg.mjs} +1 -1
  3. package/dist/{cli-DXiODLrJ.mjs → cli-E1osBiyj.mjs} +65 -65
  4. package/dist/cli.mjs +2 -2
  5. package/dist/{commands-DmebpYk0.mjs → commands-1FkeAcQD.mjs} +2 -2
  6. package/dist/{commands-BzMbBsGM.mjs → commands-C_XFxrjC.mjs} +2 -2
  7. package/dist/{commands-CBIRneT7.mjs → commands-Chlqo2DT.mjs} +1 -1
  8. package/dist/{commands-3oQU6Zbl.mjs → commands-DW0HvMa8.mjs} +1 -1
  9. package/dist/{commands-BXRsOufU.mjs → commands-GYPd_Ddj.mjs} +7 -7
  10. package/dist/{commands-D95wyAGb.mjs → commands-TFNC2BuR.mjs} +2 -2
  11. package/dist/{commands-BiJbQChb.mjs → commands-ux1fl1qK.mjs} +1 -1
  12. package/dist/{fleet-CIFev16_.mjs → fleet-cu0bUH3v.mjs} +1 -1
  13. package/dist/{frpc-Czt8diGB.mjs → frpc-B1-dyz8z.mjs} +1 -1
  14. package/dist/{headlessCli-CfRDf2kB.mjs → headlessCli-BvoiOGxZ.mjs} +2 -2
  15. package/dist/index.mjs +1 -1
  16. package/dist/{notifyCommands-Db7qJUME.mjs → notifyCommands-BrD5qNdF.mjs} +1 -1
  17. package/dist/{package-Cbe1TG7k.mjs → package-BVdnXBp4.mjs} +1 -1
  18. package/dist/{rpc-B_zN6Jvr.mjs → rpc-2I8SlTrz.mjs} +1 -1
  19. package/dist/{rpc-AkzY2NVv.mjs → rpc-DKY7-oh-.mjs} +1 -1
  20. package/dist/{run-CRuLlPmv.mjs → run-B10NKlSF.mjs} +1 -1
  21. package/dist/{run-CumVWywx.mjs → run-BtIiSNjM.mjs} +35 -11
  22. package/dist/{scheduler-MPYVrdzd.mjs → scheduler-BOnAtzax.mjs} +1 -1
  23. package/dist/{serveCommands-DPVITK3a.mjs → serveCommands-DdZcK0Q9.mjs} +5 -5
  24. package/dist/{sideband-CHcbWta4.mjs → sideband-BjUyyMW7.mjs} +1 -1
  25. package/package.json +1 -1
@@ -2,7 +2,7 @@ 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 { i as shortId } from './run-CumVWywx.mjs';
5
+ import { i as shortId } from './run-BtIiSNjM.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -96,7 +96,7 @@ async function sessionSetTitle(title) {
96
96
  }
97
97
  async function sessionSetProjectDescription(description) {
98
98
  const dir = process.cwd();
99
- const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-CumVWywx.mjs').then(function (n) { return n.an; });
99
+ const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.an; });
100
100
  const desc = sanitizeDescription(description, 240);
101
101
  if (!desc) {
102
102
  console.error("Project description is empty.");
@@ -343,7 +343,7 @@ async function sessionBroadcast(action, args) {
343
343
  console.log(`Broadcast sent: ${action}`);
344
344
  }
345
345
  async function connectToMachineService() {
346
- const { connectAndGetMachine } = await import('./commands-BiJbQChb.mjs');
346
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.mjs');
347
347
  return connectAndGetMachine();
348
348
  }
349
349
  function buildInboxMessage(args) {
@@ -421,7 +421,7 @@ async function inboxSend(targetSessionId, opts) {
421
421
  console.error("Message body is required.");
422
422
  process.exit(1);
423
423
  }
424
- const { connectAndResolveSession } = await import('./commands-BiJbQChb.mjs');
424
+ const { connectAndResolveSession } = await import('./commands-ux1fl1qK.mjs');
425
425
  let server;
426
426
  try {
427
427
  const { targetId, messageId } = await inboxSendCore(
@@ -475,7 +475,7 @@ async function inboxReply(messageId, body) {
475
475
  console.error("SVAMP_SESSION_ID not set. This command must be run inside a Svamp session.");
476
476
  process.exit(1);
477
477
  }
478
- const { connectAndResolveSession } = await import('./commands-BiJbQChb.mjs');
478
+ const { connectAndResolveSession } = await import('./commands-ux1fl1qK.mjs');
479
479
  const { server: localServer, machine: localMachine } = await connectToMachineService();
480
480
  let localDisconnected = false;
481
481
  const disconnectLocal = async () => {
@@ -1,4 +1,4 @@
1
- import { _ as resolveModel } from './run-CumVWywx.mjs';
1
+ import { _ as resolveModel } from './run-BtIiSNjM.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,4 +1,4 @@
1
- import { $ as clearStopMarker, a0 as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-CumVWywx.mjs';
1
+ import { $ as clearStopMarker, a0 as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-BtIiSNjM.mjs';
2
2
  import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
3
3
 
4
4
  function flushAndExit(code) {
@@ -33,7 +33,7 @@ const subcommand = args[0];
33
33
  let daemonSubcommand = args[1];
34
34
  async function main() {
35
35
  try {
36
- const { getLoadedConfig } = await import('./run-CumVWywx.mjs').then(function (n) { return n.ak; });
36
+ const { getLoadedConfig } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.ak; });
37
37
  getLoadedConfig();
38
38
  } catch {
39
39
  }
@@ -52,7 +52,7 @@ async function main() {
52
52
  }
53
53
  const whenIdle = args.includes("--when-idle");
54
54
  const force = args.includes("--force");
55
- const mod = await import('./run-CumVWywx.mjs').then(function (n) { return n.au; });
55
+ const mod = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.au; });
56
56
  if (whenIdle && !force) {
57
57
  if (mod.isDaemonAlive()) {
58
58
  mod.writePendingRestart({ reason: "svamp daemon restart --when-idle" });
@@ -356,7 +356,7 @@ async function main() {
356
356
  console.error("svamp service: Service commands are not available in sandboxed sessions.");
357
357
  process.exit(1);
358
358
  }
359
- const { handleServiceCommand } = await import('./commands-BXRsOufU.mjs');
359
+ const { handleServiceCommand } = await import('./commands-GYPd_Ddj.mjs');
360
360
  await handleServiceCommand();
361
361
  } else if (subcommand === "serve") {
362
362
  const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
@@ -364,7 +364,7 @@ async function main() {
364
364
  console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
365
365
  process.exit(1);
366
366
  }
367
- const { handleServeCommand } = await import('./serveCommands-DPVITK3a.mjs');
367
+ const { handleServeCommand } = await import('./serveCommands-DdZcK0Q9.mjs');
368
368
  await handleServeCommand();
369
369
  process.exit(0);
370
370
  } else if (subcommand === "process" || subcommand === "proc") {
@@ -373,7 +373,7 @@ async function main() {
373
373
  console.error("svamp process: Process commands are not available in sandboxed sessions.");
374
374
  process.exit(1);
375
375
  }
376
- const { processCommand } = await import('./commands-D95wyAGb.mjs');
376
+ const { processCommand } = await import('./commands-TFNC2BuR.mjs');
377
377
  let machineId;
378
378
  const processArgs = args.slice(1);
379
379
  const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
@@ -387,22 +387,22 @@ async function main() {
387
387
  }), machineId);
388
388
  process.exit(0);
389
389
  } else if (subcommand === "issue" || subcommand === "issues") {
390
- const { issueCommand } = await import('./commands-DmebpYk0.mjs');
390
+ const { issueCommand } = await import('./commands-1FkeAcQD.mjs');
391
391
  await issueCommand(args.slice(1));
392
392
  await flushAndExit(0);
393
393
  } else if (subcommand === "workflow" || subcommand === "workflows") {
394
- const { workflowCommand } = await import('./commands-CBIRneT7.mjs');
394
+ const { workflowCommand } = await import('./commands-Chlqo2DT.mjs');
395
395
  await workflowCommand(args.slice(1));
396
396
  await flushAndExit(0);
397
397
  } else if (subcommand === "wise-agent" || subcommand === "wise") {
398
398
  await handleWiseAgentCommand(args.slice(1));
399
399
  process.exit(0);
400
400
  } else if (subcommand === "feature" || subcommand === "crew") {
401
- const { crewCommand } = await import('./commands-BzMbBsGM.mjs');
401
+ const { crewCommand } = await import('./commands-C_XFxrjC.mjs');
402
402
  await crewCommand(args.slice(1));
403
403
  process.exit(0);
404
404
  } else if (subcommand === "notify") {
405
- const { notifyUser } = await import('./notifyCommands-Db7qJUME.mjs');
405
+ const { notifyUser } = await import('./notifyCommands-BrD5qNdF.mjs');
406
406
  const rest = args.slice(1);
407
407
  let email;
408
408
  const o = {};
@@ -417,7 +417,7 @@ async function main() {
417
417
  await notifyUser(email, o);
418
418
  process.exit(0);
419
419
  } else if (subcommand === "events") {
420
- const { listEvents, ackEvent } = await import('./notifyCommands-Db7qJUME.mjs');
420
+ const { listEvents, ackEvent } = await import('./notifyCommands-BrD5qNdF.mjs');
421
421
  const sub = args[1];
422
422
  const rest = args.slice(2);
423
423
  let email;
@@ -438,7 +438,7 @@ async function main() {
438
438
  } else if (!subcommand || subcommand === "start") {
439
439
  await handleInteractiveCommand();
440
440
  } else if (subcommand === "--version" || subcommand === "-v") {
441
- const pkg = await import('./package-Cbe1TG7k.mjs').catch(() => ({ default: { version: "unknown" } }));
441
+ const pkg = await import('./package-BVdnXBp4.mjs').catch(() => ({ default: { version: "unknown" } }));
442
442
  console.log(`svamp version: ${pkg.default.version}`);
443
443
  } else {
444
444
  console.error(`Unknown command: ${subcommand}`);
@@ -447,7 +447,7 @@ async function main() {
447
447
  }
448
448
  }
449
449
  async function handleInteractiveCommand() {
450
- const { runInteractive } = await import('./run-CRuLlPmv.mjs');
450
+ const { runInteractive } = await import('./run-B10NKlSF.mjs');
451
451
  const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
452
452
  let directory = process.cwd();
453
453
  let resumeSessionId;
@@ -492,7 +492,7 @@ async function handleAgentCommand() {
492
492
  return;
493
493
  }
494
494
  if (agentArgs[0] === "list") {
495
- const { KNOWN_ACP_AGENTS, KNOWN_CODEX_AGENTS: KNOWN_CODEX_AGENTS2 } = await import('./run-CumVWywx.mjs').then(function (n) { return n.aq; });
495
+ const { KNOWN_ACP_AGENTS, KNOWN_CODEX_AGENTS: KNOWN_CODEX_AGENTS2 } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.aq; });
496
496
  console.log("Known agents:");
497
497
  for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
498
498
  console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
@@ -504,7 +504,7 @@ async function handleAgentCommand() {
504
504
  console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
505
505
  return;
506
506
  }
507
- const { resolveAcpAgentConfig, KNOWN_CODEX_AGENTS } = await import('./run-CumVWywx.mjs').then(function (n) { return n.aq; });
507
+ const { resolveAcpAgentConfig, KNOWN_CODEX_AGENTS } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.aq; });
508
508
  let cwd = process.cwd();
509
509
  const filteredArgs = [];
510
510
  for (let i = 0; i < agentArgs.length; i++) {
@@ -528,12 +528,12 @@ async function handleAgentCommand() {
528
528
  console.log(`Starting ${config.agentName} agent in ${cwd}...`);
529
529
  let backend;
530
530
  if (KNOWN_CODEX_AGENTS[config.agentName]) {
531
- const { CodexAppServerBackend } = await import('./run-CumVWywx.mjs').then(function (n) { return n.ar; });
531
+ const { CodexAppServerBackend } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.ar; });
532
532
  backend = new CodexAppServerBackend({ cwd, log: logFn });
533
533
  } else {
534
- const { AcpBackend } = await import('./run-CumVWywx.mjs').then(function (n) { return n.ap; });
535
- const { GeminiTransport } = await import('./run-CumVWywx.mjs').then(function (n) { return n.as; });
536
- const { DefaultTransport } = await import('./run-CumVWywx.mjs').then(function (n) { return n.ao; });
534
+ const { AcpBackend } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.ap; });
535
+ const { GeminiTransport } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.as; });
536
+ const { DefaultTransport } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.ao; });
537
537
  const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
538
538
  backend = new AcpBackend({
539
539
  agentName: config.agentName,
@@ -660,7 +660,7 @@ async function handleSessionCommand() {
660
660
  process.exit(1);
661
661
  }
662
662
  }
663
- const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionLoopExtend, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-BiJbQChb.mjs');
663
+ const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionLoopExtend, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-ux1fl1qK.mjs');
664
664
  const parseFlagStr = (flag, shortFlag) => {
665
665
  for (let i = 1; i < sessionArgs.length; i++) {
666
666
  if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
@@ -728,7 +728,7 @@ async function handleSessionCommand() {
728
728
  allowDomain.push(sessionArgs[++i]);
729
729
  }
730
730
  }
731
- const { parseShareArg } = await import('./commands-BiJbQChb.mjs');
731
+ const { parseShareArg } = await import('./commands-ux1fl1qK.mjs');
732
732
  const shareEntries = share.map((s) => parseShareArg(s));
733
733
  await sessionSpawn(agent, dir, targetMachineId, {
734
734
  message,
@@ -818,7 +818,7 @@ async function handleSessionCommand() {
818
818
  console.error(" Rewinds history: rewrites the message + drops everything after it, then restarts Claude.");
819
819
  process.exit(1);
820
820
  }
821
- const { sessionEditMessage } = await import('./commands-BiJbQChb.mjs');
821
+ const { sessionEditMessage } = await import('./commands-ux1fl1qK.mjs');
822
822
  await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
823
823
  } else if (sessionSubcommand === "refine") {
824
824
  if (!sessionArgs[1] || !sessionArgs[2]) {
@@ -826,7 +826,7 @@ async function handleSessionCommand() {
826
826
  console.error(" Asks the agent to revise its latest reply in place (no extra round).");
827
827
  process.exit(1);
828
828
  }
829
- const { sessionRefineLastReply } = await import('./commands-BiJbQChb.mjs');
829
+ const { sessionRefineLastReply } = await import('./commands-ux1fl1qK.mjs');
830
830
  await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
831
831
  } else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
832
832
  if (!sessionArgs[1]) {
@@ -834,7 +834,7 @@ async function handleSessionCommand() {
834
834
  console.error(" Reverts the most recent edit/refine, restoring the pre-edit history.");
835
835
  process.exit(1);
836
836
  }
837
- const { sessionUndoEdit } = await import('./commands-BiJbQChb.mjs');
837
+ const { sessionUndoEdit } = await import('./commands-ux1fl1qK.mjs');
838
838
  await sessionUndoEdit(sessionArgs[1], targetMachineId);
839
839
  } else if (sessionSubcommand === "query") {
840
840
  const dir = sessionArgs[1];
@@ -844,7 +844,7 @@ async function handleSessionCommand() {
844
844
  console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
845
845
  process.exit(1);
846
846
  }
847
- const { sessionQuery } = await import('./commands-BiJbQChb.mjs');
847
+ const { sessionQuery } = await import('./commands-ux1fl1qK.mjs');
848
848
  await sessionQuery(dir, prompt, targetMachineId, {
849
849
  timeout: parseFlagInt("--timeout"),
850
850
  json: hasFlag("--json"),
@@ -877,7 +877,7 @@ async function handleSessionCommand() {
877
877
  console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
878
878
  process.exit(1);
879
879
  }
880
- const { sessionApprove } = await import('./commands-BiJbQChb.mjs');
880
+ const { sessionApprove } = await import('./commands-ux1fl1qK.mjs');
881
881
  const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
882
882
  await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
883
883
  json: hasFlag("--json")
@@ -887,7 +887,7 @@ async function handleSessionCommand() {
887
887
  console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
888
888
  process.exit(1);
889
889
  }
890
- const { sessionDeny } = await import('./commands-BiJbQChb.mjs');
890
+ const { sessionDeny } = await import('./commands-ux1fl1qK.mjs');
891
891
  const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
892
892
  await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
893
893
  json: hasFlag("--json")
@@ -939,7 +939,7 @@ async function handleSessionCommand() {
939
939
  console.error("Usage: svamp session set-title <title>");
940
940
  process.exit(1);
941
941
  }
942
- const { sessionSetTitle } = await import('./agentCommands-SejhmIxj.mjs');
942
+ const { sessionSetTitle } = await import('./agentCommands-CZjZsqJC.mjs');
943
943
  await sessionSetTitle(title);
944
944
  } else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
945
945
  const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
@@ -947,7 +947,7 @@ async function handleSessionCommand() {
947
947
  console.error("Usage: svamp session set-project-description <text>");
948
948
  process.exit(1);
949
949
  }
950
- const { sessionSetProjectDescription } = await import('./agentCommands-SejhmIxj.mjs');
950
+ const { sessionSetProjectDescription } = await import('./agentCommands-CZjZsqJC.mjs');
951
951
  await sessionSetProjectDescription(desc);
952
952
  } else if (sessionSubcommand === "set-link") {
953
953
  const url = sessionArgs[1];
@@ -956,11 +956,11 @@ async function handleSessionCommand() {
956
956
  process.exit(1);
957
957
  }
958
958
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
959
- const { sessionSetLink } = await import('./agentCommands-SejhmIxj.mjs');
959
+ const { sessionSetLink } = await import('./agentCommands-CZjZsqJC.mjs');
960
960
  await sessionSetLink(url, label);
961
961
  } else if (sessionSubcommand === "link") {
962
962
  const op = sessionArgs[1];
963
- const lm = await import('./agentCommands-SejhmIxj.mjs');
963
+ const lm = await import('./agentCommands-CZjZsqJC.mjs');
964
964
  if (op === "add") {
965
965
  const url = sessionArgs[2];
966
966
  if (!url || url.startsWith("--")) {
@@ -995,7 +995,7 @@ async function handleSessionCommand() {
995
995
  process.exit(1);
996
996
  }
997
997
  const level = parseFlagStr("--level") || "info";
998
- const { sessionNotify } = await import('./agentCommands-SejhmIxj.mjs');
998
+ const { sessionNotify } = await import('./agentCommands-CZjZsqJC.mjs');
999
999
  await sessionNotify(message, level);
1000
1000
  } else if (sessionSubcommand === "broadcast") {
1001
1001
  const action = sessionArgs[1];
@@ -1003,7 +1003,7 @@ async function handleSessionCommand() {
1003
1003
  console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
1004
1004
  process.exit(1);
1005
1005
  }
1006
- const { sessionBroadcast } = await import('./agentCommands-SejhmIxj.mjs');
1006
+ const { sessionBroadcast } = await import('./agentCommands-CZjZsqJC.mjs');
1007
1007
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
1008
1008
  } else if (sessionSubcommand === "inbox") {
1009
1009
  const inboxSubcmd = sessionArgs[1];
@@ -1014,7 +1014,7 @@ async function handleSessionCommand() {
1014
1014
  process.exit(1);
1015
1015
  }
1016
1016
  if (agentSessionId) {
1017
- const { inboxSend } = await import('./agentCommands-SejhmIxj.mjs');
1017
+ const { inboxSend } = await import('./agentCommands-CZjZsqJC.mjs');
1018
1018
  await inboxSend(sessionArgs[2], {
1019
1019
  body: sessionArgs[3],
1020
1020
  subject: parseFlagStr("--subject"),
@@ -1029,7 +1029,7 @@ async function handleSessionCommand() {
1029
1029
  }
1030
1030
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
1031
1031
  if (agentSessionId && !sessionArgs[2]) {
1032
- const { inboxList } = await import('./agentCommands-SejhmIxj.mjs');
1032
+ const { inboxList } = await import('./agentCommands-CZjZsqJC.mjs');
1033
1033
  await inboxList({
1034
1034
  unread: hasFlag("--unread"),
1035
1035
  limit: parseFlagInt("--limit"),
@@ -1051,7 +1051,7 @@ async function handleSessionCommand() {
1051
1051
  process.exit(1);
1052
1052
  }
1053
1053
  if (agentSessionId && !sessionArgs[3]) {
1054
- const { inboxList } = await import('./agentCommands-SejhmIxj.mjs');
1054
+ const { inboxList } = await import('./agentCommands-CZjZsqJC.mjs');
1055
1055
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
1056
1056
  } else if (sessionArgs[3]) {
1057
1057
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -1061,7 +1061,7 @@ async function handleSessionCommand() {
1061
1061
  }
1062
1062
  } else if (inboxSubcmd === "reply") {
1063
1063
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
1064
- const { inboxReply } = await import('./agentCommands-SejhmIxj.mjs');
1064
+ const { inboxReply } = await import('./agentCommands-CZjZsqJC.mjs');
1065
1065
  await inboxReply(sessionArgs[2], sessionArgs[3]);
1066
1066
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
1067
1067
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -1099,7 +1099,7 @@ async function handleMachineCommand() {
1099
1099
  return;
1100
1100
  }
1101
1101
  if (machineSubcommand === "share") {
1102
- const { machineShare } = await import('./commands-BiJbQChb.mjs');
1102
+ const { machineShare } = await import('./commands-ux1fl1qK.mjs');
1103
1103
  let machineId;
1104
1104
  const shareArgs = [];
1105
1105
  for (let i = 1; i < machineArgs.length; i++) {
@@ -1150,14 +1150,14 @@ async function handleMachineCommand() {
1150
1150
  process.exit(1);
1151
1151
  }
1152
1152
  if (all) {
1153
- const { fleetExec } = await import('./fleet-CIFev16_.mjs');
1153
+ const { fleetExec } = await import('./fleet-cu0bUH3v.mjs');
1154
1154
  await fleetExec(command, { cwd });
1155
1155
  } else {
1156
- const { machineExec } = await import('./commands-BiJbQChb.mjs');
1156
+ const { machineExec } = await import('./commands-ux1fl1qK.mjs');
1157
1157
  await machineExec(machineId, command, cwd);
1158
1158
  }
1159
1159
  } else if (machineSubcommand === "info") {
1160
- const { machineInfo } = await import('./commands-BiJbQChb.mjs');
1160
+ const { machineInfo } = await import('./commands-ux1fl1qK.mjs');
1161
1161
  let machineId;
1162
1162
  for (let i = 1; i < machineArgs.length; i++) {
1163
1163
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -1177,10 +1177,10 @@ async function handleMachineCommand() {
1177
1177
  level = machineArgs[++i];
1178
1178
  }
1179
1179
  }
1180
- const { machineNotify } = await import('./agentCommands-SejhmIxj.mjs');
1180
+ const { machineNotify } = await import('./agentCommands-CZjZsqJC.mjs');
1181
1181
  await machineNotify(message, level);
1182
1182
  } else if (machineSubcommand === "ls") {
1183
- const { machineLs } = await import('./commands-BiJbQChb.mjs');
1183
+ const { machineLs } = await import('./commands-ux1fl1qK.mjs');
1184
1184
  let machineId;
1185
1185
  let showHidden = false;
1186
1186
  let path;
@@ -1239,20 +1239,20 @@ Examples:
1239
1239
  };
1240
1240
  const hasFlag = (name) => fleetArgs.includes(`--${name}`);
1241
1241
  if (sub === "status") {
1242
- const { fleetStatus } = await import('./fleet-CIFev16_.mjs');
1242
+ const { fleetStatus } = await import('./fleet-cu0bUH3v.mjs');
1243
1243
  await fleetStatus();
1244
1244
  } else if (sub === "upgrade-claude") {
1245
- const { fleetUpgradeClaude } = await import('./fleet-CIFev16_.mjs');
1245
+ const { fleetUpgradeClaude } = await import('./fleet-cu0bUH3v.mjs');
1246
1246
  await fleetUpgradeClaude({ version: flag("version", "-v") });
1247
1247
  } else if (sub === "upgrade-svamp") {
1248
- const { fleetUpgradeSvamp } = await import('./fleet-CIFev16_.mjs');
1248
+ const { fleetUpgradeSvamp } = await import('./fleet-cu0bUH3v.mjs');
1249
1249
  await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self"), force: hasFlag("force") });
1250
1250
  } else if (sub === "daemon-restart") {
1251
- const { fleetDaemonRestart } = await import('./fleet-CIFev16_.mjs');
1251
+ const { fleetDaemonRestart } = await import('./fleet-cu0bUH3v.mjs');
1252
1252
  await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
1253
1253
  } else if (sub === "push-skill") {
1254
1254
  const name = fleetArgs[1];
1255
- const { fleetPushSkill } = await import('./fleet-CIFev16_.mjs');
1255
+ const { fleetPushSkill } = await import('./fleet-cu0bUH3v.mjs');
1256
1256
  await fleetPushSkill(name);
1257
1257
  } else {
1258
1258
  console.error(`Unknown fleet subcommand: ${sub}`);
@@ -1268,7 +1268,7 @@ async function handleSkillsCommand() {
1268
1268
  await printSkillsHelp();
1269
1269
  return;
1270
1270
  }
1271
- const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-3oQU6Zbl.mjs');
1271
+ const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-DW0HvMa8.mjs');
1272
1272
  if (skillsSubcommand === "find" || skillsSubcommand === "search") {
1273
1273
  const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1274
1274
  if (!query) {
@@ -1315,7 +1315,7 @@ async function loginToHypha() {
1315
1315
  process.exit(1);
1316
1316
  }
1317
1317
  const anchor = anchorArg.replace(/\/+$/, "");
1318
- const { loadInstanceConfig } = await import('./run-CumVWywx.mjs').then(function (n) { return n.ak; });
1318
+ const { loadInstanceConfig } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.ak; });
1319
1319
  let cfg = null;
1320
1320
  try {
1321
1321
  cfg = await loadInstanceConfig({ anchor, force: true });
@@ -1426,7 +1426,7 @@ async function logoutFromHypha() {
1426
1426
  } catch {
1427
1427
  }
1428
1428
  try {
1429
- const { clearInstanceConfigCache } = await import('./run-CumVWywx.mjs').then(function (n) { return n.ak; });
1429
+ const { clearInstanceConfigCache } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.ak; });
1430
1430
  clearInstanceConfigCache();
1431
1431
  } catch {
1432
1432
  }
@@ -1765,7 +1765,7 @@ async function applyClaudeAuthFlags(argv) {
1765
1765
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
1766
1766
  );
1767
1767
  }
1768
- const mod = await import('./run-CumVWywx.mjs').then(function (n) { return n.al; });
1768
+ const mod = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.al; });
1769
1769
  if (hasHypha) {
1770
1770
  let url;
1771
1771
  const hyphaIdx = argv.indexOf("--use-hypha-proxy");
@@ -1819,7 +1819,7 @@ async function applyDaemonShareFlag(argv) {
1819
1819
  }
1820
1820
  }
1821
1821
  if (collected.length === 0) return;
1822
- const { updateEnvFile } = await import('./run-CumVWywx.mjs').then(function (n) { return n.al; });
1822
+ const { updateEnvFile } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.al; });
1823
1823
  const seen = /* @__PURE__ */ new Set();
1824
1824
  const deduped = collected.filter((e) => {
1825
1825
  const k = e.toLowerCase();
@@ -1852,7 +1852,7 @@ async function handleWiseAgentCommand(rest) {
1852
1852
  }
1853
1853
  });
1854
1854
  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(" ");
1855
- const { wiseAskCli } = await import('./commands-BiJbQChb.mjs');
1855
+ const { wiseAskCli } = await import('./commands-ux1fl1qK.mjs');
1856
1856
  await wiseAskCli(machineId, message, sessionId, { json });
1857
1857
  return;
1858
1858
  }
@@ -1864,7 +1864,7 @@ async function handleWiseAgentCommand(rest) {
1864
1864
  }
1865
1865
  return void 0;
1866
1866
  };
1867
- const { runWiseVoiceCli } = await import('./headlessCli-CfRDf2kB.mjs');
1867
+ const { runWiseVoiceCli } = await import('./headlessCli-BvoiOGxZ.mjs');
1868
1868
  await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
1869
1869
  return;
1870
1870
  }
@@ -1882,7 +1882,7 @@ async function handleWiseAgentCommand(rest) {
1882
1882
  const mode = valueOf(["--mode"]);
1883
1883
  const mission = valueOf(["--mission"]);
1884
1884
  const url = rest.slice(1).find((a) => /^https?:\/\//.test(a)) || "";
1885
- const { wiseJoinMeetingCli } = await import('./commands-BiJbQChb.mjs');
1885
+ const { wiseJoinMeetingCli } = await import('./commands-ux1fl1qK.mjs');
1886
1886
  await wiseJoinMeetingCli(machineId, url, sessionId, { json, mode, mission });
1887
1887
  return;
1888
1888
  }
@@ -1894,7 +1894,7 @@ async function handleWiseAgentCommand(rest) {
1894
1894
  }
1895
1895
  return void 0;
1896
1896
  };
1897
- const { wiseLeaveMeetingCli } = await import('./commands-BiJbQChb.mjs');
1897
+ const { wiseLeaveMeetingCli } = await import('./commands-ux1fl1qK.mjs');
1898
1898
  await wiseLeaveMeetingCli(valueOf(["--machine", "-m"]), valueOf(["--session", "-s"]), { json: rest.includes("--json") });
1899
1899
  return;
1900
1900
  }
@@ -1918,7 +1918,7 @@ async function handleWiseAgentCommand(rest) {
1918
1918
  }
1919
1919
  });
1920
1920
  const text = rest.slice(1).map((a, idx) => ({ a, idx: idx + 1 })).filter(({ a, idx }) => !a.startsWith("-") && !consumed.has(String(idx))).map(({ a }) => a).join(" ");
1921
- const { wiseAnnounceCli } = await import('./commands-BiJbQChb.mjs');
1921
+ const { wiseAnnounceCli } = await import('./commands-ux1fl1qK.mjs');
1922
1922
  await wiseAnnounceCli(machineId, text, sessionId, { json });
1923
1923
  return;
1924
1924
  }
@@ -1930,7 +1930,7 @@ async function handleWiseAgentCommand(rest) {
1930
1930
  }
1931
1931
  return void 0;
1932
1932
  };
1933
- const { wiseMeetingsCli } = await import('./commands-BiJbQChb.mjs');
1933
+ const { wiseMeetingsCli } = await import('./commands-ux1fl1qK.mjs');
1934
1934
  await wiseMeetingsCli(valueOf(["--machine", "-m"]), { json: rest.includes("--json") });
1935
1935
  return;
1936
1936
  }
@@ -1980,7 +1980,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1980
1980
  return;
1981
1981
  }
1982
1982
  const authArgs = rest.slice(1);
1983
- const mod = await import('./auth-Bp-lcNvX.mjs');
1983
+ const mod = await import('./auth-CFWhaPVg.mjs');
1984
1984
  let action;
1985
1985
  try {
1986
1986
  action = mod.parseWiseAgentAuthArgs(authArgs);
@@ -1990,7 +1990,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1990
1990
  return;
1991
1991
  }
1992
1992
  if (action) {
1993
- const { updateEnvFile } = await import('./run-CumVWywx.mjs').then(function (n) { return n.al; });
1993
+ const { updateEnvFile } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.al; });
1994
1994
  const updates = mod.buildWiseAgentEnvUpdates(action);
1995
1995
  updateEnvFile(updates);
1996
1996
  for (const [k, v] of Object.entries(updates)) {
@@ -2004,7 +2004,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
2004
2004
  }
2005
2005
  async function handleDaemonAuthCommand(argv) {
2006
2006
  const sub = (argv[0] || "status").toLowerCase();
2007
- const mod = await import('./run-CumVWywx.mjs').then(function (n) { return n.al; });
2007
+ const mod = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.al; });
2008
2008
  if (sub === "--help" || sub === "-h" || sub === "help") {
2009
2009
  console.log(`
2010
2010
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -2078,8 +2078,8 @@ one step: --use-hypha-proxy / --use-claude-login / --anthropic-base-url URL --an
2078
2078
  }
2079
2079
  async function handleDaemonCodexAuthCommand(argv) {
2080
2080
  const sub = (argv[0] || "status").toLowerCase();
2081
- const { updateEnvFile } = await import('./run-CumVWywx.mjs').then(function (n) { return n.al; });
2082
- const { resolveCodexProvider } = await import('./run-CumVWywx.mjs').then(function (n) { return n.am; });
2081
+ const { updateEnvFile } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.al; });
2082
+ const { resolveCodexProvider } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.am; });
2083
2083
  const redact = (k) => k && k.length > 10 ? `${k.slice(0, 6)}\u2026${k.slice(-4)}` : k ? "***" : "(unset)";
2084
2084
  if (sub === "--help" || sub === "-h" || sub === "help") {
2085
2085
  console.log(`
@@ -2411,7 +2411,7 @@ Examples:
2411
2411
  async function printSkillsHelp() {
2412
2412
  let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
2413
2413
  try {
2414
- const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-CumVWywx.mjs').then(function (n) { return n.at; });
2414
+ const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.at; });
2415
2415
  browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
2416
2416
  } catch {
2417
2417
  }
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import './run-CumVWywx.mjs';
1
+ import './run-BtIiSNjM.mjs';
2
2
  import './serviceManager-hlOVxkhW.mjs';
3
- import './cli-DXiODLrJ.mjs';
3
+ import './cli-E1osBiyj.mjs';
4
4
  import 'os';
5
5
  import 'fs/promises';
6
6
  import 'fs';
@@ -1,8 +1,8 @@
1
1
  import { execSync } from 'node:child_process';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
- import { f as flushAndExit } from './cli-DXiODLrJ.mjs';
5
- import { j as resolveProjectRoot, q as searchIssues, o as listIssues, l as resumeIssue, p as pauseIssue, m as addComment, u as updateIssue, k as getIssue, t as isVisibleTo, H as summarize, n as addIssue } from './run-CumVWywx.mjs';
4
+ import { f as flushAndExit } from './cli-E1osBiyj.mjs';
5
+ import { j as resolveProjectRoot, q as searchIssues, o as listIssues, l as resumeIssue, p as pauseIssue, m as addComment, u as updateIssue, k as getIssue, t as isVisibleTo, H as summarize, n as addIssue } from './run-BtIiSNjM.mjs';
6
6
  import './serviceManager-hlOVxkhW.mjs';
7
7
  import 'os';
8
8
  import 'fs/promises';
@@ -1,8 +1,8 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { resolve } from 'node:path';
3
- import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-BiJbQChb.mjs';
3
+ import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-ux1fl1qK.mjs';
4
4
  import { execFileSync } from 'node:child_process';
5
- import { u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-CumVWywx.mjs';
5
+ import { u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-BtIiSNjM.mjs';
6
6
  import 'node:os';
7
7
  import 'os';
8
8
  import 'fs/promises';
@@ -1,5 +1,5 @@
1
1
  import { spawnSync } from 'node:child_process';
2
- import { j as resolveProjectRoot, I as workflowSteps, z as setWorkflowEnabled, E as isWorkflowEnabled, A as removeWorkflow, x as getWorkflow, D as listWorkflows, B as saveWorkflow, C as rawWorkflow } from './run-CumVWywx.mjs';
2
+ import { j as resolveProjectRoot, I as workflowSteps, z as setWorkflowEnabled, E as isWorkflowEnabled, A as removeWorkflow, x as getWorkflow, D as listWorkflows, B as saveWorkflow, C as rawWorkflow } from './run-BtIiSNjM.mjs';
3
3
  import 'os';
4
4
  import 'fs/promises';
5
5
  import 'fs';
@@ -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 { O as parseFrontmatter, P as getSkillsServer, Q as getSkillsWorkspaceName, T as getSkillsCollectionName, U as fetchWithTimeout, V as searchSkills, W as SKILLS_DIR, X as getSkillInfo, Y as downloadSkillFile, Z as listSkillFiles } from './run-CumVWywx.mjs';
4
+ import { O as parseFrontmatter, P as getSkillsServer, Q as getSkillsWorkspaceName, T as getSkillsCollectionName, U as fetchWithTimeout, V as searchSkills, W as SKILLS_DIR, X as getSkillInfo, Y as downloadSkillFile, Z as listSkillFiles } from './run-BtIiSNjM.mjs';
5
5
  import 'fs/promises';
6
6
  import 'url';
7
7
  import 'child_process';
@@ -60,7 +60,7 @@ async function serviceExpose(args) {
60
60
  process.exit(1);
61
61
  }
62
62
  if (foreground) {
63
- const { runFrpcTunnel } = await import('./frpc-Czt8diGB.mjs');
63
+ const { runFrpcTunnel } = await import('./frpc-B1-dyz8z.mjs');
64
64
  await runFrpcTunnel(name, ports, void 0, {
65
65
  group,
66
66
  groupKey,
@@ -70,7 +70,7 @@ async function serviceExpose(args) {
70
70
  });
71
71
  return;
72
72
  }
73
- const { connectAndGetMachine } = await import('./commands-BiJbQChb.mjs');
73
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.mjs');
74
74
  const { server, machine } = await connectAndGetMachine();
75
75
  try {
76
76
  const status = await machine.tunnelStart({
@@ -92,7 +92,7 @@ async function serviceExpose(args) {
92
92
  console.log(` port ${port}: ${url}`);
93
93
  }
94
94
  if (process.env.SVAMP_SESSION_ID) {
95
- const { autoAddSessionLink } = await import('./agentCommands-SejhmIxj.mjs');
95
+ const { autoAddSessionLink } = await import('./agentCommands-CZjZsqJC.mjs');
96
96
  let added = 0;
97
97
  for (const [port, url] of urlEntries) {
98
98
  const label = urlEntries.length > 1 ? `${name}:${port}` : name;
@@ -129,7 +129,7 @@ async function serviceServe(args) {
129
129
  console.log(`Serving ${resolvedDir}`);
130
130
  const servePort = 18080;
131
131
  const http = await import('http');
132
- const { serveStaticMount } = await import('./run-CumVWywx.mjs').then(function (n) { return n.aj; });
132
+ const { serveStaticMount } = await import('./run-BtIiSNjM.mjs').then(function (n) { return n.aj; });
133
133
  const server = http.createServer((req, res) => {
134
134
  const u = new URL(req.url || "/", "http://127.0.0.1");
135
135
  let rel = u.pathname;
@@ -140,7 +140,7 @@ async function serviceServe(args) {
140
140
  server.once("error", reject);
141
141
  server.listen(servePort, "127.0.0.1", () => resolve());
142
142
  });
143
- const { runFrpcTunnel } = await import('./frpc-Czt8diGB.mjs');
143
+ const { runFrpcTunnel } = await import('./frpc-B1-dyz8z.mjs');
144
144
  void server;
145
145
  await runFrpcTunnel(name, [servePort]);
146
146
  } catch (err) {
@@ -150,7 +150,7 @@ async function serviceServe(args) {
150
150
  }
151
151
  async function serviceList(_args) {
152
152
  try {
153
- const { connectAndGetMachine } = await import('./commands-BiJbQChb.mjs');
153
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.mjs');
154
154
  const { server, machine } = await connectAndGetMachine();
155
155
  try {
156
156
  const tunnels = await machine.tunnelList({});
@@ -190,7 +190,7 @@ async function serviceDelete(args) {
190
190
  process.exit(1);
191
191
  }
192
192
  try {
193
- const { connectAndGetMachine } = await import('./commands-BiJbQChb.mjs');
193
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.mjs');
194
194
  const { server, machine } = await connectAndGetMachine();
195
195
  try {
196
196
  await machine.tunnelStop({ name });
@@ -1,11 +1,11 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-BiJbQChb.mjs';
3
+ import { connectAndGetMachine } from './commands-ux1fl1qK.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-CumVWywx.mjs';
8
+ import './run-BtIiSNjM.mjs';
9
9
  import 'os';
10
10
  import 'fs/promises';
11
11
  import 'url';
@@ -2,7 +2,7 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { execSync, execFileSync } from 'node:child_process';
3
3
  import { basename, resolve, join, isAbsolute } from 'node:path';
4
4
  import os from 'node:os';
5
- import { a1 as formatHandle, a2 as normalizeAllowedUser, a3 as loadSecurityContextConfig, a4 as resolveSecurityContext, a5 as buildSecurityContextFromFlags, a6 as mergeSecurityContexts, c as connectToHypha, a7 as buildSessionShareUrl, a8 as computeOutboundHop, i as shortId, a9 as registerAwaitingReply, aa as buildMachineShareUrl, ab as parseHandle, ac as handleMatchesMetadata } from './run-CumVWywx.mjs';
5
+ import { a1 as formatHandle, a2 as normalizeAllowedUser, a3 as loadSecurityContextConfig, a4 as resolveSecurityContext, a5 as buildSecurityContextFromFlags, a6 as mergeSecurityContexts, c as connectToHypha, a7 as buildSessionShareUrl, a8 as computeOutboundHop, i as shortId, a9 as registerAwaitingReply, aa as buildMachineShareUrl, ab as parseHandle, ac as handleMatchesMetadata } from './run-BtIiSNjM.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -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-CumVWywx.mjs';
4
+ import { c as connectToHypha } from './run-BtIiSNjM.mjs';
5
5
  import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-BaMR97BE.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
@@ -4,7 +4,7 @@ import { mkdirSync, chmodSync, writeFileSync, unlinkSync, existsSync, readFileSy
4
4
  import { join } from 'path';
5
5
  import { homedir, platform, arch } from 'os';
6
6
  import { randomUUID, createHash } from 'crypto';
7
- import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-CumVWywx.mjs';
7
+ import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-BtIiSNjM.mjs';
8
8
  import 'fs/promises';
9
9
  import 'url';
10
10
  import 'node:crypto';
@@ -1,5 +1,5 @@
1
- import { _ as resolveModel, ad as describeMisconfiguration, ae as buildMachineDeps } from './run-CumVWywx.mjs';
2
- import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CHcbWta4.mjs';
1
+ import { _ as resolveModel, ad as describeMisconfiguration, ae as buildMachineDeps } from './run-BtIiSNjM.mjs';
2
+ import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-BjUyyMW7.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-CumVWywx.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-BtIiSNjM.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,4 +1,4 @@
1
- import { c as connectToHypha, S as SharingNotificationSync, J as parseJwtEmail } from './run-CumVWywx.mjs';
1
+ import { c as connectToHypha, S as SharingNotificationSync, J as parseJwtEmail } from './run-BtIiSNjM.mjs';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { existsSync, readFileSync } from 'node:fs';
4
4
  import { join } from 'node:path';
@@ -1,5 +1,5 @@
1
1
  var name = "svamp-cli";
2
- var version = "0.2.278";
2
+ var version = "0.2.279";
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";
@@ -1,4 +1,4 @@
1
- import { j as resolveProjectRoot, u as updateIssue, k as getIssue, l as resumeIssue, p as pauseIssue, m as addComment, n as addIssue, o as listIssues, q as searchIssues, t as isVisibleTo } from './run-CumVWywx.mjs';
1
+ import { j as resolveProjectRoot, u as updateIssue, k as getIssue, l as resumeIssue, p as pauseIssue, m as addComment, n as addIssue, o as listIssues, q as searchIssues, t as isVisibleTo } from './run-BtIiSNjM.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,4 +1,4 @@
1
- import { j as resolveProjectRoot, v as getRun, w as listRuns, x as getWorkflow, y as runWorkflow, z as setWorkflowEnabled, A as removeWorkflow, B as saveWorkflow, C as rawWorkflow, D as listWorkflows } from './run-CumVWywx.mjs';
1
+ import { j as resolveProjectRoot, v as getRun, w as listRuns, x as getWorkflow, y as runWorkflow, z as setWorkflowEnabled, A as removeWorkflow, B as saveWorkflow, C as rawWorkflow, D as listWorkflows } from './run-BtIiSNjM.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,4 +1,4 @@
1
- import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { af as applyClaudeProxyEnv, ag as composeSessionId, ah as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ai as generateHookSettings } from './run-CumVWywx.mjs';
1
+ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { af as applyClaudeProxyEnv, ag as composeSessionId, ah as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ai as generateHookSettings } from './run-BtIiSNjM.mjs';
2
2
  import os from 'node:os';
3
3
  import { resolve, join } from 'node:path';
4
4
  import { existsSync, readFileSync, watch } from 'node:fs';
@@ -2973,7 +2973,7 @@ Connection: close\r
2973
2973
  const mount = this.mounts.get(mountName);
2974
2974
  const subdomainOverride = mount?.access === "link" && mount.linkToken ? /* @__PURE__ */ new Map([[this.port, buildLinkSubdomain(subdomainSafe, mount.linkToken)]]) : void 0;
2975
2975
  try {
2976
- const { FrpcTunnel } = await import('./frpc-Czt8diGB.mjs');
2976
+ const { FrpcTunnel } = await import('./frpc-B1-dyz8z.mjs');
2977
2977
  let tunnel;
2978
2978
  tunnel = new FrpcTunnel({
2979
2979
  name: tunnelName,
@@ -5816,7 +5816,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
5816
5816
  const tunnels = handlers.tunnels;
5817
5817
  if (!tunnels) throw new Error("Tunnel management not available");
5818
5818
  if (tunnels.has(params.name)) throw new Error(`Tunnel '${params.name}' already running`);
5819
- const { FrpcTunnel } = await import('./frpc-Czt8diGB.mjs');
5819
+ const { FrpcTunnel } = await import('./frpc-B1-dyz8z.mjs');
5820
5820
  const tunnel = new FrpcTunnel({
5821
5821
  name: params.name,
5822
5822
  ports: params.ports,
@@ -6292,7 +6292,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
6292
6292
  }
6293
6293
  const deps = buildSessionDeps(rpc, { cwd, ownerEmail: owner });
6294
6294
  const sender = { name: context?.user?.email || context?.user?.id || "user", kind: "user", verified: true };
6295
- const { toolsForRole } = await import('./sideband-CHcbWta4.mjs');
6295
+ const { toolsForRole } = await import('./sideband-BjUyyMW7.mjs');
6296
6296
  const r2 = await runWiseAgent({ message: params.message, sender, config: { tools: toolsForRole(role2) }, deps, transport, model: resolved.model });
6297
6297
  return fmt(r2);
6298
6298
  }
@@ -6391,7 +6391,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
6391
6391
  if (r.error || !r.sender) return { error: r.error || "unauthorized" };
6392
6392
  const callId = "call_" + Math.random().toString(16).slice(2, 12);
6393
6393
  const rendered = renderMessage(c, { sender: r.sender, body: { message: kwargs.message }, callId });
6394
- const { queryCore } = await import('./commands-BiJbQChb.mjs');
6394
+ const { queryCore } = await import('./commands-ux1fl1qK.mjs');
6395
6395
  const timeout = c.reply?.timeout_sec || 120;
6396
6396
  let result;
6397
6397
  try {
@@ -9496,6 +9496,9 @@ class SharingNotificationSync {
9496
9496
  artifact_id: alias,
9497
9497
  _rkwargs: true
9498
9498
  });
9499
+ if (extraConfig) {
9500
+ await this.reconcileCollectionConfig(alias, existing, extraConfig);
9501
+ }
9499
9502
  return existing.id;
9500
9503
  } catch {
9501
9504
  const collection = await this.artifactManager.create({
@@ -9514,6 +9517,27 @@ class SharingNotificationSync {
9514
9517
  return collection.id;
9515
9518
  }
9516
9519
  }
9520
+ /**
9521
+ * Add `extraConfig` keys to an EXISTING collection's config if any are missing, preserving the
9522
+ * current config (permissions etc.). One-time + best-effort — see ensureCollection for rationale.
9523
+ */
9524
+ async reconcileCollectionConfig(alias, existing, extraConfig) {
9525
+ try {
9526
+ const cfg = existing?.config || {};
9527
+ const missing = Object.entries(extraConfig).some(([k, v]) => cfg[k] !== v);
9528
+ if (!missing) return;
9529
+ await this.artifactManager.edit({
9530
+ artifact_id: existing.id,
9531
+ config: { ...cfg, ...extraConfig },
9532
+ _rkwargs: true
9533
+ });
9534
+ await this.artifactManager.commit({ artifact_id: existing.id, _rkwargs: true }).catch(() => {
9535
+ });
9536
+ this.log(`[SHARING NOTIFY] Reconciled config on ${alias} \u2014 added recipient-scoping flag`);
9537
+ } catch (err) {
9538
+ this.log(`[SHARING NOTIFY] Config reconcile on ${alias} skipped: ${err?.message || err}`);
9539
+ }
9540
+ }
9517
9541
  // ── Share bookmark artifacts (svamp-shared-sessions) ──────────────
9518
9542
  async notifyShare(params) {
9519
9543
  if (!this.initialized || !this.shareCollectionId) return;
@@ -16185,7 +16209,7 @@ async function startDaemon(options) {
16185
16209
  try {
16186
16210
  const dir = loadSessionIndex()[sessionId]?.directory;
16187
16211
  if (!dir) return;
16188
- const { reconcileServiceLinks } = await import('./agentCommands-SejhmIxj.mjs');
16212
+ const { reconcileServiceLinks } = await import('./agentCommands-CZjZsqJC.mjs');
16189
16213
  const configPath = getSvampConfigPath(dir, sessionId);
16190
16214
  const config = readSvampConfig(configPath);
16191
16215
  const entries = Array.from(urls.entries());
@@ -16203,7 +16227,7 @@ async function startDaemon(options) {
16203
16227
  }
16204
16228
  }
16205
16229
  async function createExposedTunnel(spec) {
16206
- const { FrpcTunnel } = await import('./frpc-Czt8diGB.mjs');
16230
+ const { FrpcTunnel } = await import('./frpc-B1-dyz8z.mjs');
16207
16231
  const tunnel = new FrpcTunnel({
16208
16232
  name: spec.name,
16209
16233
  ports: spec.ports,
@@ -18419,11 +18443,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
18419
18443
  });
18420
18444
  },
18421
18445
  onIssue: async (params) => {
18422
- const { issueRpc } = await import('./rpc-B_zN6Jvr.mjs');
18446
+ const { issueRpc } = await import('./rpc-2I8SlTrz.mjs');
18423
18447
  return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
18424
18448
  },
18425
18449
  onWorkflow: async (params) => {
18426
- const { workflowRpc } = await import('./rpc-AkzY2NVv.mjs');
18450
+ const { workflowRpc } = await import('./rpc-DKY7-oh-.mjs');
18427
18451
  return workflowRpc(params?.cwd || directory, params || {});
18428
18452
  },
18429
18453
  onRipgrep: async (args, cwd) => {
@@ -19035,11 +19059,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
19035
19059
  });
19036
19060
  },
19037
19061
  onIssue: async (params) => {
19038
- const { issueRpc } = await import('./rpc-B_zN6Jvr.mjs');
19062
+ const { issueRpc } = await import('./rpc-2I8SlTrz.mjs');
19039
19063
  return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
19040
19064
  },
19041
19065
  onWorkflow: async (params) => {
19042
- const { workflowRpc } = await import('./rpc-AkzY2NVv.mjs');
19066
+ const { workflowRpc } = await import('./rpc-DKY7-oh-.mjs');
19043
19067
  return workflowRpc(params?.cwd || directory, params || {});
19044
19068
  },
19045
19069
  onRipgrep: async (args, cwd) => {
@@ -20154,7 +20178,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
20154
20178
  const PING_TIMEOUT_MS = 15e3;
20155
20179
  const POST_RECONNECT_GRACE_MS = 2e4;
20156
20180
  const RECONNECT_JITTER_MS = 2500;
20157
- const { WorkflowScheduler } = await import('./scheduler-MPYVrdzd.mjs');
20181
+ const { WorkflowScheduler } = await import('./scheduler-BOnAtzax.mjs');
20158
20182
  const workflowScheduler = new WorkflowScheduler({
20159
20183
  projectRoots: () => {
20160
20184
  const dirs = /* @__PURE__ */ new Set();
@@ -1,4 +1,4 @@
1
- import { j as resolveProjectRoot, D as listWorkflows, E as isWorkflowEnabled, F as workflowCrons, y as runWorkflow, G as cronMatches } from './run-CumVWywx.mjs';
1
+ import { j as resolveProjectRoot, D as listWorkflows, E as isWorkflowEnabled, F as workflowCrons, y as runWorkflow, G as cronMatches } from './run-BtIiSNjM.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -54,7 +54,7 @@ async function handleServeCommand() {
54
54
  }
55
55
  }
56
56
  async function serveAdd(args, machineId) {
57
- const { connectAndGetMachine } = await import('./commands-BiJbQChb.mjs');
57
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.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-BiJbQChb.mjs');
96
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.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-BiJbQChb.mjs');
185
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.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-BiJbQChb.mjs');
205
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.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-BiJbQChb.mjs');
238
+ const { connectAndGetMachine } = await import('./commands-ux1fl1qK.mjs');
239
239
  const { machine, server } = await connectAndGetMachine(machineId);
240
240
  try {
241
241
  const info = await machine.serveInfo();
@@ -1,4 +1,4 @@
1
- import { R as READ_ONLY_TOOLS, K as loadMachineContext, L as buildMachineInstructions, M as machineToolsForRole, N as buildMachineTools } from './run-CumVWywx.mjs';
1
+ import { R as READ_ONLY_TOOLS, K as loadMachineContext, L as buildMachineInstructions, M as machineToolsForRole, N as buildMachineTools } from './run-BtIiSNjM.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.278",
3
+ "version": "0.2.279",
4
4
  "description": "Svamp CLI — AI workspace daemon on Hypha Cloud",
5
5
  "author": "Amun AI AB",
6
6
  "license": "SEE LICENSE IN LICENSE",