svamp-cli 0.2.115 → 0.2.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: loop
3
- version: 0.3.2
3
+ version: 0.3.3
4
4
  description: Run a task as a reliable, self-verifying loop — iterate until objective exit conditions are met, with an independent evaluator instead of self-judging. Use when a task needs repeated iterations until "done" (fix until tests pass, refactor until clean, build until a spec is met, autonomous long-running work).
5
5
  ---
6
6
 
@@ -71,6 +71,9 @@ const config = {
71
71
  // and resolve their own dir relatively) read this to run the oracle + fingerprint the
72
72
  // work product, since their depth no longer encodes the project root.
73
73
  project_dir: dir,
74
+ // The success contract — the durable thing the gate judges against. Read by the daemon
75
+ // to populate the supervision:verdict event (docs/supervisor-gate-design.md).
76
+ ...(criteria ? { criteria: criteria.trim() } : {}),
74
77
  oracle: oracle ? { command: oracle, timeout_sec: 600 } : null,
75
78
  evaluator: { enabled: evaluatorOn, model },
76
79
  max_iterations: max,
@@ -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 { n as shortId } from './run-DXzaCfex.mjs';
5
+ import { n as shortId } from './run-DHPCWQUq.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-DXzaCfex.mjs').then(function (n) { return n.T; });
99
+ const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.T; });
100
100
  const desc = sanitizeDescription(description, 240);
101
101
  if (!desc) {
102
102
  console.error("Project description is empty.");
@@ -180,7 +180,7 @@ async function sessionBroadcast(action, args) {
180
180
  console.log(`Broadcast sent: ${action}`);
181
181
  }
182
182
  async function connectToMachineService() {
183
- const { connectAndGetMachine } = await import('./commands-B3NhziMR.mjs');
183
+ const { connectAndGetMachine } = await import('./commands-DdW5M7Le.mjs');
184
184
  return connectAndGetMachine();
185
185
  }
186
186
  async function inboxSend(targetSessionId, opts) {
@@ -197,7 +197,7 @@ async function inboxSend(targetSessionId, opts) {
197
197
  }
198
198
  const { server, machine } = await connectToMachineService();
199
199
  try {
200
- const { resolveSessionId } = await import('./commands-B3NhziMR.mjs');
200
+ const { resolveSessionId } = await import('./commands-DdW5M7Le.mjs');
201
201
  const sessions = await machine.listSessions();
202
202
  const match = resolveSessionId(sessions, targetSessionId);
203
203
  const fullTargetId = match.sessionId;
@@ -1,4 +1,4 @@
1
- import { F as resolveModel } from './run-DXzaCfex.mjs';
1
+ import { F as resolveModel } from './run-DHPCWQUq.mjs';
2
2
  import 'os';
3
3
  import 'fs/promises';
4
4
  import 'fs';
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-DXzaCfex.mjs';
1
+ import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-DHPCWQUq.mjs';
2
2
  import { ensureSupervisorViaServiceManager, LAUNCHD_LABEL } from './serviceManager-hlOVxkhW.mjs';
3
3
  import 'os';
4
4
  import 'fs/promises';
@@ -34,7 +34,7 @@ const subcommand = args[0];
34
34
  let daemonSubcommand = args[1];
35
35
  async function main() {
36
36
  try {
37
- const { getLoadedConfig } = await import('./run-DXzaCfex.mjs').then(function (n) { return n._; });
37
+ const { getLoadedConfig } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n._; });
38
38
  getLoadedConfig();
39
39
  } catch {
40
40
  }
@@ -51,7 +51,7 @@ async function main() {
51
51
  console.error(`svamp daemon restart: ${err.message || err}`);
52
52
  process.exit(1);
53
53
  }
54
- const { restartDaemon } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.a0; });
54
+ const { restartDaemon } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.a0; });
55
55
  await restartDaemon();
56
56
  process.exit(0);
57
57
  }
@@ -344,7 +344,7 @@ async function main() {
344
344
  console.error("svamp service: Service commands are not available in sandboxed sessions.");
345
345
  process.exit(1);
346
346
  }
347
- const { handleServiceCommand } = await import('./commands-Vudp6ihZ.mjs');
347
+ const { handleServiceCommand } = await import('./commands-C1ERmRw4.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-CFO3GtKq.mjs');
355
+ const { handleServeCommand } = await import('./serveCommands-D9KR-bC5.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-Dmh59asw.mjs');
364
+ const { processCommand } = await import('./commands-C0715MEC.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-DbQ14J-R.mjs');
378
+ const { routineCommand } = await import('./commands-ClxBUkI3.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-BuIQUz-N.mjs').catch(() => ({ default: { version: "unknown" } }));
389
+ const pkg = await import('./package-BdLUrz6e.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-BnPtZvoP.mjs');
398
+ const { runInteractive } = await import('./run-DnGdMH2k.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-DXzaCfex.mjs').then(function (n) { return n.W; });
443
+ const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.W; });
444
444
  console.log("Known agents:");
445
445
  for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
446
446
  console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
@@ -452,7 +452,7 @@ async function handleAgentCommand() {
452
452
  console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
453
453
  return;
454
454
  }
455
- const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.W; });
455
+ const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.W; });
456
456
  let cwd = process.cwd();
457
457
  const filteredArgs = [];
458
458
  for (let i = 0; i < agentArgs.length; i++) {
@@ -476,12 +476,12 @@ async function handleAgentCommand() {
476
476
  console.log(`Starting ${config.agentName} agent in ${cwd}...`);
477
477
  let backend;
478
478
  if (KNOWN_MCP_AGENTS[config.agentName]) {
479
- const { CodexMcpBackend } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.X; });
479
+ const { CodexMcpBackend } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.X; });
480
480
  backend = new CodexMcpBackend({ cwd, log: logFn });
481
481
  } else {
482
- const { AcpBackend } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.V; });
483
- const { GeminiTransport } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.Y; });
484
- const { DefaultTransport } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.U; });
482
+ const { AcpBackend } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.V; });
483
+ const { GeminiTransport } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.Y; });
484
+ const { DefaultTransport } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.U; });
485
485
  const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
486
486
  backend = new AcpBackend({
487
487
  agentName: config.agentName,
@@ -608,7 +608,7 @@ async function handleSessionCommand() {
608
608
  process.exit(1);
609
609
  }
610
610
  }
611
- const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-B3NhziMR.mjs');
611
+ const { sessionList, sessionWhoami, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionLoopStart, sessionLoopCancel, sessionLoopStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-DdW5M7Le.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-B3NhziMR.mjs');
679
+ const { parseShareArg } = await import('./commands-DdW5M7Le.mjs');
680
680
  const shareEntries = share.map((s) => parseShareArg(s));
681
681
  await sessionSpawn(agent, dir, targetMachineId, {
682
682
  message,
@@ -755,30 +755,6 @@ async function handleSessionCommand() {
755
755
  model: parseFlagStr("--model"),
756
756
  plain: hasFlag("--plain")
757
757
  });
758
- } else if (sessionSubcommand === "edit-message" || sessionSubcommand === "edit") {
759
- if (!sessionArgs[1] || !sessionArgs[2] || sessionArgs[3] === void 0) {
760
- console.error("Usage: svamp session edit-message <session-id> <message-id> <new-text>");
761
- console.error(" Rewinds history: rewrites the message + drops everything after it, then restarts Claude.");
762
- process.exit(1);
763
- }
764
- const { sessionEditMessage } = await import('./commands-B3NhziMR.mjs');
765
- await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
766
- } else if (sessionSubcommand === "refine") {
767
- if (!sessionArgs[1] || !sessionArgs[2]) {
768
- console.error("Usage: svamp session refine <session-id> <instruction>");
769
- console.error(" Asks the agent to revise its latest reply in place (no extra round).");
770
- process.exit(1);
771
- }
772
- const { sessionRefineLastReply } = await import('./commands-B3NhziMR.mjs');
773
- await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
774
- } else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
775
- if (!sessionArgs[1]) {
776
- console.error("Usage: svamp session undo-edit <session-id>");
777
- console.error(" Reverts the most recent edit/refine, restoring the pre-edit history.");
778
- process.exit(1);
779
- }
780
- const { sessionUndoEdit } = await import('./commands-B3NhziMR.mjs');
781
- await sessionUndoEdit(sessionArgs[1], targetMachineId);
782
758
  } else if (sessionSubcommand === "query") {
783
759
  const dir = sessionArgs[1];
784
760
  const prompt = sessionArgs[2];
@@ -787,7 +763,7 @@ async function handleSessionCommand() {
787
763
  console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
788
764
  process.exit(1);
789
765
  }
790
- const { sessionQuery } = await import('./commands-B3NhziMR.mjs');
766
+ const { sessionQuery } = await import('./commands-DdW5M7Le.mjs');
791
767
  await sessionQuery(dir, prompt, targetMachineId, {
792
768
  timeout: parseFlagInt("--timeout"),
793
769
  json: hasFlag("--json"),
@@ -820,7 +796,7 @@ async function handleSessionCommand() {
820
796
  console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
821
797
  process.exit(1);
822
798
  }
823
- const { sessionApprove } = await import('./commands-B3NhziMR.mjs');
799
+ const { sessionApprove } = await import('./commands-DdW5M7Le.mjs');
824
800
  const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
825
801
  await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
826
802
  json: hasFlag("--json")
@@ -830,7 +806,7 @@ async function handleSessionCommand() {
830
806
  console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
831
807
  process.exit(1);
832
808
  }
833
- const { sessionDeny } = await import('./commands-B3NhziMR.mjs');
809
+ const { sessionDeny } = await import('./commands-DdW5M7Le.mjs');
834
810
  const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
835
811
  await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
836
812
  json: hasFlag("--json")
@@ -865,7 +841,7 @@ async function handleSessionCommand() {
865
841
  console.error("Usage: svamp session set-title <title>");
866
842
  process.exit(1);
867
843
  }
868
- const { sessionSetTitle } = await import('./agentCommands-CFWM6S7e.mjs');
844
+ const { sessionSetTitle } = await import('./agentCommands--H31qHbm.mjs');
869
845
  await sessionSetTitle(title);
870
846
  } else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
871
847
  const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
@@ -873,7 +849,7 @@ async function handleSessionCommand() {
873
849
  console.error("Usage: svamp session set-project-description <text>");
874
850
  process.exit(1);
875
851
  }
876
- const { sessionSetProjectDescription } = await import('./agentCommands-CFWM6S7e.mjs');
852
+ const { sessionSetProjectDescription } = await import('./agentCommands--H31qHbm.mjs');
877
853
  await sessionSetProjectDescription(desc);
878
854
  } else if (sessionSubcommand === "set-link") {
879
855
  const url = sessionArgs[1];
@@ -882,7 +858,7 @@ async function handleSessionCommand() {
882
858
  process.exit(1);
883
859
  }
884
860
  const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
885
- const { sessionSetLink } = await import('./agentCommands-CFWM6S7e.mjs');
861
+ const { sessionSetLink } = await import('./agentCommands--H31qHbm.mjs');
886
862
  await sessionSetLink(url, label);
887
863
  } else if (sessionSubcommand === "notify") {
888
864
  const message = sessionArgs[1];
@@ -891,7 +867,7 @@ async function handleSessionCommand() {
891
867
  process.exit(1);
892
868
  }
893
869
  const level = parseFlagStr("--level") || "info";
894
- const { sessionNotify } = await import('./agentCommands-CFWM6S7e.mjs');
870
+ const { sessionNotify } = await import('./agentCommands--H31qHbm.mjs');
895
871
  await sessionNotify(message, level);
896
872
  } else if (sessionSubcommand === "broadcast") {
897
873
  const action = sessionArgs[1];
@@ -899,7 +875,7 @@ async function handleSessionCommand() {
899
875
  console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
900
876
  process.exit(1);
901
877
  }
902
- const { sessionBroadcast } = await import('./agentCommands-CFWM6S7e.mjs');
878
+ const { sessionBroadcast } = await import('./agentCommands--H31qHbm.mjs');
903
879
  await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
904
880
  } else if (sessionSubcommand === "inbox") {
905
881
  const inboxSubcmd = sessionArgs[1];
@@ -910,7 +886,7 @@ async function handleSessionCommand() {
910
886
  process.exit(1);
911
887
  }
912
888
  if (agentSessionId) {
913
- const { inboxSend } = await import('./agentCommands-CFWM6S7e.mjs');
889
+ const { inboxSend } = await import('./agentCommands--H31qHbm.mjs');
914
890
  await inboxSend(sessionArgs[2], {
915
891
  body: sessionArgs[3],
916
892
  subject: parseFlagStr("--subject"),
@@ -925,7 +901,7 @@ async function handleSessionCommand() {
925
901
  }
926
902
  } else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
927
903
  if (agentSessionId && !sessionArgs[2]) {
928
- const { inboxList } = await import('./agentCommands-CFWM6S7e.mjs');
904
+ const { inboxList } = await import('./agentCommands--H31qHbm.mjs');
929
905
  await inboxList({
930
906
  unread: hasFlag("--unread"),
931
907
  limit: parseFlagInt("--limit"),
@@ -947,7 +923,7 @@ async function handleSessionCommand() {
947
923
  process.exit(1);
948
924
  }
949
925
  if (agentSessionId && !sessionArgs[3]) {
950
- const { inboxList } = await import('./agentCommands-CFWM6S7e.mjs');
926
+ const { inboxList } = await import('./agentCommands--H31qHbm.mjs');
951
927
  await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
952
928
  } else if (sessionArgs[3]) {
953
929
  await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
@@ -957,7 +933,7 @@ async function handleSessionCommand() {
957
933
  }
958
934
  } else if (inboxSubcmd === "reply") {
959
935
  if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
960
- const { inboxReply } = await import('./agentCommands-CFWM6S7e.mjs');
936
+ const { inboxReply } = await import('./agentCommands--H31qHbm.mjs');
961
937
  await inboxReply(sessionArgs[2], sessionArgs[3]);
962
938
  } else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
963
939
  await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
@@ -993,7 +969,7 @@ async function handleMachineCommand() {
993
969
  return;
994
970
  }
995
971
  if (machineSubcommand === "share") {
996
- const { machineShare } = await import('./commands-B3NhziMR.mjs');
972
+ const { machineShare } = await import('./commands-DdW5M7Le.mjs');
997
973
  let machineId;
998
974
  const shareArgs = [];
999
975
  for (let i = 1; i < machineArgs.length; i++) {
@@ -1023,7 +999,7 @@ async function handleMachineCommand() {
1023
999
  }
1024
1000
  await machineShare(machineId, { add, remove, list, configPath, showConfig });
1025
1001
  } else if (machineSubcommand === "exec") {
1026
- const { machineExec } = await import('./commands-B3NhziMR.mjs');
1002
+ const { machineExec } = await import('./commands-DdW5M7Le.mjs');
1027
1003
  let machineId;
1028
1004
  let cwd;
1029
1005
  const cmdParts = [];
@@ -1043,7 +1019,7 @@ async function handleMachineCommand() {
1043
1019
  }
1044
1020
  await machineExec(machineId, command, cwd);
1045
1021
  } else if (machineSubcommand === "info") {
1046
- const { machineInfo } = await import('./commands-B3NhziMR.mjs');
1022
+ const { machineInfo } = await import('./commands-DdW5M7Le.mjs');
1047
1023
  let machineId;
1048
1024
  for (let i = 1; i < machineArgs.length; i++) {
1049
1025
  if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
@@ -1063,10 +1039,10 @@ async function handleMachineCommand() {
1063
1039
  level = machineArgs[++i];
1064
1040
  }
1065
1041
  }
1066
- const { machineNotify } = await import('./agentCommands-CFWM6S7e.mjs');
1042
+ const { machineNotify } = await import('./agentCommands--H31qHbm.mjs');
1067
1043
  await machineNotify(message, level);
1068
1044
  } else if (machineSubcommand === "ls") {
1069
- const { machineLs } = await import('./commands-B3NhziMR.mjs');
1045
+ const { machineLs } = await import('./commands-DdW5M7Le.mjs');
1070
1046
  let machineId;
1071
1047
  let showHidden = false;
1072
1048
  let path;
@@ -1124,24 +1100,24 @@ Examples:
1124
1100
  };
1125
1101
  const hasFlag = (name) => fleetArgs.includes(`--${name}`);
1126
1102
  if (sub === "status") {
1127
- const { fleetStatus } = await import('./fleet-F8KB5IcM.mjs');
1103
+ const { fleetStatus } = await import('./fleet-js8FwhM_.mjs');
1128
1104
  await fleetStatus();
1129
1105
  } else if (sub === "exec") {
1130
1106
  const command = fleetArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1131
- const { fleetExec } = await import('./fleet-F8KB5IcM.mjs');
1107
+ const { fleetExec } = await import('./fleet-js8FwhM_.mjs');
1132
1108
  await fleetExec(command, { cwd: flag("cwd") });
1133
1109
  } else if (sub === "upgrade-claude") {
1134
- const { fleetUpgradeClaude } = await import('./fleet-F8KB5IcM.mjs');
1110
+ const { fleetUpgradeClaude } = await import('./fleet-js8FwhM_.mjs');
1135
1111
  await fleetUpgradeClaude({ version: flag("version", "-v") });
1136
1112
  } else if (sub === "upgrade-svamp") {
1137
- const { fleetUpgradeSvamp } = await import('./fleet-F8KB5IcM.mjs');
1113
+ const { fleetUpgradeSvamp } = await import('./fleet-js8FwhM_.mjs');
1138
1114
  await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self") });
1139
1115
  } else if (sub === "daemon-restart") {
1140
- const { fleetDaemonRestart } = await import('./fleet-F8KB5IcM.mjs');
1116
+ const { fleetDaemonRestart } = await import('./fleet-js8FwhM_.mjs');
1141
1117
  await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
1142
1118
  } else if (sub === "push-skill") {
1143
1119
  const name = fleetArgs[1];
1144
- const { fleetPushSkill } = await import('./fleet-F8KB5IcM.mjs');
1120
+ const { fleetPushSkill } = await import('./fleet-js8FwhM_.mjs');
1145
1121
  await fleetPushSkill(name);
1146
1122
  } else {
1147
1123
  console.error(`Unknown fleet subcommand: ${sub}`);
@@ -1157,7 +1133,7 @@ async function handleSkillsCommand() {
1157
1133
  await printSkillsHelp();
1158
1134
  return;
1159
1135
  }
1160
- const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-Dj2M3sTB.mjs');
1136
+ const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-zMw02qH_.mjs');
1161
1137
  if (skillsSubcommand === "find" || skillsSubcommand === "search") {
1162
1138
  const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
1163
1139
  if (!query) {
@@ -1204,7 +1180,7 @@ async function loginToHypha() {
1204
1180
  process.exit(1);
1205
1181
  }
1206
1182
  const anchor = anchorArg.replace(/\/+$/, "");
1207
- const { loadInstanceConfig } = await import('./run-DXzaCfex.mjs').then(function (n) { return n._; });
1183
+ const { loadInstanceConfig } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n._; });
1208
1184
  let cfg = null;
1209
1185
  try {
1210
1186
  cfg = await loadInstanceConfig({ anchor, force: true });
@@ -1315,7 +1291,7 @@ async function logoutFromHypha() {
1315
1291
  } catch {
1316
1292
  }
1317
1293
  try {
1318
- const { clearInstanceConfigCache } = await import('./run-DXzaCfex.mjs').then(function (n) { return n._; });
1294
+ const { clearInstanceConfigCache } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n._; });
1319
1295
  clearInstanceConfigCache();
1320
1296
  } catch {
1321
1297
  }
@@ -1646,7 +1622,7 @@ async function applyClaudeAuthFlags(argv) {
1646
1622
  "--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
1647
1623
  );
1648
1624
  }
1649
- const mod = await import('./run-DXzaCfex.mjs').then(function (n) { return n.Z; });
1625
+ const mod = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.Z; });
1650
1626
  if (hasHypha) {
1651
1627
  let url;
1652
1628
  const hyphaIdx = argv.indexOf("--use-hypha-proxy");
@@ -1700,7 +1676,7 @@ async function applyDaemonShareFlag(argv) {
1700
1676
  }
1701
1677
  }
1702
1678
  if (collected.length === 0) return;
1703
- const { updateEnvFile } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.Z; });
1679
+ const { updateEnvFile } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.Z; });
1704
1680
  const seen = /* @__PURE__ */ new Set();
1705
1681
  const deduped = collected.filter((e) => {
1706
1682
  const k = e.toLowerCase();
@@ -1733,7 +1709,7 @@ async function handleWiseAgentCommand(rest) {
1733
1709
  }
1734
1710
  });
1735
1711
  const message = rest.slice(1).map((a, idx) => ({ a, idx: idx + 1 })).filter(({ a, idx }) => !a.startsWith("-") && !consumed.has(String(idx))).map(({ a }) => a).join(" ");
1736
- const { wiseAskCli } = await import('./commands-B3NhziMR.mjs');
1712
+ const { wiseAskCli } = await import('./commands-DdW5M7Le.mjs');
1737
1713
  await wiseAskCli(machineId, message, sessionId, { json });
1738
1714
  return;
1739
1715
  }
@@ -1745,7 +1721,7 @@ async function handleWiseAgentCommand(rest) {
1745
1721
  }
1746
1722
  return void 0;
1747
1723
  };
1748
- const { runWiseVoiceCli } = await import('./headlessCli-6Cps9gnO.mjs');
1724
+ const { runWiseVoiceCli } = await import('./headlessCli-my-nvBDO.mjs');
1749
1725
  await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
1750
1726
  return;
1751
1727
  }
@@ -1787,7 +1763,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1787
1763
  return;
1788
1764
  }
1789
1765
  const authArgs = rest.slice(1);
1790
- const mod = await import('./auth-B3NsDWG9.mjs');
1766
+ const mod = await import('./auth-CUzGJvRf.mjs');
1791
1767
  let action;
1792
1768
  try {
1793
1769
  action = mod.parseWiseAgentAuthArgs(authArgs);
@@ -1797,7 +1773,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1797
1773
  return;
1798
1774
  }
1799
1775
  if (action) {
1800
- const { updateEnvFile } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.Z; });
1776
+ const { updateEnvFile } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.Z; });
1801
1777
  const updates = mod.buildWiseAgentEnvUpdates(action);
1802
1778
  updateEnvFile(updates);
1803
1779
  for (const [k, v] of Object.entries(updates)) {
@@ -1811,7 +1787,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
1811
1787
  }
1812
1788
  async function handleDaemonAuthCommand(argv) {
1813
1789
  const sub = (argv[0] || "status").toLowerCase();
1814
- const mod = await import('./run-DXzaCfex.mjs').then(function (n) { return n.Z; });
1790
+ const mod = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.Z; });
1815
1791
  if (sub === "--help" || sub === "-h" || sub === "help") {
1816
1792
  console.log(`
1817
1793
  svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
@@ -2114,7 +2090,7 @@ Examples:
2114
2090
  async function printSkillsHelp() {
2115
2091
  let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
2116
2092
  try {
2117
- const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-DXzaCfex.mjs').then(function (n) { return n.$; });
2093
+ const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-DHPCWQUq.mjs').then(function (n) { return n.$; });
2118
2094
  browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
2119
2095
  } catch {
2120
2096
  }
@@ -1,11 +1,11 @@
1
1
  import { writeFileSync, readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
- import { connectAndGetMachine } from './commands-B3NhziMR.mjs';
3
+ import { connectAndGetMachine } from './commands-DdW5M7Le.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-DXzaCfex.mjs';
8
+ import './run-DHPCWQUq.mjs';
9
9
  import 'os';
10
10
  import 'fs/promises';
11
11
  import 'url';
@@ -58,7 +58,7 @@ async function serviceExpose(args) {
58
58
  process.exit(1);
59
59
  }
60
60
  if (foreground) {
61
- const { runFrpcTunnel } = await import('./frpc-1aSnPVrE.mjs');
61
+ const { runFrpcTunnel } = await import('./frpc-9qgaimIN.mjs');
62
62
  await runFrpcTunnel(name, ports, void 0, {
63
63
  group,
64
64
  groupKey,
@@ -68,7 +68,7 @@ async function serviceExpose(args) {
68
68
  });
69
69
  return;
70
70
  }
71
- const { connectAndGetMachine } = await import('./commands-B3NhziMR.mjs');
71
+ const { connectAndGetMachine } = await import('./commands-DdW5M7Le.mjs');
72
72
  const { server, machine } = await connectAndGetMachine();
73
73
  try {
74
74
  const status = await machine.tunnelStart({
@@ -123,7 +123,7 @@ async function serviceServe(args) {
123
123
  };
124
124
  process.on("SIGINT", cleanup);
125
125
  process.on("SIGTERM", cleanup);
126
- const { runFrpcTunnel } = await import('./frpc-1aSnPVrE.mjs');
126
+ const { runFrpcTunnel } = await import('./frpc-9qgaimIN.mjs');
127
127
  await runFrpcTunnel(name, [caddyPort]);
128
128
  } catch (err) {
129
129
  console.error(`Error serving directory: ${err.message}`);
@@ -132,7 +132,7 @@ async function serviceServe(args) {
132
132
  }
133
133
  async function serviceList(_args) {
134
134
  try {
135
- const { connectAndGetMachine } = await import('./commands-B3NhziMR.mjs');
135
+ const { connectAndGetMachine } = await import('./commands-DdW5M7Le.mjs');
136
136
  const { server, machine } = await connectAndGetMachine();
137
137
  try {
138
138
  const tunnels = await machine.tunnelList({});
@@ -161,7 +161,7 @@ async function serviceDelete(args) {
161
161
  process.exit(1);
162
162
  }
163
163
  try {
164
- const { connectAndGetMachine } = await import('./commands-B3NhziMR.mjs');
164
+ const { connectAndGetMachine } = await import('./commands-DdW5M7Le.mjs');
165
165
  const { server, machine } = await connectAndGetMachine();
166
166
  try {
167
167
  await machine.tunnelStop({ name });
@@ -1,6 +1,6 @@
1
1
  import { execFileSync } from 'node:child_process';
2
2
  import { createServer } from 'node:http';
3
- import { R as RoutineStore, m as RoutineRunner } from './run-DXzaCfex.mjs';
3
+ import { R as RoutineStore, m as RoutineRunner } from './run-DHPCWQUq.mjs';
4
4
  import 'os';
5
5
  import 'fs/promises';
6
6
  import 'fs';
@@ -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 { G as normalizeAllowedUser, H as loadSecurityContextConfig, I as resolveSecurityContext, J as buildSecurityContextFromFlags, K as mergeSecurityContexts, c as connectToHypha, L as buildSessionShareUrl, M as computeOutboundHop, n as shortId, N as buildMachineShareUrl } from './run-DXzaCfex.mjs';
5
+ import { G as normalizeAllowedUser, H as loadSecurityContextConfig, I as resolveSecurityContext, J as buildSecurityContextFromFlags, K as mergeSecurityContexts, c as connectToHypha, L as buildSessionShareUrl, M as computeOutboundHop, n as shortId, N as buildMachineShareUrl } from './run-DHPCWQUq.mjs';
6
6
  import 'os';
7
7
  import 'fs/promises';
8
8
  import 'fs';
@@ -89,9 +89,6 @@ const SESSION_RPC_PARAMS = {
89
89
  getLatestMessages: ["beforeSeq", "limit"],
90
90
  sendMessage: ["content", "localId", "meta"],
91
91
  btw: ["question"],
92
- editMessage: ["messageId", "newText"],
93
- refineLastReply: ["instruction"],
94
- undoLastEdit: [],
95
92
  getMetadata: [],
96
93
  updateMetadata: ["newMetadata", "expectedVersion"],
97
94
  updateConfig: ["patch"],
@@ -1297,48 +1294,6 @@ async function sessionMessages(sessionId, machineId, opts) {
1297
1294
  await server.disconnect();
1298
1295
  }
1299
1296
  }
1300
- async function sessionEditMessage(sessionId, messageId, newText, machineId) {
1301
- const { server, machine, fullId } = await connectAndResolveSession(sessionId, machineId);
1302
- try {
1303
- const res = await machine.sessionRPC(fullId, "editMessage", { messageId, newText });
1304
- if (res?.success) {
1305
- console.log("\u2713 Message edited; Claude restarted with the rewritten history.");
1306
- } else {
1307
- console.error(`\u2717 Edit failed: ${res?.message || "unknown error"}`);
1308
- process.exitCode = 1;
1309
- }
1310
- } finally {
1311
- await server.disconnect();
1312
- }
1313
- }
1314
- async function sessionRefineLastReply(sessionId, instruction, machineId) {
1315
- const { server, machine, fullId } = await connectAndResolveSession(sessionId, machineId);
1316
- try {
1317
- const res = await machine.sessionRPC(fullId, "refineLastReply", { instruction });
1318
- if (res?.success) {
1319
- console.log("\u2713 Latest reply refined; Claude restarted with the rewritten history.");
1320
- } else {
1321
- console.error(`\u2717 Refine failed: ${res?.message || "unknown error"}`);
1322
- process.exitCode = 1;
1323
- }
1324
- } finally {
1325
- await server.disconnect();
1326
- }
1327
- }
1328
- async function sessionUndoEdit(sessionId, machineId) {
1329
- const { server, machine, fullId } = await connectAndResolveSession(sessionId, machineId);
1330
- try {
1331
- const res = await machine.sessionRPC(fullId, "undoLastEdit", {});
1332
- if (res?.success) {
1333
- console.log("\u2713 Last edit reverted; Claude restarted with the pre-edit history.");
1334
- } else {
1335
- console.error(`\u2717 Undo failed: ${res?.message || "unknown error"}`);
1336
- process.exitCode = 1;
1337
- }
1338
- } finally {
1339
- await server.disconnect();
1340
- }
1341
- }
1342
1297
  async function sessionApprove(sessionId, requestId, machineId, opts) {
1343
1298
  const { server, machine, fullId } = await connectAndResolveSession(sessionId, machineId);
1344
1299
  try {
@@ -2545,4 +2500,4 @@ async function sessionInboxClear(sessionIdPartial, machineId, opts) {
2545
2500
  }
2546
2501
  }
2547
2502
 
2548
- export { collectAssistantResponse, connectAndGetMachine, connectAndResolveSession, createWorktree, generateWorktreeName, machineExec, machineInfo, machineLs, machineShare, parseShareArg, queryCore, renderMessage, resolveSessionId, sendCore, sessionApprove, sessionArchive, sessionAttach, sessionDelete, sessionDeny, sessionEditMessage, sessionInboxClear, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxSend, sessionInfo, sessionList, sessionLoopCancel, sessionLoopStart, sessionLoopStatus, sessionMachines, sessionMessages, sessionQuery, sessionRefineLastReply, sessionResume, sessionSend, sessionShare, sessionSpawn, sessionUndoEdit, sessionWait, sessionWhoami, snapshotLatestSeq, validateSendOptions, wiseAskCli };
2503
+ 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, sessionLoopCancel, sessionLoopStart, sessionLoopStatus, sessionMachines, sessionMessages, sessionQuery, sessionResume, sessionSend, sessionShare, sessionSpawn, sessionWait, sessionWhoami, snapshotLatestSeq, validateSendOptions, wiseAskCli };
@@ -1,7 +1,7 @@
1
1
  import os from 'os';
2
2
  import fs__default from 'fs';
3
3
  import { resolve, join, relative } from 'path';
4
- import { p as parseFrontmatter, o as getSkillsServer, q as getSkillsWorkspaceName, t as getSkillsCollectionName, u as fetchWithTimeout, v as searchSkills, w as SKILLS_DIR, x as getSkillInfo, y as downloadSkillFile, z as listSkillFiles } from './run-DXzaCfex.mjs';
4
+ import { p as parseFrontmatter, o as getSkillsServer, q as getSkillsWorkspaceName, t as getSkillsCollectionName, u as fetchWithTimeout, v as searchSkills, w as SKILLS_DIR, x as getSkillInfo, y as downloadSkillFile, z as listSkillFiles } from './run-DHPCWQUq.mjs';
5
5
  import 'fs/promises';
6
6
  import 'url';
7
7
  import 'child_process';