@pompeii-labs/cli
Version:
Magma CLI
66 lines (59 loc) • 3.28 kB
JavaScript
import chalk from "chalk";
import { magma } from "../ui.js";
import readline from "readline";
import { MagmaFlow } from "../ui.js";
const MAGMA_ASCII = `
\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557
\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557
\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551
\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551
\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551
\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D
`;
const quickstartGuide = `
${chalk.bold("\u{1F30B} Getting Started")}
First, run ${magma("magma login")} to create/login to your account.
1. ${chalk.bold("Create an Agent")}
Run ${magma("magma init <name>")}
${chalk.dim("This creates a new agent project in the specified directory")}
2. ${chalk.bold("Test Locally")}
Run ${magma("magma run")}
${chalk.dim("Interactive chat session with your agent")}
3. ${chalk.bold("Deploy")}
Run ${magma("magma deploy")}
${chalk.dim("Deploys your agent to magmadeploy.com")}
4. ${chalk.bold("Manage Deployed Agent")}
Run ${magma("magma stop")} ${chalk.dim("or")} ${magma("magma logs --follow")}
${chalk.dim("Stop or view logs from your agent on magmadeploy.com")}
${chalk.dim("For more information on Magma, visit:")} ${chalk.cyan("https://github.com/pompeii-labs/magma")}
`;
async function magmaBanner() {
console.clear();
const staticContent = `${chalk.cyan(" Deploy agents to the cloud with volcanic power! \u{1F30B}\n")}
${chalk.dim("Press Enter to continue...")}`;
const flow = new MagmaFlow(MAGMA_ASCII, staticContent);
flow.start();
await new Promise((resolve) => {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question("", () => {
flow.stop();
rl.close();
resolve();
});
});
}
function welcomeCommand(program) {
program.command("welcome").description("Welcome to Magma").action(async () => {
await magmaBanner();
console.clear();
console.log(quickstartGuide);
process.exit(0);
});
}
export {
magmaBanner,
welcomeCommand
};