svamp-cli 0.2.128 → 0.2.130
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.
- package/bin/skills/crew/SKILL.md +11 -10
- package/bin/skills/loop/bin/checklist.mjs +3 -2
- package/bin/skills/loop/bin/loop-init.mjs +2 -2
- package/dist/{agentCommands-jGCEdEYn.mjs → agentCommands-DOUG625_.mjs} +4 -4
- package/dist/{auth-DVa-sVa9.mjs → auth-UNUDBJKU.mjs} +1 -1
- package/dist/cli.mjs +85 -95
- package/dist/{commands-CHUE-0Mz.mjs → commands-B8vUCW50.mjs} +1 -1
- package/dist/{commands-deNTJ9jb.mjs → commands-BFGR6-V-.mjs} +9 -9
- package/dist/{commands-BLYvHcrD.mjs → commands-BeOI6l78.mjs} +19 -8
- package/dist/{commands-Dif088xw.mjs → commands-D830hGXM.mjs} +2 -2
- package/dist/{commands-CO-lf8m_.mjs → commands-MdYMcyaZ.mjs} +2 -2
- package/dist/{commands-BVx72l2K.mjs → commands-QGaI-ukW.mjs} +12 -46
- package/dist/{fleet-D3L05h5k.mjs → fleet-nj6bMyhh.mjs} +1 -1
- package/dist/{frpc-CWyoLax7.mjs → frpc-DrfDPPux.mjs} +147 -8
- package/dist/{headlessCli-CB9HN7zY.mjs → headlessCli-D8x-uGEN.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{package-C5owhm4c.mjs → package-BK6btwnG.mjs} +2 -2
- package/dist/{run-CkPzZuKK.mjs → run---5cgexR.mjs} +1 -1
- package/dist/{run-C23-A9KM.mjs → run-DMahGhJP.mjs} +166 -102
- package/dist/{serveCommands-BBIKhjxn.mjs → serveCommands-C8iIs7jb.mjs} +5 -5
- package/dist/{serveManager-CxbgXYEo.mjs → serveManager-Csqa6icR.mjs} +2 -2
- package/dist/{sideband-D5F6XGss.mjs → sideband-Bk7iN3dp.mjs} +1 -1
- package/package.json +2 -2
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-
|
|
1
|
+
import { e as clearStopMarker, f as stopMarkerExists, s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-DMahGhJP.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-
|
|
37
|
+
const { getLoadedConfig } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a4; });
|
|
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-
|
|
54
|
+
const { restartDaemon } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a6; });
|
|
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-
|
|
347
|
+
const { handleServiceCommand } = await import('./commands-BeOI6l78.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-
|
|
355
|
+
const { handleServeCommand } = await import('./serveCommands-C8iIs7jb.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-
|
|
364
|
+
const { processCommand } = await import('./commands-D830hGXM.mjs');
|
|
365
365
|
let machineId;
|
|
366
366
|
const processArgs = args.slice(1);
|
|
367
367
|
const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
|
|
@@ -375,14 +375,14 @@ async function main() {
|
|
|
375
375
|
}), machineId);
|
|
376
376
|
process.exit(0);
|
|
377
377
|
} else if (subcommand === "trigger" || subcommand === "triggers" || subcommand === "routine" || subcommand === "routines") {
|
|
378
|
-
const { routineCommand } = await import('./commands-
|
|
378
|
+
const { routineCommand } = await import('./commands-MdYMcyaZ.mjs');
|
|
379
379
|
await routineCommand(args.slice(1));
|
|
380
380
|
process.exit(0);
|
|
381
381
|
} else if (subcommand === "wise-agent" || subcommand === "wise") {
|
|
382
382
|
await handleWiseAgentCommand(args.slice(1));
|
|
383
383
|
process.exit(0);
|
|
384
384
|
} else if (subcommand === "feature" || subcommand === "crew") {
|
|
385
|
-
const { crewCommand } = await import('./commands-
|
|
385
|
+
const { crewCommand } = await import('./commands-BFGR6-V-.mjs');
|
|
386
386
|
await crewCommand(args.slice(1));
|
|
387
387
|
process.exit(0);
|
|
388
388
|
} else if (subcommand === "--help" || subcommand === "-h") {
|
|
@@ -390,7 +390,7 @@ async function main() {
|
|
|
390
390
|
} else if (!subcommand || subcommand === "start") {
|
|
391
391
|
await handleInteractiveCommand();
|
|
392
392
|
} else if (subcommand === "--version" || subcommand === "-v") {
|
|
393
|
-
const pkg = await import('./package-
|
|
393
|
+
const pkg = await import('./package-BK6btwnG.mjs').catch(() => ({ default: { version: "unknown" } }));
|
|
394
394
|
console.log(`svamp version: ${pkg.default.version}`);
|
|
395
395
|
} else {
|
|
396
396
|
console.error(`Unknown command: ${subcommand}`);
|
|
@@ -399,7 +399,7 @@ async function main() {
|
|
|
399
399
|
}
|
|
400
400
|
}
|
|
401
401
|
async function handleInteractiveCommand() {
|
|
402
|
-
const { runInteractive } = await import('./run
|
|
402
|
+
const { runInteractive } = await import('./run---5cgexR.mjs');
|
|
403
403
|
const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
|
|
404
404
|
let directory = process.cwd();
|
|
405
405
|
let resumeSessionId;
|
|
@@ -444,7 +444,7 @@ async function handleAgentCommand() {
|
|
|
444
444
|
return;
|
|
445
445
|
}
|
|
446
446
|
if (agentArgs[0] === "list") {
|
|
447
|
-
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-
|
|
447
|
+
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a0; });
|
|
448
448
|
console.log("Known agents:");
|
|
449
449
|
for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
|
|
450
450
|
console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
|
|
@@ -456,7 +456,7 @@ async function handleAgentCommand() {
|
|
|
456
456
|
console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
|
|
457
457
|
return;
|
|
458
458
|
}
|
|
459
|
-
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-
|
|
459
|
+
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a0; });
|
|
460
460
|
let cwd = process.cwd();
|
|
461
461
|
const filteredArgs = [];
|
|
462
462
|
for (let i = 0; i < agentArgs.length; i++) {
|
|
@@ -480,12 +480,12 @@ async function handleAgentCommand() {
|
|
|
480
480
|
console.log(`Starting ${config.agentName} agent in ${cwd}...`);
|
|
481
481
|
let backend;
|
|
482
482
|
if (KNOWN_MCP_AGENTS[config.agentName]) {
|
|
483
|
-
const { CodexMcpBackend } = await import('./run-
|
|
483
|
+
const { CodexMcpBackend } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a1; });
|
|
484
484
|
backend = new CodexMcpBackend({ cwd, log: logFn });
|
|
485
485
|
} else {
|
|
486
|
-
const { AcpBackend } = await import('./run-
|
|
487
|
-
const { GeminiTransport } = await import('./run-
|
|
488
|
-
const { DefaultTransport } = await import('./run-
|
|
486
|
+
const { AcpBackend } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.$; });
|
|
487
|
+
const { GeminiTransport } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a2; });
|
|
488
|
+
const { DefaultTransport } = await import('./run-DMahGhJP.mjs').then(function (n) { return n._; });
|
|
489
489
|
const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
|
|
490
490
|
backend = new AcpBackend({
|
|
491
491
|
agentName: config.agentName,
|
|
@@ -612,7 +612,7 @@ async function handleSessionCommand() {
|
|
|
612
612
|
process.exit(1);
|
|
613
613
|
}
|
|
614
614
|
}
|
|
615
|
-
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-
|
|
615
|
+
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-QGaI-ukW.mjs');
|
|
616
616
|
const parseFlagStr = (flag, shortFlag) => {
|
|
617
617
|
for (let i = 1; i < sessionArgs.length; i++) {
|
|
618
618
|
if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
|
|
@@ -680,7 +680,7 @@ async function handleSessionCommand() {
|
|
|
680
680
|
allowDomain.push(sessionArgs[++i]);
|
|
681
681
|
}
|
|
682
682
|
}
|
|
683
|
-
const { parseShareArg } = await import('./commands-
|
|
683
|
+
const { parseShareArg } = await import('./commands-QGaI-ukW.mjs');
|
|
684
684
|
const shareEntries = share.map((s) => parseShareArg(s));
|
|
685
685
|
await sessionSpawn(agent, dir, targetMachineId, {
|
|
686
686
|
message,
|
|
@@ -765,7 +765,7 @@ async function handleSessionCommand() {
|
|
|
765
765
|
console.error(" Rewinds history: rewrites the message + drops everything after it, then restarts Claude.");
|
|
766
766
|
process.exit(1);
|
|
767
767
|
}
|
|
768
|
-
const { sessionEditMessage } = await import('./commands-
|
|
768
|
+
const { sessionEditMessage } = await import('./commands-QGaI-ukW.mjs');
|
|
769
769
|
await sessionEditMessage(sessionArgs[1], sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
770
770
|
} else if (sessionSubcommand === "refine") {
|
|
771
771
|
if (!sessionArgs[1] || !sessionArgs[2]) {
|
|
@@ -773,7 +773,7 @@ async function handleSessionCommand() {
|
|
|
773
773
|
console.error(" Asks the agent to revise its latest reply in place (no extra round).");
|
|
774
774
|
process.exit(1);
|
|
775
775
|
}
|
|
776
|
-
const { sessionRefineLastReply } = await import('./commands-
|
|
776
|
+
const { sessionRefineLastReply } = await import('./commands-QGaI-ukW.mjs');
|
|
777
777
|
await sessionRefineLastReply(sessionArgs[1], sessionArgs[2], targetMachineId);
|
|
778
778
|
} else if (sessionSubcommand === "undo-edit" || sessionSubcommand === "undo") {
|
|
779
779
|
if (!sessionArgs[1]) {
|
|
@@ -781,7 +781,7 @@ async function handleSessionCommand() {
|
|
|
781
781
|
console.error(" Reverts the most recent edit/refine, restoring the pre-edit history.");
|
|
782
782
|
process.exit(1);
|
|
783
783
|
}
|
|
784
|
-
const { sessionUndoEdit } = await import('./commands-
|
|
784
|
+
const { sessionUndoEdit } = await import('./commands-QGaI-ukW.mjs');
|
|
785
785
|
await sessionUndoEdit(sessionArgs[1], targetMachineId);
|
|
786
786
|
} else if (sessionSubcommand === "query") {
|
|
787
787
|
const dir = sessionArgs[1];
|
|
@@ -791,7 +791,7 @@ async function handleSessionCommand() {
|
|
|
791
791
|
console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
|
|
792
792
|
process.exit(1);
|
|
793
793
|
}
|
|
794
|
-
const { sessionQuery } = await import('./commands-
|
|
794
|
+
const { sessionQuery } = await import('./commands-QGaI-ukW.mjs');
|
|
795
795
|
await sessionQuery(dir, prompt, targetMachineId, {
|
|
796
796
|
timeout: parseFlagInt("--timeout"),
|
|
797
797
|
json: hasFlag("--json"),
|
|
@@ -824,7 +824,7 @@ async function handleSessionCommand() {
|
|
|
824
824
|
console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
|
|
825
825
|
process.exit(1);
|
|
826
826
|
}
|
|
827
|
-
const { sessionApprove } = await import('./commands-
|
|
827
|
+
const { sessionApprove } = await import('./commands-QGaI-ukW.mjs');
|
|
828
828
|
const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
829
829
|
await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
|
|
830
830
|
json: hasFlag("--json")
|
|
@@ -834,21 +834,28 @@ async function handleSessionCommand() {
|
|
|
834
834
|
console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
|
|
835
835
|
process.exit(1);
|
|
836
836
|
}
|
|
837
|
-
const { sessionDeny } = await import('./commands-
|
|
837
|
+
const { sessionDeny } = await import('./commands-QGaI-ukW.mjs');
|
|
838
838
|
const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
839
839
|
await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
|
|
840
840
|
json: hasFlag("--json")
|
|
841
841
|
});
|
|
842
|
-
} else if (sessionSubcommand === "loop
|
|
843
|
-
|
|
844
|
-
|
|
842
|
+
} else if (sessionSubcommand === "loop" || sessionSubcommand === "loop-start") {
|
|
843
|
+
const id = sessionArgs[1];
|
|
844
|
+
const maybeTask = sessionArgs[2] && !sessionArgs[2].startsWith("-") ? sessionArgs[2] : void 0;
|
|
845
|
+
const until = parseFlagStr("--until") ?? parseFlagStr("--criteria");
|
|
846
|
+
if (!id || !maybeTask && !until) {
|
|
847
|
+
console.error('Usage: svamp session loop <session-id> ["<task>"] --until "<criteria>" [--oracle "cmd"] [--agent] [--parent <id>] [--max N] [--evaluator on|off]');
|
|
848
|
+
console.error(" With a task: kicks the agent off and gates it until done.");
|
|
849
|
+
console.error(" With only --until: hot-plugs the gate onto the running session (no kickoff).");
|
|
845
850
|
process.exit(1);
|
|
846
851
|
}
|
|
847
852
|
const evalStr = parseFlagStr("--evaluator");
|
|
848
|
-
await sessionLoopStart(
|
|
849
|
-
|
|
853
|
+
await sessionLoopStart(id, maybeTask, targetMachineId, {
|
|
854
|
+
until,
|
|
850
855
|
oracle: parseFlagStr("--oracle"),
|
|
851
|
-
|
|
856
|
+
agent: hasFlag("--agent"),
|
|
857
|
+
parent: parseFlagStr("--parent"),
|
|
858
|
+
maxIterations: parseFlagInt("--max") ?? parseFlagInt("--max-iterations") ?? parseFlagInt("--max-rounds"),
|
|
852
859
|
evaluator: evalStr ? evalStr !== "off" : void 0
|
|
853
860
|
});
|
|
854
861
|
} else if (sessionSubcommand === "loop-cancel") {
|
|
@@ -863,34 +870,13 @@ async function handleSessionCommand() {
|
|
|
863
870
|
process.exit(1);
|
|
864
871
|
}
|
|
865
872
|
await sessionLoopStatus(sessionArgs[1], targetMachineId);
|
|
866
|
-
} else if (sessionSubcommand === "supervise") {
|
|
867
|
-
if (!sessionArgs[1] || !sessionArgs[2]) {
|
|
868
|
-
console.error('Usage: svamp session supervise <session-id> "<criteria>" [--oracle "cmd"] [--agent] [--parent <id>] [--action nudge|block] [--max N]');
|
|
869
|
-
process.exit(1);
|
|
870
|
-
}
|
|
871
|
-
const { sessionSupervise } = await import('./commands-BVx72l2K.mjs');
|
|
872
|
-
const actionStr = parseFlagStr("--action");
|
|
873
|
-
await sessionSupervise(sessionArgs[1], sessionArgs[2], targetMachineId, {
|
|
874
|
-
oracle: parseFlagStr("--oracle"),
|
|
875
|
-
agent: hasFlag("--agent"),
|
|
876
|
-
parent: parseFlagStr("--parent"),
|
|
877
|
-
action: actionStr === "nudge" || actionStr === "block" ? actionStr : void 0,
|
|
878
|
-
maxRounds: parseFlagInt("--max") ?? parseFlagInt("--max-rounds")
|
|
879
|
-
});
|
|
880
|
-
} else if (sessionSubcommand === "unsupervise") {
|
|
881
|
-
if (!sessionArgs[1]) {
|
|
882
|
-
console.error("Usage: svamp session unsupervise <session-id>");
|
|
883
|
-
process.exit(1);
|
|
884
|
-
}
|
|
885
|
-
const { sessionUnsupervise } = await import('./commands-BVx72l2K.mjs');
|
|
886
|
-
await sessionUnsupervise(sessionArgs[1], targetMachineId);
|
|
887
873
|
} else if (sessionSubcommand === "set-title") {
|
|
888
874
|
const title = sessionArgs[1];
|
|
889
875
|
if (!title) {
|
|
890
876
|
console.error("Usage: svamp session set-title <title>");
|
|
891
877
|
process.exit(1);
|
|
892
878
|
}
|
|
893
|
-
const { sessionSetTitle } = await import('./agentCommands-
|
|
879
|
+
const { sessionSetTitle } = await import('./agentCommands-DOUG625_.mjs');
|
|
894
880
|
await sessionSetTitle(title);
|
|
895
881
|
} else if (sessionSubcommand === "set-project-description" || sessionSubcommand === "set-project") {
|
|
896
882
|
const desc = sessionArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
@@ -898,7 +884,7 @@ async function handleSessionCommand() {
|
|
|
898
884
|
console.error("Usage: svamp session set-project-description <text>");
|
|
899
885
|
process.exit(1);
|
|
900
886
|
}
|
|
901
|
-
const { sessionSetProjectDescription } = await import('./agentCommands-
|
|
887
|
+
const { sessionSetProjectDescription } = await import('./agentCommands-DOUG625_.mjs');
|
|
902
888
|
await sessionSetProjectDescription(desc);
|
|
903
889
|
} else if (sessionSubcommand === "set-link") {
|
|
904
890
|
const url = sessionArgs[1];
|
|
@@ -907,7 +893,7 @@ async function handleSessionCommand() {
|
|
|
907
893
|
process.exit(1);
|
|
908
894
|
}
|
|
909
895
|
const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
910
|
-
const { sessionSetLink } = await import('./agentCommands-
|
|
896
|
+
const { sessionSetLink } = await import('./agentCommands-DOUG625_.mjs');
|
|
911
897
|
await sessionSetLink(url, label);
|
|
912
898
|
} else if (sessionSubcommand === "notify") {
|
|
913
899
|
const message = sessionArgs[1];
|
|
@@ -916,7 +902,7 @@ async function handleSessionCommand() {
|
|
|
916
902
|
process.exit(1);
|
|
917
903
|
}
|
|
918
904
|
const level = parseFlagStr("--level") || "info";
|
|
919
|
-
const { sessionNotify } = await import('./agentCommands-
|
|
905
|
+
const { sessionNotify } = await import('./agentCommands-DOUG625_.mjs');
|
|
920
906
|
await sessionNotify(message, level);
|
|
921
907
|
} else if (sessionSubcommand === "broadcast") {
|
|
922
908
|
const action = sessionArgs[1];
|
|
@@ -924,7 +910,7 @@ async function handleSessionCommand() {
|
|
|
924
910
|
console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
|
|
925
911
|
process.exit(1);
|
|
926
912
|
}
|
|
927
|
-
const { sessionBroadcast } = await import('./agentCommands-
|
|
913
|
+
const { sessionBroadcast } = await import('./agentCommands-DOUG625_.mjs');
|
|
928
914
|
await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
|
|
929
915
|
} else if (sessionSubcommand === "inbox") {
|
|
930
916
|
const inboxSubcmd = sessionArgs[1];
|
|
@@ -935,7 +921,7 @@ async function handleSessionCommand() {
|
|
|
935
921
|
process.exit(1);
|
|
936
922
|
}
|
|
937
923
|
if (agentSessionId) {
|
|
938
|
-
const { inboxSend } = await import('./agentCommands-
|
|
924
|
+
const { inboxSend } = await import('./agentCommands-DOUG625_.mjs');
|
|
939
925
|
await inboxSend(sessionArgs[2], {
|
|
940
926
|
body: sessionArgs[3],
|
|
941
927
|
subject: parseFlagStr("--subject"),
|
|
@@ -950,7 +936,7 @@ async function handleSessionCommand() {
|
|
|
950
936
|
}
|
|
951
937
|
} else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
|
|
952
938
|
if (agentSessionId && !sessionArgs[2]) {
|
|
953
|
-
const { inboxList } = await import('./agentCommands-
|
|
939
|
+
const { inboxList } = await import('./agentCommands-DOUG625_.mjs');
|
|
954
940
|
await inboxList({
|
|
955
941
|
unread: hasFlag("--unread"),
|
|
956
942
|
limit: parseFlagInt("--limit"),
|
|
@@ -972,7 +958,7 @@ async function handleSessionCommand() {
|
|
|
972
958
|
process.exit(1);
|
|
973
959
|
}
|
|
974
960
|
if (agentSessionId && !sessionArgs[3]) {
|
|
975
|
-
const { inboxList } = await import('./agentCommands-
|
|
961
|
+
const { inboxList } = await import('./agentCommands-DOUG625_.mjs');
|
|
976
962
|
await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
|
|
977
963
|
} else if (sessionArgs[3]) {
|
|
978
964
|
await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
@@ -982,7 +968,7 @@ async function handleSessionCommand() {
|
|
|
982
968
|
}
|
|
983
969
|
} else if (inboxSubcmd === "reply") {
|
|
984
970
|
if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
|
|
985
|
-
const { inboxReply } = await import('./agentCommands-
|
|
971
|
+
const { inboxReply } = await import('./agentCommands-DOUG625_.mjs');
|
|
986
972
|
await inboxReply(sessionArgs[2], sessionArgs[3]);
|
|
987
973
|
} else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
|
|
988
974
|
await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
|
|
@@ -1018,7 +1004,7 @@ async function handleMachineCommand() {
|
|
|
1018
1004
|
return;
|
|
1019
1005
|
}
|
|
1020
1006
|
if (machineSubcommand === "share") {
|
|
1021
|
-
const { machineShare } = await import('./commands-
|
|
1007
|
+
const { machineShare } = await import('./commands-QGaI-ukW.mjs');
|
|
1022
1008
|
let machineId;
|
|
1023
1009
|
const shareArgs = [];
|
|
1024
1010
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
@@ -1069,14 +1055,14 @@ async function handleMachineCommand() {
|
|
|
1069
1055
|
process.exit(1);
|
|
1070
1056
|
}
|
|
1071
1057
|
if (all) {
|
|
1072
|
-
const { fleetExec } = await import('./fleet-
|
|
1058
|
+
const { fleetExec } = await import('./fleet-nj6bMyhh.mjs');
|
|
1073
1059
|
await fleetExec(command, { cwd });
|
|
1074
1060
|
} else {
|
|
1075
|
-
const { machineExec } = await import('./commands-
|
|
1061
|
+
const { machineExec } = await import('./commands-QGaI-ukW.mjs');
|
|
1076
1062
|
await machineExec(machineId, command, cwd);
|
|
1077
1063
|
}
|
|
1078
1064
|
} else if (machineSubcommand === "info") {
|
|
1079
|
-
const { machineInfo } = await import('./commands-
|
|
1065
|
+
const { machineInfo } = await import('./commands-QGaI-ukW.mjs');
|
|
1080
1066
|
let machineId;
|
|
1081
1067
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
1082
1068
|
if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
|
|
@@ -1096,10 +1082,10 @@ async function handleMachineCommand() {
|
|
|
1096
1082
|
level = machineArgs[++i];
|
|
1097
1083
|
}
|
|
1098
1084
|
}
|
|
1099
|
-
const { machineNotify } = await import('./agentCommands-
|
|
1085
|
+
const { machineNotify } = await import('./agentCommands-DOUG625_.mjs');
|
|
1100
1086
|
await machineNotify(message, level);
|
|
1101
1087
|
} else if (machineSubcommand === "ls") {
|
|
1102
|
-
const { machineLs } = await import('./commands-
|
|
1088
|
+
const { machineLs } = await import('./commands-QGaI-ukW.mjs');
|
|
1103
1089
|
let machineId;
|
|
1104
1090
|
let showHidden = false;
|
|
1105
1091
|
let path;
|
|
@@ -1155,20 +1141,20 @@ Examples:
|
|
|
1155
1141
|
};
|
|
1156
1142
|
const hasFlag = (name) => fleetArgs.includes(`--${name}`);
|
|
1157
1143
|
if (sub === "status") {
|
|
1158
|
-
const { fleetStatus } = await import('./fleet-
|
|
1144
|
+
const { fleetStatus } = await import('./fleet-nj6bMyhh.mjs');
|
|
1159
1145
|
await fleetStatus();
|
|
1160
1146
|
} else if (sub === "upgrade-claude") {
|
|
1161
|
-
const { fleetUpgradeClaude } = await import('./fleet-
|
|
1147
|
+
const { fleetUpgradeClaude } = await import('./fleet-nj6bMyhh.mjs');
|
|
1162
1148
|
await fleetUpgradeClaude({ version: flag("version", "-v") });
|
|
1163
1149
|
} else if (sub === "upgrade-svamp") {
|
|
1164
|
-
const { fleetUpgradeSvamp } = await import('./fleet-
|
|
1150
|
+
const { fleetUpgradeSvamp } = await import('./fleet-nj6bMyhh.mjs');
|
|
1165
1151
|
await fleetUpgradeSvamp({ version: flag("version", "-v"), excludeSelf: hasFlag("exclude-self") });
|
|
1166
1152
|
} else if (sub === "daemon-restart") {
|
|
1167
|
-
const { fleetDaemonRestart } = await import('./fleet-
|
|
1153
|
+
const { fleetDaemonRestart } = await import('./fleet-nj6bMyhh.mjs');
|
|
1168
1154
|
await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
|
|
1169
1155
|
} else if (sub === "push-skill") {
|
|
1170
1156
|
const name = fleetArgs[1];
|
|
1171
|
-
const { fleetPushSkill } = await import('./fleet-
|
|
1157
|
+
const { fleetPushSkill } = await import('./fleet-nj6bMyhh.mjs');
|
|
1172
1158
|
await fleetPushSkill(name);
|
|
1173
1159
|
} else {
|
|
1174
1160
|
console.error(`Unknown fleet subcommand: ${sub}`);
|
|
@@ -1184,7 +1170,7 @@ async function handleSkillsCommand() {
|
|
|
1184
1170
|
await printSkillsHelp();
|
|
1185
1171
|
return;
|
|
1186
1172
|
}
|
|
1187
|
-
const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-
|
|
1173
|
+
const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-B8vUCW50.mjs');
|
|
1188
1174
|
if (skillsSubcommand === "find" || skillsSubcommand === "search") {
|
|
1189
1175
|
const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
1190
1176
|
if (!query) {
|
|
@@ -1231,7 +1217,7 @@ async function loginToHypha() {
|
|
|
1231
1217
|
process.exit(1);
|
|
1232
1218
|
}
|
|
1233
1219
|
const anchor = anchorArg.replace(/\/+$/, "");
|
|
1234
|
-
const { loadInstanceConfig } = await import('./run-
|
|
1220
|
+
const { loadInstanceConfig } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a4; });
|
|
1235
1221
|
let cfg = null;
|
|
1236
1222
|
try {
|
|
1237
1223
|
cfg = await loadInstanceConfig({ anchor, force: true });
|
|
@@ -1342,7 +1328,7 @@ async function logoutFromHypha() {
|
|
|
1342
1328
|
} catch {
|
|
1343
1329
|
}
|
|
1344
1330
|
try {
|
|
1345
|
-
const { clearInstanceConfigCache } = await import('./run-
|
|
1331
|
+
const { clearInstanceConfigCache } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a4; });
|
|
1346
1332
|
clearInstanceConfigCache();
|
|
1347
1333
|
} catch {
|
|
1348
1334
|
}
|
|
@@ -1603,7 +1589,7 @@ Commands:
|
|
|
1603
1589
|
svamp session --help Show ALL session commands and detailed options
|
|
1604
1590
|
|
|
1605
1591
|
Crew (lead delegates features to managed worktree children):
|
|
1606
|
-
svamp feature start "<brief>" Spawn a worktree child of this lead +
|
|
1592
|
+
svamp feature start "<brief>" Spawn a worktree child of this lead + loop gate (oracle\u2192parent)
|
|
1607
1593
|
svamp feature list This lead's feature children (branch, ahead/behind, status)
|
|
1608
1594
|
svamp feature done|report (run by a child) signal completion / report progress to the lead
|
|
1609
1595
|
svamp feature merge <child> (run by the lead) verify \u2192 merge \u2192 remove worktree \u2192 archive child
|
|
@@ -1680,7 +1666,7 @@ async function applyClaudeAuthFlags(argv) {
|
|
|
1680
1666
|
"--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
|
|
1681
1667
|
);
|
|
1682
1668
|
}
|
|
1683
|
-
const mod = await import('./run-
|
|
1669
|
+
const mod = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a3; });
|
|
1684
1670
|
if (hasHypha) {
|
|
1685
1671
|
let url;
|
|
1686
1672
|
const hyphaIdx = argv.indexOf("--use-hypha-proxy");
|
|
@@ -1734,7 +1720,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
1734
1720
|
}
|
|
1735
1721
|
}
|
|
1736
1722
|
if (collected.length === 0) return;
|
|
1737
|
-
const { updateEnvFile } = await import('./run-
|
|
1723
|
+
const { updateEnvFile } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a3; });
|
|
1738
1724
|
const seen = /* @__PURE__ */ new Set();
|
|
1739
1725
|
const deduped = collected.filter((e) => {
|
|
1740
1726
|
const k = e.toLowerCase();
|
|
@@ -1767,7 +1753,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1767
1753
|
}
|
|
1768
1754
|
});
|
|
1769
1755
|
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(" ");
|
|
1770
|
-
const { wiseAskCli } = await import('./commands-
|
|
1756
|
+
const { wiseAskCli } = await import('./commands-QGaI-ukW.mjs');
|
|
1771
1757
|
await wiseAskCli(machineId, message, sessionId, { json });
|
|
1772
1758
|
return;
|
|
1773
1759
|
}
|
|
@@ -1779,7 +1765,7 @@ async function handleWiseAgentCommand(rest) {
|
|
|
1779
1765
|
}
|
|
1780
1766
|
return void 0;
|
|
1781
1767
|
};
|
|
1782
|
-
const { runWiseVoiceCli } = await import('./headlessCli-
|
|
1768
|
+
const { runWiseVoiceCli } = await import('./headlessCli-D8x-uGEN.mjs');
|
|
1783
1769
|
await runWiseVoiceCli({ voice: valueOf(["--voice"]), wakeKeywordPath: valueOf(["--wake"]), model: valueOf(["--model"]) });
|
|
1784
1770
|
return;
|
|
1785
1771
|
}
|
|
@@ -1821,7 +1807,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
1821
1807
|
return;
|
|
1822
1808
|
}
|
|
1823
1809
|
const authArgs = rest.slice(1);
|
|
1824
|
-
const mod = await import('./auth-
|
|
1810
|
+
const mod = await import('./auth-UNUDBJKU.mjs');
|
|
1825
1811
|
let action;
|
|
1826
1812
|
try {
|
|
1827
1813
|
action = mod.parseWiseAgentAuthArgs(authArgs);
|
|
@@ -1831,7 +1817,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
1831
1817
|
return;
|
|
1832
1818
|
}
|
|
1833
1819
|
if (action) {
|
|
1834
|
-
const { updateEnvFile } = await import('./run-
|
|
1820
|
+
const { updateEnvFile } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a3; });
|
|
1835
1821
|
const updates = mod.buildWiseAgentEnvUpdates(action);
|
|
1836
1822
|
updateEnvFile(updates);
|
|
1837
1823
|
for (const [k, v] of Object.entries(updates)) {
|
|
@@ -1845,7 +1831,7 @@ If none is set, hitting a WISE Agent channel returns a clear "not configured" er
|
|
|
1845
1831
|
}
|
|
1846
1832
|
async function handleDaemonAuthCommand(argv) {
|
|
1847
1833
|
const sub = (argv[0] || "status").toLowerCase();
|
|
1848
|
-
const mod = await import('./run-
|
|
1834
|
+
const mod = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a3; });
|
|
1849
1835
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
1850
1836
|
console.log(`
|
|
1851
1837
|
svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
|
|
@@ -1997,15 +1983,15 @@ COMMANDS:
|
|
|
1997
1983
|
share <id> --remove <email> Remove shared user
|
|
1998
1984
|
share <id> --public <view|interact|off> Set public link access
|
|
1999
1985
|
|
|
2000
|
-
Loop (self-verifying
|
|
2001
|
-
loop
|
|
2002
|
-
|
|
1986
|
+
Loop (self-verifying gate \u2014 iterate/gate until criteria are met):
|
|
1987
|
+
loop <id> ["<task>"] --until "<criteria>" [opts]
|
|
1988
|
+
Attach a Stop gate. WITH a task \u2192 kick the agent
|
|
1989
|
+
off and gate until done. WITHOUT (only --until) \u2192
|
|
1990
|
+
HOT-PLUG onto the running session (no kickoff).
|
|
1991
|
+
opts: --oracle "cmd" --agent --parent <id> --max N
|
|
1992
|
+
loop-cancel <id> Cancel the loop / release the gate
|
|
2003
1993
|
loop-status <id> Show loop phase + iteration
|
|
2004
1994
|
|
|
2005
|
-
Supervisor (attach a Stop gate + success criteria to any session):
|
|
2006
|
-
supervise <id> "<criteria>" [opts] Attach: --oracle "cmd" --agent --parent <id> --max N
|
|
2007
|
-
unsupervise <id> Detach the supervisor
|
|
2008
|
-
|
|
2009
1995
|
Inbox:
|
|
2010
1996
|
inbox send <id> "<body>" [opts] Send a message to session inbox
|
|
2011
1997
|
inbox list <id> [--unread] [--json] List inbox messages
|
|
@@ -2058,11 +2044,14 @@ MESSAGES OPTIONS:
|
|
|
2058
2044
|
--json Output as JSON array of {id, seq, role, text, createdAt}
|
|
2059
2045
|
--raw With --json: include full raw objects (tool_use, tool_result, thinking)
|
|
2060
2046
|
|
|
2061
|
-
LOOP OPTIONS (for loop
|
|
2062
|
-
--
|
|
2047
|
+
LOOP OPTIONS (for loop):
|
|
2048
|
+
--until <text> Success criteria \u2014 how we'll know it's done (the gate's goal)
|
|
2063
2049
|
--oracle <cmd> Pass/fail command (tests/build/lint) the gate runs each iteration
|
|
2050
|
+
--agent Independent evaluator judge (on by default)
|
|
2051
|
+
--parent <id> Route the verdict to a lead session (crew)
|
|
2064
2052
|
--max <n> Max iterations before giving up (default: 20)
|
|
2065
2053
|
--evaluator <on|off> Independent evaluator that judges "done" (default: on)
|
|
2054
|
+
(omit the task and pass only --until to HOT-PLUG the gate onto a running session)
|
|
2066
2055
|
|
|
2067
2056
|
EXIT CODES (for wait, send --wait, spawn --wait):
|
|
2068
2057
|
0 Agent is idle (task completed successfully)
|
|
@@ -2115,9 +2104,10 @@ EXAMPLES:
|
|
|
2115
2104
|
# === Isolated session with network restrictions ===
|
|
2116
2105
|
svamp session spawn claude -d /tmp/sandbox --isolate --deny-network
|
|
2117
2106
|
|
|
2118
|
-
# === Loop: self-verifying
|
|
2119
|
-
svamp session loop
|
|
2120
|
-
--
|
|
2107
|
+
# === Loop: self-verifying gate (task \u2192 kickoff; --until only \u2192 hot-plug) ===
|
|
2108
|
+
svamp session loop abc1 "Fix all linting errors" \\
|
|
2109
|
+
--until "eslint reports zero errors" --oracle "npm run lint" --max 15
|
|
2110
|
+
svamp session loop abc1 --until "all tests pass" --oracle "npm test" # hot-plug onto a running session
|
|
2121
2111
|
`);
|
|
2122
2112
|
}
|
|
2123
2113
|
function printMachineHelp() {
|
|
@@ -2154,7 +2144,7 @@ Examples:
|
|
|
2154
2144
|
async function printSkillsHelp() {
|
|
2155
2145
|
let browseUrl = "<HYPHA_SERVER_URL>/<workspace>/artifacts/marketplace (set HYPHA_SERVER_URL)";
|
|
2156
2146
|
try {
|
|
2157
|
-
const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-
|
|
2147
|
+
const { getArtifactBaseUrl, getSkillsCollectionName } = await import('./run-DMahGhJP.mjs').then(function (n) { return n.a5; });
|
|
2158
2148
|
browseUrl = `${getArtifactBaseUrl()}/${getSkillsCollectionName()}`;
|
|
2159
2149
|
} catch {
|
|
2160
2150
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
2
|
import fs__default from 'fs';
|
|
3
3
|
import { resolve, join, relative } from 'path';
|
|
4
|
-
import { p as parseFrontmatter, n as getSkillsServer, o as getSkillsWorkspaceName, q as getSkillsCollectionName, t as fetchWithTimeout, u as searchSkills, v as SKILLS_DIR, w as getSkillInfo, x as downloadSkillFile, y as listSkillFiles } from './run-
|
|
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-DMahGhJP.mjs';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'url';
|
|
7
7
|
import 'child_process';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-
|
|
2
|
+
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-QGaI-ukW.mjs';
|
|
3
3
|
import { execSync } from 'node:child_process';
|
|
4
|
-
import { m as shortId } from './run-
|
|
4
|
+
import { m as shortId } from './run-DMahGhJP.mjs';
|
|
5
5
|
import 'node:path';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'os';
|
|
@@ -204,17 +204,17 @@ async function featureStart(brief, opts = {}) {
|
|
|
204
204
|
let judges = [];
|
|
205
205
|
if (oracle) {
|
|
206
206
|
judges = [{ type: "oracle", cmd: oracle, on_fail: "escalate" }, { type: "parent", parent: lead.sessionId }];
|
|
207
|
-
patch.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
207
|
+
patch.loop = {
|
|
208
|
+
until: brief.trim(),
|
|
209
|
+
oracle,
|
|
210
|
+
parent: lead.sessionId,
|
|
211
|
+
max_iterations: opts.maxRounds ?? 20
|
|
212
212
|
};
|
|
213
213
|
}
|
|
214
214
|
try {
|
|
215
215
|
await rpc(machine, childId, "updateConfig", { patch });
|
|
216
216
|
} catch (e) {
|
|
217
|
-
console.warn(`Note: could not write crew/
|
|
217
|
+
console.warn(`Note: could not write crew/loop config yet (${e.message}).`);
|
|
218
218
|
}
|
|
219
219
|
try {
|
|
220
220
|
await rpc(machine, childId, "sendMessage", {
|
|
@@ -453,7 +453,7 @@ const FEATURE_HELP = `Usage: svamp feature <command>
|
|
|
453
453
|
|
|
454
454
|
start "<brief>" [--oracle "<cmd>"] [--base <branch>] [--action nudge|block]
|
|
455
455
|
[--max N] [--dir <path>] [--lead <id>] [-m <machine>]
|
|
456
|
-
Spawn a managed worktree child of the lead + attach a
|
|
456
|
+
Spawn a managed worktree child of the lead + attach a loop gate (oracle\u2192parent).
|
|
457
457
|
list [--json] [--lead <id>] [-m <machine>]
|
|
458
458
|
The lead's feature children: branch, ahead/behind, status.
|
|
459
459
|
report "<text>" [--blocker] [-m <machine>] (run by a child) progress/blocker \u2192 lead
|