svamp-cli 0.2.60 → 0.2.65
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/dist/{agentCommands-8IVIOSvH.mjs → agentCommands-CcvaE6am.mjs} +2 -2
- package/dist/cli.mjs +34 -33
- package/dist/{commands-BSPSCqBa.mjs → commands-CY0X_cdt.mjs} +3 -3
- package/dist/{commands-B0kLKYmc.mjs → commands-CgirOjun.mjs} +2 -1
- package/dist/{commands-qvlNefLf.mjs → commands-CjKzQm8Q.mjs} +9 -4
- package/dist/index.mjs +2 -1
- package/dist/package-DHBXuNi1.mjs +63 -0
- package/dist/{run-Dhliie9Z.mjs → run-EPzdDXeY.mjs} +399 -26
- package/dist/{run-DmWqzmqX.mjs → run-cSiQAr8c.mjs} +2 -1
- package/dist/{serveCommands-CMSmcjsp.mjs → serveCommands-sRps4L_A.mjs} +36 -20
- package/dist/{serveManager-C9pzi-2O.mjs → serveManager-pDviHaH8.mjs} +27 -8
- package/package.json +2 -2
- package/dist/package-B7BB3yVn.mjs +0 -63
|
@@ -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-
|
|
151
|
+
const { connectAndGetMachine } = await import('./commands-CgirOjun.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-
|
|
168
|
+
const { resolveSessionId } = await import('./commands-CgirOjun.mjs');
|
|
169
169
|
const sessions = await machine.listSessions();
|
|
170
170
|
const match = resolveSessionId(sessions, targetSessionId);
|
|
171
171
|
const fullTargetId = match.sessionId;
|
package/dist/cli.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-
|
|
1
|
+
import { s as startDaemon, b as stopDaemon, d as daemonStatus } from './run-EPzdDXeY.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -7,6 +7,7 @@ import 'url';
|
|
|
7
7
|
import 'child_process';
|
|
8
8
|
import 'crypto';
|
|
9
9
|
import 'node:fs';
|
|
10
|
+
import 'util';
|
|
10
11
|
import 'node:crypto';
|
|
11
12
|
import 'node:path';
|
|
12
13
|
import 'node:child_process';
|
|
@@ -43,7 +44,7 @@ async function main() {
|
|
|
43
44
|
console.error(`svamp daemon restart: ${err.message || err}`);
|
|
44
45
|
process.exit(1);
|
|
45
46
|
}
|
|
46
|
-
const { restartDaemon } = await import('./run-
|
|
47
|
+
const { restartDaemon } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.u; });
|
|
47
48
|
await restartDaemon();
|
|
48
49
|
process.exit(0);
|
|
49
50
|
}
|
|
@@ -279,7 +280,7 @@ async function main() {
|
|
|
279
280
|
console.error("svamp service: Service commands are not available in sandboxed sessions.");
|
|
280
281
|
process.exit(1);
|
|
281
282
|
}
|
|
282
|
-
const { handleServiceCommand } = await import('./commands-
|
|
283
|
+
const { handleServiceCommand } = await import('./commands-CY0X_cdt.mjs');
|
|
283
284
|
await handleServiceCommand();
|
|
284
285
|
} else if (subcommand === "serve") {
|
|
285
286
|
const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
|
|
@@ -287,7 +288,7 @@ async function main() {
|
|
|
287
288
|
console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
|
|
288
289
|
process.exit(1);
|
|
289
290
|
}
|
|
290
|
-
const { handleServeCommand } = await import('./serveCommands-
|
|
291
|
+
const { handleServeCommand } = await import('./serveCommands-sRps4L_A.mjs');
|
|
291
292
|
await handleServeCommand();
|
|
292
293
|
process.exit(0);
|
|
293
294
|
} else if (subcommand === "process" || subcommand === "proc") {
|
|
@@ -296,7 +297,7 @@ async function main() {
|
|
|
296
297
|
console.error("svamp process: Process commands are not available in sandboxed sessions.");
|
|
297
298
|
process.exit(1);
|
|
298
299
|
}
|
|
299
|
-
const { processCommand } = await import('./commands-
|
|
300
|
+
const { processCommand } = await import('./commands-CjKzQm8Q.mjs');
|
|
300
301
|
let machineId;
|
|
301
302
|
const processArgs = args.slice(1);
|
|
302
303
|
const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
|
|
@@ -314,7 +315,7 @@ async function main() {
|
|
|
314
315
|
} else if (!subcommand || subcommand === "start") {
|
|
315
316
|
await handleInteractiveCommand();
|
|
316
317
|
} else if (subcommand === "--version" || subcommand === "-v") {
|
|
317
|
-
const pkg = await import('./package-
|
|
318
|
+
const pkg = await import('./package-DHBXuNi1.mjs').catch(() => ({ default: { version: "unknown" } }));
|
|
318
319
|
console.log(`svamp version: ${pkg.default.version}`);
|
|
319
320
|
} else {
|
|
320
321
|
console.error(`Unknown command: ${subcommand}`);
|
|
@@ -323,7 +324,7 @@ async function main() {
|
|
|
323
324
|
}
|
|
324
325
|
}
|
|
325
326
|
async function handleInteractiveCommand() {
|
|
326
|
-
const { runInteractive } = await import('./run-
|
|
327
|
+
const { runInteractive } = await import('./run-cSiQAr8c.mjs');
|
|
327
328
|
const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
|
|
328
329
|
let directory = process.cwd();
|
|
329
330
|
let resumeSessionId;
|
|
@@ -368,7 +369,7 @@ async function handleAgentCommand() {
|
|
|
368
369
|
return;
|
|
369
370
|
}
|
|
370
371
|
if (agentArgs[0] === "list") {
|
|
371
|
-
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-
|
|
372
|
+
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.p; });
|
|
372
373
|
console.log("Known agents:");
|
|
373
374
|
for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
|
|
374
375
|
console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
|
|
@@ -380,7 +381,7 @@ async function handleAgentCommand() {
|
|
|
380
381
|
console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
|
|
381
382
|
return;
|
|
382
383
|
}
|
|
383
|
-
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-
|
|
384
|
+
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.p; });
|
|
384
385
|
let cwd = process.cwd();
|
|
385
386
|
const filteredArgs = [];
|
|
386
387
|
for (let i = 0; i < agentArgs.length; i++) {
|
|
@@ -404,12 +405,12 @@ async function handleAgentCommand() {
|
|
|
404
405
|
console.log(`Starting ${config.agentName} agent in ${cwd}...`);
|
|
405
406
|
let backend;
|
|
406
407
|
if (KNOWN_MCP_AGENTS[config.agentName]) {
|
|
407
|
-
const { CodexMcpBackend } = await import('./run-
|
|
408
|
+
const { CodexMcpBackend } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.q; });
|
|
408
409
|
backend = new CodexMcpBackend({ cwd, log: logFn });
|
|
409
410
|
} else {
|
|
410
|
-
const { AcpBackend } = await import('./run-
|
|
411
|
-
const { GeminiTransport } = await import('./run-
|
|
412
|
-
const { DefaultTransport } = await import('./run-
|
|
411
|
+
const { AcpBackend } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.o; });
|
|
412
|
+
const { GeminiTransport } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.G; });
|
|
413
|
+
const { DefaultTransport } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.D; });
|
|
413
414
|
const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
|
|
414
415
|
backend = new AcpBackend({
|
|
415
416
|
agentName: config.agentName,
|
|
@@ -536,7 +537,7 @@ async function handleSessionCommand() {
|
|
|
536
537
|
process.exit(1);
|
|
537
538
|
}
|
|
538
539
|
}
|
|
539
|
-
const { sessionList, sessionSpawn, sessionStop, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-
|
|
540
|
+
const { sessionList, sessionSpawn, sessionStop, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands-CgirOjun.mjs');
|
|
540
541
|
const parseFlagStr = (flag, shortFlag) => {
|
|
541
542
|
for (let i = 1; i < sessionArgs.length; i++) {
|
|
542
543
|
if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
|
|
@@ -596,7 +597,7 @@ async function handleSessionCommand() {
|
|
|
596
597
|
allowDomain.push(sessionArgs[++i]);
|
|
597
598
|
}
|
|
598
599
|
}
|
|
599
|
-
const { parseShareArg } = await import('./commands-
|
|
600
|
+
const { parseShareArg } = await import('./commands-CgirOjun.mjs');
|
|
600
601
|
const shareEntries = share.map((s) => parseShareArg(s));
|
|
601
602
|
await sessionSpawn(agent, dir, targetMachineId, {
|
|
602
603
|
message,
|
|
@@ -682,7 +683,7 @@ async function handleSessionCommand() {
|
|
|
682
683
|
console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
|
|
683
684
|
process.exit(1);
|
|
684
685
|
}
|
|
685
|
-
const { sessionApprove } = await import('./commands-
|
|
686
|
+
const { sessionApprove } = await import('./commands-CgirOjun.mjs');
|
|
686
687
|
const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
687
688
|
await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
|
|
688
689
|
json: hasFlag("--json")
|
|
@@ -692,7 +693,7 @@ async function handleSessionCommand() {
|
|
|
692
693
|
console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
|
|
693
694
|
process.exit(1);
|
|
694
695
|
}
|
|
695
|
-
const { sessionDeny } = await import('./commands-
|
|
696
|
+
const { sessionDeny } = await import('./commands-CgirOjun.mjs');
|
|
696
697
|
const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
697
698
|
await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
|
|
698
699
|
json: hasFlag("--json")
|
|
@@ -728,7 +729,7 @@ async function handleSessionCommand() {
|
|
|
728
729
|
console.error("Usage: svamp session set-title <title>");
|
|
729
730
|
process.exit(1);
|
|
730
731
|
}
|
|
731
|
-
const { sessionSetTitle } = await import('./agentCommands-
|
|
732
|
+
const { sessionSetTitle } = await import('./agentCommands-CcvaE6am.mjs');
|
|
732
733
|
await sessionSetTitle(title);
|
|
733
734
|
} else if (sessionSubcommand === "set-link") {
|
|
734
735
|
const url = sessionArgs[1];
|
|
@@ -737,7 +738,7 @@ async function handleSessionCommand() {
|
|
|
737
738
|
process.exit(1);
|
|
738
739
|
}
|
|
739
740
|
const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
740
|
-
const { sessionSetLink } = await import('./agentCommands-
|
|
741
|
+
const { sessionSetLink } = await import('./agentCommands-CcvaE6am.mjs');
|
|
741
742
|
await sessionSetLink(url, label);
|
|
742
743
|
} else if (sessionSubcommand === "notify") {
|
|
743
744
|
const message = sessionArgs[1];
|
|
@@ -746,7 +747,7 @@ async function handleSessionCommand() {
|
|
|
746
747
|
process.exit(1);
|
|
747
748
|
}
|
|
748
749
|
const level = parseFlagStr("--level") || "info";
|
|
749
|
-
const { sessionNotify } = await import('./agentCommands-
|
|
750
|
+
const { sessionNotify } = await import('./agentCommands-CcvaE6am.mjs');
|
|
750
751
|
await sessionNotify(message, level);
|
|
751
752
|
} else if (sessionSubcommand === "broadcast") {
|
|
752
753
|
const action = sessionArgs[1];
|
|
@@ -754,7 +755,7 @@ async function handleSessionCommand() {
|
|
|
754
755
|
console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
|
|
755
756
|
process.exit(1);
|
|
756
757
|
}
|
|
757
|
-
const { sessionBroadcast } = await import('./agentCommands-
|
|
758
|
+
const { sessionBroadcast } = await import('./agentCommands-CcvaE6am.mjs');
|
|
758
759
|
await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
|
|
759
760
|
} else if (sessionSubcommand === "inbox") {
|
|
760
761
|
const inboxSubcmd = sessionArgs[1];
|
|
@@ -765,7 +766,7 @@ async function handleSessionCommand() {
|
|
|
765
766
|
process.exit(1);
|
|
766
767
|
}
|
|
767
768
|
if (agentSessionId) {
|
|
768
|
-
const { inboxSend } = await import('./agentCommands-
|
|
769
|
+
const { inboxSend } = await import('./agentCommands-CcvaE6am.mjs');
|
|
769
770
|
await inboxSend(sessionArgs[2], {
|
|
770
771
|
body: sessionArgs[3],
|
|
771
772
|
subject: parseFlagStr("--subject"),
|
|
@@ -780,7 +781,7 @@ async function handleSessionCommand() {
|
|
|
780
781
|
}
|
|
781
782
|
} else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
|
|
782
783
|
if (agentSessionId && !sessionArgs[2]) {
|
|
783
|
-
const { inboxList } = await import('./agentCommands-
|
|
784
|
+
const { inboxList } = await import('./agentCommands-CcvaE6am.mjs');
|
|
784
785
|
await inboxList({
|
|
785
786
|
unread: hasFlag("--unread"),
|
|
786
787
|
limit: parseFlagInt("--limit"),
|
|
@@ -802,7 +803,7 @@ async function handleSessionCommand() {
|
|
|
802
803
|
process.exit(1);
|
|
803
804
|
}
|
|
804
805
|
if (agentSessionId && !sessionArgs[3]) {
|
|
805
|
-
const { inboxList } = await import('./agentCommands-
|
|
806
|
+
const { inboxList } = await import('./agentCommands-CcvaE6am.mjs');
|
|
806
807
|
await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
|
|
807
808
|
} else if (sessionArgs[3]) {
|
|
808
809
|
await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
@@ -812,7 +813,7 @@ async function handleSessionCommand() {
|
|
|
812
813
|
}
|
|
813
814
|
} else if (inboxSubcmd === "reply") {
|
|
814
815
|
if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
|
|
815
|
-
const { inboxReply } = await import('./agentCommands-
|
|
816
|
+
const { inboxReply } = await import('./agentCommands-CcvaE6am.mjs');
|
|
816
817
|
await inboxReply(sessionArgs[2], sessionArgs[3]);
|
|
817
818
|
} else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
|
|
818
819
|
await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
|
|
@@ -848,7 +849,7 @@ async function handleMachineCommand() {
|
|
|
848
849
|
return;
|
|
849
850
|
}
|
|
850
851
|
if (machineSubcommand === "share") {
|
|
851
|
-
const { machineShare } = await import('./commands-
|
|
852
|
+
const { machineShare } = await import('./commands-CgirOjun.mjs');
|
|
852
853
|
let machineId;
|
|
853
854
|
const shareArgs = [];
|
|
854
855
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
@@ -878,7 +879,7 @@ async function handleMachineCommand() {
|
|
|
878
879
|
}
|
|
879
880
|
await machineShare(machineId, { add, remove, list, configPath, showConfig });
|
|
880
881
|
} else if (machineSubcommand === "exec") {
|
|
881
|
-
const { machineExec } = await import('./commands-
|
|
882
|
+
const { machineExec } = await import('./commands-CgirOjun.mjs');
|
|
882
883
|
let machineId;
|
|
883
884
|
let cwd;
|
|
884
885
|
const cmdParts = [];
|
|
@@ -898,7 +899,7 @@ async function handleMachineCommand() {
|
|
|
898
899
|
}
|
|
899
900
|
await machineExec(machineId, command, cwd);
|
|
900
901
|
} else if (machineSubcommand === "info") {
|
|
901
|
-
const { machineInfo } = await import('./commands-
|
|
902
|
+
const { machineInfo } = await import('./commands-CgirOjun.mjs');
|
|
902
903
|
let machineId;
|
|
903
904
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
904
905
|
if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
|
|
@@ -918,10 +919,10 @@ async function handleMachineCommand() {
|
|
|
918
919
|
level = machineArgs[++i];
|
|
919
920
|
}
|
|
920
921
|
}
|
|
921
|
-
const { machineNotify } = await import('./agentCommands-
|
|
922
|
+
const { machineNotify } = await import('./agentCommands-CcvaE6am.mjs');
|
|
922
923
|
await machineNotify(message, level);
|
|
923
924
|
} else if (machineSubcommand === "ls") {
|
|
924
|
-
const { machineLs } = await import('./commands-
|
|
925
|
+
const { machineLs } = await import('./commands-CgirOjun.mjs');
|
|
925
926
|
let machineId;
|
|
926
927
|
let showHidden = false;
|
|
927
928
|
let path;
|
|
@@ -1388,7 +1389,7 @@ async function applyClaudeAuthFlags(argv) {
|
|
|
1388
1389
|
"--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
|
|
1389
1390
|
);
|
|
1390
1391
|
}
|
|
1391
|
-
const mod = await import('./run-
|
|
1392
|
+
const mod = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.t; });
|
|
1392
1393
|
if (hasHypha) {
|
|
1393
1394
|
mod.setClaudeAuthHyphaProxy();
|
|
1394
1395
|
console.log("Claude auth configured: hypha-proxy (uses HYPHA_TOKEN live at each spawn).");
|
|
@@ -1426,7 +1427,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
1426
1427
|
}
|
|
1427
1428
|
}
|
|
1428
1429
|
if (collected.length === 0) return;
|
|
1429
|
-
const { updateEnvFile } = await import('./run-
|
|
1430
|
+
const { updateEnvFile } = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.t; });
|
|
1430
1431
|
const seen = /* @__PURE__ */ new Set();
|
|
1431
1432
|
const deduped = collected.filter((e) => {
|
|
1432
1433
|
const k = e.toLowerCase();
|
|
@@ -1439,7 +1440,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
1439
1440
|
}
|
|
1440
1441
|
async function handleDaemonAuthCommand(argv) {
|
|
1441
1442
|
const sub = (argv[0] || "status").toLowerCase();
|
|
1442
|
-
const mod = await import('./run-
|
|
1443
|
+
const mod = await import('./run-EPzdDXeY.mjs').then(function (n) { return n.t; });
|
|
1443
1444
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
1444
1445
|
console.log(`
|
|
1445
1446
|
svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
|
|
@@ -68,7 +68,7 @@ async function serviceExpose(args) {
|
|
|
68
68
|
});
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
71
|
+
const { connectAndGetMachine } = await import('./commands-CgirOjun.mjs');
|
|
72
72
|
const { server, machine } = await connectAndGetMachine();
|
|
73
73
|
try {
|
|
74
74
|
const status = await machine.tunnelStart({
|
|
@@ -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-
|
|
135
|
+
const { connectAndGetMachine } = await import('./commands-CgirOjun.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-
|
|
164
|
+
const { connectAndGetMachine } = await import('./commands-CgirOjun.mjs');
|
|
165
165
|
const { server, machine } = await connectAndGetMachine();
|
|
166
166
|
try {
|
|
167
167
|
await machine.tunnelStop({ name });
|
|
@@ -2,7 +2,7 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
3
|
import { resolve, join } from 'node:path';
|
|
4
4
|
import os from 'node:os';
|
|
5
|
-
import { n as normalizeAllowedUser, l as loadSecurityContextConfig, e as resolveSecurityContext, f as buildSecurityContextFromFlags, m as mergeSecurityContexts, c as connectToHypha, i as buildSessionShareUrl, j as buildMachineShareUrl } from './run-
|
|
5
|
+
import { n as normalizeAllowedUser, l as loadSecurityContextConfig, e as resolveSecurityContext, f as buildSecurityContextFromFlags, m as mergeSecurityContexts, c as connectToHypha, i as buildSessionShareUrl, j as buildMachineShareUrl } from './run-EPzdDXeY.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -10,6 +10,7 @@ import 'path';
|
|
|
10
10
|
import 'url';
|
|
11
11
|
import 'child_process';
|
|
12
12
|
import 'crypto';
|
|
13
|
+
import 'util';
|
|
13
14
|
import 'node:crypto';
|
|
14
15
|
import '@agentclientprotocol/sdk';
|
|
15
16
|
import '@modelcontextprotocol/sdk/client/index.js';
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { writeFileSync, readFileSync } from 'fs';
|
|
2
2
|
import { resolve } from 'path';
|
|
3
|
-
import { connectAndGetMachine } from './commands-
|
|
3
|
+
import { connectAndGetMachine } from './commands-CgirOjun.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-
|
|
8
|
+
import './run-EPzdDXeY.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
12
12
|
import 'child_process';
|
|
13
13
|
import 'crypto';
|
|
14
|
+
import 'util';
|
|
14
15
|
import 'node:crypto';
|
|
15
16
|
import '@agentclientprotocol/sdk';
|
|
16
17
|
import '@modelcontextprotocol/sdk/client/index.js';
|
|
@@ -149,6 +150,7 @@ function normalizeSpec(raw) {
|
|
|
149
150
|
console.error("Error: spec.command is required");
|
|
150
151
|
process.exit(1);
|
|
151
152
|
}
|
|
153
|
+
const sessionId = typeof raw.sessionId === "string" ? raw.sessionId : process.env.SVAMP_SESSION_ID || void 0;
|
|
152
154
|
return {
|
|
153
155
|
name: raw.name,
|
|
154
156
|
command: raw.command,
|
|
@@ -169,7 +171,8 @@ function normalizeSpec(raw) {
|
|
|
169
171
|
// ttl: 0 / negative / missing all mean "no TTL, run forever". Any positive value is seconds.
|
|
170
172
|
ttl: raw.ttl !== void 0 && Number(raw.ttl) > 0 ? Number(raw.ttl) : void 0,
|
|
171
173
|
serviceGroup: raw.serviceGroup,
|
|
172
|
-
ports: Array.isArray(raw.ports) ? raw.ports.map(Number) : void 0
|
|
174
|
+
ports: Array.isArray(raw.ports) ? raw.ports.map(Number) : void 0,
|
|
175
|
+
...sessionId ? { sessionId } : {}
|
|
173
176
|
};
|
|
174
177
|
}
|
|
175
178
|
function statusIcon(status) {
|
|
@@ -439,6 +442,7 @@ async function startCommand(args, machineId) {
|
|
|
439
442
|
}
|
|
440
443
|
env[pair.slice(0, eq)] = pair.slice(eq + 1);
|
|
441
444
|
}
|
|
445
|
+
const sessionId = process.env.SVAMP_SESSION_ID || void 0;
|
|
442
446
|
const spec = {
|
|
443
447
|
name: idOrName,
|
|
444
448
|
command,
|
|
@@ -449,7 +453,8 @@ async function startCommand(args, machineId) {
|
|
|
449
453
|
maxRestarts,
|
|
450
454
|
restartDelay,
|
|
451
455
|
...probe ? { probe } : {},
|
|
452
|
-
...ttl !== void 0 ? { ttl } : {}
|
|
456
|
+
...ttl !== void 0 ? { ttl } : {},
|
|
457
|
+
...sessionId ? { sessionId } : {}
|
|
453
458
|
};
|
|
454
459
|
const saveFile = getFlag(flagArgs, "--save");
|
|
455
460
|
const { server, machine } = await connectAndGetMachine(machineId);
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as connectToHypha, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, a as registerSessionService, s as startDaemon, b as stopDaemon } from './run-
|
|
1
|
+
export { c as connectToHypha, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, a as registerSessionService, s as startDaemon, b as stopDaemon } from './run-EPzdDXeY.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -7,6 +7,7 @@ import 'url';
|
|
|
7
7
|
import 'child_process';
|
|
8
8
|
import 'crypto';
|
|
9
9
|
import 'node:fs';
|
|
10
|
+
import 'util';
|
|
10
11
|
import 'node:crypto';
|
|
11
12
|
import 'node:path';
|
|
12
13
|
import 'node:child_process';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var name = "svamp-cli";
|
|
2
|
+
var version = "0.2.65";
|
|
3
|
+
var description = "Svamp CLI — AI workspace daemon on Hypha Cloud";
|
|
4
|
+
var author = "Amun AI AB";
|
|
5
|
+
var license = "SEE LICENSE IN LICENSE";
|
|
6
|
+
var type = "module";
|
|
7
|
+
var bin = {
|
|
8
|
+
svamp: "./bin/svamp.mjs"
|
|
9
|
+
};
|
|
10
|
+
var files = [
|
|
11
|
+
"dist",
|
|
12
|
+
"bin"
|
|
13
|
+
];
|
|
14
|
+
var main = "./dist/index.mjs";
|
|
15
|
+
var exports$1 = {
|
|
16
|
+
".": "./dist/index.mjs",
|
|
17
|
+
"./cli": "./dist/cli.mjs"
|
|
18
|
+
};
|
|
19
|
+
var scripts = {
|
|
20
|
+
build: "rm -rf dist bin/skills && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && tsc --noEmit && pkgroll",
|
|
21
|
+
typecheck: "tsc --noEmit",
|
|
22
|
+
test: "npx tsx test/test-context-window.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-ralph-loop.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-backend.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-ralph-loop-integration.mjs && npx tsx test/test-ralph-loop-modes.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only",
|
|
23
|
+
"test:hypha": "node --no-warnings test/test-hypha-service.mjs",
|
|
24
|
+
dev: "tsx src/cli.ts",
|
|
25
|
+
"dev:daemon": "tsx src/cli.ts daemon start-sync",
|
|
26
|
+
"test:e2e": "node --no-warnings test/e2e-session-tests.mjs",
|
|
27
|
+
"test:frpc": "npx tsx test/test-frpc-e2e.mjs"
|
|
28
|
+
};
|
|
29
|
+
var dependencies = {
|
|
30
|
+
"@agentclientprotocol/sdk": "^0.14.1",
|
|
31
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
32
|
+
"hypha-rpc": "0.21.40",
|
|
33
|
+
"node-pty": "1.2.0-beta.11",
|
|
34
|
+
ws: "^8.18.0",
|
|
35
|
+
yaml: "^2.8.2",
|
|
36
|
+
zod: "^3.24.4"
|
|
37
|
+
};
|
|
38
|
+
var devDependencies = {
|
|
39
|
+
"@types/node": ">=20",
|
|
40
|
+
"@types/ws": "^8.5.14",
|
|
41
|
+
pkgroll: "^2.14.2",
|
|
42
|
+
tsx: "^4.20.6",
|
|
43
|
+
typescript: "5.9.3"
|
|
44
|
+
};
|
|
45
|
+
var packageManager = "yarn@1.22.22";
|
|
46
|
+
var _package = {
|
|
47
|
+
name: name,
|
|
48
|
+
version: version,
|
|
49
|
+
description: description,
|
|
50
|
+
author: author,
|
|
51
|
+
license: license,
|
|
52
|
+
type: type,
|
|
53
|
+
bin: bin,
|
|
54
|
+
files: files,
|
|
55
|
+
main: main,
|
|
56
|
+
exports: exports$1,
|
|
57
|
+
scripts: scripts,
|
|
58
|
+
dependencies: dependencies,
|
|
59
|
+
devDependencies: devDependencies,
|
|
60
|
+
packageManager: packageManager
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export { author, bin, _package as default, dependencies, description, devDependencies, exports$1 as exports, files, license, main, name, packageManager, scripts, type, version };
|