svamp-cli 0.2.312 → 0.2.313

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 (27) hide show
  1. package/dist/{adminCommands-CRQQhXsw.mjs → adminCommands-DINkkchF.mjs} +1 -1
  2. package/dist/{agentCommands-hLTce38n.mjs → agentCommands-CqHUKyRM.mjs} +5 -5
  3. package/dist/{auth-B2ZuhK_S.mjs → auth-fmYi12gU.mjs} +1 -1
  4. package/dist/{cli-HI-J8Y7U.mjs → cli-C0K7bTFQ.mjs} +70 -70
  5. package/dist/cli.mjs +2 -2
  6. package/dist/{commands-IPkpFWbi.mjs → commands-B2KHp8-n.mjs} +2 -2
  7. package/dist/{commands-ND3vwGkQ.mjs → commands-BlSsMfW6.mjs} +8 -8
  8. package/dist/{commands-C2zQmf3Y.mjs → commands-BspIWEyi.mjs} +1 -1
  9. package/dist/{commands-CmMh6R6S.mjs → commands-CE9x3OVJ.mjs} +1 -1
  10. package/dist/{commands-12pIcOWK.mjs → commands-DMG7VDBo.mjs} +1 -1
  11. package/dist/{commands-DGUgZoou.mjs → commands-DxwqcKtb.mjs} +2 -2
  12. package/dist/{commands-D6BqvSLe.mjs → commands-c57jjMV-.mjs} +2 -2
  13. package/dist/{commands-DpfYt_SX.mjs → commands-lt3_KA5S.mjs} +2 -2
  14. package/dist/{fleet-Cuv2uu1t.mjs → fleet-DX-cpu52.mjs} +1 -1
  15. package/dist/{frpc-DbZDLphz.mjs → frpc-B5LHRKTD.mjs} +1 -1
  16. package/dist/{headlessCli-DakQSPzS.mjs → headlessCli-BE4CanO7.mjs} +2 -2
  17. package/dist/index.mjs +1 -1
  18. package/dist/{notifyCommands-DhRbelQA.mjs → notifyCommands-Deh2F41t.mjs} +1 -1
  19. package/dist/{package-BKX7lisO.mjs → package-C9HRV5XP.mjs} +1 -1
  20. package/dist/{rpc-C7uDtxFw.mjs → rpc-BxOm5nyE.mjs} +1 -1
  21. package/dist/{rpc-Q4PWHeNn.mjs → rpc-DOl276lO.mjs} +1 -1
  22. package/dist/{run-DG0yDh6U.mjs → run-CDZ1g-Fa.mjs} +1 -1
  23. package/dist/{run-Ccf8_4AF.mjs → run-DI8N2DhV.mjs} +45 -11
  24. package/dist/{scheduler-B1xThM3A.mjs → scheduler-C0WXBdL_.mjs} +1 -1
  25. package/dist/{serveCommands-DDq9qzoN.mjs → serveCommands-DChM4ubY.mjs} +5 -5
  26. package/dist/{sideband-CDdpZAXO.mjs → sideband-BdHdwflN.mjs} +1 -1
  27. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { c as connectToHypha, M as computeCollectionConfigUpdate, N as SYSTEM_COLLECTION_CONFIG } from './run-Ccf8_4AF.mjs';
1
+ import { c as connectToHypha, M as computeCollectionConfigUpdate, N as SYSTEM_COLLECTION_CONFIG } from './run-DI8N2DhV.mjs';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import os from 'node:os';
@@ -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-Ccf8_4AF.mjs';
5
+ import { i as shortId } from './run-DI8N2DhV.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-Ccf8_4AF.mjs').then(function (n) { return n.at; });
99
+ const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.at; });
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-C2zQmf3Y.mjs');
346
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.mjs');
347
347
  return connectAndGetMachine();
348
348
  }
349
349
  function buildInboxMessage(args) {
@@ -426,7 +426,7 @@ async function inboxSend(targetSessionId, opts) {
426
426
  console.error("Message body is required.");
427
427
  process.exit(1);
428
428
  }
429
- const { connectAndResolveSession } = await import('./commands-C2zQmf3Y.mjs');
429
+ const { connectAndResolveSession } = await import('./commands-BspIWEyi.mjs');
430
430
  let server;
431
431
  try {
432
432
  const { targetId, messageId } = await inboxSendCore(
@@ -481,7 +481,7 @@ async function inboxReply(messageId, body, opts) {
481
481
  console.error("SVAMP_SESSION_ID not set. This command must be run inside a Svamp session.");
482
482
  process.exit(1);
483
483
  }
484
- const { connectAndResolveSession } = await import('./commands-C2zQmf3Y.mjs');
484
+ const { connectAndResolveSession } = await import('./commands-BspIWEyi.mjs');
485
485
  const { server: localServer, machine: localMachine } = await connectToMachineService();
486
486
  let localDisconnected = false;
487
487
  const disconnectLocal = async () => {
@@ -1,4 +1,4 @@
1
- import { a3 as resolveModel } from './run-Ccf8_4AF.mjs';
1
+ import { a3 as resolveModel } from './run-DI8N2DhV.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -1,4 +1,4 @@
1
- import { a4 as clearStopMarker, a5 as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-Ccf8_4AF.mjs';
1
+ import { a4 as clearStopMarker, a5 as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-DI8N2DhV.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-Ccf8_4AF.mjs').then(function (n) { return n.aq; });
36
+ const { getLoadedConfig } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.aq; });
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-Ccf8_4AF.mjs').then(function (n) { return n.aA; });
55
+ const mod = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.aA; });
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-ND3vwGkQ.mjs');
359
+ const { handleServiceCommand } = await import('./commands-BlSsMfW6.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-DDq9qzoN.mjs');
367
+ const { handleServeCommand } = await import('./serveCommands-DChM4ubY.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-IPkpFWbi.mjs');
376
+ const { processCommand } = await import('./commands-B2KHp8-n.mjs');
377
377
  let machineId;
378
378
  const processArgs = args.slice(1);
379
379
  const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
@@ -387,26 +387,26 @@ async function main() {
387
387
  }), machineId);
388
388
  process.exit(0);
389
389
  } else if (subcommand === "outpost") {
390
- const { outpostCommand } = await import('./commands-DGUgZoou.mjs');
390
+ const { outpostCommand } = await import('./commands-DxwqcKtb.mjs');
391
391
  await outpostCommand(args.slice(1));
392
392
  process.exit(0);
393
393
  } else if (subcommand === "issue" || subcommand === "issues") {
394
- const { issueCommand } = await import('./commands-D6BqvSLe.mjs');
394
+ const { issueCommand } = await import('./commands-c57jjMV-.mjs');
395
395
  await issueCommand(args.slice(1));
396
396
  await flushAndExit(0);
397
397
  } else if (subcommand === "workflow" || subcommand === "workflows") {
398
- const { workflowCommand } = await import('./commands-12pIcOWK.mjs');
398
+ const { workflowCommand } = await import('./commands-DMG7VDBo.mjs');
399
399
  await workflowCommand(args.slice(1));
400
400
  await flushAndExit(0);
401
401
  } else if (subcommand === "wise-agent" || subcommand === "wise") {
402
402
  await handleWiseAgentCommand(args.slice(1));
403
403
  process.exit(0);
404
404
  } else if (subcommand === "feature" || subcommand === "crew") {
405
- const { crewCommand } = await import('./commands-DpfYt_SX.mjs');
405
+ const { crewCommand } = await import('./commands-lt3_KA5S.mjs');
406
406
  await crewCommand(args.slice(1));
407
407
  process.exit(0);
408
408
  } else if (subcommand === "notify") {
409
- const { notifyUser } = await import('./notifyCommands-DhRbelQA.mjs');
409
+ const { notifyUser } = await import('./notifyCommands-Deh2F41t.mjs');
410
410
  const rest = args.slice(1);
411
411
  let email;
412
412
  const o = {};
@@ -423,7 +423,7 @@ async function main() {
423
423
  } else if (subcommand === "admin") {
424
424
  const adminSub = args[1];
425
425
  if (adminSub === "set-collection-config") {
426
- const { setCollectionConfig } = await import('./adminCommands-CRQQhXsw.mjs');
426
+ const { setCollectionConfig } = await import('./adminCommands-DINkkchF.mjs');
427
427
  const rest = args.slice(2);
428
428
  let alias;
429
429
  let configJson;
@@ -433,10 +433,10 @@ async function main() {
433
433
  }
434
434
  await setCollectionConfig(alias, configJson);
435
435
  } else if (adminSub === "create-system-collections") {
436
- const { createSystemCollections } = await import('./adminCommands-CRQQhXsw.mjs');
436
+ const { createSystemCollections } = await import('./adminCommands-DINkkchF.mjs');
437
437
  await createSystemCollections();
438
438
  } else if (adminSub === "migrate-collection-children") {
439
- const { migrateCollectionChildren } = await import('./adminCommands-CRQQhXsw.mjs');
439
+ const { migrateCollectionChildren } = await import('./adminCommands-DINkkchF.mjs');
440
440
  const rest = args.slice(2).filter((a) => !a.startsWith("-"));
441
441
  await migrateCollectionChildren(rest[0], rest[1]);
442
442
  } else {
@@ -444,7 +444,7 @@ async function main() {
444
444
  }
445
445
  process.exit(0);
446
446
  } else if (subcommand === "events") {
447
- const { listEvents, ackEvent } = await import('./notifyCommands-DhRbelQA.mjs');
447
+ const { listEvents, ackEvent } = await import('./notifyCommands-Deh2F41t.mjs');
448
448
  const sub = args[1];
449
449
  const rest = args.slice(2);
450
450
  let email;
@@ -465,7 +465,7 @@ async function main() {
465
465
  } else if (!subcommand || subcommand === "start") {
466
466
  await handleInteractiveCommand();
467
467
  } else if (subcommand === "--version" || subcommand === "-v") {
468
- const pkg = await import('./package-BKX7lisO.mjs').catch(() => ({ default: { version: "unknown" } }));
468
+ const pkg = await import('./package-C9HRV5XP.mjs').catch(() => ({ default: { version: "unknown" } }));
469
469
  console.log(`svamp version: ${pkg.default.version}`);
470
470
  } else {
471
471
  console.error(`Unknown command: ${subcommand}`);
@@ -474,7 +474,7 @@ async function main() {
474
474
  }
475
475
  }
476
476
  async function handleInteractiveCommand() {
477
- const { runInteractive } = await import('./run-DG0yDh6U.mjs');
477
+ const { runInteractive } = await import('./run-CDZ1g-Fa.mjs');
478
478
  const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
479
479
  let directory = process.cwd();
480
480
  let resumeSessionId;
@@ -519,7 +519,7 @@ async function handleAgentCommand() {
519
519
  return;
520
520
  }
521
521
  if (agentArgs[0] === "list") {
522
- const { KNOWN_ACP_AGENTS, KNOWN_CODEX_AGENTS: KNOWN_CODEX_AGENTS2 } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.aw; });
522
+ const { KNOWN_ACP_AGENTS, KNOWN_CODEX_AGENTS: KNOWN_CODEX_AGENTS2 } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.aw; });
523
523
  console.log("Known agents:");
524
524
  for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
525
525
  console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
@@ -531,7 +531,7 @@ async function handleAgentCommand() {
531
531
  console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
532
532
  return;
533
533
  }
534
- const { resolveAcpAgentConfig, KNOWN_CODEX_AGENTS } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.aw; });
534
+ const { resolveAcpAgentConfig, KNOWN_CODEX_AGENTS } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.aw; });
535
535
  let cwd = process.cwd();
536
536
  const filteredArgs = [];
537
537
  for (let i = 0; i < agentArgs.length; i++) {
@@ -555,12 +555,12 @@ async function handleAgentCommand() {
555
555
  console.log(`Starting ${config.agentName} agent in ${cwd}...`);
556
556
  let backend;
557
557
  if (KNOWN_CODEX_AGENTS[config.agentName]) {
558
- const { CodexAppServerBackend } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ax; });
558
+ const { CodexAppServerBackend } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ax; });
559
559
  backend = new CodexAppServerBackend({ cwd, log: logFn });
560
560
  } else {
561
- const { AcpBackend } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.av; });
562
- const { GeminiTransport } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ay; });
563
- const { DefaultTransport } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.au; });
561
+ const { AcpBackend } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.av; });
562
+ const { GeminiTransport } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ay; });
563
+ const { DefaultTransport } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.au; });
564
564
  const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
565
565
  backend = new AcpBackend({
566
566
  agentName: config.agentName,
@@ -687,7 +687,7 @@ async function handleSessionCommand() {
687
687
  process.exit(1);
688
688
  }
689
689
  }
690
- 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-C2zQmf3Y.mjs');
690
+ 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-BspIWEyi.mjs');
691
691
  const parseFlagStr = (flag, shortFlag) => {
692
692
  for (let i = 1; i < sessionArgs.length; i++) {
693
693
  if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
@@ -755,7 +755,7 @@ async function handleSessionCommand() {
755
755
  allowDomain.push(sessionArgs[++i]);
756
756
  }
757
757
  }
758
- const { parseShareArg } = await import('./commands-C2zQmf3Y.mjs');
758
+ const { parseShareArg } = await import('./commands-BspIWEyi.mjs');
759
759
  const shareEntries = share.map((s) => parseShareArg(s));
760
760
  await sessionSpawn(agent, dir, targetMachineId, {
761
761
  message,
@@ -846,7 +846,7 @@ async function handleSessionCommand() {
846
846
  console.error(" Rewinds history: rewrites the message + drops everything after it, then restarts Claude.");
847
847
  process.exit(1);
848
848
  }
849
- const { sessionEditMessage } = await import('./commands-C2zQmf3Y.mjs');
849
+ const { sessionEditMessage } = await import('./commands-BspIWEyi.mjs');
850
850
  await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
851
851
  } else if (sessionSubcommand === "refine") {
852
852
  if (!sessionArgs[1] || !sessionArgs[2]) {
@@ -854,7 +854,7 @@ async function handleSessionCommand() {
854
854
  console.error(" Asks the agent to revise its latest reply in place (no extra round).");
855
855
  process.exit(1);
856
856
  }
857
- const { sessionRefineLastReply } = await import('./commands-C2zQmf3Y.mjs');
857
+ const { sessionRefineLastReply } = await import('./commands-BspIWEyi.mjs');
858
858
  await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
859
859
  } else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
860
860
  if (!sessionArgs[1]) {
@@ -862,7 +862,7 @@ async function handleSessionCommand() {
862
862
  console.error(" Reverts the most recent edit/refine, restoring the pre-edit history.");
863
863
  process.exit(1);
864
864
  }
865
- const { sessionUndoEdit } = await import('./commands-C2zQmf3Y.mjs');
865
+ const { sessionUndoEdit } = await import('./commands-BspIWEyi.mjs');
866
866
  await sessionUndoEdit(sessionArgs[1], targetMachineId);
867
867
  } else if (sessionSubcommand === "query") {
868
868
  const dir = sessionArgs[1];
@@ -872,7 +872,7 @@ async function handleSessionCommand() {
872
872
  console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
873
873
  process.exit(1);
874
874
  }
875
- const { sessionQuery } = await import('./commands-C2zQmf3Y.mjs');
875
+ const { sessionQuery } = await import('./commands-BspIWEyi.mjs');
876
876
  await sessionQuery(dir, prompt, targetMachineId, {
877
877
  timeout: parseFlagInt("--timeout"),
878
878
  json: hasFlag("--json"),
@@ -905,7 +905,7 @@ async function handleSessionCommand() {
905
905
  console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
906
906
  process.exit(1);
907
907
  }
908
- const { sessionApprove } = await import('./commands-C2zQmf3Y.mjs');
908
+ const { sessionApprove } = await import('./commands-BspIWEyi.mjs');
909
909
  const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
910
910
  await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
911
911
  json: hasFlag("--json")
@@ -915,7 +915,7 @@ async function handleSessionCommand() {
915
915
  console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
916
916
  process.exit(1);
917
917
  }
918
- const { sessionDeny } = await import('./commands-C2zQmf3Y.mjs');
918
+ const { sessionDeny } = await import('./commands-BspIWEyi.mjs');
919
919
  const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
920
920
  await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
921
921
  json: hasFlag("--json")
@@ -967,7 +967,7 @@ async function handleSessionCommand() {
967
967
  console.error("Usage: svamp session set-title <title>");
968
968
  process.exit(1);
969
969
  }
970
- const { sessionSetTitle } = await import('./agentCommands-hLTce38n.mjs');
970
+ const { sessionSetTitle } = await import('./agentCommands-CqHUKyRM.mjs');
971
971
  await sessionSetTitle(title);
972
972
  } else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
973
973
  const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
@@ -975,7 +975,7 @@ async function handleSessionCommand() {
975
975
  console.error("Usage: svamp session set-project-description <text>");
976
976
  process.exit(1);
977
977
  }
978
- const { sessionSetProjectDescription } = await import('./agentCommands-hLTce38n.mjs');
978
+ const { sessionSetProjectDescription } = await import('./agentCommands-CqHUKyRM.mjs');
979
979
  await sessionSetProjectDescription(desc);
980
980
  } else if (sessionSubcommand === "set-link") {
981
981
  const url = sessionArgs[1];
@@ -984,11 +984,11 @@ async function handleSessionCommand() {
984
984
  process.exit(1);
985
985
  }
986
986
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
987
- const { sessionSetLink } = await import('./agentCommands-hLTce38n.mjs');
987
+ const { sessionSetLink } = await import('./agentCommands-CqHUKyRM.mjs');
988
988
  await sessionSetLink(url, label);
989
989
  } else if (sessionSubcommand === "link") {
990
990
  const op = sessionArgs[1];
991
- const lm = await import('./agentCommands-hLTce38n.mjs');
991
+ const lm = await import('./agentCommands-CqHUKyRM.mjs');
992
992
  if (op === "add") {
993
993
  const url = sessionArgs[2];
994
994
  if (!url || url.startsWith("--")) {
@@ -1023,7 +1023,7 @@ async function handleSessionCommand() {
1023
1023
  process.exit(1);
1024
1024
  }
1025
1025
  const level = parseFlagStr("--level") || "info";
1026
- const { sessionNotify } = await import('./agentCommands-hLTce38n.mjs');
1026
+ const { sessionNotify } = await import('./agentCommands-CqHUKyRM.mjs');
1027
1027
  await sessionNotify(message, level);
1028
1028
  } else if (sessionSubcommand === "broadcast") {
1029
1029
  const action = sessionArgs[1];
@@ -1031,7 +1031,7 @@ async function handleSessionCommand() {
1031
1031
  console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
1032
1032
  process.exit(1);
1033
1033
  }
1034
- const { sessionBroadcast } = await import('./agentCommands-hLTce38n.mjs');
1034
+ const { sessionBroadcast } = await import('./agentCommands-CqHUKyRM.mjs');
1035
1035
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
1036
1036
  } else if (sessionSubcommand === "inbox") {
1037
1037
  const inboxSubcmd = sessionArgs[1];
@@ -1042,7 +1042,7 @@ async function handleSessionCommand() {
1042
1042
  process.exit(1);
1043
1043
  }
1044
1044
  if (agentSessionId) {
1045
- const { inboxSend } = await import('./agentCommands-hLTce38n.mjs');
1045
+ const { inboxSend } = await import('./agentCommands-CqHUKyRM.mjs');
1046
1046
  await inboxSend(sessionArgs[2], {
1047
1047
  body: sessionArgs[3],
1048
1048
  subject: parseFlagStr("--subject"),
@@ -1059,7 +1059,7 @@ async function handleSessionCommand() {
1059
1059
  }
1060
1060
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
1061
1061
  if (agentSessionId && !sessionArgs[2]) {
1062
- const { inboxList } = await import('./agentCommands-hLTce38n.mjs');
1062
+ const { inboxList } = await import('./agentCommands-CqHUKyRM.mjs');
1063
1063
  await inboxList({
1064
1064
  unread: hasFlag("--unread"),
1065
1065
  limit: parseFlagInt("--limit"),
@@ -1081,7 +1081,7 @@ async function handleSessionCommand() {
1081
1081
  process.exit(1);
1082
1082
  }
1083
1083
  if (agentSessionId && !sessionArgs[3]) {
1084
- const { inboxList } = await import('./agentCommands-hLTce38n.mjs');
1084
+ const { inboxList } = await import('./agentCommands-CqHUKyRM.mjs');
1085
1085
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
1086
1086
  } else if (sessionArgs[3]) {
1087
1087
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -1091,7 +1091,7 @@ async function handleSessionCommand() {
1091
1091
  }
1092
1092
  } else if (inboxSubcmd === "reply") {
1093
1093
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
1094
- const { inboxReply } = await import('./agentCommands-hLTce38n.mjs');
1094
+ const { inboxReply } = await import('./agentCommands-CqHUKyRM.mjs');
1095
1095
  await inboxReply(sessionArgs[2], sessionArgs[3]);
1096
1096
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
1097
1097
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -1129,7 +1129,7 @@ async function handleMachineCommand() {
1129
1129
  return;
1130
1130
  }
1131
1131
  if (machineSubcommand === "share") {
1132
- const { machineShare } = await import('./commands-C2zQmf3Y.mjs');
1132
+ const { machineShare } = await import('./commands-BspIWEyi.mjs');
1133
1133
  let machineId;
1134
1134
  const shareArgs = [];
1135
1135
  for (let i = 1; i < machineArgs.length; i++) {
@@ -1180,14 +1180,14 @@ async function handleMachineCommand() {
1180
1180
  process.exit(1);
1181
1181
  }
1182
1182
  if (all) {
1183
- const { fleetExec } = await import('./fleet-Cuv2uu1t.mjs');
1183
+ const { fleetExec } = await import('./fleet-DX-cpu52.mjs');
1184
1184
  await fleetExec(command, { cwd });
1185
1185
  } else {
1186
- const { machineExec } = await import('./commands-C2zQmf3Y.mjs');
1186
+ const { machineExec } = await import('./commands-BspIWEyi.mjs');
1187
1187
  await machineExec(machineId, command, cwd);
1188
1188
  }
1189
1189
  } else if (machineSubcommand === "info") {
1190
- const { machineInfo } = await import('./commands-C2zQmf3Y.mjs');
1190
+ const { machineInfo } = await import('./commands-BspIWEyi.mjs');
1191
1191
  let machineId;
1192
1192
  for (let i = 1; i < machineArgs.length; i++) {
1193
1193
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -1207,10 +1207,10 @@ async function handleMachineCommand() {
1207
1207
  level = machineArgs[++i];
1208
1208
  }
1209
1209
  }
1210
- const { machineNotify } = await import('./agentCommands-hLTce38n.mjs');
1210
+ const { machineNotify } = await import('./agentCommands-CqHUKyRM.mjs');
1211
1211
  await machineNotify(message, level);
1212
1212
  } else if (machineSubcommand === "ls") {
1213
- const { machineLs } = await import('./commands-C2zQmf3Y.mjs');
1213
+ const { machineLs } = await import('./commands-BspIWEyi.mjs');
1214
1214
  let machineId;
1215
1215
  let showHidden = false;
1216
1216
  let path;
@@ -1272,23 +1272,23 @@ Examples:
1272
1272
  };
1273
1273
  const hasFlag = (name) => fleetArgs.includes(`--${name}`);
1274
1274
  if (sub === "status") {
1275
- const { fleetStatus } = await import('./fleet-Cuv2uu1t.mjs');
1275
+ const { fleetStatus } = await import('./fleet-DX-cpu52.mjs');
1276
1276
  await fleetStatus();
1277
1277
  } else if (sub === "upgrade-claude") {
1278
- const { fleetUpgradeClaude } = await import('./fleet-Cuv2uu1t.mjs');
1278
+ const { fleetUpgradeClaude } = await import('./fleet-DX-cpu52.mjs');
1279
1279
  await fleetUpgradeClaude({ version: flag("version", "-v") });
1280
1280
  } else if (sub === "upgrade-codex") {
1281
- const { fleetUpgradeCodex } = await import('./fleet-Cuv2uu1t.mjs');
1281
+ const { fleetUpgradeCodex } = await import('./fleet-DX-cpu52.mjs');
1282
1282
  await fleetUpgradeCodex({ version: flag("version", "-v") });
1283
1283
  } else if (sub === "upgrade-svamp") {
1284
- const { fleetUpgradeSvamp } = await import('./fleet-Cuv2uu1t.mjs');
1284
+ const { fleetUpgradeSvamp } = await import('./fleet-DX-cpu52.mjs');
1285
1285
  await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self"), force: hasFlag("force") });
1286
1286
  } else if (sub === "daemon-restart") {
1287
- const { fleetDaemonRestart } = await import('./fleet-Cuv2uu1t.mjs');
1287
+ const { fleetDaemonRestart } = await import('./fleet-DX-cpu52.mjs');
1288
1288
  await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
1289
1289
  } else if (sub === "push-skill") {
1290
1290
  const name = fleetArgs[1];
1291
- const { fleetPushSkill } = await import('./fleet-Cuv2uu1t.mjs');
1291
+ const { fleetPushSkill } = await import('./fleet-DX-cpu52.mjs');
1292
1292
  await fleetPushSkill(name);
1293
1293
  } else {
1294
1294
  console.error(`Unknown fleet subcommand: ${sub}`);
@@ -1304,7 +1304,7 @@ async function handleSkillsCommand() {
1304
1304
  await printSkillsHelp();
1305
1305
  return;
1306
1306
  }
1307
- const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-CmMh6R6S.mjs');
1307
+ const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-CE9x3OVJ.mjs');
1308
1308
  if (skillsSubcommand === "find" || skillsSubcommand === "search") {
1309
1309
  const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1310
1310
  if (!query) {
@@ -1351,7 +1351,7 @@ async function loginToHypha() {
1351
1351
  process.exit(1);
1352
1352
  }
1353
1353
  const anchor = anchorArg.replace(/\/+$/, "");
1354
- const { loadInstanceConfig } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.aq; });
1354
+ const { loadInstanceConfig } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.aq; });
1355
1355
  let cfg = null;
1356
1356
  try {
1357
1357
  cfg = await loadInstanceConfig({ anchor, force: true });
@@ -1462,7 +1462,7 @@ async function logoutFromHypha() {
1462
1462
  } catch {
1463
1463
  }
1464
1464
  try {
1465
- const { clearInstanceConfigCache } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.aq; });
1465
+ const { clearInstanceConfigCache } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.aq; });
1466
1466
  clearInstanceConfigCache();
1467
1467
  } catch {
1468
1468
  }
@@ -1808,7 +1808,7 @@ async function applyClaudeAuthFlags(argv) {
1808
1808
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
1809
1809
  );
1810
1810
  }
1811
- const mod = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ar; });
1811
+ const mod = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ar; });
1812
1812
  if (hasHypha) {
1813
1813
  let url;
1814
1814
  const hyphaIdx = argv.indexOf("--use-hypha-proxy");
@@ -1862,7 +1862,7 @@ async function applyDaemonShareFlag(argv) {
1862
1862
  }
1863
1863
  }
1864
1864
  if (collected.length === 0) return;
1865
- const { updateEnvFile } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ar; });
1865
+ const { updateEnvFile } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ar; });
1866
1866
  const seen = /* @__PURE__ */ new Set();
1867
1867
  const deduped = collected.filter((e) => {
1868
1868
  const k = e.toLowerCase();
@@ -1895,7 +1895,7 @@ async function handleWiseAgentCommand(rest) {
1895
1895
  }
1896
1896
  });
1897
1897
  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(" ");
1898
- const { wiseAskCli } = await import('./commands-C2zQmf3Y.mjs');
1898
+ const { wiseAskCli } = await import('./commands-BspIWEyi.mjs');
1899
1899
  await wiseAskCli(machineId, message, sessionId, { json });
1900
1900
  return;
1901
1901
  }
@@ -1907,7 +1907,7 @@ async function handleWiseAgentCommand(rest) {
1907
1907
  }
1908
1908
  return void 0;
1909
1909
  };
1910
- const { runWiseVoiceCli } = await import('./headlessCli-DakQSPzS.mjs');
1910
+ const { runWiseVoiceCli } = await import('./headlessCli-BE4CanO7.mjs');
1911
1911
  await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
1912
1912
  return;
1913
1913
  }
@@ -1925,7 +1925,7 @@ async function handleWiseAgentCommand(rest) {
1925
1925
  const mode = valueOf(["--mode"]);
1926
1926
  const mission = valueOf(["--mission"]);
1927
1927
  const url = rest.slice(1).find((a) => /^https?:\/\//.test(a)) || "";
1928
- const { wiseJoinMeetingCli } = await import('./commands-C2zQmf3Y.mjs');
1928
+ const { wiseJoinMeetingCli } = await import('./commands-BspIWEyi.mjs');
1929
1929
  await wiseJoinMeetingCli(machineId, url, sessionId, { json, mode, mission });
1930
1930
  return;
1931
1931
  }
@@ -1937,7 +1937,7 @@ async function handleWiseAgentCommand(rest) {
1937
1937
  }
1938
1938
  return void 0;
1939
1939
  };
1940
- const { wiseLeaveMeetingCli } = await import('./commands-C2zQmf3Y.mjs');
1940
+ const { wiseLeaveMeetingCli } = await import('./commands-BspIWEyi.mjs');
1941
1941
  await wiseLeaveMeetingCli(valueOf(["--machine", "-m"]), valueOf(["--session", "-s"]), { json: rest.includes("--json") });
1942
1942
  return;
1943
1943
  }
@@ -1961,7 +1961,7 @@ async function handleWiseAgentCommand(rest) {
1961
1961
  }
1962
1962
  });
1963
1963
  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(" ");
1964
- const { wiseAnnounceCli } = await import('./commands-C2zQmf3Y.mjs');
1964
+ const { wiseAnnounceCli } = await import('./commands-BspIWEyi.mjs');
1965
1965
  await wiseAnnounceCli(machineId, text, sessionId, { json });
1966
1966
  return;
1967
1967
  }
@@ -1973,7 +1973,7 @@ async function handleWiseAgentCommand(rest) {
1973
1973
  }
1974
1974
  return void 0;
1975
1975
  };
1976
- const { wiseMeetingsCli } = await import('./commands-C2zQmf3Y.mjs');
1976
+ const { wiseMeetingsCli } = await import('./commands-BspIWEyi.mjs');
1977
1977
  await wiseMeetingsCli(valueOf(["--machine", "-m"]), { json: rest.includes("--json") });
1978
1978
  return;
1979
1979
  }
@@ -2023,7 +2023,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
2023
2023
  return;
2024
2024
  }
2025
2025
  const authArgs = rest.slice(1);
2026
- const mod = await import('./auth-B2ZuhK_S.mjs');
2026
+ const mod = await import('./auth-fmYi12gU.mjs');
2027
2027
  let action;
2028
2028
  try {
2029
2029
  action = mod.parseWiseAgentAuthArgs(authArgs);
@@ -2033,7 +2033,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
2033
2033
  return;
2034
2034
  }
2035
2035
  if (action) {
2036
- const { updateEnvFile } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ar; });
2036
+ const { updateEnvFile } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ar; });
2037
2037
  const updates = mod.buildWiseAgentEnvUpdates(action);
2038
2038
  updateEnvFile(updates);
2039
2039
  for (const [k, v] of Object.entries(updates)) {
@@ -2047,7 +2047,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
2047
2047
  }
2048
2048
  async function handleDaemonAuthCommand(argv) {
2049
2049
  const sub = (argv[0] || "status").toLowerCase();
2050
- const mod = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ar; });
2050
+ const mod = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ar; });
2051
2051
  if (sub === "--help" || sub === "-h" || sub === "help") {
2052
2052
  console.log(`
2053
2053
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -2121,8 +2121,8 @@ one step: --use-hypha-proxy / --use-claude-login / --anthropic-base-url URL --an
2121
2121
  }
2122
2122
  async function handleDaemonCodexAuthCommand(argv) {
2123
2123
  const sub = (argv[0] || "status").toLowerCase();
2124
- const { updateEnvFile } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ar; });
2125
- const { resolveCodexProvider } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.as; });
2124
+ const { updateEnvFile } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ar; });
2125
+ const { resolveCodexProvider } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.as; });
2126
2126
  const redact = (k) => k && k.length > 10 ? `${k.slice(0, 6)}\u2026${k.slice(-4)}` : k ? "***" : "(unset)";
2127
2127
  if (sub === "--help" || sub === "-h" || sub === "help") {
2128
2128
  console.log(`
@@ -2455,7 +2455,7 @@ Examples:
2455
2455
  async function printSkillsHelp() {
2456
2456
  let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
2457
2457
  try {
2458
- const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.az; });
2458
+ const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.az; });
2459
2459
  browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
2460
2460
  } catch {
2461
2461
  }
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import './run-Ccf8_4AF.mjs';
1
+ import './run-DI8N2DhV.mjs';
2
2
  import './serviceManager-hlOVxkhW.mjs';
3
- import './cli-HI-J8Y7U.mjs';
3
+ import './cli-C0K7bTFQ.mjs';
4
4
  import 'os';
5
5
  import 'fs/promises';
6
6
  import 'fs';
@@ -1,11 +1,11 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-C2zQmf3Y.mjs';
3
+ import { connectAndGetMachine } from './commands-BspIWEyi.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-Ccf8_4AF.mjs';
8
+ import './run-DI8N2DhV.mjs';
9
9
  import 'os';
10
10
  import 'fs/promises';
11
11
  import 'url';
@@ -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-DbZDLphz.mjs');
63
+ const { runFrpcTunnel } = await import('./frpc-B5LHRKTD.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-C2zQmf3Y.mjs');
73
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.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-hLTce38n.mjs');
95
+ const { autoAddSessionLink } = await import('./agentCommands-CqHUKyRM.mjs');
96
96
  let added = 0;
97
97
  for (const [port, url] of urlEntries) {
98
98
  const label = urlEntries.length > 1 ? `${name}:${port}` : name;
@@ -128,8 +128,8 @@ async function serviceServe(args) {
128
128
  const resolvedDir = path.resolve(directory);
129
129
  console.log(`Serving ${resolvedDir}`);
130
130
  const http = await import('http');
131
- const { serveStaticMount } = await import('./run-Ccf8_4AF.mjs').then(function (n) { return n.ap; });
132
- const { getFreePort } = await import('./frpc-DbZDLphz.mjs');
131
+ const { serveStaticMount } = await import('./run-DI8N2DhV.mjs').then(function (n) { return n.ap; });
132
+ const { getFreePort } = await import('./frpc-B5LHRKTD.mjs');
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;
@@ -152,7 +152,7 @@ async function serviceServe(args) {
152
152
  resolve(18080);
153
153
  });
154
154
  });
155
- const { runFrpcTunnel } = await import('./frpc-DbZDLphz.mjs');
155
+ const { runFrpcTunnel } = await import('./frpc-B5LHRKTD.mjs');
156
156
  void server;
157
157
  await runFrpcTunnel(name, [servePort]);
158
158
  } catch (err) {
@@ -162,7 +162,7 @@ async function serviceServe(args) {
162
162
  }
163
163
  async function serviceList(_args) {
164
164
  try {
165
- const { connectAndGetMachine } = await import('./commands-C2zQmf3Y.mjs');
165
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.mjs');
166
166
  const { server, machine } = await connectAndGetMachine();
167
167
  try {
168
168
  const tunnels = await machine.tunnelList({});
@@ -202,7 +202,7 @@ async function serviceDelete(args) {
202
202
  process.exit(1);
203
203
  }
204
204
  try {
205
- const { connectAndGetMachine } = await import('./commands-C2zQmf3Y.mjs');
205
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.mjs');
206
206
  const { server, machine } = await connectAndGetMachine();
207
207
  try {
208
208
  await machine.tunnelStop({ name });
@@ -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 { a6 as formatHandle, a7 as normalizeAllowedUser, a8 as loadSecurityContextConfig, a9 as resolveSecurityContext, aa as buildSecurityContextFromFlags, ab as mergeSecurityContexts, c as connectToHypha, ac as buildSessionShareUrl, ad as computeOutboundHop, i as shortId, ae as registerAwaitingReply, af as buildMachineShareUrl, ag as parseHandle, ah as handleMatchesMetadata } from './run-Ccf8_4AF.mjs';
5
+ import { a6 as formatHandle, a7 as normalizeAllowedUser, a8 as loadSecurityContextConfig, a9 as resolveSecurityContext, aa as buildSecurityContextFromFlags, ab as mergeSecurityContexts, c as connectToHypha, ac as buildSessionShareUrl, ad as computeOutboundHop, i as shortId, ae as registerAwaitingReply, af as buildMachineShareUrl, ag as parseHandle, ah as handleMatchesMetadata } from './run-DI8N2DhV.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  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 { V as parseFrontmatter, W as getSkillsServer, X as getSkillsWorkspaceName, Y as getSkillsCollectionName, Z as fetchWithTimeout, _ as searchSkills, $ as SKILLS_DIR, a0 as getSkillInfo, a1 as downloadSkillFile, a2 as listSkillFiles } from './run-Ccf8_4AF.mjs';
4
+ import { V as parseFrontmatter, W as getSkillsServer, X as getSkillsWorkspaceName, Y as getSkillsCollectionName, Z as fetchWithTimeout, _ as searchSkills, $ as SKILLS_DIR, a0 as getSkillInfo, a1 as downloadSkillFile, a2 as listSkillFiles } from './run-DI8N2DhV.mjs';
5
5
  import 'fs/promises';
6
6
  import 'url';
7
7
  import 'child_process';
@@ -1,5 +1,5 @@
1
1
  import { spawnSync } from 'node:child_process';
2
- import { j as resolveProjectRoot, K as workflowSteps, z as setWorkflowEnabled, F as isWorkflowEnabled, A as removeWorkflow, x as getWorkflow, E as listWorkflows, C as saveWorkflow, D as rawWorkflow } from './run-Ccf8_4AF.mjs';
2
+ import { j as resolveProjectRoot, K as workflowSteps, z as setWorkflowEnabled, F as isWorkflowEnabled, A as removeWorkflow, x as getWorkflow, E as listWorkflows, C as saveWorkflow, D as rawWorkflow } from './run-DI8N2DhV.mjs';
3
3
  import 'os';
4
4
  import 'fs/promises';
5
5
  import 'fs';
@@ -1,9 +1,9 @@
1
- import { connectAndResolveSession } from './commands-C2zQmf3Y.mjs';
1
+ import { connectAndResolveSession } from './commands-BspIWEyi.mjs';
2
2
  import 'node:fs';
3
3
  import 'node:child_process';
4
4
  import 'node:path';
5
5
  import 'node:os';
6
- import './run-Ccf8_4AF.mjs';
6
+ import './run-DI8N2DhV.mjs';
7
7
  import 'os';
8
8
  import 'fs/promises';
9
9
  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-HI-J8Y7U.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, J as summarize, n as addIssue } from './run-Ccf8_4AF.mjs';
4
+ import { f as flushAndExit } from './cli-C0K7bTFQ.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, J as summarize, n as addIssue } from './run-DI8N2DhV.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 { join, resolve } from 'node:path';
3
- import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-C2zQmf3Y.mjs';
3
+ import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-BspIWEyi.mjs';
4
4
  import { execFileSync } from 'node:child_process';
5
- import { ai as withFileLock, u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-Ccf8_4AF.mjs';
5
+ import { ai as withFileLock, u as updateIssue, m as addComment, n as addIssue, i as shortId } from './run-DI8N2DhV.mjs';
6
6
  import 'node:os';
7
7
  import 'os';
8
8
  import 'fs/promises';
@@ -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 { U as PINNED_CODEX_VERSION, c as connectToHypha } from './run-Ccf8_4AF.mjs';
4
+ import { U as PINNED_CODEX_VERSION, c as connectToHypha } from './run-DI8N2DhV.mjs';
5
5
  import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-mM9Q6Q2G.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-Ccf8_4AF.mjs';
7
+ import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-DI8N2DhV.mjs';
8
8
  import 'fs/promises';
9
9
  import 'url';
10
10
  import 'node:crypto';
@@ -1,5 +1,5 @@
1
- import { a3 as resolveModel, aj as describeMisconfiguration, ak as buildMachineDeps } from './run-Ccf8_4AF.mjs';
2
- import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CDdpZAXO.mjs';
1
+ import { a3 as resolveModel, aj as describeMisconfiguration, ak as buildMachineDeps } from './run-DI8N2DhV.mjs';
2
+ import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-BdHdwflN.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-Ccf8_4AF.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-DI8N2DhV.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, L as parseJwtEmail } from './run-Ccf8_4AF.mjs';
1
+ import { c as connectToHypha, S as SharingNotificationSync, L as parseJwtEmail } from './run-DI8N2DhV.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.312";
2
+ var version = "0.2.313";
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, v as getRun, w as listRuns, x as getWorkflow, y as runWorkflow, z as setWorkflowEnabled, A as removeWorkflow, B as validateWorkflowName, C as saveWorkflow, D as rawWorkflow, E as listWorkflows } from './run-Ccf8_4AF.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 validateWorkflowName, C as saveWorkflow, D as rawWorkflow, E as listWorkflows } from './run-DI8N2DhV.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -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-Ccf8_4AF.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-DI8N2DhV.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 { al as applyClaudeProxyEnv, am as composeSessionId, an as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ao as generateHookSettings } from './run-Ccf8_4AF.mjs';
1
+ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { al as applyClaudeProxyEnv, am as composeSessionId, an as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, ao as generateHookSettings } from './run-DI8N2DhV.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';
@@ -3153,7 +3153,7 @@ Connection: close\r
3153
3153
  const mount = this.mounts.get(mountName);
3154
3154
  const subdomainOverride = mount?.access === "link" && mount.linkToken ? /* @__PURE__ */ new Map([[this.port, buildLinkSubdomain(subdomainSafe, mount.linkToken)]]) : void 0;
3155
3155
  try {
3156
- const { FrpcTunnel } = await import('./frpc-DbZDLphz.mjs');
3156
+ const { FrpcTunnel } = await import('./frpc-B5LHRKTD.mjs');
3157
3157
  let tunnel;
3158
3158
  tunnel = new FrpcTunnel({
3159
3159
  name: tunnelName,
@@ -6286,7 +6286,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
6286
6286
  const tunnels = handlers.tunnels;
6287
6287
  if (!tunnels) throw new Error("Tunnel management not available");
6288
6288
  if (tunnels.has(params.name)) throw new Error(`Tunnel '${params.name}' already running`);
6289
- const { FrpcTunnel } = await import('./frpc-DbZDLphz.mjs');
6289
+ const { FrpcTunnel } = await import('./frpc-B5LHRKTD.mjs');
6290
6290
  const tunnel = new FrpcTunnel({
6291
6291
  name: params.name,
6292
6292
  ports: params.ports,
@@ -6779,7 +6779,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
6779
6779
  }
6780
6780
  const deps = buildSessionDeps(rpc, { cwd, ownerEmail: owner });
6781
6781
  const sender = { name: context?.user?.email || context?.user?.id || "user", kind: "user", verified: true };
6782
- const { toolsForRole } = await import('./sideband-CDdpZAXO.mjs');
6782
+ const { toolsForRole } = await import('./sideband-BdHdwflN.mjs');
6783
6783
  const r2 = await runWiseAgent({ message: params.message, sender, config: { tools: toolsForRole(role2) }, deps, transport, model: resolved.model });
6784
6784
  return fmt(r2);
6785
6785
  }
@@ -6884,7 +6884,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
6884
6884
  return { ok: false, call_id: callId, status: "busy", error: "channel is busy (too many concurrent requests) \u2014 retry shortly" };
6885
6885
  }
6886
6886
  const rendered = renderMessage(c, { sender: r.sender, body: { message: kwargs.message }, callId });
6887
- const { queryCore } = await import('./commands-C2zQmf3Y.mjs');
6887
+ const { queryCore } = await import('./commands-BspIWEyi.mjs');
6888
6888
  const timeout = c.reply?.timeout_sec || 120;
6889
6889
  let result;
6890
6890
  try {
@@ -15643,6 +15643,12 @@ function resolveLoopDurable(cfg) {
15643
15643
  if (typeof cfg.durable === "boolean") return cfg.durable;
15644
15644
  return isBacklogDrainerOracle(cfg.oracle);
15645
15645
  }
15646
+ function shouldRearmDormantLoop(s, pendingCount, sessionId) {
15647
+ if (!s || s.phase !== "dormant") return false;
15648
+ if (typeof s.session_id === "string" && sessionId && s.session_id !== sessionId) return false;
15649
+ if (!isBacklogDrainerOracle(typeof s.oracle === "string" ? s.oracle : void 0)) return false;
15650
+ return pendingCount > 0;
15651
+ }
15646
15652
  function issuesClosedSince(projectRoot, sinceMs) {
15647
15653
  const all = listIssues(projectRoot, { includeArchived: true, status: "archived" });
15648
15654
  if (!sinceMs || !Number.isFinite(sinceMs)) return all;
@@ -17964,7 +17970,7 @@ async function startDaemon(options) {
17964
17970
  try {
17965
17971
  const dir = loadSessionIndex()[sessionId]?.directory;
17966
17972
  if (!dir) return;
17967
- const { reconcileServiceLinks } = await import('./agentCommands-hLTce38n.mjs');
17973
+ const { reconcileServiceLinks } = await import('./agentCommands-CqHUKyRM.mjs');
17968
17974
  const configPath = getSvampConfigPath(dir, sessionId);
17969
17975
  const config = readSvampConfig(configPath);
17970
17976
  const entries = Array.from(urls.entries());
@@ -17982,7 +17988,7 @@ async function startDaemon(options) {
17982
17988
  }
17983
17989
  }
17984
17990
  async function createExposedTunnel(spec) {
17985
- const { FrpcTunnel } = await import('./frpc-DbZDLphz.mjs');
17991
+ const { FrpcTunnel } = await import('./frpc-B5LHRKTD.mjs');
17986
17992
  const tunnel = new FrpcTunnel({
17987
17993
  name: spec.name,
17988
17994
  ports: spec.ports,
@@ -20327,11 +20333,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
20327
20333
  });
20328
20334
  },
20329
20335
  onIssue: async (params) => {
20330
- const { issueRpc } = await import('./rpc-Q4PWHeNn.mjs');
20336
+ const { issueRpc } = await import('./rpc-DOl276lO.mjs');
20331
20337
  return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
20332
20338
  },
20333
20339
  onWorkflow: async (params) => {
20334
- const { workflowRpc } = await import('./rpc-C7uDtxFw.mjs');
20340
+ const { workflowRpc } = await import('./rpc-BxOm5nyE.mjs');
20335
20341
  return workflowRpc(params?.cwd || directory, params || {});
20336
20342
  },
20337
20343
  onRipgrep: async (args, cwd) => {
@@ -20608,6 +20614,34 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
20608
20614
  if (INBOX_RECONCILE_INTERVAL_MS > 0) {
20609
20615
  inboxReconcileTimer = setInterval(reconcileIdleInbox, INBOX_RECONCILE_INTERVAL_MS);
20610
20616
  }
20617
+ const dormantSweepMs = Number(process.env.SVAMP_LOOP_DORMANT_SWEEP_MS);
20618
+ const DORMANT_SWEEP_INTERVAL_MS = Number.isFinite(dormantSweepMs) && dormantSweepMs >= 0 ? dormantSweepMs : 2e4;
20619
+ let dormantRearmTimer = null;
20620
+ const sweepDormantRearm = () => {
20621
+ if (trackedSession.stopped) {
20622
+ if (dormantRearmTimer) clearInterval(dormantRearmTimer);
20623
+ return;
20624
+ }
20625
+ let s = null;
20626
+ try {
20627
+ s = readLoopState(directory, sessionId);
20628
+ } catch {
20629
+ return;
20630
+ }
20631
+ if (!s || s.phase !== "dormant") return;
20632
+ let pending = [];
20633
+ try {
20634
+ pending = backlogOraclePending(directory, sessionId);
20635
+ } catch {
20636
+ return;
20637
+ }
20638
+ if (!shouldRearmDormantLoop(s, pending.length, sessionId)) return;
20639
+ logger.log(`[Session ${sessionId}] Dormant re-arm sweep: ${pending.length} pending issue(s) on disk (added outside the daemon RPC) \u2014 re-arming loop`);
20640
+ trackedSession.rekickLoop?.();
20641
+ };
20642
+ if (DORMANT_SWEEP_INTERVAL_MS > 0) {
20643
+ dormantRearmTimer = setInterval(sweepDormantRearm, DORMANT_SWEEP_INTERVAL_MS);
20644
+ }
20611
20645
  return {
20612
20646
  type: "success",
20613
20647
  sessionId,
@@ -21007,11 +21041,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
21007
21041
  });
21008
21042
  },
21009
21043
  onIssue: async (params) => {
21010
- const { issueRpc } = await import('./rpc-Q4PWHeNn.mjs');
21044
+ const { issueRpc } = await import('./rpc-DOl276lO.mjs');
21011
21045
  return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
21012
21046
  },
21013
21047
  onWorkflow: async (params) => {
21014
- const { workflowRpc } = await import('./rpc-C7uDtxFw.mjs');
21048
+ const { workflowRpc } = await import('./rpc-BxOm5nyE.mjs');
21015
21049
  return workflowRpc(params?.cwd || directory, params || {});
21016
21050
  },
21017
21051
  onRipgrep: async (args, cwd) => {
@@ -22249,7 +22283,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
22249
22283
  const PING_TIMEOUT_MS = 15e3;
22250
22284
  const POST_RECONNECT_GRACE_MS = 2e4;
22251
22285
  const RECONNECT_JITTER_MS = 2500;
22252
- const { WorkflowScheduler } = await import('./scheduler-B1xThM3A.mjs');
22286
+ const { WorkflowScheduler } = await import('./scheduler-C0WXBdL_.mjs');
22253
22287
  const workflowProjectRoots = () => {
22254
22288
  const dirs = /* @__PURE__ */ new Set();
22255
22289
  for (const s of pidToTrackedSession.values()) {
@@ -1,4 +1,4 @@
1
- import { j as resolveProjectRoot, E as listWorkflows, F as isWorkflowEnabled, G as workflowSchedules, H as inZone, y as runWorkflow, I as cronMatches } from './run-Ccf8_4AF.mjs';
1
+ import { j as resolveProjectRoot, E as listWorkflows, F as isWorkflowEnabled, G as workflowSchedules, H as inZone, y as runWorkflow, I as cronMatches } from './run-DI8N2DhV.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-C2zQmf3Y.mjs');
57
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.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-C2zQmf3Y.mjs');
96
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.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-C2zQmf3Y.mjs');
185
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.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-C2zQmf3Y.mjs');
205
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.mjs');
206
206
  const all = hasFlag(args, "--all", "-a");
207
207
  const json = hasFlag(args, "--json");
208
208
  const sessionId = getFlag(args, "--session");
@@ -236,7 +236,7 @@ async function serveList(args, machineId) {
236
236
  }
237
237
  }
238
238
  async function serveInfo(machineId) {
239
- const { connectAndGetMachine } = await import('./commands-C2zQmf3Y.mjs');
239
+ const { connectAndGetMachine } = await import('./commands-BspIWEyi.mjs');
240
240
  const { machine, server } = await connectAndGetMachine(machineId);
241
241
  try {
242
242
  const info = await machine.serveInfo();
@@ -1,4 +1,4 @@
1
- import { R as READ_ONLY_TOOLS, O as loadMachineContext, P as buildMachineInstructions, Q as machineToolsForRole, T as buildMachineTools } from './run-Ccf8_4AF.mjs';
1
+ import { R as READ_ONLY_TOOLS, O as loadMachineContext, P as buildMachineInstructions, Q as machineToolsForRole, T as buildMachineTools } from './run-DI8N2DhV.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.312",
3
+ "version": "0.2.313",
4
4
  "description": "Svamp CLI — AI workspace daemon on Hypha Cloud",
5
5
  "author": "Amun AI AB",
6
6
  "license": "SEE LICENSE IN LICENSE",