UNPKG

@pompeii-labs/cli

Version:

Magma CLI

66 lines (59 loc) 3.28 kB
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 };