@sigyl-dev/cli
Version:
Official Sigyl CLI for installing and managing MCP packages. Zero-config installation for public packages, secure API-based authentication.
85 lines • 4.04 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.runWizard = runWizard;
const chalk_1 = __importDefault(require("chalk"));
const inquirer_1 = __importDefault(require("inquirer"));
const init_1 = require("./commands/init");
const inspect_1 = __importDefault(require("./commands/inspect"));
const node_fs_1 = require("node:fs");
const scan_1 = require("./commands/scan");
async function runWizard() {
console.log(chalk_1.default.cyan("\nWelcome to the Sigyl Interactive Wizard!\n"));
let exit = false;
while (!exit) {
const { action } = await inquirer_1.default.prompt([
{
type: "list",
name: "action",
message: "What do you want to do?",
choices: [
{ name: "Generate a blank template", value: "init" },
{ name: "Generate from express app", value: "scan" },
{ name: "Run inspector", value: "inspscanect" },
{ name: "Exit", value: "exit" }
]
}
]);
switch (action) {
case "init": {
const { out, language, name } = await inquirer_1.default.prompt([
{ type: "input", name: "out", message: "Output directory:", default: "template-server" },
{ type: "list", name: "language", message: "Server language:", choices: ["typescript", "javascript"], default: "typescript" },
{ type: "input", name: "name", message: "Server name:", default: "my-mcp-server" }
]);
await (0, init_1.initTemplate)({ outDir: out, serverLanguage: language, name });
exit = true;
break;
}
case "scan": {
const { directory, out, language } = await inquirer_1.default.prompt([
{ type: "input", name: "directory", message: "Express app directory:", default: "." },
{ type: "input", name: "out", message: "Output directory:", default: "template-server" },
{ type: "list", name: "language", message: "Server language:", choices: ["typescript", "javascript"], default: "typescript" }
]);
await (0, scan_1.scanAndGenerate)(directory, { outDir: out, serverLanguage: language });
exit = true;
break;
}
case "inspect": {
const { serverPath } = await inquirer_1.default.prompt([
{ type: "input", name: "serverPath", message: "Path or URL to MCP server:", default: "template-server/server.js" }
]);
await (0, inspect_1.default)([], serverPath);
exit = true;
break;
}
case "install": {
console.log(chalk_1.default.yellow("\nPlease use the 'install' command directly for advanced options.\n"));
break;
}
case "clean": {
const { out } = await inquirer_1.default.prompt([
{ type: "input", name: "out", message: "Output directory to clean:", default: ".mcp-generated" }
]);
if ((0, node_fs_1.existsSync)(out)) {
(0, node_fs_1.rmSync)(out, { recursive: true, force: true });
console.log(chalk_1.default.green(`✅ Cleaned ${out} directory`));
}
else {
console.log(chalk_1.default.yellow(`⚠️ Directory ${out} not found`));
}
exit = true;
break;
}
case "exit":
default:
exit = true;
console.log(chalk_1.default.cyan("Goodbye!"));
break;
}
}
}
//# sourceMappingURL=wizard.js.map