UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and

83 lines (82 loc) โ€ข 3.2 kB
/** * Complete Setup Integration for NeuroLink CLI * * Orchestrates the entire setup process: interactive wizard, environment management, * provider testing, and summary display. */ import { runInteractiveSetup, testProviderConnectivity, displaySetupSummary, } from "./interactiveSetup.js"; import { updateEnvFile, displayEnvUpdateSummary } from "./envManager.js"; import chalk from "chalk"; import { logger } from "../../lib/utils/logger.js"; /** * Run the complete interactive setup process */ export async function runCompleteSetup(quiet = false) { try { // Step 1: Run interactive setup wizard if (!quiet) { logger.always(chalk.blue("๐Ÿš€ Starting NeuroLink Configuration Setup...\n")); } const setupResult = await runInteractiveSetup(quiet); // If no providers selected, exit early if (setupResult.selectedProviders.length === 0) { if (!quiet) { logger.always(chalk.yellow("โš ๏ธ No providers selected. Setup cancelled.")); } return setupResult; } // Step 2: Update environment file with credentials if (Object.keys(setupResult.credentials).length > 0) { if (!quiet) { logger.always(chalk.blue("\n๐Ÿ’พ Updating environment configuration...\n")); } try { const envResult = updateEnvFile(setupResult.credentials, ".env", true); setupResult.envFileBackup = envResult.backup.backupPath; if (!quiet) { displayEnvUpdateSummary(envResult, false); } // Update process.env for immediate testing for (const [key, value] of Object.entries(setupResult.credentials)) { process.env[key] = value; } } catch (error) { if (!quiet) { logger.error(chalk.red(`โŒ Failed to update environment file: ${error instanceof Error ? error.message : String(error)}`)); } throw error; } } // Step 3: Test provider connectivity if (!quiet) { logger.always(chalk.blue("\n๐Ÿงช Testing configured providers...\n")); } setupResult.testResults = await testProviderConnectivity(setupResult.selectedProviders, quiet); // Step 4: Display summary displaySetupSummary(setupResult, quiet); return setupResult; } catch (error) { if (!quiet) { logger.error(chalk.red(`โŒ Setup failed: ${error instanceof Error ? error.message : String(error)}`)); logger.always(chalk.yellow("๐Ÿ’ก You can retry setup with: neurolink config setup")); } throw error; } } /** * Wrapper for config setup command */ export async function configSetup(quiet = false) { await runCompleteSetup(quiet); } /** * Wrapper for config init command (alias for setup) */ export async function configInit(quiet = false) { if (!quiet) { logger.always(chalk.gray("๐Ÿ“ config init is an alias for config setup\n")); } await runCompleteSetup(quiet); }