svamp-cli 0.2.90 → 0.2.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -148,7 +148,7 @@ async function sessionBroadcast(action, args) {
148
148
  console.log(`Broadcast sent: ${action}`);
149
149
  }
150
150
  async function connectToMachineService() {
151
- const { connectAndGetMachine } = await import('./commands-mlxYf-v-.mjs');
151
+ const { connectAndGetMachine } = await import('./commands-BR_lAgZ0.mjs');
152
152
  return connectAndGetMachine();
153
153
  }
154
154
  async function inboxSend(targetSessionId, opts) {
@@ -165,7 +165,7 @@ async function inboxSend(targetSessionId, opts) {
165
165
  }
166
166
  const { server, machine } = await connectToMachineService();
167
167
  try {
168
- const { resolveSessionId } = await import('./commands-mlxYf-v-.mjs');
168
+ const { resolveSessionId } = await import('./commands-BR_lAgZ0.mjs');
169
169
  const sessions = await machine.listSessions();
170
170
  const match = resolveSessionId(sessions, targetSessionId);
171
171
  const fullTargetId = match.sessionId;
@@ -1,4 +1,4 @@
1
- import { z as resolveModel } from './run-1BK4-WPo.mjs';
1
+ import { z as resolveModel } from './run-BF4AmFz8.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
@@ -7,12 +7,12 @@ import 'url';
7
7
  import 'child_process';
8
8
  import 'crypto';
9
9
  import 'node:fs';
10
+ import 'node:child_process';
11
+ import 'ws';
10
12
  import 'util';
11
13
  import 'node:crypto';
12
14
  import 'node:path';
13
15
  import 'node:os';
14
- import 'node:vm';
15
- import 'node:child_process';
16
16
  import '@agentclientprotocol/sdk';
17
17
  import '@modelcontextprotocol/sdk/client/index.js';
18
18
  import '@modelcontextprotocol/sdk/client/stdio.js';
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-1BK4-WPo.mjs';
1
+ import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-BF4AmFz8.mjs';
2
2
  import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
3
3
  import 'os';
4
4
  import 'fs/promises';
@@ -8,12 +8,12 @@ import 'url';
8
8
  import 'child_process';
9
9
  import 'crypto';
10
10
  import 'node:fs';
11
+ import 'node:child_process';
12
+ import 'ws';
11
13
  import 'util';
12
14
  import 'node:crypto';
13
15
  import 'node:path';
14
16
  import 'node:os';
15
- import 'node:vm';
16
- import 'node:child_process';
17
17
  import '@agentclientprotocol/sdk';
18
18
  import '@modelcontextprotocol/sdk/client/index.js';
19
19
  import '@modelcontextprotocol/sdk/client/stdio.js';
@@ -34,7 +34,7 @@ const subcommand = args[0];
34
34
  let daemonSubcommand = args[1];
35
35
  async function main() {
36
36
  try {
37
- const { getLoadedConfig } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.O; });
37
+ const { getLoadedConfig } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.V; });
38
38
  getLoadedConfig();
39
39
  } catch {
40
40
  }
@@ -51,7 +51,7 @@ async function main() {
51
51
  console.error(`svamp daemon restart: ${err.message || err}`);
52
52
  process.exit(1);
53
53
  }
54
- const { restartDaemon } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.Q; });
54
+ const { restartDaemon } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.X; });
55
55
  await restartDaemon();
56
56
  process.exit(0);
57
57
  }
@@ -344,7 +344,7 @@ async function main() {
344
344
  console.error("svamp service: Service commands are not available in sandboxed sessions.");
345
345
  process.exit(1);
346
346
  }
347
- const { handleServiceCommand } = await import('./commands-C-5cSioE.mjs');
347
+ const { handleServiceCommand } = await import('./commands-Dfyuenmi.mjs');
348
348
  await handleServiceCommand();
349
349
  } else if (subcommand === "serve") {
350
350
  const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
@@ -352,7 +352,7 @@ async function main() {
352
352
  console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
353
353
  process.exit(1);
354
354
  }
355
- const { handleServeCommand } = await import('./serveCommands-BXn2hnJ0.mjs');
355
+ const { handleServeCommand } = await import('./serveCommands-CvhlM4Iz.mjs');
356
356
  await handleServeCommand();
357
357
  process.exit(0);
358
358
  } else if (subcommand === "process" || subcommand === "proc") {
@@ -361,7 +361,7 @@ async function main() {
361
361
  console.error("svamp process: Process commands are not available in sandboxed sessions.");
362
362
  process.exit(1);
363
363
  }
364
- const { processCommand } = await import('./commands-XrfOgVzR.mjs');
364
+ const { processCommand } = await import('./commands-pVw3CcRo.mjs');
365
365
  let machineId;
366
366
  const processArgs = args.slice(1);
367
367
  const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
@@ -375,7 +375,7 @@ async function main() {
375
375
  }), machineId);
376
376
  process.exit(0);
377
377
  } else if (subcommand === "routine" || subcommand === "routines") {
378
- const { routineCommand } = await import('./commands-sQMe36dC.mjs');
378
+ const { routineCommand } = await import('./commands-BxluPors.mjs');
379
379
  await routineCommand(args.slice(1));
380
380
  process.exit(0);
381
381
  } else if (subcommand === "wise-agent" || subcommand === "wise") {
@@ -386,7 +386,7 @@ async function main() {
386
386
  } else if (!subcommand || subcommand === "start") {
387
387
  await handleInteractiveCommand();
388
388
  } else if (subcommand === "--version" || subcommand === "-v") {
389
- const pkg = await import('./package-DR--K5aO.mjs').catch(() => ({ default: { version: "unknown" } }));
389
+ const pkg = await import('./package-_Qk8lnvq.mjs').catch(() => ({ default: { version: "unknown" } }));
390
390
  console.log(`svamp version: ${pkg.default.version}`);
391
391
  } else {
392
392
  console.error(`Unknown command: ${subcommand}`);
@@ -395,7 +395,7 @@ async function main() {
395
395
  }
396
396
  }
397
397
  async function handleInteractiveCommand() {
398
- const { runInteractive } = await import('./run-DrC7KnK3.mjs');
398
+ const { runInteractive } = await import('./run-l1OtW948.mjs');
399
399
  const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
400
400
  let directory = process.cwd();
401
401
  let resumeSessionId;
@@ -440,7 +440,7 @@ async function handleAgentCommand() {
440
440
  return;
441
441
  }
442
442
  if (agentArgs[0] === "list") {
443
- const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.K; });
443
+ const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.P; });
444
444
  console.log("Known agents:");
445
445
  for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
446
446
  console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
@@ -452,7 +452,7 @@ async function handleAgentCommand() {
452
452
  console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
453
453
  return;
454
454
  }
455
- const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.K; });
455
+ const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.P; });
456
456
  let cwd = process.cwd();
457
457
  const filteredArgs = [];
458
458
  for (let i = 0; i < agentArgs.length; i++) {
@@ -476,12 +476,12 @@ async function handleAgentCommand() {
476
476
  console.log(`Starting ${config.agentName} agent in ${cwd}...`);
477
477
  let backend;
478
478
  if (KNOWN_MCP_AGENTS[config.agentName]) {
479
- const { CodexMcpBackend } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.L; });
479
+ const { CodexMcpBackend } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.Q; });
480
480
  backend = new CodexMcpBackend({ cwd, log: logFn });
481
481
  } else {
482
- const { AcpBackend } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.J; });
483
- const { GeminiTransport } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.M; });
484
- const { DefaultTransport } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.I; });
482
+ const { AcpBackend } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.O; });
483
+ const { GeminiTransport } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.T; });
484
+ const { DefaultTransport } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.N; });
485
485
  const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
486
486
  backend = new AcpBackend({
487
487
  agentName: config.agentName,
@@ -608,7 +608,7 @@ async function handleSessionCommand() {
608
608
  process.exit(1);
609
609
  }
610
610
  }
611
- const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-mlxYf-v-.mjs');
611
+ const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-BR_lAgZ0.mjs');
612
612
  const parseFlagStr = (flag, shortFlag) => {
613
613
  for (let i = 1; i < sessionArgs.length; i++) {
614
614
  if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
@@ -676,7 +676,7 @@ async function handleSessionCommand() {
676
676
  allowDomain.push(sessionArgs[++i]);
677
677
  }
678
678
  }
679
- const { parseShareArg } = await import('./commands-mlxYf-v-.mjs');
679
+ const { parseShareArg } = await import('./commands-BR_lAgZ0.mjs');
680
680
  const shareEntries = share.map((s) => parseShareArg(s));
681
681
  await sessionSpawn(agent, dir, targetMachineId, {
682
682
  message,
@@ -763,7 +763,7 @@ async function handleSessionCommand() {
763
763
  console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
764
764
  process.exit(1);
765
765
  }
766
- const { sessionQuery } = await import('./commands-mlxYf-v-.mjs');
766
+ const { sessionQuery } = await import('./commands-BR_lAgZ0.mjs');
767
767
  await sessionQuery(dir, prompt, targetMachineId, {
768
768
  timeout: parseFlagInt("--timeout"),
769
769
  json: hasFlag("--json"),
@@ -796,7 +796,7 @@ async function handleSessionCommand() {
796
796
  console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
797
797
  process.exit(1);
798
798
  }
799
- const { sessionApprove } = await import('./commands-mlxYf-v-.mjs');
799
+ const { sessionApprove } = await import('./commands-BR_lAgZ0.mjs');
800
800
  const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
801
801
  await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
802
802
  json: hasFlag("--json")
@@ -806,7 +806,7 @@ async function handleSessionCommand() {
806
806
  console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
807
807
  process.exit(1);
808
808
  }
809
- const { sessionDeny } = await import('./commands-mlxYf-v-.mjs');
809
+ const { sessionDeny } = await import('./commands-BR_lAgZ0.mjs');
810
810
  const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
811
811
  await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
812
812
  json: hasFlag("--json")
@@ -842,7 +842,7 @@ async function handleSessionCommand() {
842
842
  console.error("Usage: svamp session set-title <title>");
843
843
  process.exit(1);
844
844
  }
845
- const { sessionSetTitle } = await import('./agentCommands-BjhBmutV.mjs');
845
+ const { sessionSetTitle } = await import('./agentCommands-t6HbehoC.mjs');
846
846
  await sessionSetTitle(title);
847
847
  } else if (sessionSubcommand === "set-link") {
848
848
  const url = sessionArgs[1];
@@ -851,7 +851,7 @@ async function handleSessionCommand() {
851
851
  process.exit(1);
852
852
  }
853
853
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
854
- const { sessionSetLink } = await import('./agentCommands-BjhBmutV.mjs');
854
+ const { sessionSetLink } = await import('./agentCommands-t6HbehoC.mjs');
855
855
  await sessionSetLink(url, label);
856
856
  } else if (sessionSubcommand === "notify") {
857
857
  const message = sessionArgs[1];
@@ -860,7 +860,7 @@ async function handleSessionCommand() {
860
860
  process.exit(1);
861
861
  }
862
862
  const level = parseFlagStr("--level") || "info";
863
- const { sessionNotify } = await import('./agentCommands-BjhBmutV.mjs');
863
+ const { sessionNotify } = await import('./agentCommands-t6HbehoC.mjs');
864
864
  await sessionNotify(message, level);
865
865
  } else if (sessionSubcommand === "broadcast") {
866
866
  const action = sessionArgs[1];
@@ -868,7 +868,7 @@ async function handleSessionCommand() {
868
868
  console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
869
869
  process.exit(1);
870
870
  }
871
- const { sessionBroadcast } = await import('./agentCommands-BjhBmutV.mjs');
871
+ const { sessionBroadcast } = await import('./agentCommands-t6HbehoC.mjs');
872
872
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
873
873
  } else if (sessionSubcommand === "inbox") {
874
874
  const inboxSubcmd = sessionArgs[1];
@@ -879,7 +879,7 @@ async function handleSessionCommand() {
879
879
  process.exit(1);
880
880
  }
881
881
  if (agentSessionId) {
882
- const { inboxSend } = await import('./agentCommands-BjhBmutV.mjs');
882
+ const { inboxSend } = await import('./agentCommands-t6HbehoC.mjs');
883
883
  await inboxSend(sessionArgs[2], {
884
884
  body: sessionArgs[3],
885
885
  subject: parseFlagStr("--subject"),
@@ -894,7 +894,7 @@ async function handleSessionCommand() {
894
894
  }
895
895
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
896
896
  if (agentSessionId && !sessionArgs[2]) {
897
- const { inboxList } = await import('./agentCommands-BjhBmutV.mjs');
897
+ const { inboxList } = await import('./agentCommands-t6HbehoC.mjs');
898
898
  await inboxList({
899
899
  unread: hasFlag("--unread"),
900
900
  limit: parseFlagInt("--limit"),
@@ -916,7 +916,7 @@ async function handleSessionCommand() {
916
916
  process.exit(1);
917
917
  }
918
918
  if (agentSessionId && !sessionArgs[3]) {
919
- const { inboxList } = await import('./agentCommands-BjhBmutV.mjs');
919
+ const { inboxList } = await import('./agentCommands-t6HbehoC.mjs');
920
920
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
921
921
  } else if (sessionArgs[3]) {
922
922
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -926,7 +926,7 @@ async function handleSessionCommand() {
926
926
  }
927
927
  } else if (inboxSubcmd === "reply") {
928
928
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
929
- const { inboxReply } = await import('./agentCommands-BjhBmutV.mjs');
929
+ const { inboxReply } = await import('./agentCommands-t6HbehoC.mjs');
930
930
  await inboxReply(sessionArgs[2], sessionArgs[3]);
931
931
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
932
932
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -962,7 +962,7 @@ async function handleMachineCommand() {
962
962
  return;
963
963
  }
964
964
  if (machineSubcommand === "share") {
965
- const { machineShare } = await import('./commands-mlxYf-v-.mjs');
965
+ const { machineShare } = await import('./commands-BR_lAgZ0.mjs');
966
966
  let machineId;
967
967
  const shareArgs = [];
968
968
  for (let i = 1; i < machineArgs.length; i++) {
@@ -992,7 +992,7 @@ async function handleMachineCommand() {
992
992
  }
993
993
  await machineShare(machineId, { add, remove, list, configPath, showConfig });
994
994
  } else if (machineSubcommand === "exec") {
995
- const { machineExec } = await import('./commands-mlxYf-v-.mjs');
995
+ const { machineExec } = await import('./commands-BR_lAgZ0.mjs');
996
996
  let machineId;
997
997
  let cwd;
998
998
  const cmdParts = [];
@@ -1012,7 +1012,7 @@ async function handleMachineCommand() {
1012
1012
  }
1013
1013
  await machineExec(machineId, command, cwd);
1014
1014
  } else if (machineSubcommand === "info") {
1015
- const { machineInfo } = await import('./commands-mlxYf-v-.mjs');
1015
+ const { machineInfo } = await import('./commands-BR_lAgZ0.mjs');
1016
1016
  let machineId;
1017
1017
  for (let i = 1; i < machineArgs.length; i++) {
1018
1018
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -1032,10 +1032,10 @@ async function handleMachineCommand() {
1032
1032
  level = machineArgs[++i];
1033
1033
  }
1034
1034
  }
1035
- const { machineNotify } = await import('./agentCommands-BjhBmutV.mjs');
1035
+ const { machineNotify } = await import('./agentCommands-t6HbehoC.mjs');
1036
1036
  await machineNotify(message, level);
1037
1037
  } else if (machineSubcommand === "ls") {
1038
- const { machineLs } = await import('./commands-mlxYf-v-.mjs');
1038
+ const { machineLs } = await import('./commands-BR_lAgZ0.mjs');
1039
1039
  let machineId;
1040
1040
  let showHidden = false;
1041
1041
  let path;
@@ -1093,24 +1093,24 @@ Examples:
1093
1093
  };
1094
1094
  const hasFlag = (name) => fleetArgs.includes(`--${name}`);
1095
1095
  if (sub === "status") {
1096
- const { fleetStatus } = await import('./fleet-Dts-Z6LV.mjs');
1096
+ const { fleetStatus } = await import('./fleet-C3KLMFeD.mjs');
1097
1097
  await fleetStatus();
1098
1098
  } else if (sub === "exec") {
1099
1099
  const command = fleetArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1100
- const { fleetExec } = await import('./fleet-Dts-Z6LV.mjs');
1100
+ const { fleetExec } = await import('./fleet-C3KLMFeD.mjs');
1101
1101
  await fleetExec(command, { cwd: flag("cwd") });
1102
1102
  } else if (sub === "upgrade-claude") {
1103
- const { fleetUpgradeClaude } = await import('./fleet-Dts-Z6LV.mjs');
1103
+ const { fleetUpgradeClaude } = await import('./fleet-C3KLMFeD.mjs');
1104
1104
  await fleetUpgradeClaude({ version: flag("version", "-v") });
1105
1105
  } else if (sub === "upgrade-svamp") {
1106
- const { fleetUpgradeSvamp } = await import('./fleet-Dts-Z6LV.mjs');
1106
+ const { fleetUpgradeSvamp } = await import('./fleet-C3KLMFeD.mjs');
1107
1107
  await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self") });
1108
1108
  } else if (sub === "daemon-restart") {
1109
- const { fleetDaemonRestart } = await import('./fleet-Dts-Z6LV.mjs');
1109
+ const { fleetDaemonRestart } = await import('./fleet-C3KLMFeD.mjs');
1110
1110
  await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
1111
1111
  } else if (sub === "push-skill") {
1112
1112
  const name = fleetArgs[1];
1113
- const { fleetPushSkill } = await import('./fleet-Dts-Z6LV.mjs');
1113
+ const { fleetPushSkill } = await import('./fleet-C3KLMFeD.mjs');
1114
1114
  await fleetPushSkill(name);
1115
1115
  } else {
1116
1116
  console.error(`Unknown fleet subcommand: ${sub}`);
@@ -1126,7 +1126,7 @@ async function handleSkillsCommand() {
1126
1126
  await printSkillsHelp();
1127
1127
  return;
1128
1128
  }
1129
- const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-Bg7NZ6PK.mjs');
1129
+ const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-BHSvizSp.mjs');
1130
1130
  if (skillsSubcommand === "find" || skillsSubcommand === "search") {
1131
1131
  const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1132
1132
  if (!query) {
@@ -1173,7 +1173,7 @@ async function loginToHypha() {
1173
1173
  process.exit(1);
1174
1174
  }
1175
1175
  const anchor = anchorArg.replace(/\/+$/, "");
1176
- const { loadInstanceConfig } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.O; });
1176
+ const { loadInstanceConfig } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.V; });
1177
1177
  let cfg = null;
1178
1178
  try {
1179
1179
  cfg = await loadInstanceConfig({ anchor, force: true });
@@ -1284,7 +1284,7 @@ async function logoutFromHypha() {
1284
1284
  } catch {
1285
1285
  }
1286
1286
  try {
1287
- const { clearInstanceConfigCache } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.O; });
1287
+ const { clearInstanceConfigCache } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.V; });
1288
1288
  clearInstanceConfigCache();
1289
1289
  } catch {
1290
1290
  }
@@ -1530,7 +1530,7 @@ Commands:
1530
1530
 
1531
1531
  Session management (requires daemon running):
1532
1532
  svamp session spawn <agent> [opts] Spawn a new agent session (agents: claude, gemini, codex)
1533
- svamp session send <id> <message> Send message to a session (--wait, --response, --btw)
1533
+ svamp session send <id> <message> Send message to a session (non-urgent by default; --wait/--response/--urgency urgent to wake)
1534
1534
  svamp session query <dir> <prompt> Stateless one-shot: spawn \u2192 ask \u2192 answer \u2192 delete
1535
1535
  svamp session wait <id> Wait for agent to become idle
1536
1536
  svamp session messages <id> Show message history (--last N, --json, --raw)
@@ -1615,7 +1615,7 @@ async function applyClaudeAuthFlags(argv) {
1615
1615
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
1616
1616
  );
1617
1617
  }
1618
- const mod = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.N; });
1618
+ const mod = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.U; });
1619
1619
  if (hasHypha) {
1620
1620
  let url;
1621
1621
  const hyphaIdx = argv.indexOf("--use-hypha-proxy");
@@ -1669,7 +1669,7 @@ async function applyDaemonShareFlag(argv) {
1669
1669
  }
1670
1670
  }
1671
1671
  if (collected.length === 0) return;
1672
- const { updateEnvFile } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.N; });
1672
+ const { updateEnvFile } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.U; });
1673
1673
  const seen = /* @__PURE__ */ new Set();
1674
1674
  const deduped = collected.filter((e) => {
1675
1675
  const k = e.toLowerCase();
@@ -1682,8 +1682,54 @@ async function applyDaemonShareFlag(argv) {
1682
1682
  }
1683
1683
  async function handleWiseAgentCommand(rest) {
1684
1684
  const sub = rest[0];
1685
+ if (sub === "ask") {
1686
+ const valueOf = (flags) => {
1687
+ for (const f of flags) {
1688
+ const i = rest.indexOf(f);
1689
+ if (i >= 0 && rest[i + 1]) return rest[i + 1];
1690
+ }
1691
+ return void 0;
1692
+ };
1693
+ const sessionId = valueOf(["--session", "-s"]);
1694
+ const machineId = valueOf(["--machine", "-m"]);
1695
+ const json = rest.includes("--json");
1696
+ const consumed = /* @__PURE__ */ new Set();
1697
+ ["--session", "-s", "--machine", "-m"].forEach((f) => {
1698
+ const i = rest.indexOf(f);
1699
+ if (i >= 0) {
1700
+ consumed.add(String(i));
1701
+ consumed.add(String(i + 1));
1702
+ }
1703
+ });
1704
+ 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(" ");
1705
+ const { wiseAskCli } = await import('./commands-BR_lAgZ0.mjs');
1706
+ await wiseAskCli(machineId, message, sessionId, { json });
1707
+ return;
1708
+ }
1709
+ if (sub === "voice") {
1710
+ const valueOf = (flags) => {
1711
+ for (const f of flags) {
1712
+ const i = rest.indexOf(f);
1713
+ if (i >= 0 && rest[i + 1]) return rest[i + 1];
1714
+ }
1715
+ return void 0;
1716
+ };
1717
+ const { runWiseVoiceCli } = await import('./headlessCli-D-unuCQt.mjs');
1718
+ await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
1719
+ return;
1720
+ }
1685
1721
  if (sub === "--help" || sub === "-h") {
1686
- console.log(`Usage: svamp wise-agent auth <command>
1722
+ console.log(`Usage:
1723
+ svamp wise ask "<message>" [--session <id>] [-m <machine>] [--json]
1724
+ Fast WISE turn \u2014 GLOBAL machine-manager by default (daemon status, run
1725
+ commands, inspect/spawn/drive any session); --session <id> scopes to one.
1726
+
1727
+ svamp wise voice [--voice <name>] [--wake <keyword.ppn>] [--model <id>]
1728
+ HEADLESS voice on this machine (mic + speaker, no browser). Needs \`sox\`.
1729
+ --wake <keyword.ppn> = always-on "Hey WISE" (needs PICOVOICE_ACCESS_KEY);
1730
+ omit it for a single always-listening session (Ctrl-C to stop).
1731
+
1732
+ svamp wise-agent auth <command>
1687
1733
 
1688
1734
  Configure the server-side WISE Agent's fast model (text companion to the deep agent).
1689
1735
 
@@ -1710,7 +1756,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1710
1756
  return;
1711
1757
  }
1712
1758
  const authArgs = rest.slice(1);
1713
- const mod = await import('./auth-LB4hwDfW.mjs');
1759
+ const mod = await import('./auth-Dx09pKt3.mjs');
1714
1760
  let action;
1715
1761
  try {
1716
1762
  action = mod.parseWiseAgentAuthArgs(authArgs);
@@ -1720,7 +1766,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1720
1766
  return;
1721
1767
  }
1722
1768
  if (action) {
1723
- const { updateEnvFile } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.N; });
1769
+ const { updateEnvFile } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.U; });
1724
1770
  const updates = mod.buildWiseAgentEnvUpdates(action);
1725
1771
  updateEnvFile(updates);
1726
1772
  for (const [k, v] of Object.entries(updates)) {
@@ -1734,7 +1780,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1734
1780
  }
1735
1781
  async function handleDaemonAuthCommand(argv) {
1736
1782
  const sub = (argv[0] || "status").toLowerCase();
1737
- const mod = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.N; });
1783
+ const mod = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.U; });
1738
1784
  if (sub === "--help" || sub === "-h" || sub === "help") {
1739
1785
  console.log(`
1740
1786
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -1848,8 +1894,14 @@ COMMANDS:
1848
1894
  same-user sessions on other machines, and how to reach them (alias: env)
1849
1895
 
1850
1896
  Communicate:
1851
- send <id> <message> [--wait] [--response] [--btw] [--require-approval] [--timeout N] [--json]
1897
+ send <id> <message> [--wait] [--response] [--btw] [--require-approval] [--timeout N] [--json] [--urgency urgent|normal]
1852
1898
  Send a message to a running session.
1899
+ By default this is NON-URGENT: it lands in the peer's
1900
+ inbox and is processed on their next idle turn (it does
1901
+ NOT interrupt them). Use --wait/--response (synchronous)
1902
+ or --urgency urgent to wake the agent immediately. Loop
1903
+ safeguard: a send issued from a turn that was itself
1904
+ triggered by an inbox message is always non-urgent.
1853
1905
  --wait block until the agent goes idle
1854
1906
  --response block AND print the agent's
1855
1907
  text answer (implies --wait)
@@ -2031,7 +2083,7 @@ Examples:
2031
2083
  async function printSkillsHelp() {
2032
2084
  let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
2033
2085
  try {
2034
- const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-1BK4-WPo.mjs').then(function (n) { return n.P; });
2086
+ const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-BF4AmFz8.mjs').then(function (n) { return n.W; });
2035
2087
  browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
2036
2088
  } catch {
2037
2089
  }
@@ -1,18 +1,18 @@
1
1
  import os from 'os';
2
2
  import fs__default from 'fs';
3
3
  import { resolve, join, relative } from 'path';
4
- import { p as parseFrontmatter, n as getSkillsServer, o as getSkillsWorkspaceName, q as getSkillsCollectionName, t as fetchWithTimeout, u as searchSkills, v as SKILLS_DIR, w as getSkillInfo, x as downloadSkillFile, y as listSkillFiles } from './run-1BK4-WPo.mjs';
4
+ import { p as parseFrontmatter, n as getSkillsServer, o as getSkillsWorkspaceName, q as getSkillsCollectionName, t as fetchWithTimeout, u as searchSkills, v as SKILLS_DIR, w as getSkillInfo, x as downloadSkillFile, y as listSkillFiles } from './run-BF4AmFz8.mjs';
5
5
  import 'fs/promises';
6
6
  import 'url';
7
7
  import 'child_process';
8
8
  import 'crypto';
9
9
  import 'node:fs';
10
+ import 'node:child_process';
11
+ import 'ws';
10
12
  import 'util';
11
13
  import 'node:crypto';
12
14
  import 'node:path';
13
15
  import 'node:os';
14
- import 'node:vm';
15
- import 'node:child_process';
16
16
  import '@agentclientprotocol/sdk';
17
17
  import '@modelcontextprotocol/sdk/client/index.js';
18
18
  import '@modelcontextprotocol/sdk/client/stdio.js';
@@ -2,7 +2,7 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { execSync } from 'node:child_process';
3
3
  import { basename, resolve, join } from 'node:path';
4
4
  import os from 'node:os';
5
- import { A as normalizeAllowedUser, B as loadSecurityContextConfig, C as resolveSecurityContext, D as buildSecurityContextFromFlags, E as mergeSecurityContexts, c as connectToHypha, F as buildSessionShareUrl, G as buildMachineShareUrl } from './run-1BK4-WPo.mjs';
5
+ import { A as normalizeAllowedUser, B as loadSecurityContextConfig, C as resolveSecurityContext, D as buildSecurityContextFromFlags, E as mergeSecurityContexts, c as connectToHypha, F as buildSessionShareUrl, G as computeOutboundHop, H as buildMachineShareUrl } from './run-BF4AmFz8.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -10,9 +10,9 @@ import 'path';
10
10
  import 'url';
11
11
  import 'child_process';
12
12
  import 'crypto';
13
+ import 'ws';
13
14
  import 'util';
14
15
  import 'node:crypto';
15
- import 'node:vm';
16
16
  import '@agentclientprotocol/sdk';
17
17
  import '@modelcontextprotocol/sdk/client/index.js';
18
18
  import '@modelcontextprotocol/sdk/client/stdio.js';
@@ -1671,6 +1671,9 @@ async function sendCore(machine, fullId, message, opts) {
1671
1671
  const preSeq = wantResponse ? await snapshotLatestSeq(machine, fullId) : 0;
1672
1672
  const { randomUUID } = await import('node:crypto');
1673
1673
  const callerSessionId = process.env.SVAMP_SESSION_ID;
1674
+ const hop = computeOutboundHop(callerSessionId);
1675
+ let urgency = opts?.urgency ? opts.urgency : shouldWait ? "urgent" : "normal";
1676
+ if (hop.fromInboxTurn) urgency = "normal";
1674
1677
  const inboxMessage = {
1675
1678
  messageId: randomUUID(),
1676
1679
  body: message,
@@ -1680,7 +1683,9 @@ async function sendCore(machine, fullId, message, opts) {
1680
1683
  ...callerSessionId ? { fromSession: callerSessionId } : {},
1681
1684
  to: fullId,
1682
1685
  subject: opts?.subject,
1683
- urgency: opts?.urgency || "urgent"
1686
+ urgency,
1687
+ hopCount: hop.hopCount,
1688
+ ...hop.threadId ? { threadId: hop.threadId } : {}
1684
1689
  };
1685
1690
  const result = await machine.sessionRPC(fullId, "sendInboxMessage", { message: inboxMessage });
1686
1691
  let waitResult;
@@ -2194,6 +2199,28 @@ async function machineExec(machineId, command, cwd) {
2194
2199
  await server.disconnect();
2195
2200
  }
2196
2201
  }
2202
+ async function wiseAskCli(machineId, message, sessionId, opts) {
2203
+ if (!message) {
2204
+ console.error('Usage: svamp wise ask "<message>" [--session <id>] [-m <machine>]');
2205
+ process.exit(1);
2206
+ }
2207
+ const { server, machine } = await connectAndGetMachine(machineId);
2208
+ try {
2209
+ const res = await machine.wiseAsk({ message, sessionId });
2210
+ if (opts?.json) {
2211
+ console.log(JSON.stringify(res, null, 2));
2212
+ process.exit(res?.success ? 0 : 1);
2213
+ }
2214
+ if (res?.error) {
2215
+ console.error(`\u2717 ${res.error}`);
2216
+ process.exit(1);
2217
+ }
2218
+ console.log(res?.reply || `(${res?.status || "no reply"})`);
2219
+ process.exit(0);
2220
+ } finally {
2221
+ await server.disconnect();
2222
+ }
2223
+ }
2197
2224
  async function machineInfo(machineId) {
2198
2225
  const { server, machine } = await connectAndGetMachine(machineId);
2199
2226
  try {
@@ -2309,6 +2336,9 @@ async function sessionInboxSend(sessionIdPartial, body, machineId, opts) {
2309
2336
  try {
2310
2337
  const { randomUUID } = await import('node:crypto');
2311
2338
  const callerSessionId = process.env.SVAMP_SESSION_ID;
2339
+ const hop = computeOutboundHop(callerSessionId);
2340
+ let urgency = opts?.urgency || "normal";
2341
+ if (hop.fromInboxTurn) urgency = "normal";
2312
2342
  const message = {
2313
2343
  messageId: randomUUID(),
2314
2344
  body,
@@ -2318,9 +2348,10 @@ async function sessionInboxSend(sessionIdPartial, body, machineId, opts) {
2318
2348
  ...callerSessionId ? { fromSession: callerSessionId } : {},
2319
2349
  to: fullId,
2320
2350
  subject: opts?.subject,
2321
- urgency: opts?.urgency || "normal",
2351
+ urgency,
2352
+ hopCount: hop.hopCount,
2322
2353
  replyTo: opts?.replyTo,
2323
- threadId: opts?.threadId
2354
+ threadId: opts?.threadId || hop.threadId
2324
2355
  };
2325
2356
  const result = await machine.sessionRPC(fullId, "sendInboxMessage", { message });
2326
2357
  if (opts?.json) {
@@ -2402,6 +2433,7 @@ async function sessionInboxReply(sessionIdPartial, messageId, body, machineId) {
2402
2433
  process.exit(1);
2403
2434
  }
2404
2435
  const { randomUUID } = await import('node:crypto');
2436
+ const hop = computeOutboundHop(process.env.SVAMP_SESSION_ID || fullId);
2405
2437
  const reply = {
2406
2438
  messageId: randomUUID(),
2407
2439
  body,
@@ -2412,6 +2444,7 @@ async function sessionInboxReply(sessionIdPartial, messageId, body, machineId) {
2412
2444
  to: original.fromSession,
2413
2445
  subject: original.subject ? `Re: ${original.subject}` : void 0,
2414
2446
  urgency: "normal",
2447
+ hopCount: hop.hopCount,
2415
2448
  replyTo: original.messageId,
2416
2449
  threadId: original.threadId || original.messageId
2417
2450
  };
@@ -2431,4 +2464,4 @@ async function sessionInboxClear(sessionIdPartial, machineId, opts) {
2431
2464
  }
2432
2465
  }
2433
2466
 
2434
- export { collectAssistantResponse, connectAndGetMachine, connectAndResolveSession, createWorktree, generateWorktreeName, machineExec, machineInfo, machineLs, machineShare, parseShareArg, queryCore, renderMessage, resolveSessionId, sendCore, sessionApprove, sessionArchive, sessionAttach, sessionDelete, sessionDeny, sessionInboxClear, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxSend, sessionInfo, sessionList, sessionMachines, sessionMessages, sessionQuery, sessionRalphCancel, sessionRalphStart, sessionRalphStatus, sessionResume, sessionSend, sessionShare, sessionSpawn, sessionWait, sessionWhoami, snapshotLatestSeq, validateSendOptions };
2467
+ export { collectAssistantResponse, connectAndGetMachine, connectAndResolveSession, createWorktree, generateWorktreeName, machineExec, machineInfo, machineLs, machineShare, parseShareArg, queryCore, renderMessage, resolveSessionId, sendCore, sessionApprove, sessionArchive, sessionAttach, sessionDelete, sessionDeny, sessionInboxClear, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxSend, sessionInfo, sessionList, sessionMachines, sessionMessages, sessionQuery, sessionRalphCancel, sessionRalphStart, sessionRalphStatus, sessionResume, sessionSend, sessionShare, sessionSpawn, sessionWait, sessionWhoami, snapshotLatestSeq, validateSendOptions, wiseAskCli };