svamp-cli 0.1.46 → 0.1.47
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/cli.mjs +91 -14
- package/dist/commands-8Wmq0uak.mjs +1407 -0
- package/dist/commands-B-XaqFDB.mjs +1407 -0
- package/dist/commands-BEhSQqTp.mjs +507 -0
- package/dist/commands-BTEmyf2m.mjs +1407 -0
- package/dist/commands-BY09VTpk.mjs +1375 -0
- package/dist/commands-Bi0zYJvj.mjs +1407 -0
- package/dist/commands-C6KDr9Yp.mjs +1407 -0
- package/dist/commands-CQz67Rm1.mjs +1395 -0
- package/dist/commands-CToIvBFX.mjs +1375 -0
- package/dist/commands-CYMSyqYC.mjs +1395 -0
- package/dist/commands-CdyCWC3y.mjs +1395 -0
- package/dist/commands-CrdvbXPI.mjs +1395 -0
- package/dist/commands-D7-NHH5q.mjs +1407 -0
- package/dist/commands-DVw-P6-0.mjs +1407 -0
- package/dist/commands-DsIoygTL.mjs +1395 -0
- package/dist/commands-DypTF36z.mjs +506 -0
- package/dist/commands-EUMJqBCs.mjs +1407 -0
- package/dist/commands-Jk5no-DX.mjs +1407 -0
- package/dist/commands-O1Q9g00y.mjs +1395 -0
- package/dist/commands-OwMfbBrU.mjs +1395 -0
- package/dist/commands-S_MFQ9n1.mjs +354 -0
- package/dist/commands-T3q8VKCY.mjs +1407 -0
- package/dist/commands-g-1n3_Rp.mjs +1395 -0
- package/dist/commands-otgzprjb.mjs +1375 -0
- package/dist/index.mjs +1 -1
- package/dist/package-BMCjXPI9.mjs +58 -0
- package/dist/package-DG0AkZdm.mjs +58 -0
- package/dist/run-4li60ojK.mjs +1051 -0
- package/dist/run-6dwQnoBL.mjs +1051 -0
- package/dist/run-B-PWtXF-.mjs +5894 -0
- package/dist/run-B1ivovUl.mjs +5964 -0
- package/dist/run-BE_AIJ7z.mjs +1051 -0
- package/dist/run-BVcPemGr.mjs +5947 -0
- package/dist/run-BWqEmIiz.mjs +5964 -0
- package/dist/run-Bl8OkKyC.mjs +5969 -0
- package/dist/run-Bmx5wEBF.mjs +1051 -0
- package/dist/run-BzRP6Q5t.mjs +1051 -0
- package/dist/run-C0dyMP62.mjs +1051 -0
- package/dist/run-CC2C8P-U.mjs +6031 -0
- package/dist/run-CDBKhQ1Z.mjs +1051 -0
- package/dist/run-CEB6sYzn.mjs +5962 -0
- package/dist/run-CIFezmkC.mjs +5949 -0
- package/dist/run-CLA9zw7J.mjs +5907 -0
- package/dist/run-CSUAy5T5.mjs +1051 -0
- package/dist/run-CdihMx0V.mjs +1051 -0
- package/dist/run-CkbDK6jA.mjs +1051 -0
- package/dist/run-Ckyg9-fm.mjs +6079 -0
- package/dist/run-Ct--DWF1.mjs +1051 -0
- package/dist/run-D0ow-xms.mjs +5905 -0
- package/dist/run-D2X3jEqg.mjs +1051 -0
- package/dist/run-D691XPXy.mjs +6031 -0
- package/dist/run-DA-YBjNw.mjs +6018 -0
- package/dist/run-DByI8mI0.mjs +1051 -0
- package/dist/run-DDF-tRbn.mjs +5954 -0
- package/dist/run-DOPaGRT2.mjs +6027 -0
- package/dist/run-DP7KSZqR.mjs +1051 -0
- package/dist/run-DaReJPf8.mjs +1051 -0
- package/dist/run-DfuHUDIJ.mjs +1051 -0
- package/dist/run-DfwfyFqj.mjs +5975 -0
- package/dist/run-DgUDGHZy.mjs +1051 -0
- package/dist/run-Dm3U4FB5.mjs +6018 -0
- package/dist/run-DzXohf8-.mjs +1051 -0
- package/dist/run-HU4XjZfs.mjs +6023 -0
- package/dist/run-ZDa17iLg.mjs +6060 -0
- package/dist/run-ZN0qMdS_.mjs +1051 -0
- package/package.json +2 -2
package/dist/cli.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as stopDaemon, s as startDaemon, d as daemonStatus } from './run-
|
|
1
|
+
import { b as stopDaemon, s as startDaemon, d as daemonStatus } from './run-Ckyg9-fm.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -103,12 +103,14 @@ async function main() {
|
|
|
103
103
|
await handleSessionCommand();
|
|
104
104
|
} else if (subcommand === "machine") {
|
|
105
105
|
await handleMachineCommand();
|
|
106
|
+
} else if (subcommand === "skills") {
|
|
107
|
+
await handleSkillsCommand();
|
|
106
108
|
} else if (subcommand === "--help" || subcommand === "-h") {
|
|
107
109
|
printHelp();
|
|
108
110
|
} else if (!subcommand || subcommand === "start") {
|
|
109
111
|
await handleInteractiveCommand();
|
|
110
112
|
} else if (subcommand === "--version" || subcommand === "-v") {
|
|
111
|
-
const pkg = await import('./package-
|
|
113
|
+
const pkg = await import('./package-DG0AkZdm.mjs').catch(() => ({ default: { version: "unknown" } }));
|
|
112
114
|
console.log(`svamp version: ${pkg.default.version}`);
|
|
113
115
|
} else {
|
|
114
116
|
console.error(`Unknown command: ${subcommand}`);
|
|
@@ -117,7 +119,7 @@ async function main() {
|
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
async function handleInteractiveCommand() {
|
|
120
|
-
const { runInteractive } = await import('./run-
|
|
122
|
+
const { runInteractive } = await import('./run-6dwQnoBL.mjs');
|
|
121
123
|
const interactiveArgs = subcommand === "start" ? args.slice(1) : args;
|
|
122
124
|
let directory = process.cwd();
|
|
123
125
|
let resumeSessionId;
|
|
@@ -162,7 +164,7 @@ async function handleAgentCommand() {
|
|
|
162
164
|
return;
|
|
163
165
|
}
|
|
164
166
|
if (agentArgs[0] === "list") {
|
|
165
|
-
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-
|
|
167
|
+
const { KNOWN_ACP_AGENTS, KNOWN_MCP_AGENTS: KNOWN_MCP_AGENTS2 } = await import('./run-Ckyg9-fm.mjs').then(function (n) { return n.i; });
|
|
166
168
|
console.log("Known agents:");
|
|
167
169
|
for (const [name, config2] of Object.entries(KNOWN_ACP_AGENTS)) {
|
|
168
170
|
console.log(` ${name.padEnd(12)} ${config2.command} ${config2.args.join(" ")} (ACP)`);
|
|
@@ -174,7 +176,7 @@ async function handleAgentCommand() {
|
|
|
174
176
|
console.log('Use "svamp agent -- <command> [args]" for a custom ACP agent.');
|
|
175
177
|
return;
|
|
176
178
|
}
|
|
177
|
-
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-
|
|
179
|
+
const { resolveAcpAgentConfig, KNOWN_MCP_AGENTS } = await import('./run-Ckyg9-fm.mjs').then(function (n) { return n.i; });
|
|
178
180
|
let cwd = process.cwd();
|
|
179
181
|
const filteredArgs = [];
|
|
180
182
|
for (let i = 0; i < agentArgs.length; i++) {
|
|
@@ -198,12 +200,12 @@ async function handleAgentCommand() {
|
|
|
198
200
|
console.log(`Starting ${config.agentName} agent in ${cwd}...`);
|
|
199
201
|
let backend;
|
|
200
202
|
if (KNOWN_MCP_AGENTS[config.agentName]) {
|
|
201
|
-
const { CodexMcpBackend } = await import('./run-
|
|
203
|
+
const { CodexMcpBackend } = await import('./run-Ckyg9-fm.mjs').then(function (n) { return n.j; });
|
|
202
204
|
backend = new CodexMcpBackend({ cwd, log: logFn });
|
|
203
205
|
} else {
|
|
204
|
-
const { AcpBackend } = await import('./run-
|
|
205
|
-
const { GeminiTransport } = await import('./run-
|
|
206
|
-
const { DefaultTransport } = await import('./run-
|
|
206
|
+
const { AcpBackend } = await import('./run-Ckyg9-fm.mjs').then(function (n) { return n.h; });
|
|
207
|
+
const { GeminiTransport } = await import('./run-Ckyg9-fm.mjs').then(function (n) { return n.G; });
|
|
208
|
+
const { DefaultTransport } = await import('./run-Ckyg9-fm.mjs').then(function (n) { return n.D; });
|
|
207
209
|
const transportHandler = config.agentName === "gemini" ? new GeminiTransport() : new DefaultTransport(config.agentName);
|
|
208
210
|
backend = new AcpBackend({
|
|
209
211
|
agentName: config.agentName,
|
|
@@ -321,7 +323,7 @@ async function handleSessionCommand() {
|
|
|
321
323
|
printSessionHelp();
|
|
322
324
|
return;
|
|
323
325
|
}
|
|
324
|
-
const { sessionList, sessionSpawn, sessionStop, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionQueueAdd, sessionQueueList, sessionQueueClear } = await import('./commands-
|
|
326
|
+
const { sessionList, sessionSpawn, sessionStop, sessionInfo, sessionMessages, sessionAttach, sessionMachines, sessionSend, sessionWait, sessionShare, sessionRalphStart, sessionRalphCancel, sessionRalphStatus, sessionQueueAdd, sessionQueueList, sessionQueueClear } = await import('./commands-DsIoygTL.mjs');
|
|
325
327
|
const parseFlagStr = (flag, shortFlag) => {
|
|
326
328
|
for (let i = 1; i < sessionArgs.length; i++) {
|
|
327
329
|
if ((sessionArgs[i] === flag || shortFlag) && i + 1 < sessionArgs.length) {
|
|
@@ -373,7 +375,7 @@ async function handleSessionCommand() {
|
|
|
373
375
|
allowDomain.push(sessionArgs[++i]);
|
|
374
376
|
}
|
|
375
377
|
}
|
|
376
|
-
const { parseShareArg } = await import('./commands-
|
|
378
|
+
const { parseShareArg } = await import('./commands-DsIoygTL.mjs');
|
|
377
379
|
const shareEntries = share.map((s) => parseShareArg(s));
|
|
378
380
|
await sessionSpawn(agent, dir, targetMachineId, {
|
|
379
381
|
message,
|
|
@@ -437,13 +439,14 @@ async function handleSessionCommand() {
|
|
|
437
439
|
});
|
|
438
440
|
} else if (sessionSubcommand === "share") {
|
|
439
441
|
if (!sessionArgs[1]) {
|
|
440
|
-
console.error("Usage: svamp session share <session-id> --add <email>[:<role>] | --remove <email> | --list");
|
|
442
|
+
console.error("Usage: svamp session share <session-id> --add <email>[:<role>] | --remove <email> | --list | --public <view|interact|off>");
|
|
441
443
|
process.exit(1);
|
|
442
444
|
}
|
|
443
445
|
await sessionShare(sessionArgs[1], targetMachineId, {
|
|
444
446
|
add: parseFlagStr("--add"),
|
|
445
447
|
remove: parseFlagStr("--remove"),
|
|
446
|
-
list: hasFlag("--list")
|
|
448
|
+
list: hasFlag("--list"),
|
|
449
|
+
public: parseFlagStr("--public")
|
|
447
450
|
});
|
|
448
451
|
} else if (sessionSubcommand === "ralph-start" || sessionSubcommand === "ralph") {
|
|
449
452
|
if (!sessionArgs[1] || !sessionArgs[2]) {
|
|
@@ -505,7 +508,7 @@ async function handleMachineCommand() {
|
|
|
505
508
|
return;
|
|
506
509
|
}
|
|
507
510
|
if (machineSubcommand === "share") {
|
|
508
|
-
const { machineShare } = await import('./commands-
|
|
511
|
+
const { machineShare } = await import('./commands-DsIoygTL.mjs');
|
|
509
512
|
let machineId;
|
|
510
513
|
const shareArgs = [];
|
|
511
514
|
for (let i = 1; i < machineArgs.length; i++) {
|
|
@@ -541,6 +544,51 @@ async function handleMachineCommand() {
|
|
|
541
544
|
}
|
|
542
545
|
process.exit(0);
|
|
543
546
|
}
|
|
547
|
+
async function handleSkillsCommand() {
|
|
548
|
+
const skillsArgs = args.slice(1);
|
|
549
|
+
const skillsSubcommand = skillsArgs[0];
|
|
550
|
+
if (!skillsSubcommand || skillsSubcommand === "--help" || skillsSubcommand === "-h") {
|
|
551
|
+
printSkillsHelp();
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
const { skillsFind, skillsInstall, skillsList, skillsRemove, skillsPublish } = await import('./commands-BEhSQqTp.mjs');
|
|
555
|
+
if (skillsSubcommand === "find" || skillsSubcommand === "search") {
|
|
556
|
+
const query = skillsArgs.slice(1).filter((a) => !a.startsWith("--")).join(" ");
|
|
557
|
+
if (!query) {
|
|
558
|
+
console.error("Usage: svamp skills find <query> [--json]");
|
|
559
|
+
process.exit(1);
|
|
560
|
+
}
|
|
561
|
+
await skillsFind(query, { json: skillsArgs.includes("--json") });
|
|
562
|
+
} else if (skillsSubcommand === "install" || skillsSubcommand === "add") {
|
|
563
|
+
if (!skillsArgs[1]) {
|
|
564
|
+
console.error("Usage: svamp skills install <name> [--force]");
|
|
565
|
+
process.exit(1);
|
|
566
|
+
}
|
|
567
|
+
await skillsInstall(skillsArgs[1], { force: skillsArgs.includes("--force") });
|
|
568
|
+
} else if (skillsSubcommand === "list" || skillsSubcommand === "ls") {
|
|
569
|
+
await skillsList();
|
|
570
|
+
} else if (skillsSubcommand === "remove" || skillsSubcommand === "rm") {
|
|
571
|
+
if (!skillsArgs[1]) {
|
|
572
|
+
console.error("Usage: svamp skills remove <name>");
|
|
573
|
+
process.exit(1);
|
|
574
|
+
}
|
|
575
|
+
await skillsRemove(skillsArgs[1]);
|
|
576
|
+
} else if (skillsSubcommand === "publish") {
|
|
577
|
+
const publishArgs = skillsArgs.slice(1).filter((a) => !a.startsWith("--"));
|
|
578
|
+
if (!publishArgs[0]) {
|
|
579
|
+
console.error("Usage: svamp skills publish <path> [--version <tag>]");
|
|
580
|
+
process.exit(1);
|
|
581
|
+
}
|
|
582
|
+
const versionIdx = skillsArgs.indexOf("--version");
|
|
583
|
+
const versionTag = versionIdx !== -1 ? skillsArgs[versionIdx + 1] : void 0;
|
|
584
|
+
await skillsPublish(publishArgs[0], { version: versionTag });
|
|
585
|
+
} else {
|
|
586
|
+
console.error(`Unknown skills command: ${skillsSubcommand}`);
|
|
587
|
+
printSkillsHelp();
|
|
588
|
+
process.exit(1);
|
|
589
|
+
}
|
|
590
|
+
process.exit(0);
|
|
591
|
+
}
|
|
544
592
|
async function loginToHypha() {
|
|
545
593
|
const serverUrl = args[1] || process.env.HYPHA_SERVER_URL;
|
|
546
594
|
if (!serverUrl) {
|
|
@@ -865,6 +913,9 @@ Usage:
|
|
|
865
913
|
svamp session --help Show all session commands
|
|
866
914
|
svamp machine share Manage machine sharing & security contexts
|
|
867
915
|
svamp machine --help Show all machine commands
|
|
916
|
+
svamp skills find <query> Search the skills marketplace
|
|
917
|
+
svamp skills install <n> Install a skill from the marketplace
|
|
918
|
+
svamp skills --help Show all skill commands
|
|
868
919
|
svamp agent list List known agents
|
|
869
920
|
svamp agent <name> Start local agent session (gemini, codex)
|
|
870
921
|
svamp --version Show version
|
|
@@ -919,6 +970,7 @@ Usage:
|
|
|
919
970
|
svamp session share <id> --list List shared users
|
|
920
971
|
svamp session share <id> --add <email>[:<role>] Share with user
|
|
921
972
|
svamp session share <id> --remove <email> Remove shared user
|
|
973
|
+
svamp session share <id> --public <view|interact|off> Set public link access
|
|
922
974
|
|
|
923
975
|
Options:
|
|
924
976
|
--machine <id>, -m <id> Target a specific machine (prefix match supported)
|
|
@@ -948,6 +1000,7 @@ Examples:
|
|
|
948
1000
|
svamp session spawn claude -d /tmp/proj --share alice@example.com:admin --deny-read /etc
|
|
949
1001
|
svamp session spawn claude --security-context ./security.json
|
|
950
1002
|
svamp session share abc12345 --add bob@example.com:view
|
|
1003
|
+
svamp session share abc12345 --public view
|
|
951
1004
|
svamp session share abc12345 --list
|
|
952
1005
|
|
|
953
1006
|
Ralph Loop (iterative task loop):
|
|
@@ -1003,6 +1056,30 @@ Examples:
|
|
|
1003
1056
|
svamp machine share --list
|
|
1004
1057
|
`);
|
|
1005
1058
|
}
|
|
1059
|
+
function printSkillsHelp() {
|
|
1060
|
+
console.log(`
|
|
1061
|
+
svamp skills \u2014 Agent skills marketplace
|
|
1062
|
+
|
|
1063
|
+
Usage:
|
|
1064
|
+
svamp skills find <query> [--json] Search for skills in the marketplace
|
|
1065
|
+
svamp skills install <name> [--force] Install skill to ~/.claude/skills/<name>/
|
|
1066
|
+
svamp skills list List locally installed skills
|
|
1067
|
+
svamp skills remove <name> Remove an installed skill
|
|
1068
|
+
svamp skills publish <path> [--version <tag>] Publish a skill to the marketplace
|
|
1069
|
+
|
|
1070
|
+
Skills are stored in ~/.claude/skills/ and automatically detected by Claude Code.
|
|
1071
|
+
Each skill contains a SKILL.md file with instructions and metadata.
|
|
1072
|
+
Skills use git-backed storage \u2014 you can also clone and push via git.
|
|
1073
|
+
|
|
1074
|
+
Browse online: https://hypha.aicell.io/hypha-cloud/artifacts/marketplace
|
|
1075
|
+
|
|
1076
|
+
Examples:
|
|
1077
|
+
svamp skills find "code review"
|
|
1078
|
+
svamp skills install code-review
|
|
1079
|
+
svamp skills publish ./my-skill/
|
|
1080
|
+
svamp skills publish ./my-skill/ --version v1.0
|
|
1081
|
+
`);
|
|
1082
|
+
}
|
|
1006
1083
|
function printInteractiveHelp() {
|
|
1007
1084
|
console.log(`
|
|
1008
1085
|
svamp \u2014 Interactive Claude session with cloud sync
|