@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
JavaScript
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'));
}