UNPKG

@lanonasis/cli

Version:

Professional CLI for LanOnasis Memory as a Service (MaaS) with MCP support, seamless inline editing, and enterprise-grade security

65 lines (64 loc) 2.48 kB
import chalk from 'chalk'; import inquirer from 'inquirer'; import { dirname, join } from 'path'; import { CLIConfig } from '../utils/config.js'; import { createOnboardingFlow } from '../ux/index.js'; export async function initCommand(options) { const config = new CLIConfig(); await config.init(); console.log(chalk.blue.bold('🚀 Initializing MaaS CLI')); console.log(); // Check if config already exists const configExists = await config.exists(); if (configExists && !options.force) { const answer = await inquirer.prompt([ { type: 'confirm', name: 'overwrite', message: 'Configuration already exists. Overwrite?', default: false } ]); if (!answer.overwrite) { console.log(chalk.yellow('Initialization cancelled')); return; } } const onboardingConfigPath = join(dirname(config.getConfigPath()), 'onboarding.json'); const onboardingFlow = createOnboardingFlow(onboardingConfigPath); const setupResult = await onboardingFlow.runInitialSetup(); if (!setupResult.completed && setupResult.issues && setupResult.issues.length > 0) { console.log(chalk.yellow('⚠️ Onboarding completed with issues:')); setupResult.issues.forEach((issue) => console.log(chalk.yellow(` • ${issue}`))); } // Reload config after onboarding to preserve generated defaults await config.load(); // Get configuration const answers = await inquirer.prompt([ { type: 'input', name: 'apiUrl', message: 'API URL:', default: 'http://localhost:3000/api/v1', validate: (input) => { try { new URL(input); return true; } catch { return 'Please enter a valid URL'; } } } ]); // Initialize config await config.init(); await config.setApiUrl(answers.apiUrl); console.log(); console.log(chalk.green('✓ CLI initialized successfully')); console.log(chalk.gray(`Configuration saved to: ${config.getConfigPath()}`)); console.log(); console.log(chalk.yellow('Next steps:')); console.log(chalk.white(' memory login # Authenticate with your account')); console.log(chalk.white(' memory --help # Show available commands')); }