svamp-cli 0.2.73 → 0.2.74
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/artifact/SKILL.md +2 -2
- package/dist/{agentCommands-C1Q4jqOT.mjs → agentCommands-BXQNGfyi.mjs} +2 -2
- package/dist/cli.mjs +40 -40
- package/dist/{commands-DV0URNXH.mjs → commands--SLXTrkN.mjs} +1 -1
- package/dist/{commands-Cyp2k10B.mjs → commands-BTZCHV-Z.mjs} +2 -2
- package/dist/{commands-DJVdDzTe.mjs → commands-yzpViN29.mjs} +3 -3
- package/dist/{fleet-B9CWHUv1.mjs → fleet-DMajjqRV.mjs} +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{package-O54lUaPi.mjs → package-C__x7TGc.mjs} +1 -1
- package/dist/{run-CC-0bNTe.mjs → run-Br90om8R.mjs} +20 -4
- package/dist/{run-D4yrAi1I.mjs → run-DO_Axr2M.mjs} +1 -1
- package/dist/{serveCommands-BeQKrUIn.mjs → serveCommands-Cu_2l3vg.mjs} +5 -5
- package/dist/{serveManager-B9cemdRt.mjs → serveManager-ClzowUXI.mjs} +1 -1
- package/package.json +1 -1
|
@@ -47,7 +47,7 @@ While the agent is still emitting the body content (closing `</artifact>` not ye
|
|
|
47
47
|
src="./outputs/viz.html" <!-- file path OR absolute URL; OR omit and use inline body -->
|
|
48
48
|
title="Dashboard" <!-- header label -->
|
|
49
49
|
height="540" <!-- fixed pixel height (10..4000); default = auto-size for files -->
|
|
50
|
-
|
|
50
|
+
width="80%" <!-- px number (10..4000) or percentage; default = full chat-column width -->
|
|
51
51
|
mode="default" <!-- "default" | "bare" | "immersive" | "card" -->
|
|
52
52
|
description="..." <!-- card mode: summary text -->
|
|
53
53
|
poster="./outputs/thumb.png" <!-- card mode: thumbnail image -->
|
|
@@ -69,7 +69,7 @@ Either `src` or an inline body is required. All other attributes optional.
|
|
|
69
69
|
|
|
70
70
|
- `title` — short artifact name ("3D scene", "Sales dashboard"). Surfaced in the header, the new-tab title, and the singleton "Newer version of …" pill.
|
|
71
71
|
- `height` — for content with no natural document height (Three.js scenes, video, fullscreen apps, URL embeds). For URL `src`, defaults to 540 px because auto-resize can't work cross-origin.
|
|
72
|
-
- `
|
|
72
|
+
- `width` — rarely needed. Artifacts span the **full chat-column width by default**. Set a px value or percentage (e.g. `width="400"`, `width="60%"`) only to deliberately shrink an artifact — a small widget that shouldn't be column-wide. The chat-column cap still applies, so this only narrows, never widens past the column.
|
|
73
73
|
- `description` / `poster` — only used in card mode.
|
|
74
74
|
|
|
75
75
|
### Header / menu
|
|
@@ -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--SLXTrkN.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--SLXTrkN.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-Br90om8R.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -44,7 +44,7 @@ async function main() {
|
|
|
44
44
|
console.error(`svamp daemon restart: ${err.message || err}`);
|
|
45
45
|
process.exit(1);
|
|
46
46
|
}
|
|
47
|
-
const { restartDaemon } = await import('./run-
|
|
47
|
+
const { restartDaemon } = await import('./run-Br90om8R.mjs').then(function (n) { return n.u; });
|
|
48
48
|
await restartDaemon();
|
|
49
49
|
process.exit(0);
|
|
50
50
|
}
|
|
@@ -287,7 +287,7 @@ async function main() {
|
|
|
287
287
|
console.error("svamp service: Service commands are not available in sandboxed sessions.");
|
|
288
288
|
process.exit(1);
|
|
289
289
|
}
|
|
290
|
-
const { handleServiceCommand } = await import('./commands-
|
|
290
|
+
const { handleServiceCommand } = await import('./commands-yzpViN29.mjs');
|
|
291
291
|
await handleServiceCommand();
|
|
292
292
|
} else if (subcommand === "serve") {
|
|
293
293
|
const { isSandboxed: isSandboxedServe } = await import('./sandboxDetect-DNTcbgWD.mjs');
|
|
@@ -295,7 +295,7 @@ async function main() {
|
|
|
295
295
|
console.error("svamp serve: Serve commands are not available in sandboxed sessions.");
|
|
296
296
|
process.exit(1);
|
|
297
297
|
}
|
|
298
|
-
const { handleServeCommand } = await import('./serveCommands-
|
|
298
|
+
const { handleServeCommand } = await import('./serveCommands-Cu_2l3vg.mjs');
|
|
299
299
|
await handleServeCommand();
|
|
300
300
|
process.exit(0);
|
|
301
301
|
} else if (subcommand === "process" || subcommand === "proc") {
|
|
@@ -304,7 +304,7 @@ async function main() {
|
|
|
304
304
|
console.error("svamp process: Process commands are not available in sandboxed sessions.");
|
|
305
305
|
process.exit(1);
|
|
306
306
|
}
|
|
307
|
-
const { processCommand } = await import('./commands-
|
|
307
|
+
const { processCommand } = await import('./commands-BTZCHV-Z.mjs');
|
|
308
308
|
let machineId;
|
|
309
309
|
const processArgs = args.slice(1);
|
|
310
310
|
const mIdx = processArgs.findIndex((a) => a === "--machine" || a === "-m");
|
|
@@ -322,7 +322,7 @@ async function main() {
|
|
|
322
322
|
} else if (!subcommand || subcommand === "start") {
|
|
323
323
|
await handleInteractiveCommand();
|
|
324
324
|
} else if (subcommand === "--version" || subcommand === "-v") {
|
|
325
|
-
const pkg = await import('./package-
|
|
325
|
+
const pkg = await import('./package-C__x7TGc.mjs').catch(() => ({ default: { version: "unknown" } }));
|
|
326
326
|
console.log(`svamp version: ${pkg.default.version}`);
|
|
327
327
|
} else {
|
|
328
328
|
console.error(`Unknown command: ${subcommand}`);
|
|
@@ -331,7 +331,7 @@ async function main() {
|
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
333
|
async function handleInteractiveCommand() {
|
|
334
|
-
const { runInteractive } = await import('./run-
|
|
334
|
+
const { runInteractive } = await import('./run-DO_Axr2M.mjs');
|
|
335
335
|
const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
|
|
336
336
|
let directory = process.cwd();
|
|
337
337
|
let resumeSessionId;
|
|
@@ -376,7 +376,7 @@ async function handleAgentCommand() {
|
|
|
376
376
|
return;
|
|
377
377
|
}
|
|
378
378
|
if (agentArgs[0] === "list") {
|
|
379
|
-
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-
|
|
379
|
+
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-Br90om8R.mjs').then(function (n) { return n.p; });
|
|
380
380
|
console.log("Known agents:");
|
|
381
381
|
for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
|
|
382
382
|
console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
|
|
@@ -388,7 +388,7 @@ async function handleAgentCommand() {
|
|
|
388
388
|
console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
|
|
389
389
|
return;
|
|
390
390
|
}
|
|
391
|
-
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-
|
|
391
|
+
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-Br90om8R.mjs').then(function (n) { return n.p; });
|
|
392
392
|
let cwd = process.cwd();
|
|
393
393
|
const filteredArgs = [];
|
|
394
394
|
for (let i = 0; i < agentArgs.length; i++) {
|
|
@@ -412,12 +412,12 @@ async function handleAgentCommand() {
|
|
|
412
412
|
console.log(`Starting ${config.agentName} agent in ${cwd}...`);
|
|
413
413
|
let backend;
|
|
414
414
|
if (KNOWN_MCP_AGENTS[config.agentName]) {
|
|
415
|
-
const { CodexMcpBackend } = await import('./run-
|
|
415
|
+
const { CodexMcpBackend } = await import('./run-Br90om8R.mjs').then(function (n) { return n.q; });
|
|
416
416
|
backend = new CodexMcpBackend({ cwd, log: logFn });
|
|
417
417
|
} else {
|
|
418
|
-
const { AcpBackend } = await import('./run-
|
|
419
|
-
const { GeminiTransport } = await import('./run-
|
|
420
|
-
const { DefaultTransport } = await import('./run-
|
|
418
|
+
const { AcpBackend } = await import('./run-Br90om8R.mjs').then(function (n) { return n.o; });
|
|
419
|
+
const { GeminiTransport } = await import('./run-Br90om8R.mjs').then(function (n) { return n.G; });
|
|
420
|
+
const { DefaultTransport } = await import('./run-Br90om8R.mjs').then(function (n) { return n.D; });
|
|
421
421
|
const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
|
|
422
422
|
backend = new AcpBackend({
|
|
423
423
|
agentName: config.agentName,
|
|
@@ -544,7 +544,7 @@ async function handleSessionCommand() {
|
|
|
544
544
|
process.exit(1);
|
|
545
545
|
}
|
|
546
546
|
}
|
|
547
|
-
const { sessionList, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands
|
|
547
|
+
const { sessionList, sessionSpawn, sessionArchive, sessionResume, sessionDelete, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionInboxSend, sessionInboxList, sessionInboxRead, sessionInboxReply, sessionInboxClear } = await import('./commands--SLXTrkN.mjs');
|
|
548
548
|
const parseFlagStr = (flag, shortFlag) => {
|
|
549
549
|
for (let i = 1; i < sessionArgs.length; i++) {
|
|
550
550
|
if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
|
|
@@ -610,7 +610,7 @@ async function handleSessionCommand() {
|
|
|
610
610
|
allowDomain.push(sessionArgs[++i]);
|
|
611
611
|
}
|
|
612
612
|
}
|
|
613
|
-
const { parseShareArg } = await import('./commands
|
|
613
|
+
const { parseShareArg } = await import('./commands--SLXTrkN.mjs');
|
|
614
614
|
const shareEntries = share.map((s) => parseShareArg(s));
|
|
615
615
|
await sessionSpawn(agent, dir, targetMachineId, {
|
|
616
616
|
message,
|
|
@@ -694,7 +694,7 @@ async function handleSessionCommand() {
|
|
|
694
694
|
console.error(" Spawns a stateless Claude session in <directory>, sends <prompt>, prints the answer, then deletes the session.");
|
|
695
695
|
process.exit(1);
|
|
696
696
|
}
|
|
697
|
-
const { sessionQuery } = await import('./commands
|
|
697
|
+
const { sessionQuery } = await import('./commands--SLXTrkN.mjs');
|
|
698
698
|
await sessionQuery(dir, prompt, targetMachineId, {
|
|
699
699
|
timeout: parseFlagInt("--timeout"),
|
|
700
700
|
json: hasFlag("--json"),
|
|
@@ -727,7 +727,7 @@ async function handleSessionCommand() {
|
|
|
727
727
|
console.error("Usage: svamp session approve <session-id> [request-id] [--json]");
|
|
728
728
|
process.exit(1);
|
|
729
729
|
}
|
|
730
|
-
const { sessionApprove } = await import('./commands
|
|
730
|
+
const { sessionApprove } = await import('./commands--SLXTrkN.mjs');
|
|
731
731
|
const approveReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
732
732
|
await sessionApprove(sessionArgs[1], approveReqId, targetMachineId, {
|
|
733
733
|
json: hasFlag("--json")
|
|
@@ -737,7 +737,7 @@ async function handleSessionCommand() {
|
|
|
737
737
|
console.error("Usage: svamp session deny <session-id> [request-id] [--json]");
|
|
738
738
|
process.exit(1);
|
|
739
739
|
}
|
|
740
|
-
const { sessionDeny } = await import('./commands
|
|
740
|
+
const { sessionDeny } = await import('./commands--SLXTrkN.mjs');
|
|
741
741
|
const denyReqId = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
742
742
|
await sessionDeny(sessionArgs[1], denyReqId, targetMachineId, {
|
|
743
743
|
json: hasFlag("--json")
|
|
@@ -773,7 +773,7 @@ async function handleSessionCommand() {
|
|
|
773
773
|
console.error("Usage: svamp session set-title <title>");
|
|
774
774
|
process.exit(1);
|
|
775
775
|
}
|
|
776
|
-
const { sessionSetTitle } = await import('./agentCommands-
|
|
776
|
+
const { sessionSetTitle } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
777
777
|
await sessionSetTitle(title);
|
|
778
778
|
} else if (sessionSubcommand === "set-link") {
|
|
779
779
|
const url = sessionArgs[1];
|
|
@@ -782,7 +782,7 @@ async function handleSessionCommand() {
|
|
|
782
782
|
process.exit(1);
|
|
783
783
|
}
|
|
784
784
|
const label = sessionArgs[2] && !sessionArgs[2].startsWith("--") ? sessionArgs[2] : void 0;
|
|
785
|
-
const { sessionSetLink } = await import('./agentCommands-
|
|
785
|
+
const { sessionSetLink } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
786
786
|
await sessionSetLink(url, label);
|
|
787
787
|
} else if (sessionSubcommand === "notify") {
|
|
788
788
|
const message = sessionArgs[1];
|
|
@@ -791,7 +791,7 @@ async function handleSessionCommand() {
|
|
|
791
791
|
process.exit(1);
|
|
792
792
|
}
|
|
793
793
|
const level = parseFlagStr("--level") || "info";
|
|
794
|
-
const { sessionNotify } = await import('./agentCommands-
|
|
794
|
+
const { sessionNotify } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
795
795
|
await sessionNotify(message, level);
|
|
796
796
|
} else if (sessionSubcommand === "broadcast") {
|
|
797
797
|
const action = sessionArgs[1];
|
|
@@ -799,7 +799,7 @@ async function handleSessionCommand() {
|
|
|
799
799
|
console.error("Usage: svamp session broadcast <action> [args...]\nActions: open-canvas <url> [label], close-canvas, toast <message>");
|
|
800
800
|
process.exit(1);
|
|
801
801
|
}
|
|
802
|
-
const { sessionBroadcast } = await import('./agentCommands-
|
|
802
|
+
const { sessionBroadcast } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
803
803
|
await sessionBroadcast(action, sessionArgs.slice(2).filter((a) => !a.startsWith("--")));
|
|
804
804
|
} else if (sessionSubcommand === "inbox") {
|
|
805
805
|
const inboxSubcmd = sessionArgs[1];
|
|
@@ -810,7 +810,7 @@ async function handleSessionCommand() {
|
|
|
810
810
|
process.exit(1);
|
|
811
811
|
}
|
|
812
812
|
if (agentSessionId) {
|
|
813
|
-
const { inboxSend } = await import('./agentCommands-
|
|
813
|
+
const { inboxSend } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
814
814
|
await inboxSend(sessionArgs[2], {
|
|
815
815
|
body: sessionArgs[3],
|
|
816
816
|
subject: parseFlagStr("--subject"),
|
|
@@ -825,7 +825,7 @@ async function handleSessionCommand() {
|
|
|
825
825
|
}
|
|
826
826
|
} else if (inboxSubcmd === "list" || inboxSubcmd === "ls") {
|
|
827
827
|
if (agentSessionId && !sessionArgs[2]) {
|
|
828
|
-
const { inboxList } = await import('./agentCommands-
|
|
828
|
+
const { inboxList } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
829
829
|
await inboxList({
|
|
830
830
|
unread: hasFlag("--unread"),
|
|
831
831
|
limit: parseFlagInt("--limit"),
|
|
@@ -847,7 +847,7 @@ async function handleSessionCommand() {
|
|
|
847
847
|
process.exit(1);
|
|
848
848
|
}
|
|
849
849
|
if (agentSessionId && !sessionArgs[3]) {
|
|
850
|
-
const { inboxList } = await import('./agentCommands-
|
|
850
|
+
const { inboxList } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
851
851
|
await sessionInboxRead(agentSessionId, sessionArgs[2], targetMachineId);
|
|
852
852
|
} else if (sessionArgs[3]) {
|
|
853
853
|
await sessionInboxRead(sessionArgs[2], sessionArgs[3], targetMachineId);
|
|
@@ -857,7 +857,7 @@ async function handleSessionCommand() {
|
|
|
857
857
|
}
|
|
858
858
|
} else if (inboxSubcmd === "reply") {
|
|
859
859
|
if (agentSessionId && sessionArgs[2] && sessionArgs[3] && !sessionArgs[4]) {
|
|
860
|
-
const { inboxReply } = await import('./agentCommands-
|
|
860
|
+
const { inboxReply } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
861
861
|
await inboxReply(sessionArgs[2], sessionArgs[3]);
|
|
862
862
|
} else if (sessionArgs[2] && sessionArgs[3] && sessionArgs[4]) {
|
|
863
863
|
await sessionInboxReply(sessionArgs[2], sessionArgs[3], sessionArgs[4], targetMachineId);
|
|
@@ -893,7 +893,7 @@ async function handleMachineCommand() {
|
|
|
893
893
|
return;
|
|
894
894
|
}
|
|
895
895
|
if (machineSubcommand === "share") {
|
|
896
|
-
const { machineShare } = await import('./commands
|
|
896
|
+
const { machineShare } = await import('./commands--SLXTrkN.mjs');
|
|
897
897
|
let machineId;
|
|
898
898
|
const shareArgs = [];
|
|
899
899
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
@@ -923,7 +923,7 @@ async function handleMachineCommand() {
|
|
|
923
923
|
}
|
|
924
924
|
await machineShare(machineId, { add, remove, list, configPath, showConfig });
|
|
925
925
|
} else if (machineSubcommand === "exec") {
|
|
926
|
-
const { machineExec } = await import('./commands
|
|
926
|
+
const { machineExec } = await import('./commands--SLXTrkN.mjs');
|
|
927
927
|
let machineId;
|
|
928
928
|
let cwd;
|
|
929
929
|
const cmdParts = [];
|
|
@@ -943,7 +943,7 @@ async function handleMachineCommand() {
|
|
|
943
943
|
}
|
|
944
944
|
await machineExec(machineId, command, cwd);
|
|
945
945
|
} else if (machineSubcommand === "info") {
|
|
946
|
-
const { machineInfo } = await import('./commands
|
|
946
|
+
const { machineInfo } = await import('./commands--SLXTrkN.mjs');
|
|
947
947
|
let machineId;
|
|
948
948
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
949
949
|
if ((machineArgs[i] === "--machine" || machineArgs[i] === "-m") && i + 1 < machineArgs.length) {
|
|
@@ -963,10 +963,10 @@ async function handleMachineCommand() {
|
|
|
963
963
|
level = machineArgs[++i];
|
|
964
964
|
}
|
|
965
965
|
}
|
|
966
|
-
const { machineNotify } = await import('./agentCommands-
|
|
966
|
+
const { machineNotify } = await import('./agentCommands-BXQNGfyi.mjs');
|
|
967
967
|
await machineNotify(message, level);
|
|
968
968
|
} else if (machineSubcommand === "ls") {
|
|
969
|
-
const { machineLs } = await import('./commands
|
|
969
|
+
const { machineLs } = await import('./commands--SLXTrkN.mjs');
|
|
970
970
|
let machineId;
|
|
971
971
|
let showHidden = false;
|
|
972
972
|
let path;
|
|
@@ -1020,24 +1020,24 @@ Examples:
|
|
|
1020
1020
|
};
|
|
1021
1021
|
const hasFlag = (name) => fleetArgs.includes(`--${name}`);
|
|
1022
1022
|
if (sub === "status") {
|
|
1023
|
-
const { fleetStatus } = await import('./fleet-
|
|
1023
|
+
const { fleetStatus } = await import('./fleet-DMajjqRV.mjs');
|
|
1024
1024
|
await fleetStatus();
|
|
1025
1025
|
} else if (sub === "exec") {
|
|
1026
1026
|
const command = fleetArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
1027
|
-
const { fleetExec } = await import('./fleet-
|
|
1027
|
+
const { fleetExec } = await import('./fleet-DMajjqRV.mjs');
|
|
1028
1028
|
await fleetExec(command, { cwd: flag("cwd") });
|
|
1029
1029
|
} else if (sub === "upgrade-claude") {
|
|
1030
|
-
const { fleetUpgradeClaude } = await import('./fleet-
|
|
1030
|
+
const { fleetUpgradeClaude } = await import('./fleet-DMajjqRV.mjs');
|
|
1031
1031
|
await fleetUpgradeClaude({ version: flag("version", "-v") });
|
|
1032
1032
|
} else if (sub === "upgrade-svamp") {
|
|
1033
|
-
const { fleetUpgradeSvamp } = await import('./fleet-
|
|
1033
|
+
const { fleetUpgradeSvamp } = await import('./fleet-DMajjqRV.mjs');
|
|
1034
1034
|
await fleetUpgradeSvamp({ version: flag("version", "-v") });
|
|
1035
1035
|
} else if (sub === "daemon-restart") {
|
|
1036
|
-
const { fleetDaemonRestart } = await import('./fleet-
|
|
1036
|
+
const { fleetDaemonRestart } = await import('./fleet-DMajjqRV.mjs');
|
|
1037
1037
|
await fleetDaemonRestart({ graceful: !hasFlag("cleanup") });
|
|
1038
1038
|
} else if (sub === "push-skill") {
|
|
1039
1039
|
const name = fleetArgs[1];
|
|
1040
|
-
const { fleetPushSkill } = await import('./fleet-
|
|
1040
|
+
const { fleetPushSkill } = await import('./fleet-DMajjqRV.mjs');
|
|
1041
1041
|
await fleetPushSkill(name);
|
|
1042
1042
|
} else {
|
|
1043
1043
|
console.error(`Unknown fleet subcommand: ${sub}`);
|
|
@@ -1496,7 +1496,7 @@ async function applyClaudeAuthFlags(argv) {
|
|
|
1496
1496
|
"--use-hypha-proxy, --use-claude-login, and --anthropic-base-url/--anthropic-api-key are mutually exclusive"
|
|
1497
1497
|
);
|
|
1498
1498
|
}
|
|
1499
|
-
const mod = await import('./run-
|
|
1499
|
+
const mod = await import('./run-Br90om8R.mjs').then(function (n) { return n.t; });
|
|
1500
1500
|
if (hasHypha) {
|
|
1501
1501
|
mod.setClaudeAuthHyphaProxy();
|
|
1502
1502
|
console.log("Claude auth configured: hypha-proxy (uses HYPHA_TOKEN live at each spawn).");
|
|
@@ -1534,7 +1534,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
1534
1534
|
}
|
|
1535
1535
|
}
|
|
1536
1536
|
if (collected.length === 0) return;
|
|
1537
|
-
const { updateEnvFile } = await import('./run-
|
|
1537
|
+
const { updateEnvFile } = await import('./run-Br90om8R.mjs').then(function (n) { return n.t; });
|
|
1538
1538
|
const seen = /* @__PURE__ */ new Set();
|
|
1539
1539
|
const deduped = collected.filter((e) => {
|
|
1540
1540
|
const k = e.toLowerCase();
|
|
@@ -1547,7 +1547,7 @@ async function applyDaemonShareFlag(argv) {
|
|
|
1547
1547
|
}
|
|
1548
1548
|
async function handleDaemonAuthCommand(argv) {
|
|
1549
1549
|
const sub = (argv[0] || "status").toLowerCase();
|
|
1550
|
-
const mod = await import('./run-
|
|
1550
|
+
const mod = await import('./run-Br90om8R.mjs').then(function (n) { return n.t; });
|
|
1551
1551
|
if (sub === "--help" || sub === "-h" || sub === "help") {
|
|
1552
1552
|
console.log(`
|
|
1553
1553
|
svamp daemon auth \u2014 Configure how Claude subprocesses authenticate
|
|
@@ -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-Br90om8R.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { writeFileSync, readFileSync } from 'fs';
|
|
2
2
|
import { resolve } from 'path';
|
|
3
|
-
import { connectAndGetMachine } from './commands
|
|
3
|
+
import { connectAndGetMachine } from './commands--SLXTrkN.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-Br90om8R.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
@@ -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--SLXTrkN.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--SLXTrkN.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--SLXTrkN.mjs');
|
|
165
165
|
const { server, machine } = await connectAndGetMachine();
|
|
166
166
|
try {
|
|
167
167
|
await machine.tunnelStop({ name });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import os from 'node:os';
|
|
4
|
-
import { c as connectToHypha } from './run-
|
|
4
|
+
import { c as connectToHypha } from './run-Br90om8R.mjs';
|
|
5
5
|
import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-HydRNEt7.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
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-Br90om8R.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -5804,12 +5804,28 @@ btn.addEventListener('click', async () => {
|
|
|
5804
5804
|
if (!token) throw new Error('Timed out waiting for sign-in. Please try again.');
|
|
5805
5805
|
|
|
5806
5806
|
// 4. Set the cookie so subsequent requests to this origin are authenticated.
|
|
5807
|
-
|
|
5808
|
-
|
|
5807
|
+
// Over HTTPS use SameSite=None; Secure so the cookie is still sent when
|
|
5808
|
+
// this page is framed cross-site (e.g. embedded as an <artifact> iframe
|
|
5809
|
+
// in the Svamp app) \u2014 SameSite=Lax would be dropped in that third-party
|
|
5810
|
+
// context. Fall back to Lax on plain HTTP (SameSite=None requires Secure).
|
|
5811
|
+
const isHttps = location.protocol === 'https:';
|
|
5812
|
+
const sameSite = isHttps ? '; SameSite=None; Secure' : '; SameSite=Lax';
|
|
5813
|
+
document.cookie = cookieName + '=' + token + '; path=/' + sameSite;
|
|
5814
|
+
|
|
5815
|
+
// Also carry the token in the redirect URL as a fallback: browsers that
|
|
5816
|
+
// block third-party cookies entirely (Safari ITP, Chrome 3p-cookie
|
|
5817
|
+
// phaseout) won't send the cookie above when we're framed cross-site, but
|
|
5818
|
+
// the proxy also accepts ?token= on the request. Harmless when the cookie
|
|
5819
|
+
// does work \u2014 extractToken() prefers the cookie.
|
|
5820
|
+
let dest = redirectUrl;
|
|
5821
|
+
try {
|
|
5822
|
+
const sep = dest.indexOf('?') === -1 ? '?' : '&';
|
|
5823
|
+
dest = dest + sep + 'token=' + encodeURIComponent(token);
|
|
5824
|
+
} catch (e) {}
|
|
5809
5825
|
|
|
5810
5826
|
try { popup.close(); } catch (e) {}
|
|
5811
5827
|
statusEl.innerHTML = '<span class="ok">Signed in. Redirecting\u2026</span>';
|
|
5812
|
-
setTimeout(() => { window.location.replace(
|
|
5828
|
+
setTimeout(() => { window.location.replace(dest); }, 300);
|
|
5813
5829
|
} catch (err) {
|
|
5814
5830
|
try { popup.close(); } catch (e) {}
|
|
5815
5831
|
setError('Login failed: ' + (err && err.message ? err.message : err));
|
|
@@ -7869,7 +7885,7 @@ async function startDaemon(options) {
|
|
|
7869
7885
|
const list = loadExposedTunnels().filter((t) => t.name !== name);
|
|
7870
7886
|
saveExposedTunnels(list);
|
|
7871
7887
|
}
|
|
7872
|
-
const { ServeManager } = await import('./serveManager-
|
|
7888
|
+
const { ServeManager } = await import('./serveManager-ClzowUXI.mjs');
|
|
7873
7889
|
const serveManager = new ServeManager(SVAMP_HOME, (msg) => logger.log(`[SERVE] ${msg}`), hyphaServerUrl);
|
|
7874
7890
|
ensureAutoInstalledSkills(logger).catch(() => {
|
|
7875
7891
|
});
|
|
@@ -2,7 +2,7 @@ import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(im
|
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import { resolve, join } from 'node:path';
|
|
4
4
|
import { existsSync, readFileSync, watch } from 'node:fs';
|
|
5
|
-
import { c as connectToHypha, a as registerSessionService, k as generateHookSettings } from './run-
|
|
5
|
+
import { c as connectToHypha, a as registerSessionService, k as generateHookSettings } from './run-Br90om8R.mjs';
|
|
6
6
|
import { createServer } from 'node:http';
|
|
7
7
|
import { spawn } from 'node:child_process';
|
|
8
8
|
import { createInterface } from 'node:readline';
|
|
@@ -54,7 +54,7 @@ async function handleServeCommand() {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
async function serveAdd(args, machineId) {
|
|
57
|
-
const { connectAndGetMachine } = await import('./commands
|
|
57
|
+
const { connectAndGetMachine } = await import('./commands--SLXTrkN.mjs');
|
|
58
58
|
const pos = positionalArgs(args);
|
|
59
59
|
const name = pos[0];
|
|
60
60
|
if (!name) {
|
|
@@ -93,7 +93,7 @@ async function serveAdd(args, machineId) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
async function serveApply(args, machineId) {
|
|
96
|
-
const { connectAndGetMachine } = await import('./commands
|
|
96
|
+
const { connectAndGetMachine } = await import('./commands--SLXTrkN.mjs');
|
|
97
97
|
const fs = await import('fs');
|
|
98
98
|
const yaml = await import('yaml');
|
|
99
99
|
const file = positionalArgs(args)[0];
|
|
@@ -182,7 +182,7 @@ async function serveApply(args, machineId) {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
async function serveRemove(args, machineId) {
|
|
185
|
-
const { connectAndGetMachine } = await import('./commands
|
|
185
|
+
const { connectAndGetMachine } = await import('./commands--SLXTrkN.mjs');
|
|
186
186
|
const pos = positionalArgs(args);
|
|
187
187
|
const name = pos[0];
|
|
188
188
|
if (!name) {
|
|
@@ -202,7 +202,7 @@ async function serveRemove(args, machineId) {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
async function serveList(args, machineId) {
|
|
205
|
-
const { connectAndGetMachine } = await import('./commands
|
|
205
|
+
const { connectAndGetMachine } = await import('./commands--SLXTrkN.mjs');
|
|
206
206
|
const all = hasFlag(args, "--all", "-a");
|
|
207
207
|
const json = hasFlag(args, "--json");
|
|
208
208
|
const sessionId = getFlag(args, "--session");
|
|
@@ -235,7 +235,7 @@ async function serveList(args, machineId) {
|
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
async function serveInfo(machineId) {
|
|
238
|
-
const { connectAndGetMachine } = await import('./commands
|
|
238
|
+
const { connectAndGetMachine } = await import('./commands--SLXTrkN.mjs');
|
|
239
239
|
const { machine, server } = await connectAndGetMachine(machineId);
|
|
240
240
|
try {
|
|
241
241
|
const info = await machine.serveInfo();
|
|
@@ -4,7 +4,7 @@ import * as fs from 'fs';
|
|
|
4
4
|
import * as http from 'http';
|
|
5
5
|
import * as net from 'net';
|
|
6
6
|
import * as path from 'path';
|
|
7
|
-
import { S as ServeAuth, h as hasCookieToken } from './run-
|
|
7
|
+
import { S as ServeAuth, h as hasCookieToken } from './run-Br90om8R.mjs';
|
|
8
8
|
import 'os';
|
|
9
9
|
import 'fs/promises';
|
|
10
10
|
import 'url';
|